文档

运行节点

tintd 是验证者程序。本页介绍本地测试网络、各个命令,以及公共测试节点是如何搭建的。

测试网络:代币没有价值

命令

命令作用
tintd testnet创建本地测试网络的文件。
tintd run运行一个验证者。
tintd pay从种子文件对应的钱包发送代币。
tintd swap通过兑换池,把种子文件所对应钱包中的一种代币换成另一种。

单机上的本地测试网络

为四个验证者创建文件,然后在各自的终端中分别启动每一个。

bash
tintd testnet --dir net --addresses 127.0.0.1:4100,127.0.0.1:4101,127.0.0.1:4102,127.0.0.1:4103
bash · validator 0
tintd run --local \
  --genesis net/genesis.bin \
  --validators net/validators.txt \
  --key net/validator-0/key \
  --data net/validator-0/data \
  --rpc 127.0.0.1:4200

对验证者 1 到 3 重复上述步骤,各自使用自己的 --key、--data,如果还想要它们的钱包接口,则使用不同的 --rpc 端口。--local 接受私有地址,这是单机网络所需要的。

testnet 会写出 genesis.bin、validators.txt、一个存放每个验证者密钥的文件夹,以及 faucet.seed,即持有全部测试代币的钱包的种子。请保密该种子。

通过命令行发送代币和兑换

bash
tintd pay --node http://127.0.0.1:4200 --seed net/faucet.seed --to tint1... --amount 100
bash
tintd pay --node http://127.0.0.1:4200 --seed net/faucet.seed --to tint1... --amount 50 --coin TUSD
bash
tintd swap --node http://127.0.0.1:4200 --seed net/faucet.seed --amount 10 --buy TUSD

不带 --coin 时,pay 发送原生代币。swap 默认用原生代币支付,除非你用 --pay 指定另一种;一次兑换的两种代币中,总有一种是原生代币。

tintd run 的参数

参数含义
--genesis创世区块文件。
--validators验证者列表文件。
--key该验证者的私钥文件。
--data存放该验证者区块的目录。
--listen监听的地址;默认使用验证者列表中的那个。
--metrics提供指标的地址。除非你指定,否则关闭。
--rpc通过 HTTP 为钱包提供服务的地址。除非你指定,否则关闭。
--rpc-behind-proxy钱包通过本机上的反向代理访问 --rpc:按 X-Forwarded-For 统计客户端。
--local接受私有地址,用于单机上的网络。
--log-json以 JSON 行格式写日志。
--log-levelerror、warn、info(默认)、debug 或 trace。
--idle-block-ms没有待处理付款的链在两个区块之间休息的毫秒数。默认 5000,最大 60000。请给每个验证者设置相同的值。

公共测试节点是如何搭建的

https://node.tint.top 上的公共节点是一台运行四个验证者的服务器,因此它测试的是网络能否正常运转,并不能证明任何关于去中心化的事情。

内容位置
四个验证者systemd 单元 tint-validator@0 到 @3,通过 127.0.0.1:4100 到 4103 通信
钱包接口验证者 0,位于 127.0.0.1:4200,外部无法访问
HTTPSCaddy 监听 443 端口,将 /v1/* 转发到钱包接口
链数据/var/lib/tint/validator-N/data
  • 代理不保留访问日志:记录谁从哪个地址请求了什么,正是隐私网络不应该保留的东西。
  • 没有指标端口,也没有开放的验证者端口;验证者之间通过回环接口相互通信。
  • 验证者会永久保存每个区块。可用 du -sh /var/lib/tint/validator-*/data 查看磁盘占用。
  • 在 1 vCPU、2 GB 的服务器上,每个验证者在首次启动后占用约 92 MB 内存;服务文件将单个验证者限制在 1 GB。

查看正在运行的节点

bash
curl -s http://127.0.0.1:4200/v1/status

在由 systemd 管理的服务器上,systemctl status 'tint-validator@*' 显示各个单元,journalctl -u 'tint-validator@*' -n 50 显示最近的日志行。

让钱包指向你的节点

在钱包的“设置”中,你可以把共享节点换成你自己的节点。该节点必须通过 HTTPS 提供钱包接口,并且必须属于同一个网络,即与钱包其他数据所属的网络有相同的第一个区块。钱包遇到新的第一个区块时,会从头读取新的链。