Go to file
Arya 1a43758733
Merge branch 'main' into mempool-change-rpc
2025-05-26 16:13:20 -04:00
.cargo rename worflows to fix readme badges (#8116) 2023-12-18 21:07:40 +00:00
.github refactor(ci): Simplify cached disk selection logic (#9545) 2025-05-26 15:08:31 +01:00
book chore: Release v2.3.0 (#9475) 2025-05-06 14:47:47 +00:00
docker refactor(docker): Enhance Zebra configuration options and entrypoint logic (#9344) 2025-04-16 12:27:32 +00:00
docs/decisions feat(ci): Centralize zebra configuration testing with Docker (#9423) 2025-04-16 14:16:27 +00:00
grafana
supply-chain build(deps): bump the prod group across 1 directory with 18 updates (#8958) 2024-10-25 17:33:11 +00:00
tower-batch-control tower-batch-control: Fix `Batch::new` compilation with `tokio_unstable` (#9547) 2025-05-26 15:19:34 +01:00
tower-fallback chore: Release v2.3.0 (#9475) 2025-05-06 14:47:47 +00:00
zebra-chain Merge branch 'main' into mempool-change-rpc 2025-05-26 16:13:20 -04:00
zebra-consensus chore: Release v2.3.0 (#9475) 2025-05-06 14:47:47 +00:00
zebra-grpc chore: Release v2.3.0 (#9475) 2025-05-06 14:47:47 +00:00
zebra-network chore: Release v2.3.0 (#9475) 2025-05-06 14:47:47 +00:00
zebra-node-services add(rpc): Add a `mempool_transactions()` RPC method for listening to changes in the mempool 2025-05-12 19:17:19 -04:00
zebra-rpc Merge branch 'main' into mempool-change-rpc 2025-05-26 16:13:20 -04:00
zebra-scan fixes lints and a test 2025-05-13 00:09:59 -04:00
zebra-script chore: Release v2.3.0 (#9475) 2025-05-06 14:47:47 +00:00
zebra-state Merge branch 'main' into mempool-change-rpc 2025-05-26 16:13:20 -04:00
zebra-test fix(clippy, build): fix latest Clippy lints introduced in v1.87.0 and migrate from vergen to vergen_git (#9531) 2025-05-16 15:00:07 +00:00
zebra-utils fix(rpc): Regroup imports (#9521) 2025-05-14 18:36:05 +00:00
zebrad fix(clippy, build): fix latest Clippy lints introduced in v1.87.0 and migrate from vergen to vergen_git (#9531) 2025-05-16 15:00:07 +00:00
.codespellrc chore(CI): Update codespell's config (#9288) 2025-02-24 14:35:59 +00:00
.dockerignore docs(docker): update examples for running Zebra in Docker (#9269) 2025-02-19 17:44:06 +00:00
.firebaserc
.gitattributes
.gitignore feat(tests): Move the RPC tests framework from zcashd (#8866) 2024-09-20 16:36:20 +00:00
CHANGELOG.md chore: Release v2.3.0 (#9475) 2025-05-06 14:47:47 +00:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md chore: Update the PR template (#8591) 2024-06-15 14:28:14 +00:00
Cargo.lock feat(rpc): Update `(z_)validateaddress` to validate TEX addresses (#9483) 2025-05-22 15:12:37 +00:00
Cargo.toml feat(rpc): Update `(z_)validateaddress` to validate TEX addresses (#9483) 2025-05-22 15:12:37 +00:00
LICENSE-APACHE Update copyright year to 2025 (#9127) 2025-01-16 09:06:19 +00:00
LICENSE-MIT Update copyright year to 2025 (#9127) 2025-01-16 09:06:19 +00:00
README.md update README with Arch build patch (#9513) 2025-05-08 07:46:59 +00:00
SECURITY.md
clippy.toml
codecov.yml
deny.toml Experiment: `Transaction::V6` variants only (#9339) 2025-04-09 18:52:13 +00:00
firebase.json
katex-header.html
openapi.yaml feat(rpc): Add more fields to `getmininginfo` call (#8860) 2024-09-18 11:05:25 +00:00
prometheus.yaml docs(docker): update examples for running Zebra in Docker (#9269) 2025-02-19 17:44:06 +00:00
release.toml config, docs: update hardcoded users (#8710) 2024-07-22 17:00:32 +00:00
rust-toolchain.toml Adds rust-toolchain.toml (#8985) 2024-11-01 09:23:42 +00:00

README.md

Zebra logotype


Integration Tests CI OSes Continuous Delivery codecov Build docs License

Zebra is a Zcash full-node written in Rust.

Getting Started

You can run Zebra using our Docker image or you can build it manually.

Docker

This command will run our latest release, and sync it to the tip:

docker run zfnd/zebra:latest

For more information, read our Docker documentation.

Manual Build

Building Zebra requires Rust, libclang, and a C++ compiler. Below are quick summaries for installing the dependencies.

General instructions for installing dependencies

  1. Install cargo and rustc.

  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

[!NOTE] Zebra uses the --experimental_allow_proto3_optional flag with protoc during 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 of protoc older than 3.12.

Dependencies on Arch

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:

export CXXFLAGS="$CXXFLAGS -include cstdint"

Once you have the dependencies in place, you can build and install Zebra with:

cargo install --locked zebrad

You can start Zebra by running

zebrad start

Refer to the Installing Zebra and Running Zebra 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.

Documentation

The Zcash Foundation maintains the following resources documenting Zebra:

User support

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.

Security

Zebra has a responsible disclosure policy, 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, because some of their code was originally from MIT-licensed projects. See each crate's directory for details.

See LICENSE-APACHE and LICENSE-MIT.