Try โ€‚โ€‰HackMD

Nimbus - Project Ideas for EPF - Cohort 5

  • Extend KZG impl in constantine for PeerDAS. And create a switchable backend depending on system in between ckzg, constantine, and rust maybe. Once achieved, the fellows can work on the following items:

    • Prepare a formal benchmarking report, between the 3, using different hardware configurations to benchmark all three. This would give us a deeper understanding as to which cryptography backend works best in a given condition.
    • Create a feature flag, which thereby detects CPU and arch, thereby triggering the best backend.
    • Benchmarking specially for server like systems, and pre-AVX
  • Our Verkle Benchmarks are off the charts (as per testing done, but not benchmarking), and no formal comparative benchmarking have taken place for the following, a compartive study and benchmark could be very beneficial, and can being Nimbus quite some traction

    • tree operations
    • EIP-6800
    • proof creation and verification
    • The best outcome of this project would be to have exact testing configurations as Go/Rust verkle crypto/tree implementations, preferably running the Go/Rust implementation benchmarks in the participants' machine in a isolated environment.
  • Create C bindings in Constantine ( needs to be discussed if with @tersec if this would be in any way beneficial to Nimbus )

    • In demand for Nethermind ( @tanishq ) โ€“โ€“>โœ… by @tanishq ( only c-bindings needed, and not help in integration )
    • In demand of besu ( @gary ) โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“> โœ… by @kareem

    (An important discussion still pending from the Nethermind as well as Besu is to whether, ask the fellows to help out on the integration side of things as well? If so, then some members from each of the team might also have to share some of the mentorship responsibilities)

    • Once done with integration, perform comparative benchmarking with C# <-> Rust-verkle and C# <-> Constantine for the Nethermind team.

    • Do the same for Java <-> Rust-verkle with Java <-> Constantine for the Besu team

    • Finally prepare a report/some data visualizations for each of the teams, to help them with the decision-making.

  • Change the current BLST backend to constantine, and do a performance analysis. Though constantine is not yet audited, but the performance benchmarks can give us an idea, if switching to constantine gives us leverage, or just adds on to the complexity

  • Something related to DevOps since it was discussed in the interop ( suggested by @tersec )