mirror of
https://github.com/corda/corda.git
synced 2024-12-25 07:31:10 +00:00
Remove nearestCity from node configuration. (#721)
* Fix bug in demobench. Explorer didn't show correctly location of a node. There was no nearestCity override in config. * Remove nearestCity from node configuration. Now information about the location is always taken from node's legal name. If not present - exception on node startup. * Add X500Name.locationOrNull that soft fails when location is not in X500 name. Address PR comments. * Remove unused imports.
This commit is contained in:
parent
34eb5a3b70
commit
d23202e675
@ -222,14 +222,12 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
networkMap "CN=Controller,O=R3,OU=corda,L=London,C=UK"
|
networkMap "CN=Controller,O=R3,OU=corda,L=London,C=UK"
|
||||||
node {
|
node {
|
||||||
name "CN=Controller,O=R3,OU=corda,L=London,C=UK"
|
name "CN=Controller,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = ["corda.notary.validating"]
|
advertisedServices = ["corda.notary.validating"]
|
||||||
p2pPort 10002
|
p2pPort 10002
|
||||||
cordapps = []
|
cordapps = []
|
||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=Bank A,O=R3,OU=corda,L=London,C=UK"
|
name "CN=Bank A,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10012
|
p2pPort 10012
|
||||||
rpcPort 10013
|
rpcPort 10013
|
||||||
@ -238,7 +236,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=Bank B,O=R3,OU=corda,L=London,C=UK"
|
name "CN=Bank B,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity "New York"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10007
|
p2pPort 10007
|
||||||
rpcPort 10008
|
rpcPort 10008
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
myLegalName : "CN=Bank A,O=Bank A,L=London,C=UK"
|
myLegalName : "CN=Bank A,O=Bank A,L=London,C=UK"
|
||||||
nearestCity : "London"
|
|
||||||
keyStorePassword : "cordacadevpass"
|
keyStorePassword : "cordacadevpass"
|
||||||
trustStorePassword : "trustpass"
|
trustStorePassword : "trustpass"
|
||||||
p2pAddress : "localhost:10002"
|
p2pAddress : "localhost:10002"
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
myLegalName : "CN=Bank B,O=Bank A,L=London,C=UK"
|
myLegalName : "CN=Bank B,O=Bank A,L=London,C=UK"
|
||||||
nearestCity : "London"
|
|
||||||
keyStorePassword : "cordacadevpass"
|
keyStorePassword : "cordacadevpass"
|
||||||
trustStorePassword : "trustpass"
|
trustStorePassword : "trustpass"
|
||||||
p2pAddress : "localhost:10005"
|
p2pAddress : "localhost:10005"
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
myLegalName : "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
myLegalName : "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity : "London"
|
|
||||||
keyStorePassword : "cordacadevpass"
|
keyStorePassword : "cordacadevpass"
|
||||||
trustStorePassword : "trustpass"
|
trustStorePassword : "trustpass"
|
||||||
p2pAddress : "localhost:10000"
|
p2pAddress : "localhost:10000"
|
||||||
|
@ -55,15 +55,6 @@ public class CordformNode {
|
|||||||
config = config.withValue("myLegalName", ConfigValueFactory.fromAnyRef(name));
|
config = config.withValue("myLegalName", ConfigValueFactory.fromAnyRef(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the nearest city to the node.
|
|
||||||
*
|
|
||||||
* @param nearestCity The name of the nearest city to the node.
|
|
||||||
*/
|
|
||||||
public void nearestCity(String nearestCity) {
|
|
||||||
config = config.withValue("nearestCity", ConfigValueFactory.fromAnyRef(nearestCity));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the Artemis P2P port for this node.
|
* Set the Artemis P2P port for this node.
|
||||||
*
|
*
|
||||||
|
@ -280,6 +280,7 @@ private fun X500Name.mutateCommonName(mutator: (ASN1Encodable) -> String): X500N
|
|||||||
val X500Name.commonName: String get() = getRDNs(BCStyle.CN).first().first.value.toString()
|
val X500Name.commonName: String get() = getRDNs(BCStyle.CN).first().first.value.toString()
|
||||||
val X500Name.orgName: String? get() = getRDNs(BCStyle.O).firstOrNull()?.first?.value?.toString()
|
val X500Name.orgName: String? get() = getRDNs(BCStyle.O).firstOrNull()?.first?.value?.toString()
|
||||||
val X500Name.location: String get() = getRDNs(BCStyle.L).first().first.value.toString()
|
val X500Name.location: String get() = getRDNs(BCStyle.L).first().first.value.toString()
|
||||||
|
val X500Name.locationOrNull: String? get() = try { location } catch (e: Exception) { null }
|
||||||
val X509Certificate.subject: X500Name get() = X509CertificateHolder(encoded).subject
|
val X509Certificate.subject: X500Name get() = X509CertificateHolder(encoded).subject
|
||||||
|
|
||||||
class CertificateStream(val input: InputStream) {
|
class CertificateStream(val input: InputStream) {
|
||||||
|
@ -35,7 +35,6 @@ NetworkMapService plus Simple Notary configuration file.
|
|||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
myLegalName : "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
myLegalName : "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity : "London"
|
|
||||||
keyStorePassword : "cordacadevpass"
|
keyStorePassword : "cordacadevpass"
|
||||||
trustStorePassword : "trustpass"
|
trustStorePassword : "trustpass"
|
||||||
p2pAddress : "localhost:12345"
|
p2pAddress : "localhost:12345"
|
||||||
@ -56,9 +55,6 @@ path to the node's base directory.
|
|||||||
:myLegalName: The legal identity of the node acts as a human readable alias to the node's public key and several demos use
|
:myLegalName: The legal identity of the node acts as a human readable alias to the node's public key and several demos use
|
||||||
this to lookup the NodeInfo.
|
this to lookup the NodeInfo.
|
||||||
|
|
||||||
:nearestCity: The location of the node as used to locate coordinates on the world map when running the network simulator
|
|
||||||
demo. See :doc:`network-simulator`.
|
|
||||||
|
|
||||||
:keyStorePassword: The password to unlock the KeyStore file (``<workspace>/certificates/sslkeystore.jks``) containing the
|
:keyStorePassword: The password to unlock the KeyStore file (``<workspace>/certificates/sslkeystore.jks``) containing the
|
||||||
node certificate and private key.
|
node certificate and private key.
|
||||||
|
|
||||||
|
@ -209,7 +209,6 @@ is a three node example;
|
|||||||
networkMap "CN=Controller,O=R3,OU=corda,L=London,C=UK" // The distinguished name of the node named here will be used as the networkMapService.address on all other nodes.
|
networkMap "CN=Controller,O=R3,OU=corda,L=London,C=UK" // The distinguished name of the node named here will be used as the networkMapService.address on all other nodes.
|
||||||
node {
|
node {
|
||||||
name "CN=Controller,O=R3,OU=corda,L=London,C=UK"
|
name "CN=Controller,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = [ "corda.notary.validating" ]
|
advertisedServices = [ "corda.notary.validating" ]
|
||||||
p2pPort 10002
|
p2pPort 10002
|
||||||
rpcPort 10003
|
rpcPort 10003
|
||||||
@ -219,7 +218,6 @@ is a three node example;
|
|||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=NodeA,O=R3,OU=corda,L=London,C=UK"
|
name "CN=NodeA,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10005
|
p2pPort 10005
|
||||||
rpcPort 10006
|
rpcPort 10006
|
||||||
@ -229,7 +227,6 @@ is a three node example;
|
|||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=NodeB,O=R3,OU=corda,L=New York,C=US"
|
name "CN=NodeB,O=R3,OU=corda,L=New York,C=US"
|
||||||
nearestCity "New York"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10008
|
p2pPort 10008
|
||||||
rpcPort 10009
|
rpcPort 10009
|
||||||
|
@ -73,7 +73,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
networkMap "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
networkMap "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
||||||
node {
|
node {
|
||||||
name "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
name "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = ["corda.notary.validating"]
|
advertisedServices = ["corda.notary.validating"]
|
||||||
p2pPort 10002
|
p2pPort 10002
|
||||||
rpcPort 10003
|
rpcPort 10003
|
||||||
@ -82,7 +81,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=Alice Corp,O=Alice Corp,L=London,C=UK"
|
name "CN=Alice Corp,O=Alice Corp,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10005
|
p2pPort 10005
|
||||||
rpcPort 10006
|
rpcPort 10006
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
myLegalName : "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
myLegalName : "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity : "London"
|
|
||||||
keyStorePassword : "cordacadevpass"
|
keyStorePassword : "cordacadevpass"
|
||||||
trustStorePassword : "trustpass"
|
trustStorePassword : "trustpass"
|
||||||
p2pAddress : "my-network-map:10000"
|
p2pAddress : "my-network-map:10000"
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
myLegalName : "CN=Bank A,O=Bank A,L=London,C=UK"
|
myLegalName : "CN=Bank A,O=Bank A,L=London,C=UK"
|
||||||
nearestCity : "London"
|
|
||||||
keyStorePassword : "cordacadevpass"
|
keyStorePassword : "cordacadevpass"
|
||||||
trustStorePassword : "trustpass"
|
trustStorePassword : "trustpass"
|
||||||
dataSourceProperties : {
|
dataSourceProperties : {
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
myLegalName : "CN=Bank A,O=Bank A,L=London,C=UK"
|
myLegalName : "CN=Bank A,O=Bank A,L=London,C=UK"
|
||||||
nearestCity : "London"
|
|
||||||
p2pAddress : "my-corda-node:10002"
|
p2pAddress : "my-corda-node:10002"
|
||||||
webAddress : "localhost:10003"
|
webAddress : "localhost:10003"
|
||||||
networkMapService : {
|
networkMapService : {
|
||||||
|
@ -22,8 +22,6 @@ The following information from the node configuration file is needed to generate
|
|||||||
.. note:: In a future version the uniqueness requirement will be relaxed to a X.500 name. This will allow differentiation
|
.. note:: In a future version the uniqueness requirement will be relaxed to a X.500 name. This will allow differentiation
|
||||||
between entities with the same name.
|
between entities with the same name.
|
||||||
|
|
||||||
:nearestCity: e.g. "London"
|
|
||||||
|
|
||||||
:emailAddress: e.g. "admin@company.com"
|
:emailAddress: e.g. "admin@company.com"
|
||||||
|
|
||||||
:certificateSigningService: Doorman server URL. A doorman server will be hosted by R3 in the near
|
:certificateSigningService: Doorman server URL. A doorman server will be hosted by R3 in the near
|
||||||
|
@ -777,7 +777,6 @@ like to deploy for testing. See further details below:
|
|||||||
networkMap "CN=Controller,O=R3,OU=corda,L=London,C=UK" // The distinguished name of the node to be used as the network map.
|
networkMap "CN=Controller,O=R3,OU=corda,L=London,C=UK" // The distinguished name of the node to be used as the network map.
|
||||||
node {
|
node {
|
||||||
name "CN=Controller,O=R3,OU=corda,L=London,C=UK" // Distinguished name of node to be deployed.
|
name "CN=Controller,O=R3,OU=corda,L=London,C=UK" // Distinguished name of node to be deployed.
|
||||||
nearestCity "London" // For use with the network visualiser.
|
|
||||||
advertisedServices = ["corda.notary.validating"] // A list of services you wish the node to offer.
|
advertisedServices = ["corda.notary.validating"] // A list of services you wish the node to offer.
|
||||||
p2pPort 10002
|
p2pPort 10002
|
||||||
rpcPort 10003 // Usually 1 higher than the messaging port.
|
rpcPort 10003 // Usually 1 higher than the messaging port.
|
||||||
@ -786,7 +785,6 @@ like to deploy for testing. See further details below:
|
|||||||
}
|
}
|
||||||
node { // Create an additional node.
|
node { // Create an additional node.
|
||||||
name "CN=NodeA,O=R3,OU=corda,L=London,C=UK"
|
name "CN=NodeA,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10005
|
p2pPort 10005
|
||||||
rpcPort 10006
|
rpcPort 10006
|
||||||
|
@ -154,7 +154,9 @@ abstract class AbstractNode(open val configuration: NodeConfiguration,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun findMyLocation(): PhysicalLocation? = CityDatabase[configuration.nearestCity]
|
open fun findMyLocation(): PhysicalLocation? {
|
||||||
|
return configuration.myLegalName.locationOrNull?.let { CityDatabase[it] }
|
||||||
|
}
|
||||||
|
|
||||||
lateinit var info: NodeInfo
|
lateinit var info: NodeInfo
|
||||||
lateinit var storage: TxWritableStorageService
|
lateinit var storage: TxWritableStorageService
|
||||||
|
@ -21,7 +21,6 @@ interface NodeConfiguration : NodeSSLConfiguration {
|
|||||||
val myLegalName: X500Name
|
val myLegalName: X500Name
|
||||||
val networkMapService: NetworkMapInfo?
|
val networkMapService: NetworkMapInfo?
|
||||||
val minimumPlatformVersion: Int
|
val minimumPlatformVersion: Int
|
||||||
val nearestCity: String
|
|
||||||
val emailAddress: String
|
val emailAddress: String
|
||||||
val exportJMXto: String
|
val exportJMXto: String
|
||||||
val dataSourceProperties: Properties
|
val dataSourceProperties: Properties
|
||||||
@ -40,7 +39,6 @@ data class FullNodeConfiguration(
|
|||||||
ReplaceWith("baseDirectory"))
|
ReplaceWith("baseDirectory"))
|
||||||
val basedir: Path,
|
val basedir: Path,
|
||||||
override val myLegalName: X500Name,
|
override val myLegalName: X500Name,
|
||||||
override val nearestCity: String,
|
|
||||||
override val emailAddress: String,
|
override val emailAddress: String,
|
||||||
override val keyStorePassword: String,
|
override val keyStorePassword: String,
|
||||||
override val trustStorePassword: String,
|
override val trustStorePassword: String,
|
||||||
|
@ -123,7 +123,6 @@ class NetworkRegistrationHelper(val config: NodeConfiguration, val certService:
|
|||||||
println("Certificate signing request with the following information will be submitted to the Corda certificate signing server.")
|
println("Certificate signing request with the following information will be submitted to the Corda certificate signing server.")
|
||||||
println()
|
println()
|
||||||
println("Legal Name: ${config.myLegalName}")
|
println("Legal Name: ${config.myLegalName}")
|
||||||
println("Nearest City: ${config.nearestCity}")
|
|
||||||
println("Email: ${config.emailAddress}")
|
println("Email: ${config.emailAddress}")
|
||||||
println()
|
println()
|
||||||
println("Public Key: ${keyPair.public}")
|
println("Public Key: ${keyPair.public}")
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
myLegalName = "Vast Global MegaCorp, Ltd"
|
myLegalName = "Vast Global MegaCorp, Ltd"
|
||||||
nearestCity = "London"
|
|
||||||
emailAddress = "admin@company.com"
|
emailAddress = "admin@company.com"
|
||||||
exportJMXto = "http"
|
exportJMXto = "http"
|
||||||
keyStorePassword = "cordacadevpass"
|
keyStorePassword = "cordacadevpass"
|
||||||
|
@ -48,7 +48,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
networkMap "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
networkMap "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
||||||
node {
|
node {
|
||||||
name "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
name "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices["corda.notary.validating"]
|
advertisedServices["corda.notary.validating"]
|
||||||
p2pPort 10002
|
p2pPort 10002
|
||||||
rpcPort 10003
|
rpcPort 10003
|
||||||
@ -57,7 +56,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=Bank A,O=Bank A,L=London,C=UK"
|
name "CN=Bank A,O=Bank A,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10005
|
p2pPort 10005
|
||||||
rpcPort 10006
|
rpcPort 10006
|
||||||
@ -66,7 +64,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=Bank B,O=Bank B,L=New York,C=US"
|
name "CN=Bank B,O=Bank B,L=New York,C=US"
|
||||||
nearestCity "New York"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10008
|
p2pPort 10008
|
||||||
rpcPort 10009
|
rpcPort 10009
|
||||||
|
@ -45,7 +45,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
networkMap "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
networkMap "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
||||||
node {
|
node {
|
||||||
name "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
name "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = ["corda.notary.validating"]
|
advertisedServices = ["corda.notary.validating"]
|
||||||
p2pPort 10002
|
p2pPort 10002
|
||||||
rpcPort 10003
|
rpcPort 10003
|
||||||
@ -53,7 +52,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=BankOfCorda,O=R3,L=New York,C=US"
|
name "CN=BankOfCorda,O=R3,L=New York,C=US"
|
||||||
nearestCity "New York"
|
|
||||||
advertisedServices = ["corda.issuer.USD"]
|
advertisedServices = ["corda.issuer.USD"]
|
||||||
p2pPort 10005
|
p2pPort 10005
|
||||||
rpcPort 10006
|
rpcPort 10006
|
||||||
@ -68,7 +66,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=BigCorporation,O=R3,OU=corda,L=London,C=UK"
|
name "CN=BigCorporation,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity "New York"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10008
|
p2pPort 10008
|
||||||
rpcPort 10009
|
rpcPort 10009
|
||||||
|
@ -50,7 +50,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
networkMap "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
networkMap "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
||||||
node {
|
node {
|
||||||
name "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
name "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = ["corda.notary.validating", "corda.interest_rates"]
|
advertisedServices = ["corda.notary.validating", "corda.interest_rates"]
|
||||||
p2pPort 10002
|
p2pPort 10002
|
||||||
rpcPort 10003
|
rpcPort 10003
|
||||||
@ -60,7 +59,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=Bank A,O=Bank A,L=London,C=UK"
|
name "CN=Bank A,O=Bank A,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10005
|
p2pPort 10005
|
||||||
rpcPort 10006
|
rpcPort 10006
|
||||||
@ -70,7 +68,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=Bank B,O=Bank B,L=New York,C=US"
|
name "CN=Bank B,O=Bank B,L=New York,C=US"
|
||||||
nearestCity "New York"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10008
|
p2pPort 10008
|
||||||
rpcPort 10009
|
rpcPort 10009
|
||||||
|
@ -2,6 +2,7 @@ package net.corda.irs.simulation
|
|||||||
|
|
||||||
import com.google.common.util.concurrent.Futures
|
import com.google.common.util.concurrent.Futures
|
||||||
import com.google.common.util.concurrent.ListenableFuture
|
import com.google.common.util.concurrent.ListenableFuture
|
||||||
|
import net.corda.core.crypto.locationOrNull
|
||||||
import net.corda.core.flatMap
|
import net.corda.core.flatMap
|
||||||
import net.corda.core.flows.FlowLogic
|
import net.corda.core.flows.FlowLogic
|
||||||
import net.corda.core.messaging.SingleMessageRecipient
|
import net.corda.core.messaging.SingleMessageRecipient
|
||||||
@ -56,7 +57,9 @@ abstract class Simulation(val networkSendManuallyPumped: Boolean,
|
|||||||
advertisedServices: Set<ServiceInfo>, id: Int, overrideServices: Map<ServiceInfo, KeyPair>?,
|
advertisedServices: Set<ServiceInfo>, id: Int, overrideServices: Map<ServiceInfo, KeyPair>?,
|
||||||
entropyRoot: BigInteger)
|
entropyRoot: BigInteger)
|
||||||
: MockNetwork.MockNode(config, mockNet, networkMapAddress, advertisedServices, id, overrideServices, entropyRoot) {
|
: MockNetwork.MockNode(config, mockNet, networkMapAddress, advertisedServices, id, overrideServices, entropyRoot) {
|
||||||
override fun findMyLocation(): PhysicalLocation? = CityDatabase[configuration.nearestCity]
|
override fun findMyLocation(): PhysicalLocation? {
|
||||||
|
return configuration.myLegalName.locationOrNull?.let { CityDatabase[it] }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class BankFactory : MockNetwork.Factory {
|
inner class BankFactory : MockNetwork.Factory {
|
||||||
|
@ -61,14 +61,12 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
networkMap "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
networkMap "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
||||||
node {
|
node {
|
||||||
name "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
name "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = ["corda.notary.validating"]
|
advertisedServices = ["corda.notary.validating"]
|
||||||
p2pPort 10002
|
p2pPort 10002
|
||||||
cordapps = []
|
cordapps = []
|
||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=Bank A,O=Bank A,L=London,C=UK"
|
name "CN=Bank A,O=Bank A,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10004
|
p2pPort 10004
|
||||||
webPort 10005
|
webPort 10005
|
||||||
@ -76,7 +74,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=Bank B,O=Bank B,L=New York,C=US"
|
name "CN=Bank B,O=Bank B,L=New York,C=US"
|
||||||
nearestCity "New York"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10006
|
p2pPort 10006
|
||||||
webPort 10007
|
webPort 10007
|
||||||
@ -84,7 +81,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=Bank C,O=Bank C,L=Tokyo,C=Japan"
|
name "CN=Bank C,O=Bank C,L=Tokyo,C=Japan"
|
||||||
nearestCity "Tokyo"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10008
|
p2pPort 10008
|
||||||
webPort 10009
|
webPort 10009
|
||||||
|
@ -61,14 +61,12 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
networkMap "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
networkMap "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
||||||
node {
|
node {
|
||||||
name "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
name "CN=Notary Service,O=R3,OU=corda,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = ["corda.notary.validating"]
|
advertisedServices = ["corda.notary.validating"]
|
||||||
p2pPort 10002
|
p2pPort 10002
|
||||||
cordapps = []
|
cordapps = []
|
||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=Bank A,O=Bank A,L=London,C=UK"
|
name "CN=Bank A,O=Bank A,L=London,C=UK"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10005
|
p2pPort 10005
|
||||||
rpcPort 10006
|
rpcPort 10006
|
||||||
@ -77,7 +75,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=Bank B,O=Bank B,L=New York,C=US"
|
name "CN=Bank B,O=Bank B,L=New York,C=US"
|
||||||
nearestCity "New York"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10008
|
p2pPort 10008
|
||||||
rpcPort 10009
|
rpcPort 10009
|
||||||
@ -86,7 +83,6 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
|
|||||||
}
|
}
|
||||||
node {
|
node {
|
||||||
name "CN=BankOfCorda,O=R3,L=New York,C=US"
|
name "CN=BankOfCorda,O=R3,L=New York,C=US"
|
||||||
nearestCity "London"
|
|
||||||
advertisedServices = []
|
advertisedServices = []
|
||||||
p2pPort 10011
|
p2pPort 10011
|
||||||
cordapps = []
|
cordapps = []
|
||||||
|
@ -151,7 +151,6 @@ data class TestNodeConfiguration(
|
|||||||
override val certificateChainCheckPolicies: List<CertChainPolicyConfig> = emptyList(),
|
override val certificateChainCheckPolicies: List<CertChainPolicyConfig> = emptyList(),
|
||||||
override val verifierType: VerifierType = VerifierType.InMemory,
|
override val verifierType: VerifierType = VerifierType.InMemory,
|
||||||
override val messageRedeliveryDelaySeconds: Int = 5) : NodeConfiguration {
|
override val messageRedeliveryDelaySeconds: Int = 5) : NodeConfiguration {
|
||||||
override val nearestCity = myLegalName.getRDNs(BCStyle.L).single().typesAndValues.single().value.toString()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun testConfiguration(baseDirectory: Path, legalName: X500Name, basePort: Int): FullNodeConfiguration {
|
fun testConfiguration(baseDirectory: Path, legalName: X500Name, basePort: Int): FullNodeConfiguration {
|
||||||
@ -159,7 +158,6 @@ fun testConfiguration(baseDirectory: Path, legalName: X500Name, basePort: Int):
|
|||||||
basedir = baseDirectory,
|
basedir = baseDirectory,
|
||||||
myLegalName = legalName,
|
myLegalName = legalName,
|
||||||
networkMapService = null,
|
networkMapService = null,
|
||||||
nearestCity = "Null Island",
|
|
||||||
emailAddress = "",
|
emailAddress = "",
|
||||||
keyStorePassword = "cordacadevpass",
|
keyStorePassword = "cordacadevpass",
|
||||||
trustStorePassword = "trustpass",
|
trustStorePassword = "trustpass",
|
||||||
|
@ -3,7 +3,6 @@ package net.corda.demobench.model
|
|||||||
import com.google.common.net.HostAndPort
|
import com.google.common.net.HostAndPort
|
||||||
import com.typesafe.config.Config
|
import com.typesafe.config.Config
|
||||||
import org.bouncycastle.asn1.x500.X500Name
|
import org.bouncycastle.asn1.x500.X500Name
|
||||||
|
|
||||||
import tornadofx.*
|
import tornadofx.*
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.nio.file.Files
|
import java.nio.file.Files
|
||||||
@ -20,12 +19,13 @@ class InstallFactory : Controller() {
|
|||||||
val rpcPort = config.parsePort("rpcAddress")
|
val rpcPort = config.parsePort("rpcAddress")
|
||||||
val webPort = config.parsePort("webAddress")
|
val webPort = config.parsePort("webAddress")
|
||||||
val h2Port = config.getInt("h2port")
|
val h2Port = config.getInt("h2port")
|
||||||
|
val x500name = X500Name(config.getString("myLegalName"))
|
||||||
val extraServices = config.parseExtraServices("extraAdvertisedServiceIds")
|
val extraServices = config.parseExtraServices("extraAdvertisedServiceIds")
|
||||||
val tempDir = Files.createTempDirectory(baseDir, ".node")
|
val tempDir = Files.createTempDirectory(baseDir, ".node")
|
||||||
|
|
||||||
val nodeConfig = NodeConfig(
|
val nodeConfig = NodeConfig(
|
||||||
tempDir,
|
tempDir,
|
||||||
X500Name(config.getString("myLegalName")),
|
x500name,
|
||||||
p2pPort,
|
p2pPort,
|
||||||
rpcPort,
|
rpcPort,
|
||||||
webPort,
|
webPort,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package net.corda.demobench.model
|
package net.corda.demobench.model
|
||||||
|
|
||||||
import com.typesafe.config.*
|
import com.typesafe.config.*
|
||||||
import net.corda.core.crypto.location
|
import net.corda.core.crypto.locationOrNull
|
||||||
import net.corda.nodeapi.User
|
import net.corda.nodeapi.User
|
||||||
import org.bouncycastle.asn1.x500.X500Name
|
import org.bouncycastle.asn1.x500.X500Name
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@ -26,7 +26,7 @@ class NodeConfig(
|
|||||||
val defaultUser = user("guest")
|
val defaultUser = user("guest")
|
||||||
}
|
}
|
||||||
|
|
||||||
val nearestCity: String? = legalName.location
|
val nearestCity: String = legalName.locationOrNull ?: "Unknown location"
|
||||||
val nodeDir: Path = baseDir.resolve(key)
|
val nodeDir: Path = baseDir.resolve(key)
|
||||||
override val pluginDir: Path = nodeDir.resolve("plugins")
|
override val pluginDir: Path = nodeDir.resolve("plugins")
|
||||||
val explorerDir: Path = baseDir.resolve("$key-explorer")
|
val explorerDir: Path = baseDir.resolve("$key-explorer")
|
||||||
|
@ -263,7 +263,7 @@ class NodeTabView : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun launchNode(config: NodeConfig) {
|
private fun launchNode(config: NodeConfig) {
|
||||||
val countryCode = CityDatabase.cityMap[config.nearestCity ?: "Nowhere"]?.countryCode
|
val countryCode = CityDatabase.cityMap[config.nearestCity]?.countryCode
|
||||||
if (countryCode != null) {
|
if (countryCode != null) {
|
||||||
nodeTab.graphic = ImageView(flags.get()[countryCode]).apply { fitWidth = 24.0; isPreserveRatio = true }
|
nodeTab.graphic = ImageView(flags.get()[countryCode]).apply { fitWidth = 24.0; isPreserveRatio = true }
|
||||||
}
|
}
|
||||||
|
@ -166,20 +166,15 @@ fun main(args: Array<String>) {
|
|||||||
startFlowPermission<IssuanceRequester>())
|
startFlowPermission<IssuanceRequester>())
|
||||||
)
|
)
|
||||||
// TODO : Supported flow should be exposed somehow from the node instead of set of ServiceInfo.
|
// TODO : Supported flow should be exposed somehow from the node instead of set of ServiceInfo.
|
||||||
val notary = startNode(DUMMY_NOTARY.name, advertisedServices = setOf(ServiceInfo(SimpleNotaryService.type)),
|
val notary = startNode(DUMMY_NOTARY.name, advertisedServices = setOf(ServiceInfo(SimpleNotaryService.type)))
|
||||||
customOverrides = mapOf("nearestCity" to "Zurich"))
|
|
||||||
val alice = startNode(ALICE.name, rpcUsers = arrayListOf(user),
|
val alice = startNode(ALICE.name, rpcUsers = arrayListOf(user),
|
||||||
advertisedServices = setOf(ServiceInfo(ServiceType.corda.getSubType("cash"))),
|
advertisedServices = setOf(ServiceInfo(ServiceType.corda.getSubType("cash"))))
|
||||||
customOverrides = mapOf("nearestCity" to "Milan"))
|
|
||||||
val bob = startNode(BOB.name, rpcUsers = arrayListOf(user),
|
val bob = startNode(BOB.name, rpcUsers = arrayListOf(user),
|
||||||
advertisedServices = setOf(ServiceInfo(ServiceType.corda.getSubType("cash"))),
|
advertisedServices = setOf(ServiceInfo(ServiceType.corda.getSubType("cash"))))
|
||||||
customOverrides = mapOf("nearestCity" to "Madrid"))
|
|
||||||
val issuerGBP = startNode(X500Name("CN=UK Bank Plc,O=UK Bank Plc,L=London,C=UK"), rpcUsers = arrayListOf(manager),
|
val issuerGBP = startNode(X500Name("CN=UK Bank Plc,O=UK Bank Plc,L=London,C=UK"), rpcUsers = arrayListOf(manager),
|
||||||
advertisedServices = setOf(ServiceInfo(ServiceType.corda.getSubType("issuer.GBP"))),
|
advertisedServices = setOf(ServiceInfo(ServiceType.corda.getSubType("issuer.GBP"))))
|
||||||
customOverrides = mapOf("nearestCity" to "London"))
|
|
||||||
val issuerUSD = startNode(X500Name("CN=USA Bank Corp,O=USA Bank Corp,L=New York,C=US"), rpcUsers = arrayListOf(manager),
|
val issuerUSD = startNode(X500Name("CN=USA Bank Corp,O=USA Bank Corp,L=New York,C=US"), rpcUsers = arrayListOf(manager),
|
||||||
advertisedServices = setOf(ServiceInfo(ServiceType.corda.getSubType("issuer.USD"))),
|
advertisedServices = setOf(ServiceInfo(ServiceType.corda.getSubType("issuer.USD"))))
|
||||||
customOverrides = mapOf("nearestCity" to "New York"))
|
|
||||||
|
|
||||||
val notaryNode = notary.get()
|
val notaryNode = notary.get()
|
||||||
val aliceNode = alice.get()
|
val aliceNode = alice.get()
|
||||||
|
Loading…
Reference in New Issue
Block a user