blog.robur.coop

The Robur cooperative blog.
Back to index

MTE (MirageOS Taler Exchange): a GNU Taler exchange as a MirageOS unikernel

2024-10-01

In this project, our aim is to develop a drop-in replacement for a GNU Taler exchange (https://docs.taler.net/core/api-exchange.html).

The GNU Taler Exchange is a service that needs to be robust and high secure (plus allow very high security deployments). That is where our unikernel framework MirageOS comes into play.

With MirageOS, we only embed the code that is really required to run the service in the virtual machine image. This easily results in 25x less binary size (attack surface). MirageOS uses OCaml, a functional programming language with a static type system. We catch lots of errors at compile time, and provide memory-safety.

MirageOS uses very little resources (memory usage / CPU cycles) - both from the green computing perspective - and from the performance perspective.

One deployment target of MirageOS is the Muen separation kernel (developed in SPARK/Ada). This way, MTE runs next to a (Linux) VM with the network interface driver, next to PostgreSQL VM - on a off-the-shelf machine with high security guarantees.

Our plan is to use existing tests of GNU Taler exchange, in addition to our own fuzz testing, to ensure that MTE acts the same as GNU Taler exchange.

In 2025 we received funding through NGI TALER Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. The amount is 50_000€.

We were too busy with this project, and passed it on.