Skip to content
This repository has been archived by the owner on Jul 18, 2020. It is now read-only.

Gnarly Nest Proposal #30

Merged
merged 4 commits into from
Jun 12, 2018
Merged

Gnarly Nest Proposal #30

merged 4 commits into from
Jun 12, 2018

Conversation

shrugs
Copy link
Contributor

@shrugs shrugs commented Mar 16, 2018

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 like

...

if (tx.to === CRYPTO_KITTIES && events.include('Transfer')) { // this line is pseudo code
  because('KITTY_TRANSFER', () => {
    kittyState.ownerOf[tokenId] = event.to
  })
}

...

Gnarly 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:

  • literally anything that talks to the blockchain on behalf of a user
    • by simplifying the process of using blockchain info, we make developing high quality blockchain interfaces much more reasonable and approachable
  • gas price oracle API
  • unified token balance API
  • event webhook API
  • literally any other "blockchain info but as an API" API
  • indexing blockchain events for searching
  • decentralized dApp store *
  • decentralized Etherscan *

* 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.

@CLAassistant
Copy link

CLAassistant commented Mar 16, 2018

CLA assistant check
All committers have signed the CLA.

Copy link
Contributor

@mariapao mariapao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shrugs thanks for the application! I have reviewed the RFF and the PoC and your application is candidate for funding.

Next step: the RFF and PoC will be reviewed by Placeholder.

@mariapao mariapao requested review from cburniske and removed request for cburniske March 19, 2018 22:38
@mariapao
Copy link
Contributor

Hey @shrugs and @mykelp: we have approved your request for funding! Welcome to nest :)

Next steps: I'd like to have a call to discuss some details about wrapping up this process. We can discuss what else you guys need to start working on the project as soon as possibe. Are you in the community channel: the Arachat? Or, can you email me to maria@aragon.one so we can schedule the call? Thanks and talk to you soon.

@shrugs
Copy link
Contributor Author

shrugs commented Mar 27, 2018

We'll email you now! And we've already started working on it of course πŸ˜„

@mariapao mariapao merged commit 8a3bd50 into aragon:master Jun 12, 2018
luisivan pushed a commit that referenced this pull request Jun 1, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants