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.
