Hey there Agnish here. This is my update for Week 5 of EPF. Following up on whatever I did last week, this week I mainly focused on drafting my project proposal, thinking of what all can I really afford to take up such that I can finish off the cohort with some good significant contributions.
I started this week with reading further about how Verkle Tries are supposed to work with Bonsai, another blog by Karim Taam. Went through the codebase of Bonsai, how Account Hashes effectively were mapped to a flat array of leaves of the trie in their RocksDB, which saved a lot of query processing time as whenever the Storage Tries were sparse enough, with the help of flattening, Bonsai prevented redundant traversal of the tries.
Read further about how Preload Caching worked in Bonsai and how a part of the Storage Trie is always cached during the initial read/write operations, and as block processing happens the new transaction information is added only by adding new branches to the Storage Trie. Along with that Trielogs, Accumulators and Layered States help in Rolling forward and backward of states for Ethereum, as Bonsai always has ONE persisted state stored for the entire chain.
Me along with the few of the members from the Only Dust team also scheduled a call with Karim Taam, where he walked us through some of the internals of how the code was structured for Bonsai. Furthermore, I spent some time understanding and deep diving into the codebase as well.
Additionally, this week I also studied about the Barycentric Formula that is used to compute Inner Product Arguments for Multiproofs using the Pedersen Commitment. This formula helps compute the IPAs using their vector of coefficients at any point in the domain of the polynomial without converting it to the corresponding Coefficient form which thereby optimises the time complexity of such operations from
Coming to Verkle Tries in Nim, I started working on a PoC for Inner Product Arguments on Nim, you can find it here in this repo. As an initial implementation, and also being a beginner at Nim, I'm trying to get my programming logic correct first, then I hope to debug all my syntactical errors in a reiterative manner. Again this PoC is currently being built on top of Constantine by Mamy. All this while I've been in constant communication with the Nimbus Team and especially Mamy. Lastly, I attended a call with Nimbus team and gave them most of these updates.