这个项目能做什么
Chainlink 是一个开源项目,通过提供对现实世界数据和链下计算的访问来扩展智能合约能力,同时保持区块链的安全性和可靠性保证。本仓库包含 Chainlink 核心节点和合约。核心节点是参与去中心化预言机网络的节点运营者所运行的捆绑二进制文件。
README 中描述的关键能力:
- 核心节点二进制文件,带有 Web UI(默认端口 6688)以及用于管理、登录和作业管理的远程 CLI 客户端。
- 通过 CLI 命令(如 `chainlink jobs list`)进行作业管理,并提供创建作业的文档。
- 通过环境变量与 API、UI 或 CLI 直接设置的组合进行配置。
- 外部适配器使系统具有可扩展性,允许通过简单的 REST API 集成自定义计算和专用 API。
- 插件支持定义在 `plugins/` 目录下的 YAML 文件中,通过 loopinstall 安装;部分插件引用私有仓库。
- 为主要发布版本提供预构建的 Docker 镜像,并提供从分支或 PR 构建仅用于测试的镜像的工作流。
- 使用 cosign 和 OIDC 无密钥签名进行发布验证。
构建与开发说明:
- 需要 Go、NodeJS 和 pnpm,以及 PostgreSQL(>= 15.x);由于捆绑的客户端,官方 Docker 镜像最高支持 Postgres 18.x。
- 使用 `make install` 构建,然后运行 `chainlink help` 或 `chainlink node start`。
- 运行节点需要访问具有开放 websocket 连接的以太坊执行客户端。官方支持的客户端包括 Parity/Openethereum(已弃用)、Geth 和 Besu;Nethermind 和 Erigon 被描述为受支持,但因已知问题而无法正常工作。
- 测试可以使用 `make test` 配合临时测试数据库,或使用涉及测试数据库设置、迁移和 `go test ./...` 的手动流程。支持竞态检测和模糊测试。
- 仓库包含三个 Go 模块(根模块、integration-tests、core/scripts),并使用相对替换,`make gomodtidy` 会整理全部三个模块。
- 代码生成使用 mockery 生成 mock;提供 Nix shell/flake 以实现可复现的开发环境。
- 使用 Changesets 进行版本管理,项目遵循语义化版本控制和 Keep a Changelog 约定。
社区与贡献:Discord 是主要沟通渠道;文中引用了贡献指南和问题跟踪器,官方文档可在 docs.chain.link 获取。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。