Bitroot 开发者指南
Bitroot 是一条 100% 兼容 EVM 的公链,这意味着你现有的以太坊开发工具链——钱包、SDK、合约框架——基本可以直接复用,只需要把网络参数换成 Bitroot 的即可。本指南介绍如何接入 Bitroot 网络、部署和调试合约,以及如何使用三重引擎中面向开发者的能力。
1. 概述
在动手之前,先了解几个会反复用到的入口:
- 区块浏览器 BRTSCAN:https://devnet.bitroot.co/overview —— 查看区块、交易、合约状态,也是获取当前网络 RPC 地址、Chain ID 等最新参数的权威来源(这些参数可能随网络版本演进调整,请以浏览器首页公示的信息为准,而不是任何第三方转发的旧文档)。
- 测试网水龙头:https://devnet.bitroot.co/faucet —— 免费领取用于部署和调试合约的测试网 BRT。
- 跨链桥:https://bridge.bitroot.co/ —— 资产跨链转入转出。
- 协议代码仓库:https://github.com/brt-chain/bitroot —— 节点部署、协议实现细节、AI Agent 调用接口的具体 ABI 均以仓库内文档为准。
2. 接入 Bitroot 网络
Bitroot 遵循标准 JSON-RPC 接口,任何支持自定义 EVM 网络的钱包(MetaMask、Rabby、OKX Wallet 等)都可以直接添加。以 MetaMask 为例:
- 打开 MetaMask,点击网络选择器 → “添加网络” → “手动添加网络”。
- 打开 BRTSCAN(https://devnet.bitroot.co/overview),页面顶部或网络信息区通常会给出当前需要填写的 网络名称、RPC URL、Chain ID、货币符号、区块浏览器 URL 五项参数——把这些值原样填入 MetaMask 的表单。
- 保存后切换到 Bitroot 网络,即可看到你的账户余额(0 BRT 属于正常情况,需要先去水龙头领取测试代币)。
我们没有在本页写死具体的 RPC 地址和 Chain ID,是因为测试网参数可能随版本升级而变化——写死一个过期值反而会误导你连错网络。请始终以 BRTSCAN 页面当前展示的参数为准。
3. 获取测试网代币
访问水龙头页面(https://devnet.bitroot.co/faucet),按提示提交你的钱包地址即可领取用于部署合约、支付 Gas 的测试网 BRT。由于 Bitroot 平均 Gas 费在 $0.00007 量级,少量代币通常足够完成大量次数的合约调用和调试。
4. 智能合约开发:复用你已经会用的工具
因为 Bitroot 100% 兼容 EVM,以下工具无需任何适配层即可直接使用,只需要把网络配置指向 Bitroot:
Hardhat(hardhat.config.js):
module.exports = {
solidity: "0.8.24",
networks: {
bitrootTestnet: {
url: process.env.BITROOT_RPC_URL, // 从 BRTSCAN 获取当前 RPC 地址
chainId: Number(process.env.BITROOT_CHAIN_ID), // 从 BRTSCAN 获取当前 Chain ID
accounts: [process.env.DEPLOYER_PRIVATE_KEY],
},
},
};
Foundry(foundry.toml + 环境变量):
[rpc_endpoints]
bitroot_testnet = "${BITROOT_RPC_URL}"
部署命令与在任何 EVM 链上一样:
forge create src/MyContract.sol:MyContract \
--rpc-url $BITROOT_RPC_URL \
--private-key $DEPLOYER_PRIVATE_KEY
Remix:在 “Deploy & Run” 面板选择 “Injected Provider - MetaMask”,只要 MetaMask 当前连接的是 Bitroot 网络,编译、部署、调用流程与在以太坊主网上完全一致。
5. 用 ethers.js / viem 与网络交互
import { ethers } from "ethers";
const provider = new ethers.JsonRpcProvider(process.env.BITROOT_RPC_URL);
const wallet = new ethers.Wallet(process.env.DEPLOYER_PRIVATE_KEY!, provider);
const balance = await provider.getBalance(wallet.address);
console.log(`Balance: ${ethers.formatEther(balance)} BRT`);
由于并行化智能执行引擎针对无冲突交易做了并发优化,在批量发送大量互不依赖的交易时(例如空投、批量铸造),可以放心地并发提交而不必人为串行等待每一笔确认,链上会自动识别可并行执行的交易。
6. 区块浏览器与合约验证
合约部署完成后,建议在 BRTSCAN 上完成源码验证,方便你自己和其他用户核对合约行为、直接在浏览器里调用只读方法调试。具体验证入口和所需参数以 BRTSCAN 页面提示为准。
7. 使用 AI 原生 EVM 能力
Bitroot 与普通 EVM 链的最大差异在于内置的 AI Agent 标准调用接口:智能合约可以直接调用 AI 模型推理,而不需要额外的预言机或链下中继。这部分能力仍在快速迭代中,具体的合约接口、预编译地址和 ABI 请以协议仓库(https://github.com/brt-chain/bitroot)里的最新文档为准,本页不重复列出可能过期的接口签名。概念上,你可以将其理解为一个可以在 Solidity 里直接 call 的"AI 推理预编译合约",输入数据经过零知识证明可验证审计层记录,使得推理结果可以被链上或链下第三方验证,而不需要暴露原始模型权重。
8. 安全与最佳实践
- 私钥管理:测试网调试可以使用明文
.env文件,但正式环境请使用硬件钱包或 MPC 托管方案,不要把私钥硬编码进代码仓库。 - 合约审计:即使 Bitroot 提供了零知识证明可验证审计层,也不能替代你自己合约逻辑的安全审计——这层能力验证的是"计算过程和结果是否可信",不能验证"你的业务逻辑是否有漏洞"。
- Gas 预估:虽然 Bitroot 的 Gas 费用远低于以太坊主网,但在生产环境中仍建议对批量操作做 Gas 预估,避免因为单笔交易 Gas 上限设置过低导致部分交易失败。
- 网络参数校验:接入代码里建议对 Chain ID 做运行时校验(
provider.getNetwork()后比对),避免因为配置文件里写错网络参数而误操作到其他链。
9. 常见问题
Q:现有的以太坊合约能直接部署到 Bitroot 吗? A:只要合约不依赖以太坊特定的预编译合约地址假设,绝大多数标准 Solidity 合约可以直接编译部署,无需修改代码。
Q:测试网和主网的参数是同一套吗? A:不是,请始终在 BRTSCAN 上确认你当前要接入的是哪个网络环境,测试网与未来主网的 RPC、Chain ID 会不同。
Q:调用 AI 原生 EVM 模块需要额外付费吗? A:具体的计费模型以协议仓库文档和官方公告为准,本页不作承诺性描述。
10. 资源汇总
| 资源 | 地址 |
|---|---|
| 区块浏览器 BRTSCAN | https://devnet.bitroot.co/overview |
| 测试网水龙头 | https://devnet.bitroot.co/faucet |
| 跨链桥 | https://bridge.bitroot.co/ |
| 协议代码仓库 | https://github.com/brt-chain/bitroot |
| 技术白皮书 | 见站内“研究”→“白皮书” |
如果你在接入过程中遇到本页未覆盖的问题,欢迎通过“媒体联系方式”页面或社区渠道联系我们。