我已经开发了一个示例cordapp。共有4个节点(公证员,经销商,制造商和HDFC)。除了Dealer节点外,所有的节点都能成功运行。我得到了下面的错误。我也分享一下build.gradle文件。
task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
nodeDefaults {
projectCordapp {
deploy = false
}
cordapp project(':contracts')
cordapp project(':workflows')
}
node {
name "O=Notary,L=London,C=GB"
notary = [validating : false]
p2pPort 10002
rpcSettings {
address("localhost:10003")
adminAddress("localhost:10043")
}
}
node {
name "O=Dealer,L=London,C=GB"
p2pPort 10005
rpcSettings {
address("localhost:10006")
adminAddress("localhost:10046")
}
rpcUsers = [[ user: "user1", "password": "test", "permissions": ["ALL"]]]
}
node {
name "O=Manufacturer,L=New York,C=US"
p2pPort 10006
rpcSettings {
address("localhost:10009")
adminAddress("localhost:10049")
}
rpcUsers = [[ user: "user1", "password": "test", "permissions": ["ALL"]]]
}
node {
name "O=HDFC,L=New York,C=US"
p2pPort 10008
rpcSettings {
address("localhost:10012")
adminAddress("localhost:10052")
}
rpcUsers = [[ user: "user1", "password": "test", "permissions": ["ALL"]]]
}
}
你似乎遇到了端口绑定的问题,这意味着端口10046和10006已经在你的系统中使用。
请修改 build.gradle 文件中节点配置块中的端口,或者杀掉在端口上运行的进程。
在Linux系统中,你可以通过改变你的节点配置块中的build.gradle文件中的端口,或者杀死在你的端口中运行的进程。
使用下面的命令来查找与特定端口绑定的进程信息。
lsof -i :<portNumber>
使用下面的命令来杀死进程。
kill <process_id>
窗口
如果你是在windows上,请看这篇SO的帖子,找到一个端口上的kill进程。如何在Windows上找到哪个进程在监听一个端口?
bye
内的每一个节点终端 (包括公证人);否则您将会遇到目前的问题 (一些 Java 进程仍然在为某个节点分配您需要的端口)。 runNodes
命令和它的XTerm窗口;我更喜欢做以下工作。cd /path-to-project/build/nodes/PartyA
java -jar corda.jar
bye