
ChainSafe 发布用 Rust 编写的 Filecoin 节点 Forest
来源标题:Rust Filecoin Node Implementation
ChainSafe 推出用 Rust 实现的 Filecoin 节点 Forest,功能虽不及官方节点 Lotus 完整,但主打更快、更易用。该节点支持通过 Docker 在 Linux、macOS 和 Windows 上运行,无需安装 Rust 工具链或其他依赖。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
Forest 是用 Rust 编写的 Filecoin 节点。使用 Forest,你可以:
虽然功能不如标准的 Filecoin 节点 Lotus 完整,但 Forest 的目标是成为更快、更易用的替代方案。
有问题?欢迎在 Forest Q&A 中提问!
无需安装 Rust 工具链或其他依赖,你只需要 Docker——支持 Linux、macOS 和 Windows。
daemon
❯ docker run --init -it --rm ghcr.io/chainsafe/forest:latest --help
cli
❯ docker run --init -it --rm --entrypoint forest-cli ghcr.io/chainsafe/forest:latest --help
接下来,在 CLI 窗口中运行一个 Forest 节点。例如:
运行 calibration 网络
之后,在另一个终端中,你可以通过在 forest 容器中启动 bash 来直接使用 forest-cli 二进制文件:
docker exec -it forest /bin/bash
如需更详细的使用方法和示例用例,请参阅 Forest Book 中的 Forest Docker 文档。请注意,latest 标签是最新的稳定版本。如果你想使用当前的开发构建,请使用 edge 标签。
Rust(工具链版本在 rust-toolchain.toml 中指定)
Go,用于构建 F3 sidecar 模块。(工具链版本在 go.work 中指定)
安装 rustup
该项目还使用 mise-en-place 来处理构建和安装。
sudo apt install build-essential clang
Fedora (36)
sudo dnf install -y clang-devel
安装
Clone repository
git clone --recursive https://github.com/chainsafe/forest cd forest
Install binary to $HOME/.cargo/bin
mise run install
Run the node on mainnet
forest
配置
Keystore
要在无头模式下加密 keystore,请设置 FOREST_KEYSTORE_PHRASE 环境变量。否则,使用 --encrypt-keystore false 跳过加密(不建议在生产环境中使用)。
使用自定义配置和 bootnodes 运行节点
forest --config /path/to/your_config.toml
可用的配置选项示例:
[client] data_dir = "<directory for all chain and networking data>" genesis_file = "<relative file path of genesis car file>"
[network] listening_multiaddrs = ["<multiaddress>"] bootstrap_peers = ["<multiaddress>"]
multiaddress 示例:
"/ip4/54.186.82.90/tcp/1347/p2p/12D3K1oWKNF7vNFEhnvB45E9mw2B5z6t419W3ziZPLdUDVnLLKGs"
Forest 将按以下顺序和优先级查找配置文件:
Forest 日志记录器使用 Rust 的日志过滤选项,通过 RUST_LOG 环境变量进行配置。例如:
RUST_LOG="debug,forest_libp2p::service=info" forest
默认会显示所有 debug 日志,但 forest_libp2p::service 的日志将限制为 info 级别。
Forest 还可以将遥测数据发送到 Loki 实例或 Loki agent 的端点(参见 Grafana Cloud)。使用 --loki 启用,使用 --loki-endpoint 指定接口和端口。
cargo install cargo-nextest --locked
To run all tests
mise test
Or, with a different profile
mise test release
链同步检查在每次合并到 main 后运行。此代码维护在单独的仓库中——Forest IaC。
该项目大量使用一组 linter 来自动化地保持代码库的整洁和安全。虽然 CI 会安装它们,但如果你想在提交 PR 之前自己运行它们(推荐),你应该安装其中几个。
你可以使用 mise install-lint-tools 安装所需的 linter。
一切安装完成后,你可以运行 mise lint。
使用 --chain 选项选择内置的 calibnet 配置。--auto-download-snapshot 将确保在需要时下载快照,无需任何提示。
./target/release/forest --chain calibnet --auto-download-snapshot
通过 CLI 与 Forest 交互
当 Forest 守护进程启动时,默认会显示一个 admin token 并保存到数据目录。(或者,使用 --save-token <token> 标志将其保存到磁盘)。你需要它来执行需要更高授权级别的命令(如密码)。如上所述,Forest 使用 multiaddress 进行网络通信。CLI 中也是如此。要设置要使用的主机和端口,如果不是使用默认端口或使用远程主机,请设置 FULLNODE_API_INFO 环境变量。这也是你可以设置用于认证的 token 的地方。请注意,如果 CLI 在守护进程的同一主机上调用,token 会自动设置。
FULLNODE_API_INFO="<token goes here>:/ip4/<host>/tcp/<port>/http
请注意,如果 FULLNODE_API_INFO 环境变量中不存在 token,则冒号会被移除。
Forest 开发者会在 CLI 命令前加上此变量,而不是在 Linux 上使用 export 或在 Windows 上使用等效方法。如下所示:
FULLNODE_API_INFO="..." forest-cli auth api-info -p admin
admin token 也可以通过 --token 标志设置。
forest-cli --token <ADMIN_TOKEN>
Forest 可执行文件组织
Forest 仓库中的二进制文件分为以下类别:
你可以使用 nohup 或 disown 将 Forest 进程从终端分离,使其在终端关闭后在后台运行:
nohup ./target/release/forest & ./target/release/forest & disown
该命令将阻塞,直到分离的 Forest 进程启动其 RPC 服务器,允许你立即在其后链接一些 RPC 命令。
calibration 网络
main 网络
文档
Forest Book
贡献
查看我们的贡献指南:CONTRIBUTING.md
ChainSafe 安全政策
报告安全漏洞
我们认真对待所有安全问题,如果你认为在 ChainSafe 项目中发现了安全问题,请立即通知我们。如果问题得到确认,我们将采取一切必要预防措施,确保及时发布声明和补丁版本。
请将漏洞描述及任何相关信息(例如复现步骤、版本)通过电子邮件发送至 security (at) chainsafe (dot) io。
Forest 采用 MIT + Apache 2.0 双许可证。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。