# PACTUS 测试节点教程

By [springt](https://paragraph.com/@springt) · 2023-12-20

---

**PACTUS 官网**：

[https://pactus.org/](https://pactus.org/)

**PACTUS 区块浏览器**：

[https://pacscan.org/](https://pacscan.org/)

#PACTUS #SSPOS 详细信息可以去官网了解，教程主要以docker部署为主，pactus支持win和linux直接部署，但是不如docker部署方便和快速，没有docker的，请先安装docker，安装后按步骤执行\*\*：\*\*

1.  **拉取Pactus的docker 官方镜像命令**
    
        docker pull pactus/pactus
        
    
2.  **执行初始化节点命令**
    
        docker run -it --rm -v ~/pactus/testnet:/root/pactus pactus/pactus pactus-daemon init
        
    
    执行后会出现钱包助记词，保存好，然后输入y进行下一步，
    

![红色圈内为助记词](https://storage.googleapis.com/papyrus_images/0363d4f402c446c7426d6afbc9e598c5733b01a0ec46bb93ae2681c726558310.png)

红色圈内为助记词

输入自定义的密码，然后进一步确认回车，

![](https://storage.googleapis.com/papyrus_images/26568ff3b4bba2869d200efbd76c68cb3082ac81ffa04295b1cc31670988f33a.png)

回车后，会提示创建几个初始化地址，默认是7，直接回车即可，

![](https://storage.googleapis.com/papyrus_images/8e4a9cce3c6cba381b5fab8df86c21a5cc1b9960b7bdacc7dcec2fdb98e51270.png)

出现以下画面，即证明成功，将生成的 Validator addresses 和 Reward addresses 复制下 来，后续会用到，此步骤创建的文件都保存在 工作目录`~/pactus/testnet。`

![](https://storage.googleapis.com/papyrus_images/3902784fa30e1b58dcb7b66ca8443dc4f24355a2031ea9d461c26ef5b668e02b.png)

3\. **运行节点**

    docker run -it -d -v ~/pactus/testnet:/root/pactus -p 21777:21777 -p 21777:21777/udp -p 50052:50052 -p 8080:8080 --name pactus-testnet pactus/pactus pactus-daemon start --password <WALLET_PASSWORD>
    

$$注意：命令最后面的密码替换成步骤二中自己定义的密码，8080:8080 、21777:21777、50052:50052, 冒号左边为宿主机开放端口，若与现有应用冲突可自行修改成其它端口，冒号右边的容器开放端口不可修改,若物理界配置高，可以多开几个docker容器，只需将上述端口修改与其他容器不重复，同时将~/pactus/testnet:/root/pactus命令中的testnet改下名字，例如testnet01 02 03等等，按自己喜好来改。$$

然后检查节点状态

    docker logs pactus-testnet --tail 1000 -f
    

如果显示类似这种，就证明节点运行成功。

![](https://storage.googleapis.com/papyrus_images/2bd6261d70f1b06a255d86679d3fec9751be56eaf1901c51fd631e8a75749b64.png)

4\. **discord 领水**

加入后，在 #testnet-faucet 频道，发送 faucet-referral xxxx 152010，xxx为第二步中生成的 Validator addresses ，生成7个中选择第一个替换xxx发送，出现下图所示即代表领水成功，测试币会自动打到你运行的节点中，放着让它跑就可以了。

![](https://storage.googleapis.com/papyrus_images/a989f8bbf472f95fdd1c519cfc964482c19ad80d269d83469c56225814b5108a.png)

5\. **查看节点收益**

运行一天后，通过区块浏览器查看奖励PAC代币数量， 访问 [https://pacscan.org/address/xxxxxxxxxxxxxxx/](https://pacscan.org/address/xxxxxxxxxxxxxxx/) xxx地址为创建节点时候的第一个

Reward 地址，如图就是已经产生2个收益，

![](https://storage.googleapis.com/papyrus_images/ade0a5d3c9f28326683a2f5f4e7d9f4605e28b1ddf13d578a120d9a50e5fbfa7.png)

另一种查看方式就是通过命令行操作，在docker服务器上执行

    docker run -it --rm -v ~/pactus/testnet:/root/pactus pactus/pactus pactus-wallet address all --balance --stake
    

~/pactus/testnet 根据自己的容器名自行修改，结果如下，节点质押越多越容易爆块，所以我们可以将收益地址中的奖励数接着发给 Validator 地址进行质押，

![](https://storage.googleapis.com/papyrus_images/da649ab69e9f328e9bb69ecd3d53faef9a61b2a78980e9a874def243126ee8fe.png)

6\. **发送债券交易**

因为是质押性质，所以发送代币要走债券交易，即Bond Transaction，在服务器上执行

    docker run -it --rm -v ~/pactus/testnet:/root/pactus pactus/pactus pactus-wallet tx bond xx01 xx02 0.99
    

~/pactus/testnet 按实际修改， xx01就是 Reward 地址，xx02是 Validator 地址， 0.99是金额自行修改，抓住需要少量的手续费，不能全部转出需要预留0.001左右。

**docker镜像升级流程：**

1.  查看目前已在运行的镜像
    
        docker ps -a
        
    

![](https://storage.googleapis.com/papyrus_images/ea08c99e9fb1eeecb19240c0c127eb492be619c7b30d1dc9816053ba22324e71.png)

2\. 停止镜像，例如名称为pactus-testnet，则执行如下命令，根据实际名称修改

    docker stop pactus-testnet
    

3\. 删除镜像，根据镜像id 删除之前的镜像，删除镜像并不会删除节点数据

    docker rm xxxxxxxxx
    

![](https://storage.googleapis.com/papyrus_images/8edcdf4a161644dccf39329e06a3944b23f48de7b8ac2b98d6a0b6e4e2b92593.png)

4\. 拉取最新镜像

    docker pull pactus/pactus
    

5\. 构建最新镜像, 步骤与上面创建节点 第3步一样，注意~/pactus/testnet 这里的名字要和升级前的一样，不然会报错

    docker run -it -d -v ~/pactus/testnet:/root/pactus -p 21777:21777 -p 21777:21777/udp -p 50052:50052 -p 8080:8080 --name pactus-testnet pactus/pactus pactus-daemon start --password <WALLET_PASSWORD>
    

6\. 检查节点运行情况，是否有最新数据同步

    docker logs pactus-testnet --tail 1000 -f

---

*Originally published on [springt](https://paragraph.com/@springt/pactus)*
