import net.corda.plugins.Cordform apply plugin: 'org.jetbrains.kotlin.jvm' apply plugin: 'idea' apply plugin: 'net.corda.plugins.cordapp' apply plugin: 'net.corda.plugins.cordformation' cordapp { targetPlatformVersion corda_platform_version.toInteger() } dependencies { if (System.getProperty('excludeShell') == null) { cordaDriver "net.corda:corda-shell:$corda_shell_version" } cordaProvided project(':core') cordaProvided project(':client:rpc') cordaBootstrapper "org.slf4j:slf4j-simple:$slf4j_version" cordaBootstrapper project(":node-api") // Corda integration dependencies corda project(path: ":node:capsule", configuration: 'runtimeArtifacts') corda project(path: ":testing:testserver:testcapsule:", configuration: 'runtimeArtifacts') // Notary implementations cordapp project(':samples:notary-demo:contracts') cordapp project(':samples:notary-demo:workflows') } task deployNodes(dependsOn: ['deployNodesSingle', 'deployNodesRaft', 'deployNodesBFT', 'deployNodesCustom']) configurations.cordaCordapp.canBeResolved = true task deployNodesSingle(type: Cordform) { directory file("$buildDir/nodes/nodesSingle") nodeDefaults { projectCordapp { deploy = false } extraConfig = [h2Settings: [address: "localhost:0"]] cordapp project(':samples:notary-demo:contracts') cordapp project(':samples:notary-demo:workflows') runSchemaMigration = true } node { name "O=Alice Corp,L=Madrid,C=ES" p2pPort 10002 rpcSettings { address "localhost:10003" adminAddress "localhost:10103" } rpcUsers = [[user: "demou", password: "demop", permissions: ["ALL"]]] } node { name "O=Bob Plc,L=Rome,C=IT" p2pPort 10005 rpcSettings { address "localhost:10006" adminAddress "localhost:10007" } rpcUsers = [[user: "demou", password: "demop", permissions: ["ALL"]]] } node { name "O=Notary Node,L=Zurich,C=CH" p2pPort 10009 rpcSettings { address "localhost:10010" adminAddress "localhost:10110" } notary = [validating: true, serviceLegalName: "O=Notary Service,L=Zurich,C=CH" ] } } task deployNodesCustom(type: Cordform) { directory file("$buildDir/nodes/nodesCustom") nodeDefaults { projectCordapp { deploy = false } extraConfig = [h2Settings: [address: "localhost:0"]] cordapp project(':samples:notary-demo:contracts') cordapp project(':samples:notary-demo:workflows') } node { name "O=Alice Corp,L=Madrid,C=ES" p2pPort 10002 rpcSettings { address "localhost:10003" adminAddress "localhost:10103" } rpcUsers = [[user: "demou", password: "demop", permissions: ["ALL"]]] } node { name "O=Bob Plc,L=Rome,C=IT" p2pPort 10005 rpcSettings { address "localhost:10006" adminAddress "localhost:10007" } rpcUsers = [[user: "demou", password: "demop", permissions: ["ALL"]]] } node { name "O=Notary Node,L=Zurich,C=CH" p2pPort 10009 rpcSettings { address "localhost:10010" adminAddress "localhost:10110" } notary = [ validating: true, className: "net.corda.notarydemo.MyCustomValidatingNotaryService", serviceLegalName: "O=Notary Service,L=Zurich,C=CH" ] } } task deployNodesRaft(type: Cordform) { directory file("$buildDir/nodes/nodesRaft") nodeDefaults { projectCordapp { deploy = false } extraConfig = [h2Settings: [address: "localhost:0"]] cordapp project(':samples:notary-demo:contracts') cordapp project(':samples:notary-demo:workflows') } node { name "O=Alice Corp,L=Madrid,C=ES" p2pPort 10002 rpcSettings { address "localhost:10003" adminAddress "localhost:10103" } rpcUsers = [[user: "demou", password: "demop", permissions: ["ALL"]]] } node { name "O=Bob Plc,L=Rome,C=IT" p2pPort 10005 rpcSettings { address "localhost:10006" adminAddress "localhost:10007" } rpcUsers = [[user: "demou", password: "demop", permissions: ["ALL"]]] } node { name "O=Notary Service 0,L=Zurich,C=CH" p2pPort 10009 rpcSettings { address "localhost:10010" adminAddress "localhost:10110" } notary = [ validating: true, serviceLegalName: "O=Raft,L=Zurich,C=CH", raft: [ nodeAddress: "localhost:10008" ] ] } node { name "O=Notary Service 1,L=Zurich,C=CH" p2pPort 10013 rpcSettings { address "localhost:10014" adminAddress "localhost:10114" } notary = [ validating: true, serviceLegalName: "O=Raft,L=Zurich,C=CH", raft: [ nodeAddress: "localhost:10012", clusterAddresses: ["localhost:10008"] ] ] } node { name "O=Notary Service 2,L=Zurich,C=CH" p2pPort 10017 rpcSettings { address "localhost:10018" adminAddress "localhost:10118" } notary = [ validating: true, serviceLegalName: "O=Raft,L=Zurich,C=CH", raft: [ nodeAddress: "localhost:10016", clusterAddresses: ["localhost:10008"] ] ] } } task deployNodesBFT(type: Cordform) { def clusterAddresses = ["localhost:11000", "localhost:11010", "localhost:11020", "localhost:11030"] directory file("$buildDir/nodes/nodesBFT") nodeDefaults { projectCordapp { deploy = false } extraConfig = [h2Settings: [address: "localhost:0"]] cordapp project(':samples:notary-demo:contracts') cordapp project(':samples:notary-demo:workflows') } node { name "O=Alice Corp,L=Madrid,C=ES" p2pPort 10002 rpcSettings { address "localhost:10003" adminAddress "localhost:10103" } rpcUsers = [[user: "demou", password: "demop", permissions: ["ALL"]]] } node { name "O=Bob Plc,L=Rome,C=IT" p2pPort 10005 rpcSettings { address "localhost:10006" adminAddress "localhost:10007" } rpcUsers = [[user: "demou", password: "demop", permissions: ["ALL"]]] } node { name "O=Notary Service 0,L=Zurich,C=CH" p2pPort 10009 rpcSettings { address "localhost:10010" adminAddress "localhost:10110" } notary = [ validating: false, serviceLegalName: "O=BFT,L=Zurich,C=CH", bftSMaRt: [ replicaId: 0, clusterAddresses: clusterAddresses ] ] } node { name "O=Notary Service 1,L=Zurich,C=CH" p2pPort 10013 rpcSettings { address "localhost:10014" adminAddress "localhost:10114" } notary = [ validating: false, serviceLegalName: "O=BFT,L=Zurich,C=CH", bftSMaRt: [ replicaId: 1, clusterAddresses: clusterAddresses ] ] } node { name "O=Notary Service 2,L=Zurich,C=CH" p2pPort 10017 rpcSettings { address "localhost:10018" adminAddress "localhost:10118" } notary = [ validating: false, serviceLegalName: "O=BFT,L=Zurich,C=CH", bftSMaRt: [ replicaId: 2, clusterAddresses: clusterAddresses ] ] } node { name "O=Notary Service 3,L=Zurich,C=CH" p2pPort 10021 rpcSettings { address "localhost:10022" adminAddress "localhost:10122" } notary = [ validating: false, serviceLegalName: "O=BFT,L=Zurich,C=CH", bftSMaRt: [ replicaId: 3, clusterAddresses: clusterAddresses ] ] } } task notarise(type: JavaExec, dependsOn: jar) { classpath = sourceSets.main.runtimeClasspath main = 'net.corda.notarydemo.client.NotariseKt' }