如何在Sawtooth测试网络中部署TP(交易处理器)
自定义XO交易处理器部署到Sawtooth单测试节点操作步骤
- 前置检查:先确认你的测试节点环境已经安装Python版本的Sawtooth SDK,未安装可执行命令
pip3 install sawtooth-sdk完成安装。 - 第一步:将你改写完成的交易处理器代码上传至运行Sawtooth测试节点的设备中,可放在任意你拥有读写权限的目录下,例如
/opt/sawtooth/custom_tp/。 - 第二步:停止节点默认运行的官方XO交易处理器(如果之前已经启用的话):
如果你是通过systemd部署的原生单节点,执行systemctl stop sawtooth-xo-tp-python;如果你是通过Docker部署的节点,停止对应XO交易处理器的容器即可。 - 第三步:临时运行自定义交易处理器验证逻辑:
进入你存放代码的目录,执行命令python3 你的交易处理器文件名.py -v -C tcp://localhost:4004,其中4004是Sawtooth验证器默认的连接端口,如果你修改过节点配置请替换为对应端口,-v参数用于开启详细日志方便调试。 - 第四步:验证部署成功:
查看交易处理器运行日志,出现成功连接到验证器的提示即为连接正常;也可以在节点上执行sawtooth tp list命令,查看返回的已注册交易处理器列表中是否包含你自定义的XO交易族信息,存在即代表注册成功。你也可以发送一笔测试交易,验证你改写的逻辑是否正常生效。 - 第五步(可选,后台常驻运行):
如果需要让自定义交易处理器后台运行且开机自启,可以新建systemd服务配置文件/etc/systemd/system/sawtooth-custom-xo-tp.service,写入以下内容:
[Unit]
Description=Custom Sawtooth XO Transaction Processor
After=sawtooth-validator.service[Service]
User=sawtooth
ExecStart=/usr/bin/python3 /你的代码存放路径/你的交易处理器文件名.py -C tcp://localhost:4004
Restart=always[Install]
WantedBy=multi-user.target
保存后依次执行以下命令生效:systemctl daemon-reloadsystemctl start sawtooth-custom-xo-tpsystemctl enable sawtooth-custom-xo-tp
注意事项
- 如果你改写时修改了交易族名称(family name)、版本号,发送交易时需要使用修改后的对应参数,否则交易处理器无法匹配到对应交易。
- 如果你是通过Docker Compose部署的测试节点,可以将你的自定义代码打包成新的Docker镜像,替换原配置文件中XO交易处理器的镜像配置,重启服务即可生效。
- 调试阶段建议保留
-v参数输出详细日志,出现问题可快速定位原因。
内容的提问来源于stack exchange,提问作者Ranski
相关产品推荐
相关产品推荐

