Ada library for Duniter?

Hi, my friends and I are looking for another project. We considered writing a wallet for G1 in Ada. Since the python wallets seem to use DuniterPy, we could also write an Ada native library.

Most resources and topics about G1 and Duniter are in French, so finding documentation hasn’t been fruitful.

Could I get a point in the right direction?

#english #ada

Personally I would not start any big project depending on the current Duniter, since DuniterV2 will be completely incompatible.

If you really want to, BMA is documented in English, as well as WS2P.

For a longer-lived project, maybe an Ada library or client for Substrate?

1 Like

I (and someone else) personally don’t have much confidence in Rust because it happens to break on other platforms and older hardware.

This is concerning.
(Example: https://drewdevault.com/2021/02/09/Rust-move-fast-and-break-things.html)

(1) Is the rewrite the reason behind the change in specification?

(2) Will the rewrite force other clients to rely on Substrate and the Rust programming language?

Duniter needs to be rewritten, because:

  • it has deep conception problems we can solve using the experience we gained with Duniter and other cryptos
  • we want protocol changes that would be difficult to implement in the current codebase
  • NodeJS is slow and heavy
  • NodeJS can be very complicated to install and use
  • we would benefit from using a powerful, flexible framework rather than a homemade engine

Why Rust:

  • the developer who maintains it now is more skilled with Rust than with JS
  • Substrate is a good candidate
  • performance, security, safety, easier than C

Absolutely not :slight_smile: (speaking of clients. The nodes will be forced to use at least a WASM lib built by Rust, which is included in the blockchain.)
There are pure JS libs, and the node has a JSON API so you can use whatever you want for a client.


I think lots of the critics addressed to building Rust also address to running JS. Rust needs power to build. JS needs power to run. Rust is just moving the need of power to the right place: compile-time. To my mind, big softwares written in interpreted languages are a big mess.

But I sadly agree on the Rust’s lack of portability. (however Duniter-JS is not very portable so maybe DuniterV2 will be even more portable)