返回资讯中心
外部精选
软件工程
#开发者实时流

ChainSafe 发布用 Rust 编写的 Filecoin 节点 Forest

来源标题:Rust Filecoin Node Implementation

ChainSafe 推出用 Rust 实现的 Filecoin 节点 Forest,功能虽不及官方节点 Lotus 完整,但主打更快、更易用。该节点支持通过 Docker 在 Linux、macOS 和 Windows 上运行,无需安装 Rust 工具链或其他依赖。

Hacker News 最新znano2026/11/7 · 8 天前15 分钟阅读

以下正文由 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 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →