https://docs.stacks.co/understand-stacks/running-testnet-node
英语原文链接
介绍
此过程演示了如何使用 Docker 镜像来运行 stacks 区块链本地测试网节点。
此过程侧重于类 Unix 操作系统( Linux 和 MacOS )。此过程尚未在 Windows 上进行测试。
前期准备:
运行节点没有专门的硬件要求。用户已经成功地在 Raspberry Pi 和其他系统架构上运行节点。为了完成此过程,您必须在节点主机上安装以下软件:
Docker
curl
jq
防火墙配置:
为了使 API 节点服务正常工作,您必须配置任何网络防火墙规则以允许本节中讨论的端口上的流量。网络和防火墙配置的详细信息与您的机器和网络相关,因此不提供详细示例。以下端口必须在主机上打开:
入口:
stacks-blockchain (open to 0.0.0.0/0):
20443 TCP
20444 TCP
出口:
18332
18333
20443-20444
这些出口端口用于同步 stacks 区块链和比特币头部信息。如果它们未打开,则同步将失败。
第一步:初始化配置
为了运行 testnet 节点,您必须下载 Docker 镜像并创建一个目录结构来保存来自网络的持久数据。你可以使用以下命令下载并配置 Docker 镜像:
docker pull blockstack/stacks-blockchain
使用以下命令为服务数据创建目录结构:
mkdir -p ./stacks-node/persistent-data/stacks-blockchain/testnet && cd stacks-node
第二步:运行 stacks 区块链
使用以下命令启动 stacks-区块链 容器:
docker run -d --rm \
--name stacks-blockchain \
-v $(pwd)/persistent-data/stacks-blockchain/testnet:/root/stacks-node/data \
-p 20443:20443 \
-p 20444:20444 \
blockstack/stacks-blockchain \
/bin/stacks-node xenon
您可以使用以下命令验证正在运行的 stacks 区块链容器:
docker ps --filter name=stacks-blockchain
第三步;验证服务
最初的 burnchain 头同步可能需要几分钟,直到同步完成,以下命令才会起作用。
验证 stacks 区块链 burnchain 头同步进度:
docker logs stacks-blockchain
终端输出应该类似于以下内容:
INFO [1626290705.886954] [src/burnchains/bitcoin/spv.rs:926] [main] Syncing Bitcoin headers: 1.2% (8000 out of 2034380)
INFO [1626290748.103291] [src/burnchains/bitcoin/spv.rs:926] [main] Syncing Bitcoin headers: 1.4% (10000 out of 2034380)
INFO [1626290776.956535] [src/burnchains/bitcoin/spv.rs:926] [main] Syncing Bitcoin headers: 1.7% (12000 out of 2034380)
要验证 stacks-blockchain 尖端高度是否在进行中,请使用以下命令:
curl -sL localhost:20443/v2/info | jq
如果实例正在运行,您的终端会输出类似于以下内容的信息:
{
"peer_version": 4207599105,
"pox_consensus": "12f7fa85e5099755a00b7eaecded1aa27af61748",
"burn_block_height": 2034380,
"stable_pox_consensus": "5cc4e0403ff6a1a4bd17dae9600c7c13d0b10bdf",
"stable_burn_block_height": 2034373,
"server_version": "stacks-node 2.0.11.2.0-rc1 (develop:7b6d3ee+, release build, linux [x86_64])",
"network_id": 2147483648,
"parent_network_id": 118034699,
"stacks_tip_height": 509,
"stacks_tip": "e0ee952e9891709d196080ca638ad07e6146d4c362e6afe4bb46f42d5fe584e8",
"stacks_tip_consensus_hash": "12f7fa85e5099755a00b7eaecded1aa27af61748",
"genesis_chainstate_hash": "74237aa39aa50a83de11a4f53e9d3bb7d43461d1de9873f402e5453ae60bc59b",
"unanchored_tip": "32bc86590f11504f17904ee7f5cb05bcf71a68a35f0bb3bc2d31aca726090842",
"unanchored_seq": 0,
"exit_at_block_height": null
}
如何停止测试网节点
使用以下命令停止本地 testnet 节点:
docker stop stacks-blockchain