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