Go to file
Henry de Valence 855b89dec4 chain: create a new work module for proof-of-work
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.
2020-08-17 11:46:34 -07:00
.github Try naively parallelizing test and build jobs on our platform matrix 2020-08-14 20:27:53 -04:00
book rfc: Parallel Verification (#763) 2020-08-14 11:04:17 -07:00
design Update data-flow.md 2020-08-04 22:44:39 -07:00
tower-batch build(deps): bump tracing from 0.1.18 to 0.1.19 (#872) 2020-08-11 10:18:54 -07:00
tower-fallback build(deps): bump pin-project from 0.4.22 to 0.4.23 2020-07-28 17:27:25 -04:00
zebra-chain chain: create a new work module for proof-of-work 2020-08-17 11:46:34 -07:00
zebra-client Align crate versions and user-agent with NU numbers. 2020-07-24 11:46:37 -07:00
zebra-consensus chain: move BlockHeight into block 2020-08-17 11:46:34 -07:00
zebra-network chain: move BlockHeight into block 2020-08-17 11:46:34 -07:00
zebra-rpc Align crate versions and user-agent with NU numbers. 2020-07-24 11:46:37 -07:00
zebra-script Align crate versions and user-agent with NU numbers. 2020-07-24 11:46:37 -07:00
zebra-state chain: move BlockHeight into block 2020-08-17 11:46:34 -07:00
zebra-test Valid generated config acceptance test (#859) 2020-08-13 13:31:13 -07:00
zebra-utils chain: move BlockHeight into block 2020-08-17 11:46:34 -07:00
zebrad chain: remove utils module 2020-08-17 11:46:34 -07:00
.firebaserc Try building internal docs. 2020-02-10 18:12:43 -08:00
.gitignore Implement sync component for start subcommand (#506) 2020-06-22 19:24:53 -07:00
CONTRIBUTING.md Reorganize the book. (#843) 2020-08-06 15:39:54 -07:00
Cargo.lock chain: remove utils module 2020-08-17 11:46:34 -07:00
Cargo.toml Refactor tracing components (#834) 2020-08-06 10:29:31 -07:00
Dockerfile Fix healthcheck (tracing) endpoint (#895) 2020-08-13 03:31:09 -04:00
LICENSE-APACHE Add copyright marks on each license 2019-11-14 11:50:49 -08:00
LICENSE-MIT Add copyright marks on each license 2019-11-14 11:50:49 -08:00
README.md Reorganize the book. (#843) 2020-08-06 15:39:54 -07:00
clippy.toml Apply clippy fixes 2020-02-05 12:42:32 -08:00
cloudbuild.yaml Fix CD workflow using cloudbuild.yaml (#637) 2020-07-10 07:37:54 -04:00
codecov.yml Turn off the CodeCov PR comment, metrics available in the checks results which link to codecov.io 2020-07-24 18:18:46 -04:00
firebase.json Configure redirect for firebase hosting 2020-01-16 18:38:16 -05:00
katex-header.html Add KaTeX to rendered docs. (#832) 2020-08-05 17:34:30 -07:00
prometheus.yaml Tell Prometheus to scrape more aggressively 2020-02-14 20:14:05 -05:00

README.md

Zebra logotype


codecov License

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.

Zebra Website.

Rendered docs from the main branch.

Join us on Discord.

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.