Zebra is a Zcash full-node written in Rust.
You can run Zebra using our Docker image or you can build it manually.
This command will run our latest release, and sync it to the tip:
docker run zfnd/zebra:latestFor more information, read our Docker documentation.
Building Zebra requires Rust, libclang, and a C++ compiler. Below are quick summaries for installing the dependencies.
-
Install
cargoandrustc. -
Install Zebra's build dependencies:
- libclang is a library that might have different names depending on your
package manager. Typical names are
libclang,libclang-dev,llvm, orllvm-dev. - clang or another C++ compiler:
g++(all platforms) orXcode(macOS). protoc
- libclang is a library that might have different names depending on your
package manager. Typical names are
[!NOTE] Zebra uses the
--experimental_allow_proto3_optionalflag withprotocduring compilation. This flag was introduced in Protocol Buffers v3.12.0 released in May 16, 2020, so make sure you're not using a version ofprotocolder than 3.12.
sudo pacman -S rust clang protobufNote that the package clang includes libclang as well as the C++ compiler.
Recently the GCC version on Arch has broken a build script in the rocksdb dependency. A workaround is:
export CXXFLAGS="$CXXFLAGS -include cstdint"Once you have the dependencies in place, you can build and install Zebra with:
cargo install --locked zebradYou can start Zebra by running
zebrad startRefer to the Installing Zebra and Running Zebra sections in the book for enabling optional features, detailed configuration and further details.
Zebra uses a comprehensive CI/CD system built on GitHub Actions to ensure code quality, maintain stability, and automate routine tasks. Our CI/CD infrastructure:
- Runs automated tests on every PR and commit.
- Manages deployments to various environments.
- Handles cross-platform compatibility checks.
- Automates release processes.
For a detailed understanding of our CI/CD system, including workflow diagrams, infrastructure details, and best practices, see our CI/CD Architecture Documentation.
The Zcash Foundation maintains the following resources documenting Zebra:
-
The Zebra Book:
-
The documentation of the public APIs for the latest releases of the individual Zebra crates.
-
The documentation of the internal APIs for the
mainbranch of the whole Zebra monorepo.
If Zebra doesn't behave the way you expected, open an issue. We regularly triage new issues and we will respond. We maintain a list of known issues in the Troubleshooting section of the book.
If you want to chat with us, Join the Zcash Foundation Discord Server and find the "zebra-support" channel.
Zebra has a responsible disclosure policy, which we encourage security researchers to follow.
Zebra is distributed under the terms of both the MIT license and the Apache License (Version 2.0). Some Zebra crates are distributed under the MIT license only, because some of their code was originally from MIT-licensed projects. See each crate's directory for details.
See LICENSE-APACHE and LICENSE-MIT.
