一个命令行工具,即可构建、签名并提交所有 ZooBC 交易:共 50 条命令,从简单的 send-zbc 到多重签名、节点注册、交易所、链上存储和治理。默认对机器友好(JSON 输入,JSON 输出),并为人类用户提供交互模式。
01获取
下载 Linux x86_64 版本,解压即可运行。无需安装,没有依赖。
# unpack and put it on your PATH tar xzf zoobc-cli-linux-x86_64.tar.gz sudo mv zoobc-cli /usr/local/bin/ # point it at any node or gateway (default: http://localhost:8080) # https://zoobc.network is the public TestNet gateway, not MainNet zoobc-cli list --api https://zoobc.network
其他平台即将推出;目前仅提供 Ubuntu / Linux x86_64 版本。
02三种运行方式
默认模式:JSON 输入,JSON 输出
以位置参数传入参数,返回 JSON 结果。这是其他应用和脚本调用的模式。第一个参数始终是发送方的私钥。
zoobc-cli send-zbc <privkey> ZBC_4HFG43GR_… 100000000 --api $API → {"transaction_hash":"a5f1…","amount":100000000, …}
交互模式,--verbose
逐个提示你输入每个字段,然后输出人类可读的结果。非常适合一次性操作。
zoobc-cli issue-token --verbose --api $API Sender private key: … · Symbol: … · Name: … · Decimals: …
管道 JSON,--json-input
从 stdin 读取 JSON 对象形式的参数,键名与 help <cmd> 列出的完全一致。
echo '{"sender_privkey":"…","recipient":"ZBC_…","amount":"100000000"}' \
| zoobc-cli send-zbc --json-input --api $API
03了解可以发送什么
两个内置命令就能告诉你一切,无需阅读源代码。
zoobc-cli list # every command, grouped by category zoobc-cli help multisig # the JSON fields for ONE command
help <cmd> 会输出每个字段的键名、是否必填、默认值,以及一个可直接编辑的 JSON 示例对象:
multisig, N-of-M multisig SendZBC (inner tx + participant signatures) (tx type 5)
sender_privkey (required) Sender private key (64 hex)
participants (required) comma-separated participant ZBC addresses
min_signatures (required) required signatures (N of M)
nonce (optional) multisig account nonce [default: 0]
signer_privkeys (required) participant keys that sign now
recipient (required) inner SendZBC recipient address
amount (required) inner SendZBC amount (atomic units)
inner_fee (optional) inner SendZBC fee (atomic) [default: 10000000]
Sample: {"sender_privkey":"…","participants":"…", …}
04常用参数与约定
| --api <url> | 节点或网关端点。默认为 http://localhost:8080。指向 https://zoobc.network 即可使用公共 TestNet。那是实际运行的测试网络,而不是 MainNet。 |
| --fee <n> | 覆盖交易手续费(以原子单位计的 ZBC)。省略则使用默认值 / 按大小计算的最低值。 |
| --verbose | 交互式提示 + 人类可读输出(见模式 2)。 |
| --json-input | 从 stdin 读取 JSON 对象形式的参数(模式 3)。 |
所有金额和价格都是原子单位整数(ZBC ×1e8;代币数量 ×10^decimals;订单价格 ×1e8)。地址可以是完整的 ZBC_… 字符串或十六进制。工具遇到错误输入时绝不会崩溃,而是返回一个 JSON 错误对象(在 --verbose 模式下为文本错误).
05实用示例
# transfer a colored token zoobc-cli transfer-token $KEY ZBC_6FINNB6J_… <token_id> 500 --api $API # register a validator node (owner signs; node key supplies the pubkey; PoOwnership is built for you) zoobc-cli register-node $OWNER_KEY $NODE_KEY 100000000000 --api $API # open an N-of-M multisig and sign with your key (others co-sign later) zoobc-cli multisig $KEY "ZBC_A…,ZBC_B…,ZBC_C…" 2 0 "$KEY" ZBC_A… 100000000 5000000 --api $API # schedule a vesting/recurring payment: 1 ZBC per fire, 12 fires, monthly zoobc-cli scheduled-transfer $KEY ZBC_… 0 100000000 2592000 12 0 0 0 0 --api $API
06全部 50 条命令
每种交易的逐字节主体布局见交易手册。运行 zoobc-cli help <cmd> 查看某条命令的字段。
价值与代币
| send-zbc | 向地址发送 ZBC |
| liquid-payment | 随时间流式支付 ZBC(解锁) |
| liquid-payment-stop | 停止流动支付(按比例结算) |
| transfer-token | 转移持有的染色代币 |
| issue-token | 发行染色币代币 |
| mint-token | 增发可铸造代币 |
| burn-token | 销毁代币(若可赎回则赎回其支撑资产) |
| finance-token | 为代币的存续资金充值 |
交易所与市场
| market-create | 开设一个 (base,quote) 订单簿市场 |
| order-place | 下限价单/市价单 |
| order-cancel | 取消挂单 |
| swap-create | 创建原子兑换报价 |
| swap-accept | 接受(成交)兑换报价 |
| swap-cancel | 取消未成交的兑换报价 |
应用
| app-create | 创建应用(双人或单人对庄) |
| app-join | 加入公开应用 |
| app-move | 提交一步走法 |
| app-resign | 在应用中认输 |
| app-claim | 申领已超时的应用 |
| app-settle | 结算状态通道应用(重放凭证) |
存储与数据
| store-file | 锚定一个去中心化存储文件(清单 + 租金) |
| add-prepaid-storage | 为账户的存储租金注资 |
| setup-dataset | 设置账户数据集的属性→值 |
| remove-dataset | 移除账户数据集的属性 |
| delete-dataset | 删除数据集对象(退还其押金) |
| set-dataset-policy | 设置数据集对象的管理策略 |
| transfer-dataset | 提议转让数据集对象 |
| accept-dataset | 接受待处理的数据集转让 |
账户:托管 · 计划任务 · 触发器 · 多签 · 投票
| multisig | N-of-M 多签 SendZBC(内部交易 + 签名) |
| escrow-request | 创建由收款方发起的托管请求 |
| approve-escrow | 批准 / 拒绝 / 使托管过期 |
| scheduled-transfer | 按计时器执行的解锁 / 定期转账 |
| cancel-schedule | 取消待执行的计划转账 |
| reassign-schedule | 将计划转账改为新的收款方 |
| create-trigger | 安排一笔未来的 SendZBC(keeper/预言机) |
| cancel-trigger | 取消待执行的触发器(退款) |
| attest-event | 证明一个外部事件(预言机节点) |
| fee-vote-commit | 手续费系数投票的承诺阶段 |
| fee-vote-reveal | 手续费系数投票的揭示阶段 |
节点运营者
| register-node | 注册验证者节点(由所有者签名;构建 ProofOfOwnership) |
| update-node | 更新节点的锁定余额 / 注册信息 |
| remove-node | 将节点移出验证者集合 |
| claim-node | 认领先前已移除的注册 |
网关运营者
| register-gateway | 注册网关(密钥 + 域名 + url,锁定质押额) |
| unregister-gateway | 撤销网关;退还质押额 |
| gateway-heartbeat | 证明网关仍在运行,由 GATEWAY 密钥签名,但任何发送方都可以转发 |
治理(发布授权方)
| register-release | 发布已签名的二进制版本 |
| revoke-release | 撤销已发布的版本 |
| release-authority-propose | 提议新的发布授权方 |
| release-authority-accept | 接受发布授权方的移交 |