EPF Week 11 and 12

In the weekly meeting I discussed about the database layer of Nimbus. Zahary shared that they are going to change to a db which a flat database (similar to besu) and has very good performance so integrating verkle trie should not be a problem.

After getting the updates from everyone - seems like we are close to the completion.

Nim trie + Rust Crypto

Now to do comparative testing I will import the Rust libraries used for commitments into our project. This is going to be very tricky (not even sure if it would work).

Different tests has shown that rust cryptography is defineatly slower but since we have to do the comparative testing taking into account the trie we will have to integrate it.

Todo

  • Attempt to compile the Rust Banderwagon library into a library format Nim can interface with (e.g. DLL). As well as other libraries used as part of Commitments computation.
  • Extend these libraries with required markup on exported methods (e.g. C calling convention, extern)
  • Add them as submodules in our git repo
  • Create a Makefile to compile them, and to run nbindgen to generate header files
  • Have our project import these headers and make the exported methods accessible in Nim

After this is done - I will be on my last step i.e. integrating Nim trie + Nim Crypto ๐Ÿš€

Real-World Test

This issue has been very painful. I researched about this during start and left for the end because this is performance analysis.
I took this issue up again and later realized that I am not able to setup a node because of large storage requirement (Verkle tries aim to solve this ๐Ÿ˜‰).

Coincidentely I talked with Tanishq and he suggested me that this is not useful because the algorithm done is similar to bulk converstion method i.e. basically walking the state tree and re-inserting all key-values in a fresh VKT. Code

And Ignacio and Gballet are bringing up the Kaustinen testnet again. After that is stable, Guillaume had the idea of trying to export the initial state plus some blocks and start building a kind of test-vector based on the testnet.
That's pretty useful to have some self-contained test data that we need! Eliminating the need of doing this test.

Verkle Tree Structure Blog

I have started to write a blog on Verkle tree structure

This blog - Verkle tree structure by EF has many parts that can be explained in a better way for first time readers - Aim to solve this