This repository has been archived by the owner on Jul 18, 2020. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Request for Nest membership and Funding (#21)
Team name: XLNT β @shrugs @mykelp
Proof of concept / research whitepaper: https://github.com/XLNT/gnarly π€
Burn rate: $3.5k/person/month
Legal structure: None, but we could set something up if necessary.
Proposal
XLNT would like to build Gnarly. Gnarly is a solid-state interpreter that reduces blockchain information to a developer-friendly format, that supports optimistic state transfers, enabling reactive and user-friendly client-side interfaces. It does this by running a developer-provided
state function
over every block in the Ethereum blockchain, intelligently handling forks and rollbacks, with no extra effort from the developer. The state function looks a little something likeGnarly then handles the logic of keeping
kittyState
in sync with your chosen persisted store (Postgres, Redis, ElasticSearch, etc) so that you can query this state like a normal web developer later on in your application's lifecycle.Because of this "solid-state interpreter" approach, we can easily integrate optimistic state transfers. When a developer provides a transaction to gnarly that's also been submitted to the network, gnarly can optimistically include a block with that transaction in it. The rest of the system functions identically, meaning that the state transition caused by your transaction is already reflected in the persistent store (with an attached "confidence").
Gnarly can be run server-side for shared state, or client-side for personal state reduction.
Gnarly has many usecases, including:
* for the fully-decentralized solutions, it's necessary to implement some sort of checkpointing system to avoid every client needing to re-index the blockchain themselves. It may be possible to use Truebit to iteratively run the gnarly interpreter over the past n blocks, publishing the resulting state to IPFS or similar, allowing a subset of nodes to calculate the state but having everyone in the network trust it.
Let me know if we should be more detailed with the roadmap specifications.