
---
[](https://github.com/ZcashFoundation/zebra/actions/workflows/ci-tests.yml)
[](https://github.com/ZcashFoundation/zebra/actions/workflows/ci-unit-tests-os.yml)
[](https://github.com/ZcashFoundation/zebra/actions/workflows/cd-deploy-nodes-gcp.yml)
[](https://codecov.io/gh/ZcashFoundation/zebra)
[](https://github.com/ZcashFoundation/zebra/actions/workflows/docs-deploy-firebase.yml)

- [Getting Started](#getting-started)
- [Docker](#docker)
- [Manual Build](#manual-build)
- [CI/CD Architecture](#cicd-architecture)
- [Documentation](#documentation)
- [User support](#user-support)
- [Security](#security)
- [License](#license)
[Zebra](https://zebra.zfnd.org/) is a Zcash full-node written in Rust.
## Getting Started
You can run Zebra using our [Docker
image](https://hub.docker.com/r/zfnd/zebra/tags) or you can build it manually.
### Docker
This command will run our latest release, and sync it to the tip:
```sh
docker run zfnd/zebra:latest
```
For more information, read our [Docker documentation](https://zebra.zfnd.org/user/docker.html).
### Manual Build
Building Zebra requires [Rust](https://www.rust-lang.org/tools/install),
[libclang](https://clang.llvm.org/doxygen/group__CINDEX.html), and a C++
compiler. Below are quick summaries for installing the dependencies.
[//]: # "The empty line in the `summary` tag below is required for correct Markdown rendering."
#### General instructions for installing dependencies
1. Install [`cargo` and `rustc`](https://www.rust-lang.org/tools/install).
2. 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`, or
`llvm-dev`.
- **clang** or another C++ compiler: `g++` (all platforms) or `Xcode` (macOS).
- **[`protoc`](https://grpc.io/docs/protoc-installation/)**
> [!NOTE]
> Zebra uses the `--experimental_allow_proto3_optional` flag with `protoc`
> during compilation. This flag was introduced in [Protocol Buffers
> v3.12.0](https://github.com/protocolbuffers/protobuf/releases/tag/v3.12.0)
> released in May 16, 2020, so make sure you're not using a version of `protoc`
> older than 3.12.
[//]: # "The empty line in the `summary` tag below is required for correct Markdown rendering."
#### Dependencies on Arch
```sh
sudo pacman -S rust clang protobuf
```
Note 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:
```sh
export CXXFLAGS="$CXXFLAGS -include cstdint"
```
Once you have the dependencies in place, you can build and install Zebra with:
```sh
cargo install --locked zebrad
```
You can start Zebra by running
```sh
zebrad start
```
Refer to the [Installing Zebra](https://zebra.zfnd.org/user/install.html) and
[Running Zebra](https://zebra.zfnd.org/user/run.html) sections in the book for
enabling optional features, detailed configuration and further details.
## CI/CD Architecture
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](.github/workflows/README.md).
## Documentation
The Zcash Foundation maintains the following resources documenting Zebra:
- The Zebra Book:
- [General Introduction](https://zebra.zfnd.org/index.html),
- [User Documentation](https://zebra.zfnd.org/user.html),
- [Developer Documentation](https://zebra.zfnd.org/dev.html).
- The [documentation of the public
APIs](https://docs.rs/zebrad/latest/zebrad/#zebra-crates) for the latest
releases of the individual Zebra crates.
- The [documentation of the internal APIs](https://doc-internal.zebra.zfnd.org)
for the `main` branch of the whole Zebra monorepo.
## User support
If Zebra doesn't behave the way you expected, [open an
issue](https://github.com/ZcashFoundation/zebra/issues/new/choose). We regularly
triage new issues and we will respond. We maintain a list of known issues in the
[Troubleshooting](https://zebra.zfnd.org/user/troubleshooting.html) section of
the book.
If you want to chat with us, [Join the Zcash Foundation Discord
Server](https://discord.com/invite/aRgNRVwsM8) and find the "zebra-support"
channel.
## Security
Zebra has a [responsible disclosure
policy](https://github.com/ZcashFoundation/zebra/blob/main/SECURITY.md), which
we encourage security researchers to follow.
## License
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](LICENSE-MIT), because some of their code was originally from MIT-licensed
projects. See each crate's directory for details.
See [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT).