|
| 1 | + # node/src/bin 工具使用文档 |
| 2 | + |
| 3 | +本目录包含若干 CLI 工具(见 node/Cargo.toml 的 [[bin]])。所有工具默认支持 .env(dotenv)。 |
| 4 | + |
| 5 | +通用运行方式: |
| 6 | + |
| 7 | +- 查看帮助: |
| 8 | + - `cargo run -p bitvm2-noded --bin <bin> -- --help` |
| 9 | +- 直接运行: |
| 10 | + - `cargo run -p bitvm2-noded --bin <bin> -- <args>` |
| 11 | + |
| 12 | +二进制名称与用途: |
| 13 | + |
| 14 | +- update-db:向本地 DB 注入消息(db_inject.rs) |
| 15 | +- challenge:广播挑战交易(send_challenge.rs) |
| 16 | +- pegin-request:Pegin 请求/确认/取消(send_pegin_request.rs) |
| 17 | +- pegout:Operator 触发提现(send_pegout.rs) |
| 18 | +- send-rbf:RBF 替换交易(send_rbf.rs) |
| 19 | +- sequencer-set-publish:发布 Sequencer Set(sequencer-set-publish.rs) |
| 20 | + |
| 21 | +--- |
| 22 | + |
| 23 | +## update-db(db_inject.rs) |
| 24 | + |
| 25 | +用途:向本地 DB 插入一条 GOATMessageContent 供节点处理。 |
| 26 | + |
| 27 | +关键参数: |
| 28 | + |
| 29 | +- --db-path:本地 SQLite 路径(如 sqlite:/tmp/bitvm2-node.db) |
| 30 | +- --actor:Committee | Operator | Challenger | Watchtower | All |
| 31 | +- --message-json 或 --message-file(二选一) |
| 32 | +- --business-id(可选,未传将尝试从消息内容推断) |
| 33 | + |
| 34 | +示例: |
| 35 | + |
| 36 | +- `cargo run -p bitvm2-noded --bin update-db -- --db-path sqlite:/tmp/bitvm2-node.db --actor Operator --message-file ./message.json` |
| 37 | + |
| 38 | +--- |
| 39 | + |
| 40 | +## challenge(send_challenge.rs) |
| 41 | + |
| 42 | +用途:从本地 DB 读取 graph,构建并广播 Challenge 交易。 |
| 43 | + |
| 44 | +env: |
| 45 | + |
| 46 | +- BITVM_SECRET: 节点 BTC 私钥(hex) |
| 47 | +- GOAT_PRIVATE_KEY 或 GOAT_ADDRESS: OP_RETURN 中的 EVM 身份,用于在二层接收挑战奖励 |
| 48 | +- BITCOIN_NETWORK: bitcoin | testnet | testnet4(默认 testnet4) |
| 49 | +- GOAT_CHAIN_URL: GoatNetwork的rpc url |
| 50 | +- GOAT_GATEWAY_CONTRACT_ADDRESS:Gateway合约地址 |
| 51 | + |
| 52 | + |
| 53 | +args: |
| 54 | + |
| 55 | +- --db-path:本地 SQLite 路径 |
| 56 | +- --instance-id / --graph-id:目标 graph |
| 57 | +- --esplora-url:可覆盖 Esplora 地址 |
| 58 | + |
| 59 | +示例: |
| 60 | + |
| 61 | +- `cargo run -p bitvm2-noded --bin challenge -- --db-path sqlite:/tmp/bitvm2-node.db --instance-id <uuid> --graph-id <uuid>` |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +## pegin-request(send_pegin_request.rs) |
| 66 | + |
| 67 | +用途:Pegin 请求、准备(广播存款交易)、取消(广播退款交易)。 |
| 68 | + |
| 69 | +子命令: |
| 70 | + |
| 71 | +- request:向 GoatChain 发起 pegin 请求 |
| 72 | +- prepare:构建并广播 Bitcoin 存款交易 |
| 73 | +- request-prepare:request后等待约 12 分钟再执行 prepare |
| 74 | +- cancel:构建并广播退款交易 |
| 75 | + |
| 76 | +env: |
| 77 | + |
| 78 | +- BITVM_SECRET: 节点 BTC 私钥(hex) |
| 79 | +- GOAT_PRIVATE_KEY: 节点的 Goated 私钥 |
| 80 | +- BITCOIN_NETWORK: bitcoin | testnet | testnet4(默认 testnet4) |
| 81 | +- GOAT_CHAIN_URL: GoatNetwork的rpc url |
| 82 | +- GOAT_GATEWAY_CONTRACT_ADDRESS:Gateway合约地址 |
| 83 | + |
| 84 | +args基本都是可选,运行help查看帮助 |
| 85 | + |
| 86 | +示例: |
| 87 | + |
| 88 | +- `cargo run -p bitvm2-noded --bin pegin-request -- request-prepare` |
| 89 | + |
| 90 | +--- |
| 91 | + |
| 92 | +## pegout(send_pegout.rs) |
| 93 | + |
| 94 | +用途:Operator 发起 pegout(调用 Gateway.initWithdraw)。 |
| 95 | + |
| 96 | +env: |
| 97 | + |
| 98 | +- BITVM_SECRET: 节点 BTC 私钥(hex)用于生成节点公钥,也可在--operator-pubkey中设置 |
| 99 | +- GOAT_PRIVATE_KEY: 节点的 GoatNetwork 私钥 |
| 100 | +- BITCOIN_NETWORK: bitcoin | testnet | testnet4(默认 testnet4) |
| 101 | +- GOAT_CHAIN_URL: GoatNetwork的rpc url |
| 102 | +- GOAT_GATEWAY_CONTRACT_ADDRESS:Gateway合约地址 |
| 103 | + |
| 104 | +args: |
| 105 | + |
| 106 | +- --db-path:本地 SQLite 路径 |
| 107 | +- --operator-pubkey:可选,覆盖默认 operator BTC pubkey |
| 108 | +- once / batch:单次或批量 |
| 109 | + |
| 110 | +示例: |
| 111 | + |
| 112 | +- `cargo run -p bitvm2-noded --bin pegout -- once --db-path sqlite:/tmp/bitvm2-node.db --operator-pubkey 03484db4a2950d63da8455a1b705b39715e4075dd33511d0c7e3ce308c93449deb` |
| 113 | + |
| 114 | +--- |
| 115 | + |
| 116 | +## send-rbf(send_rbf.rs) |
| 117 | + |
| 118 | +用途:使用相同输入重建并广播替换交易(RBF)。 |
| 119 | + |
| 120 | +必需环境变量: |
| 121 | + |
| 122 | +- BITVM_SECRET:节点 BTC 私钥 |
| 123 | +- BITCOIN_NETWORK(可选) |
| 124 | + |
| 125 | +关键参数: |
| 126 | + |
| 127 | +- --vin <txid:vout>(可重复) |
| 128 | +- --fee-amount <sats> |
| 129 | +- --to-address(可选) |
| 130 | + |
| 131 | +示例: |
| 132 | + |
| 133 | +- `cargo run -p bitvm2-noded --bin send-rbf -- --vin <txid>:0 --fee-amount 10000 --to-address <addr>` |
| 134 | + |
| 135 | +--- |
| 136 | + |
| 137 | +## sequencer-set-publish(sequencer-set-publish.rs) |
| 138 | + |
0 commit comments