Go to file
teor 1915634d2b
Check for bad heights or hashes in checkpoint lists (#639)
* Add MIN and MAX for BlockHeight and LockTime
* Remove duplicate test cases
* fix a comment about the minimum lock time

The minimum LockTime::Time is 5 November 1985 00:53:20 UTC, so the first
day that only contains valid times is 6 November 1985 (in all timezones).

Similarly, the maximum LockTime::Time is 7 February 2106 06::28::15 UTC,
so the last day that only contains valid times in all time zones is
5 February 2106.

* fix: Reject checkpoint lists with bad hashes or heights

Reject the all-zeroes hash, because it is the parent hash of the genesis
block, and should never appear in a checkpoint list.

Reject checkpoint heights that are greater than the maximum block
height.
2020-07-16 15:09:22 +10:00
.github Fix CD workflow using cloudbuild.yaml (#637) 2020-07-10 07:37:54 -04:00
design Add formal design for syncer (#583) 2020-07-07 12:54:34 -07:00
tower-batch Bump tracing from 0.1.15 to 0.1.16 2020-07-09 10:22:27 -07:00
tower-fallback tower-fallback: add docs 2020-07-15 10:09:37 -07:00
zebra-chain Check for bad heights or hashes in checkpoint lists (#639) 2020-07-16 15:09:22 +10:00
zebra-client Add Zebra logo to all workspace crates. 2020-02-26 21:25:35 -08:00
zebra-consensus Check for bad heights or hashes in checkpoint lists (#639) 2020-07-16 15:09:22 +10:00
zebra-network fix: Use the default Zcash port in version messages (#661) 2020-07-15 11:43:28 -07:00
zebra-rpc Add Zebra logo to all workspace crates. 2020-02-26 21:25:35 -08:00
zebra-script Correct block version parsing. 2020-03-18 21:34:02 -04:00
zebra-state Bump sled from 0.32.1 to 0.33.0 2020-07-15 10:21:59 -07:00
zebra-test Longer checkpoint gap test case (#643) 2020-07-13 09:29:21 -07:00
zebra-utils setup skeleton zebra-utils crate for independent binaries (#638) 2020-07-10 12:31:01 -07:00
zebrad fix: Resist CheckpointVerifier memory DoS attacks (#635) 2020-07-15 13:27:10 -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
.rustfmt.toml Tracing endpoint (#3) 2019-09-09 13:05:42 -07:00
Cargo.lock Bump sled from 0.32.1 to 0.33.0 2020-07-15 10:21:59 -07:00
Cargo.toml tower-fallback: add implementation. 2020-07-15 10:09:37 -07:00
Dockerfile Put all ports EXPOSE'd on the same line 2020-06-19 03:46: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 Add link to CI workflows on main 2020-04-22 03:19:33 -04: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 Try to make CodeCov bot comment on PRs quieter (#576) 2020-07-01 20:37:51 -04:00
firebase.json Configure redirect for firebase hosting 2020-01-16 18:38:16 -05: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, and zebra-chain, building foundational data structures.

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.

Metrics

Notes on local metrics collection:

# create a storage volume for grafana (once)
sudo docker volume create grafana-storage
# create a storage volume for prometheus (once)
sudo docker volume create prometheus-storage

# run prometheus with the included config
sudo docker run --network host -v prometheus-storage:/prometheus -v /path/to/zebra/prometheus.yaml:/etc/prometheus/prometheus.yml  prom/prometheus

# run grafana
sudo docker run -d --network host -e GF_SERVER_HTTP_PORT=3030 -v grafana-storage:/var/lib/grafana grafana/grafana

Now the grafana dashboard is available at http://localhost:3030 ; the default password is admin/admin.