* wip Co-authored-by: Jane Lusby <jlusby42@gmail.com> * wip2: add nullifiers Co-authored-by: Jane Lusby <jlusby42@gmail.com> * Update book/src/dev/rfcs/0003-state-updates.md Co-authored-by: teor <teor@riseup.net> * Move to RFC number 5 * rfc: add PR link to state update RFC * rfc: change state RFC to store blocks by height. The rationale for this change is described in the document: it means that we write blocks only to one end of the Sled tree, and hopefully helps us with spatial access patterns. This should help alleviate a major cause of memory use in Zebra's current WIP Sled structure, which is that: - blocks are stored in random, sparse order (by hash) in the B-tree; - the `Request::GetDepth` method opens the entire block store and queries a random part of its block data to determine whether a hash is present; - if present, it deserializes the complete block data of both the given block and the current tip block, to compute the difference in block heights. This access pattern forces a large amount of B-tree data to remain resident, and could probably be avoided if we didn't do that. * rfc: add sprout and sapling anchors to sled trees. Co-authored-by: Deirdre Connolly <deirdre@zfnd.org> * rfc: fill in details of state service requests. * rfc: extract commit process from API description * rfc: add anchor parameters to CommitBlock. These have to be computed by a verifier, so passing them as parameters means we don't recompute them. * WIP for in memory state structs * tweeks from end of session with henry * more updates from pairing * rewrite non-finalized state sections * update query instructions for each request * more updates * updates from pairing with henry * updates from proofreading solo * add guide level explanation to state rfc * add drawbacks section * Update book/src/dev/rfcs/0005-state-updates.md Co-authored-by: Henry de Valence <hdevalence@hdevalence.ca> * Apply suggestions from code review Co-authored-by: Henry de Valence <hdevalence@hdevalence.ca> * Update book/src/dev/rfcs/0005-state-updates.md Co-authored-by: Henry de Valence <hdevalence@hdevalence.ca> * apply changes from code review * clarify iteration * Apply suggestions from code review Co-authored-by: teor <teor@riseup.net> * apply changes from code review * Update book/src/dev/rfcs/0005-state-updates.md Co-authored-by: teor <teor@riseup.net> * Apply suggestions from code review Co-authored-by: teor <teor@riseup.net> * Apply suggestions from code review Co-authored-by: teor <teor@riseup.net> * Apply suggestions from code review Co-authored-by: Deirdre Connolly <deirdre@zfnd.org> * Apply suggestions from code review Co-authored-by: teor <teor@riseup.net> * add info about default constructing chains when forking from finalized state * Update book/src/dev/rfcs/0005-state-updates.md Co-authored-by: teor <teor@riseup.net> * move contextual verification out of Chain Co-authored-by: Jane Lusby <jlusby42@gmail.com> Co-authored-by: teor <teor@riseup.net> Co-authored-by: Deirdre Connolly <deirdre@zfnd.org> Co-authored-by: Jane Lusby <jane@zfnd.org> |
||
|---|---|---|
| .github | ||
| book | ||
| design | ||
| tower-batch | ||
| tower-fallback | ||
| zebra-chain | ||
| zebra-client | ||
| zebra-consensus | ||
| zebra-network | ||
| zebra-rpc | ||
| zebra-script | ||
| zebra-state | ||
| zebra-test | ||
| zebra-utils | ||
| zebrad | ||
| .firebaserc | ||
| .gitignore | ||
| CONTRIBUTING.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| Dockerfile | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| README.md | ||
| clippy.toml | ||
| cloudbuild.yaml | ||
| codecov.yml | ||
| firebase.json | ||
| katex-header.html | ||
| prometheus.yaml | ||
README.md
Hello! I am Zebra, an ongoing Rust implementation of a Zcash node.
Zebra is a work in progress. It is developed as a collection of zebra-*
libraries implementing the different components of a Zcash node (networking,
chain structures, consensus rules, etc), and a zebrad binary which uses them.
Most of our work so far has gone into zebra-network, building a new
networking stack for Zcash, zebra-chain, building foundational data
structures, zebra-consensus, implementing consensus rules, and
zebra-state, providing chain state.
Rendered docs from the main branch.
License
Zebra is distributed under the terms of both the MIT license and the Apache License (Version 2.0).
See LICENSE-APACHE and LICENSE-MIT.
