855b89dec4
This extracts the `difficulty` module from `block` and the `equihash_solution` module from the crate root. The PoW calculations are significantly more complicated than the other block code and pretty dissimilar from it, so it makes more sense to create a common proof of work module. The `EquihashSolution` and `EQUIHASH_SOLUTION_SIZE` are renamed to `equihash::Solution` and `equihash::SOLUTION_SIZE` and imported that way, except in `block/header.rs`, to avoid a conflict with the `equihash` crate. In the future it would be better to encapsulate the equihash solution check into the `equihash::Solution` type so that callers only need to import our `work::equihash`. The test organization leaves a little to be desired but I think that this can be improved as we fill out the proof of work implementation. |
||
---|---|---|
.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.