Mark here from Equilibrium. We have a track record of writing Rust related to blockchains, peer-to-peer networking, and the decentralized web. We’ve also successfully completed prior development grants from organizations like Protocol Labs and the Web3 Foundation.
We were curious about opening a grant proposal to support migration of C++ code to Rust in the Zcash codebase. It appears this effort is potentially here and in the librustzcash repo itself.
Might somebody from @ZcashGrants be able to share some insight into the plans for Rust in the future, or connect us to the right people for a discussion?
As far as Rust usage in zcashd goes, our current approach is to write as much of all new code in Rust as we can (both for our own peace of mind and to make new components reusable between zcashd and zebrad), but only to migrate existing C++ code to Rust where it makes sense to spend engineering time diverging from upstream Bitcoin.
For example, we would like to have a new wallet in Rust that is capable of replacing the existing C++ BDB-based wallet (which has caused no end of issues) and could be isolated more easily from the main node implementation. By contrast, it’s unlikely we will swap out the core consensus implementation of zcashd, at least as long as it is working well for us, because we have stringent engineering quality and review requirements for consensus changes that would make such a drastic and invasive change prohibitively expensive (in terms of available ECC engineering time) to deploy.
With that in mind @aphelionz, it would be great for you to connect with @steven-ecc for discussion around this
Thanks for the context @str4d, and thanks for the heads up on zebra, @yaahc
Totally understandable that you don’t want to trade out the benefits of following upstream Bitcoin. The wallet sounds like it could be a good candidate for our involvement. I’d love to connect with Steven at some point as well to see if there might me any more.