Publications

Go compiler optimizations for structs

This article looks into the optimizations of the golang compiler with regard to different usage of structs. It answers the following questions: Does it avoid unnecessary structure copies? Does it inline where necessary? To answer theses questions, I wrote a small example and decompiled it to see how well it…

Failing OmniLedger login

Connection Failures There are some common reasons why the OmniLedger login can fail. So far we have seen the following ones: Corporate firewalls Private browser settings If you have a corporate firewall that blocks access to non-standard ports, the only thing you can do is to remove the VPN. This…

Maturity Evaluations

The C4DT/Factory works to bring EPFL’s great ideas to our partners. We do so by working on the existing code created in the labs. Because most of the code written in the labs has the goal to create graphs in a paper, it is not directly usable in another project.…

Data 2025 v.2.0

TLDR for “Managing Technical Quality”

Some notes from https://lethain.com/managing-technical-quality/ – most of the comments are copy/pasted, so ‘I’ is the author… In italic some more C4DT-specific notes. Technical quality is a long-term game. There’s no such thing as winning, only learning and earning the chance to keep playing. Do the quick stuff first! Hot Spots…

Manipulating elections in cyberspace: are democracies in danger?

Recover data on ByzCoin

How to get data back on ByzCoin OK, now it happened – I lost my addressbook on ByzCoin. As we’re using the Partner-login internally, I have a list of all accounts I created on the blockchain. Currently it’s not encrypted using Calypso yet, work in progress. So my account on…

Coding Guidelines @ EPFL

There are a variety of coding guidelines at EPFL. Some focus on a lab’s preferred language and their specific tools, some are more on project handling and general git usage. Most are a mix of the above. Sadly, theses guidelines aren’t scrupulously followed, aren’t usually automatically checked and some are…

Matrix on Mobile with OmniLedger login

For some time it was impossible to use the c4dt matrix chat on the mobile phones, as RiotX didn’t work correctly with the OmniLedger login. Now you can use the Element app together with our login to have matrix chat on your phone. TL;DR Of course you just want to…

Critical infrastructures in Switzerland: are they crisis-resilient?

SwissCovid (DP^3T project) – a proximity-tracing app against COVID-19: building trust in a technology solution

Exploring golang with a REPL

It is customary for users familiar with a command-line shell or dynamic languages such as Python to work with a REPL, or Read-Eval-Print-Loop. This kind of interface is very powerful for common exploratory tasks: quickly interact with some data or object, prototype an idea, or learn a particular functionality or…

golang code analysis

To ensure good code quality, we are looking this week at some golang (one of the language used for many of our project at C4DT) helping us to do so. Some idea where taken from the Awesome Go List, a good reference for everything related to golang. First, we show…

Crypto in Angular and Nativescript

Using typescript and npm has two big advantages: there are many modules available, and it runs in many environments. Unfortunately this is also one of the biggest challenges. Because you can configure every aspect of the system, you can break it very easily. At C4DT we often use the crypto…

Kubernetes

Want to automate pretty much every aspect of a deployed application lifespan? Having issue with reliability using docker-compose? Doesn’t want to care/handle how to expose this application to the outside? Want to have a reproducible infrastructure of containers deployed in a fast and resilient manner? Then Kubernetes is for you.…

traefik: a powerful reverse proxy

In a systems infrastructure, it is common that a single physical hosts presents many different services to the world. For example, one can have https://app1.my.domain/ and https://app2.my.domain/ point to the same host, whereas the actual services inside the organization reside on different physical or virtual machines. A typical way to…

On the road to general quantum computers

From an engineering point of view, quantum computers are very interesting beasts. It’s something new, shiny, you don’t understand it, but it seems to be the future. So you must go there! This is a collection of links that I found very helpful in understanding how quantum computers work and…

Monday Meeting Sharings

Every Monday the C4DT Factory team comes together for a meet’n share. Somebody from the team presents something he saw on the internet that is somewhat related to the work we’re doing. This can be technical, organisational, recreational (we didn’t have the “best cat pics” yet). Here is a list…

Calypso

Calypso is an auditable data-management framework that allows decentralize sharing and life-cycle management of private data. It is describe in this paper: https://eprint.iacr.org/2018/209.pdf. We use Calypso to store private data on the blockchain. DARCs describe the access to this private data. We use it in an example game of rock-paper-scissors…

C4DT partner login through OmniLedger

C4DT is working on bringing software from the labs to the real world. As part of this effort, we’re working on implementing use-cases for OmniLedger. OmniLedger is a novel blockchain that offers several new features. For example it works as a decentralised login service. This means that there is no…

Decentralized Access Rights Control – DARC

Current access rights management systems always depend on a centralized authority that all members must trust. However, for blockchains, this is not a good solution. Blockchains are decentralized and cannot easily use centralized trust systems. We built DARCs, a group-management on steroids that allows decentralized administration and delegation of identities.…

The Mind for 2020

Every week at our engineers-meeting we have a short presentation of _anything_ we found on the internet that is somewhat work-related and that we would like to share with our fellow engineers. As the team-lead, I wanted to do some short team-building exercise, and I thought about the game “The…

2019 Annual Report – C4DT

Account Management in OmniLedger

The C4DT Factory works using software produced by the EPFL IC labs. Our focus is on software that increases digital trust in the era of the internet. One area where we see a lack of trust is account management, which includes the following elements: self-sovereign management of the account using…