在 CORDA 中添加多个公证人
Add multiple notaries in CORDA
我正在尝试创建一个具有 4 个节点和 2 个公证人的分布式账本技术,其中每个公证人负责与 2 个节点通信。
示例Gradle 配置
task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
directory "./build/nodes"
networkMap "O=Controller,L=London,C=GB"
node {
name "O=Controller,L=London,C=GB"
advertisedServices = ["corda.notary.validating"]
p2pPort 10002
rpcPort 10003
cordapps = ["net.corda:corda-finance:$corda_release_version"]
}
node {
name "O=ControllerNY,L=New York,C=US"
advertisedServices = ["corda.notary.validating"]
p2pPort 10004
rpcPort 10005
cordapps = ["net.corda:corda-finance:$corda_release_version"]
}
node {
name "O=PartyA,L=London,C=GB"
advertisedServices = []
p2pPort 10006
rpcPort 10007
webPort 10008
cordapps = ["net.corda:corda-finance:$corda_release_version"]
rpcUsers = [[ user: "user1", "password": "test", "permissions": []]]
}
node {
name "O=PartyB,L=London,C=GB"
advertisedServices = []
p2pPort 10009
rpcPort 10010
webPort 10011
cordapps = ["net.corda:corda-finance:$corda_release_version"]
rpcUsers = [[ user: "user1", "password": "test", "permissions": []]]
}
node {
name "O=PartyC,L=New York,C=US"
advertisedServices = []
p2pPort 10012
rpcPort 10013
webPort 10014
cordapps = ["net.corda:corda-finance:$corda_release_version"]
rpcUsers = [[ user: "user1", "password": "test", "permissions": []]]
}
node {
name "O=PartyD,L=New York,C=US"
advertisedServices = []
p2pPort 10015
rpcPort 10016
webPort 10017
cordapps = ["net.corda:corda-finance:$corda_release_version"]
rpcUsers = [[ user: "user1", "password": "test", "permissions": []]]
}
}
如何将 controller
、controllerNY
添加到网络中,以便它选择它作为公证节点而不是普通节点
在这种情况下,Controller
和 ControllerNY
都将作为公证人添加到您的网络中,因为它们都宣传公证服务。
然后每个节点都可以为给定的交易自由使用任一公证人。您可以使用以下方式在流程中选择您的公证人:
serviceHub.networkMapCache.getNotary(notaryToUse)
或者
serviceHub.networkMapCache.notaryIdentities.single { it.name.organisation == notaryToUse }
我正在尝试创建一个具有 4 个节点和 2 个公证人的分布式账本技术,其中每个公证人负责与 2 个节点通信。
示例Gradle 配置
task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
directory "./build/nodes"
networkMap "O=Controller,L=London,C=GB"
node {
name "O=Controller,L=London,C=GB"
advertisedServices = ["corda.notary.validating"]
p2pPort 10002
rpcPort 10003
cordapps = ["net.corda:corda-finance:$corda_release_version"]
}
node {
name "O=ControllerNY,L=New York,C=US"
advertisedServices = ["corda.notary.validating"]
p2pPort 10004
rpcPort 10005
cordapps = ["net.corda:corda-finance:$corda_release_version"]
}
node {
name "O=PartyA,L=London,C=GB"
advertisedServices = []
p2pPort 10006
rpcPort 10007
webPort 10008
cordapps = ["net.corda:corda-finance:$corda_release_version"]
rpcUsers = [[ user: "user1", "password": "test", "permissions": []]]
}
node {
name "O=PartyB,L=London,C=GB"
advertisedServices = []
p2pPort 10009
rpcPort 10010
webPort 10011
cordapps = ["net.corda:corda-finance:$corda_release_version"]
rpcUsers = [[ user: "user1", "password": "test", "permissions": []]]
}
node {
name "O=PartyC,L=New York,C=US"
advertisedServices = []
p2pPort 10012
rpcPort 10013
webPort 10014
cordapps = ["net.corda:corda-finance:$corda_release_version"]
rpcUsers = [[ user: "user1", "password": "test", "permissions": []]]
}
node {
name "O=PartyD,L=New York,C=US"
advertisedServices = []
p2pPort 10015
rpcPort 10016
webPort 10017
cordapps = ["net.corda:corda-finance:$corda_release_version"]
rpcUsers = [[ user: "user1", "password": "test", "permissions": []]]
}
}
如何将 controller
、controllerNY
添加到网络中,以便它选择它作为公证节点而不是普通节点
在这种情况下,Controller
和 ControllerNY
都将作为公证人添加到您的网络中,因为它们都宣传公证服务。
然后每个节点都可以为给定的交易自由使用任一公证人。您可以使用以下方式在流程中选择您的公证人:
serviceHub.networkMapCache.getNotary(notaryToUse)
或者
serviceHub.networkMapCache.notaryIdentities.single { it.name.organisation == notaryToUse }