This look cool! great job, congrats.
What are you using as data storage? I understand btcd uses leveldb, are you using something similar?
What are you using as data storage? I understand btcd uses leveldb, are you using something similar?
Mako uses LMDB. Aside from Berkeley DB, it's pretty much the only key-value store in town if you want a pure C project.
In the end, it worked out well because I really like LMDB. It has a very intuitive API, and it's very small, which sort of matches the spirit of this project.
The zero-copy on reads feature is also amazing. When reading a UTXO from the database, we do no copying and no allocation whatsoever. The UTXO is simply parsed from the pointer LMDB returns. This is something LevelDB cannot do at all.
Also, consider opening a discord server to talk more about this project!