当前,我正在使用3 + 1(公证节点)和Spring Boot Web服务器在Windows上进行RPC RESTAPI的Corda项目。现在,我想将这些节点部署在ubuntu VM和spring boot项目上。 到目前为止,我正在运行deploynode gradle任务来生成节点。那么,当在不同的机器上部署节点时我们该怎么做呢?以及我们如何集成和部署相应的Spring Web服务器?有人可以详细解释吗?
king1302218 回答:如何部署Corda节点和相应的Spring Boot API
在不同机器上的网络中安装和运行Corda节点的方法很少。
以下是有关如何使用Cordite网络地图服务设置Corda节点的一些步骤。
先决条件:
-
各个计算机中的节点目录。因此,在您的情况下,这是4个文件夹,包括相应计算机中的公证。 (可以在/ build / nodes中的 ./ gradlew clean deploynodes 之后找到节点目录)
-
Cordite NetworkMap服务
正在运行Cordite nw地图服务:
有关更多详细信息,请参阅https://gitlab.com/cordite/network-map-service/blob/master/FAQ.md。
- Docker方法。
-
docker run -p 8080:8080 -e NMS_STORAGE_TYPE=file cordite/network-map
-
注册和运行节点的步骤:
-
- 进入公证目录
- 1a。删除由部署任务形成的不必要的文件夹
rm -rf网络参数nodeInfo- * persistence.mv.db证书其他节点信息
- 1b。编辑node.conf以提供兼容性区域(安装网络应用程序的位置),并假设网络映射在8080中运行并且devMode = true,在node.conf中添加以下行
compatibilityZoneURL="http://localhost:8080"
devModeOptions.allowCompatibilityZone=true
- 1c。将node.conf中节点的p2p地址更改为该节点的托管位置
p2pAddress =“ hostip:port”
- 1d。执行节点的初始注册
java -jar corda.jar --initial-registration --network-root-truststore ~/tmp/network-truststore.jks --network-root-truststore-password trustpass
- 1a。删除由部署任务形成的不必要的文件夹
- 进入公证目录
-
- 指定公证人
- 2a。将目录更改为公证节点
- 2b。获取令牌以访问api
TOKEN=`curl -X POST "http://localhost:8080//admin/api/login" -H "accept: text/plain" -H "Content-Type: application/json" -d "{ \"user\": \"sa\",\"password\": \"admin\"}"`
- 2c。将nodeInfo分配给变量
NODEINFO=`ls nodeInfo*`
- 2d。通知将此节点指定为公证人的端点(以下为非验证公证人的端点)
curl -X POST -H "Authorization: Bearer $TOKEN" -H "accept: text/plain" -H "Content-Type: application/octet-stream" --data-binary @$NODEINFO http://localhost:8080//admin/api/notaries/validating
- 停止公证,在节点shell中执行以下操作(如果节点为4.0,节点将自动停止)
再见
- 删除更改后的网络参数
rm网络参数
- 再次启动节点
java -jar corda.jar
- 指定公证人
-
- 注册并启动其他节点
- 为每个节点重复步骤1a-1c以注册该节点。
- 启动节点
java -jar corda.jar
- 注册并启动其他节点
-
- 检查网络图是否已注册节点。
- 在浏览器中打开localost:8080 /
- 检查网络图是否已注册节点。