Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Turboproofs #468

Closed
4 tasks
zah opened this issue Feb 22, 2020 · 3 comments
Closed
4 tasks

Implement Turboproofs #468

zah opened this issue Feb 22, 2020 · 3 comments
Labels

Comments

@zah
Copy link
Contributor

zah commented Feb 22, 2020

Nimbus should become a highly efficient Eth1 stateless client. To execute a block, a stateless client needs to obtain only a small portion of the state that is being referenced by the transactions in the block. The needed data can be downloaded on demand and its integrity can be verified through merkle proofs. We call this data "the witness" for the block.

The Turboproofs scheme is an efficient method for compressing the block witness that was proposed by Alexey Akhunov. Existing implementations exist in Rust and TypeScript.

Goals of this bounty:

  • Implement a module with low-level routines for working with turbo-proofs.
  • Collect test vectors from existing implementations and implement a test suite.
  • Add a routine that can generate a turbo-proof by executing a block and keeping track of the referenced state trie data.
  • Add a routine that can populate a trie database (e.g. created with newMemoryDB) with the contents of a turbo-proof.
@zah zah added the bounty label Feb 22, 2020
@zah
Copy link
Contributor Author

zah commented Mar 16, 2020

A new specification for the block witnesses is being published here:
https://github.com/ethereum/stateless-ethereum-specs/pull/1/files

@zah
Copy link
Contributor Author

zah commented May 19, 2020

@jangko, my understanding is that we already have everything needed to close this?

@jangko
Copy link
Contributor

jangko commented May 20, 2020

that's right, we can close this one.

@jangko jangko closed this as completed May 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants