1个不稳定版本

0.1.0-alpha.12024年1月29日

#15#zebra

MIT/Apache

12KB

Zebra logotype


CI Docker CI OSes Continuous Delivery codecov Build docs License

内容

关于

Zebra 是Zcash基金会独立的、与共识兼容的Zcash节点实现。

Zebra的网络栈与zcashd互操作,并且Zebra实现了达到Zcash网络共识所需的所有功能,包括对NU5网络升级的所有共识规则进行验证。这里是Zebra的一些优点。

Zebra验证区块和交易,但需要额外的软件来生成它们

  • 要生成交易,请使用lightwalletd运行Zebra。请参阅
  • 要生成区块,请使用具有Zebra挖掘JSON-RPCs的矿池或矿工。目前Zebra只能将挖掘奖励发送到单个固定地址。要分配奖励,请使用创建其自己的分配交易的挖掘软件、轻钱包或zcashd钱包。

如果您想了解更多信息或参与其中,请加入我们的Discord

入门

您可以使用我们的Docker镜像运行Zebra,或者您可以手动构建它。请参阅Zebra手册中的系统要求部分。

Docker

此命令将运行我们的最新版本,并将其同步到最新版本

docker run zfnd/zebra:latest

有关更多信息,请参阅我们的Docker文档

构建Zebra

构建Zebra需要Rustlibclangpkg-config和C++编译器。

Zebra使用最新的stable Rust版本进行测试。不支持或测试早期版本。任何Zebra版本都可以根据最新稳定Rust中的新功能开始。

每隔几周,我们都会发布一个新的Zebra版本

以下是安装机器上依赖项的快速总结。

安装依赖项的一般说明

  1. 安装 cargorustc

  2. 安装 Zebra 的构建依赖项

    • libclang 是一个库,根据您的包管理器可能具有不同的名称。常见的名称是 libclanglibclang-devllvmllvm-dev
    • clang 或其他 C++ 编译器:g++(所有平台)或 Xcode(macOS)。
    • pkg-config

Arch 上的依赖项

sudo pacman -S rust clang pkgconf

请注意,包 clang 包含 libclang 以及 C++ 编译器。

一旦依赖项就绪,您可以构建并安装 Zebra

cargo install --locked zebrad

您可以通过以下方式启动 Zebra

zebrad start

请参阅本书中的安装 Zebra运行 Zebra 部分,了解更多详细信息。

可选配置和功能

初始化配置文件
zebrad generate -o ~/.config/zebrad.toml

上述命令将生成的 zebrad.toml 配置文件放置在 Linux 的默认首选项目录中。对于其他操作系统默认位置 请参阅此处

配置进度条

在您的 zebrad.toml 中配置 tracing.progress_bar使用进度条在终端中显示关键指标。当进度条处于活动状态时,Zebra 会自动将日志发送到文件。

已知问题在于 进度条估计变得非常大

在未来版本中,progress_bar = "summary" 配置将显示一些关键指标,而“详细”配置将显示所有可用指标。请告诉我们哪些指标对您很重要!

配置挖矿

您可以通过将 MINER_ADDRESS 和端口映射传递到 Docker 来配置 Zebra 进行挖矿。有关更多详细信息,请参阅挖矿支持文档

自定义构建功能

您还可以通过额外的 Cargo 特性 构建 Zebra

您可以通过将它们作为 --features 标志的参数列出来组合多个特性

cargo install --features="<feature1> <feature2> ..." ...

我们完整的实验性和开发者功能列表在 API 文档 中。

一些调试和监控功能在发行版构建中被禁用,以提高性能。

已知问题

Zebra 中还有一些我们正在努力修复的错误

文档

Zcash基金会维护以下资源以记录Zebra

用户支持

对于错误报告,请在Zebra仓库中提交错误报告工单

或者通过聊天,加入Zcash基金会Discord服务器并找到#zebra-support频道。

安全

Zebra有负责任的披露政策,我们鼓励安全研究人员遵守。

许可

Zebra根据MIT许可证和Apache许可证(版本2.0)的条款进行分发。

请参阅LICENSE-APACHELICENSE-MIT

某些Zebra模块仅根据MIT许可证进行分发,因为其中一些代码最初来自MIT许可的项目。请参阅每个模块目录以获取详细信息。

无运行时依赖