Sign inSign up

zfnd/zebra

Sponsored OSS

By Zcash Foundation

•Updated about 24 hours ago

Zcash - Financial Privacy in Rust 🦓

Image
Networking
Security
Databases & storage
9

50K+

zfnd/zebra repository overview

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](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.
⁠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⁠.

Tag summary

Content type

Image

Digest

sha256:6faf86c42…

Size

114.3 MB

Last updated

7 days ago

docker pull zfnd/zebra

This week's pulls

Pulls:

2,338

Last week