mirror of
https://github.com/corda/corda.git
synced 2025-02-22 18:12:53 +00:00
Removed the network map service type as it's no longer needed.
The absence or presence of the networkMapService config is what determines if a node is the network map or not.
This commit is contained in:
parent
24b773eec1
commit
457f95f188
@ -11,7 +11,6 @@ import net.corda.core.messaging.SingleMessageRecipient
|
|||||||
import net.corda.core.utilities.getOrThrow
|
import net.corda.core.utilities.getOrThrow
|
||||||
import net.corda.node.internal.StartedNode
|
import net.corda.node.internal.StartedNode
|
||||||
import net.corda.node.services.config.NodeConfiguration
|
import net.corda.node.services.config.NodeConfiguration
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.node.services.persistence.NodeAttachmentService
|
import net.corda.node.services.persistence.NodeAttachmentService
|
||||||
import net.corda.node.services.transactions.SimpleNotaryService
|
import net.corda.node.services.transactions.SimpleNotaryService
|
||||||
import net.corda.node.utilities.DatabaseTransactionManager
|
import net.corda.node.utilities.DatabaseTransactionManager
|
||||||
@ -45,7 +44,7 @@ class AttachmentTests {
|
|||||||
mockNet.stopNodes()
|
mockNet.stopNodes()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun fakeAttachment(): ByteArray {
|
private fun fakeAttachment(): ByteArray {
|
||||||
val bs = ByteArrayOutputStream()
|
val bs = ByteArrayOutputStream()
|
||||||
val js = JarOutputStream(bs)
|
val js = JarOutputStream(bs)
|
||||||
js.putNextEntry(ZipEntry("file1.txt"))
|
js.putNextEntry(ZipEntry("file1.txt"))
|
||||||
@ -127,7 +126,7 @@ class AttachmentTests {
|
|||||||
override fun start() = super.start().apply { attachments.checkAttachmentsOnLoad = false }
|
override fun start() = super.start().apply { attachments.checkAttachmentsOnLoad = false }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), ServiceInfo(SimpleNotaryService.type)))
|
}, advertisedServices = *arrayOf(ServiceInfo(SimpleNotaryService.type)))
|
||||||
val bobNode = mockNet.createNode(aliceNode.network.myAddress, legalName = BOB.name)
|
val bobNode = mockNet.createNode(aliceNode.network.myAddress, legalName = BOB.name)
|
||||||
|
|
||||||
// Ensure that registration was successful before progressing any further
|
// Ensure that registration was successful before progressing any further
|
||||||
|
@ -14,11 +14,10 @@ import net.corda.core.utilities.getOrThrow
|
|||||||
import net.corda.core.utilities.unwrap
|
import net.corda.core.utilities.unwrap
|
||||||
import net.corda.node.internal.InitiatedFlowFactory
|
import net.corda.node.internal.InitiatedFlowFactory
|
||||||
import net.corda.node.internal.StartedNode
|
import net.corda.node.internal.StartedNode
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
|
||||||
import net.corda.node.services.config.NodeConfiguration
|
import net.corda.node.services.config.NodeConfiguration
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.node.services.persistence.NodeAttachmentService
|
import net.corda.node.services.persistence.NodeAttachmentService
|
||||||
import net.corda.node.utilities.DatabaseTransactionManager
|
import net.corda.node.utilities.DatabaseTransactionManager
|
||||||
|
import net.corda.nodeapi.internal.ServiceInfo
|
||||||
import net.corda.testing.chooseIdentity
|
import net.corda.testing.chooseIdentity
|
||||||
import net.corda.testing.node.MockNetwork
|
import net.corda.testing.node.MockNetwork
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
@ -70,7 +69,7 @@ class AttachmentSerializationTest {
|
|||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
mockNet = MockNetwork()
|
mockNet = MockNetwork()
|
||||||
server = mockNet.createNode(advertisedServices = ServiceInfo(NetworkMapService.type))
|
server = mockNet.createNode()
|
||||||
client = mockNet.createNode(server.network.myAddress)
|
client = mockNet.createNode(server.network.myAddress)
|
||||||
client.internals.disableDBCloseOnStop() // Otherwise the in-memory database may disappear (taking the checkpoint with it) while we reboot the client.
|
client.internals.disableDBCloseOnStop() // Otherwise the in-memory database may disappear (taking the checkpoint with it) while we reboot the client.
|
||||||
mockNet.runNetwork()
|
mockNet.runNetwork()
|
||||||
|
@ -7,11 +7,10 @@ import net.corda.core.utilities.getOrThrow
|
|||||||
import net.corda.finance.*
|
import net.corda.finance.*
|
||||||
import net.corda.finance.contracts.getCashBalances
|
import net.corda.finance.contracts.getCashBalances
|
||||||
import net.corda.finance.flows.CashIssueFlow
|
import net.corda.finance.flows.CashIssueFlow
|
||||||
import net.corda.node.internal.StartedNode
|
|
||||||
import net.corda.finance.schemas.CashSchemaV1
|
import net.corda.finance.schemas.CashSchemaV1
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
import net.corda.node.internal.StartedNode
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.node.services.transactions.ValidatingNotaryService
|
import net.corda.node.services.transactions.ValidatingNotaryService
|
||||||
|
import net.corda.nodeapi.internal.ServiceInfo
|
||||||
import net.corda.testing.*
|
import net.corda.testing.*
|
||||||
import net.corda.testing.node.MockNetwork
|
import net.corda.testing.node.MockNetwork
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
@ -36,7 +35,7 @@ class CustomVaultQueryTest {
|
|||||||
notaryNode = mockNet.createNode(
|
notaryNode = mockNet.createNode(
|
||||||
legalName = DUMMY_NOTARY.name,
|
legalName = DUMMY_NOTARY.name,
|
||||||
overrideServices = mapOf(notaryService to DUMMY_NOTARY_KEY),
|
overrideServices = mapOf(notaryService to DUMMY_NOTARY_KEY),
|
||||||
advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), notaryService))
|
advertisedServices = *arrayOf(notaryService))
|
||||||
nodeA = mockNet.createPartyNode(notaryNode.network.myAddress)
|
nodeA = mockNet.createPartyNode(notaryNode.network.myAddress)
|
||||||
nodeB = mockNet.createPartyNode(notaryNode.network.myAddress)
|
nodeB = mockNet.createPartyNode(notaryNode.network.myAddress)
|
||||||
|
|
||||||
|
@ -9,7 +9,6 @@ import net.corda.finance.contracts.getCashBalances
|
|||||||
import net.corda.finance.flows.CashIssueFlow
|
import net.corda.finance.flows.CashIssueFlow
|
||||||
import net.corda.finance.schemas.CashSchemaV1
|
import net.corda.finance.schemas.CashSchemaV1
|
||||||
import net.corda.node.internal.StartedNode
|
import net.corda.node.internal.StartedNode
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.node.services.transactions.ValidatingNotaryService
|
import net.corda.node.services.transactions.ValidatingNotaryService
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
import net.corda.nodeapi.internal.ServiceInfo
|
||||||
import net.corda.testing.*
|
import net.corda.testing.*
|
||||||
@ -34,7 +33,7 @@ class FxTransactionBuildTutorialTest {
|
|||||||
notaryNode = mockNet.createNode(
|
notaryNode = mockNet.createNode(
|
||||||
legalName = DUMMY_NOTARY.name,
|
legalName = DUMMY_NOTARY.name,
|
||||||
overrideServices = mapOf(notaryService to DUMMY_NOTARY_KEY),
|
overrideServices = mapOf(notaryService to DUMMY_NOTARY_KEY),
|
||||||
advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), notaryService))
|
advertisedServices = *arrayOf(notaryService))
|
||||||
nodeA = mockNet.createPartyNode(notaryNode.network.myAddress)
|
nodeA = mockNet.createPartyNode(notaryNode.network.myAddress)
|
||||||
nodeB = mockNet.createPartyNode(notaryNode.network.myAddress)
|
nodeB = mockNet.createPartyNode(notaryNode.network.myAddress)
|
||||||
nodeA.internals.registerCustomSchemas(setOf(CashSchemaV1))
|
nodeA.internals.registerCustomSchemas(setOf(CashSchemaV1))
|
||||||
|
@ -9,7 +9,6 @@ import net.corda.core.node.services.vault.QueryCriteria
|
|||||||
import net.corda.core.toFuture
|
import net.corda.core.toFuture
|
||||||
import net.corda.core.utilities.getOrThrow
|
import net.corda.core.utilities.getOrThrow
|
||||||
import net.corda.node.internal.StartedNode
|
import net.corda.node.internal.StartedNode
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.node.services.transactions.ValidatingNotaryService
|
import net.corda.node.services.transactions.ValidatingNotaryService
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
import net.corda.nodeapi.internal.ServiceInfo
|
||||||
import net.corda.testing.*
|
import net.corda.testing.*
|
||||||
@ -39,7 +38,7 @@ class WorkflowTransactionBuildTutorialTest {
|
|||||||
notaryNode = mockNet.createNode(
|
notaryNode = mockNet.createNode(
|
||||||
legalName = DUMMY_NOTARY.name,
|
legalName = DUMMY_NOTARY.name,
|
||||||
overrideServices = mapOf(Pair(notaryService, DUMMY_NOTARY_KEY)),
|
overrideServices = mapOf(Pair(notaryService, DUMMY_NOTARY_KEY)),
|
||||||
advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), notaryService))
|
advertisedServices = *arrayOf(notaryService))
|
||||||
nodeA = mockNet.createPartyNode(notaryNode.network.myAddress)
|
nodeA = mockNet.createPartyNode(notaryNode.network.myAddress)
|
||||||
nodeB = mockNet.createPartyNode(notaryNode.network.myAddress)
|
nodeB = mockNet.createPartyNode(notaryNode.network.myAddress)
|
||||||
nodeA.internals.registerInitiatedFlow(RecordCompletionFlow::class.java)
|
nodeA.internals.registerInitiatedFlow(RecordCompletionFlow::class.java)
|
||||||
|
@ -27,7 +27,6 @@ class ServiceType private constructor(val id: String) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val notary: ServiceType = corda.getSubType("notary")
|
val notary: ServiceType = corda.getSubType("notary")
|
||||||
val networkMap: ServiceType = corda.getSubType("network_map")
|
|
||||||
|
|
||||||
fun parse(id: String): ServiceType = ServiceType(id)
|
fun parse(id: String): ServiceType = ServiceType(id)
|
||||||
|
|
||||||
|
@ -18,7 +18,6 @@ import net.corda.core.utilities.Try
|
|||||||
import net.corda.core.utilities.getOrThrow
|
import net.corda.core.utilities.getOrThrow
|
||||||
import net.corda.node.internal.StartedNode
|
import net.corda.node.internal.StartedNode
|
||||||
import net.corda.node.services.config.BFTSMaRtConfiguration
|
import net.corda.node.services.config.BFTSMaRtConfiguration
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.node.services.transactions.BFTNonValidatingNotaryService
|
import net.corda.node.services.transactions.BFTNonValidatingNotaryService
|
||||||
import net.corda.node.services.transactions.minClusterSize
|
import net.corda.node.services.transactions.minClusterSize
|
||||||
import net.corda.node.services.transactions.minCorrectReplicas
|
import net.corda.node.services.transactions.minCorrectReplicas
|
||||||
@ -42,7 +41,7 @@ class BFTNotaryServiceTests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private val mockNet = MockNetwork()
|
private val mockNet = MockNetwork()
|
||||||
private val node = mockNet.createNode(advertisedServices = ServiceInfo(NetworkMapService.type))
|
private val node = mockNet.createNode()
|
||||||
|
|
||||||
@After
|
@After
|
||||||
fun stopNodes() {
|
fun stopNodes() {
|
||||||
|
@ -484,7 +484,7 @@ abstract class AbstractNode(open val configuration: NodeConfiguration,
|
|||||||
|
|
||||||
private fun makeNetworkServices(tokenizableServices: MutableList<Any>) {
|
private fun makeNetworkServices(tokenizableServices: MutableList<Any>) {
|
||||||
val serviceTypes = advertisedServices.map { it.type }
|
val serviceTypes = advertisedServices.map { it.type }
|
||||||
inNodeNetworkMapService = if (NetworkMapService.type in serviceTypes) makeNetworkMapService() else NullNetworkMapService
|
inNodeNetworkMapService = if (configuration.networkMapService == null) makeNetworkMapService() else NullNetworkMapService
|
||||||
val notaryServiceType = serviceTypes.singleOrNull { it.isNotary() }
|
val notaryServiceType = serviceTypes.singleOrNull { it.isNotary() }
|
||||||
if (notaryServiceType != null) {
|
if (notaryServiceType != null) {
|
||||||
val service = makeCoreNotaryService(notaryServiceType)
|
val service = makeCoreNotaryService(notaryServiceType)
|
||||||
@ -526,9 +526,6 @@ abstract class AbstractNode(open val configuration: NodeConfiguration,
|
|||||||
* updates) if one has been supplied.
|
* updates) if one has been supplied.
|
||||||
*/
|
*/
|
||||||
protected open fun registerWithNetworkMap(): CordaFuture<Unit> {
|
protected open fun registerWithNetworkMap(): CordaFuture<Unit> {
|
||||||
require(networkMapAddress != null || NetworkMapService.type in advertisedServices.map { it.type }) {
|
|
||||||
"Initial network map address must indicate a node that provides a network map service"
|
|
||||||
}
|
|
||||||
val address: SingleMessageRecipient = networkMapAddress ?:
|
val address: SingleMessageRecipient = networkMapAddress ?:
|
||||||
network.getAddressOfParty(PartyInfo.SingleNode(services.myInfo.legalIdentitiesAndCerts.first().party, info.addresses)) as SingleMessageRecipient
|
network.getAddressOfParty(PartyInfo.SingleNode(services.myInfo.legalIdentitiesAndCerts.first().party, info.addresses)) as SingleMessageRecipient
|
||||||
// Register for updates, even if we're the one running the network map.
|
// Register for updates, even if we're the one running the network map.
|
||||||
|
@ -73,7 +73,7 @@ open class NodeStartup(val args: Array<String>) {
|
|||||||
cmdlineOptions.baseDirectory.createDirectories()
|
cmdlineOptions.baseDirectory.createDirectories()
|
||||||
startNode(conf, versionInfo, startTime, cmdlineOptions)
|
startNode(conf, versionInfo, startTime, cmdlineOptions)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
if (e.message?.startsWith("Unknown named curve:") ?: false) {
|
if (e.message?.startsWith("Unknown named curve:") == true) {
|
||||||
logger.error("Exception during node startup - ${e.message}. " +
|
logger.error("Exception during node startup - ${e.message}. " +
|
||||||
"This is a known OpenJDK issue on some Linux distributions, please use OpenJDK from zulu.org or Oracle JDK.")
|
"This is a known OpenJDK issue on some Linux distributions, please use OpenJDK from zulu.org or Oracle JDK.")
|
||||||
} else
|
} else
|
||||||
@ -150,13 +150,12 @@ open class NodeStartup(val args: Array<String>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
open protected fun loadConfigFile(cmdlineOptions: CmdLineOptions): FullNodeConfiguration {
|
open protected fun loadConfigFile(cmdlineOptions: CmdLineOptions): FullNodeConfiguration {
|
||||||
val conf = try {
|
try {
|
||||||
cmdlineOptions.loadConfig()
|
return cmdlineOptions.loadConfig()
|
||||||
} catch (e: ConfigException) {
|
} catch (e: ConfigException) {
|
||||||
println("Unable to load the configuration file: ${e.rootCause.message}")
|
println("Unable to load the configuration file: ${e.rootCause.message}")
|
||||||
exitProcess(2)
|
exitProcess(2)
|
||||||
}
|
}
|
||||||
return conf
|
|
||||||
}
|
}
|
||||||
|
|
||||||
open protected fun banJavaSerialisation(conf: FullNodeConfiguration) {
|
open protected fun banJavaSerialisation(conf: FullNodeConfiguration) {
|
||||||
@ -167,13 +166,12 @@ open class NodeStartup(val args: Array<String>) {
|
|||||||
// Manifest properties are only available if running from the corda jar
|
// Manifest properties are only available if running from the corda jar
|
||||||
fun manifestValue(name: String): String? = if (Manifests.exists(name)) Manifests.read(name) else null
|
fun manifestValue(name: String): String? = if (Manifests.exists(name)) Manifests.read(name) else null
|
||||||
|
|
||||||
val versionInfo = VersionInfo(
|
return VersionInfo(
|
||||||
manifestValue("Corda-Platform-Version")?.toInt() ?: 1,
|
manifestValue("Corda-Platform-Version")?.toInt() ?: 1,
|
||||||
manifestValue("Corda-Release-Version") ?: "Unknown",
|
manifestValue("Corda-Release-Version") ?: "Unknown",
|
||||||
manifestValue("Corda-Revision") ?: "Unknown",
|
manifestValue("Corda-Revision") ?: "Unknown",
|
||||||
manifestValue("Corda-Vendor") ?: "Unknown"
|
manifestValue("Corda-Vendor") ?: "Unknown"
|
||||||
)
|
)
|
||||||
return versionInfo
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun enforceSingleNodeIsRunning(baseDirectory: Path) {
|
private fun enforceSingleNodeIsRunning(baseDirectory: Path) {
|
||||||
@ -260,10 +258,10 @@ open class NodeStartup(val args: Array<String>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun printPluginsAndServices(node: Node) {
|
private fun printPluginsAndServices(node: Node) {
|
||||||
node.configuration.extraAdvertisedServiceIds.filter { it.startsWith("corda.notary.") || it.startsWith("corda.network_map") }.let {
|
node.configuration.extraAdvertisedServiceIds.filter { it.startsWith("corda.notary.") }.let {
|
||||||
if (it.isNotEmpty()) Node.printBasicNodeInfo("Providing additional services", it.joinToString())
|
if (it.isNotEmpty()) Node.printBasicNodeInfo("Providing additional services", it.joinToString())
|
||||||
}
|
}
|
||||||
Node.printBasicNodeInfo("Loaded CorDapps", node.cordappProvider.cordapps.map { it.name }.joinToString())
|
Node.printBasicNodeInfo("Loaded CorDapps", node.cordappProvider.cordapps.joinToString { it.name })
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun drawBanner(versionInfo: VersionInfo) {
|
open fun drawBanner(versionInfo: VersionInfo) {
|
||||||
|
@ -3,12 +3,11 @@ package net.corda.node.services.config
|
|||||||
import net.corda.core.identity.CordaX500Name
|
import net.corda.core.identity.CordaX500Name
|
||||||
import net.corda.core.utilities.NetworkHostAndPort
|
import net.corda.core.utilities.NetworkHostAndPort
|
||||||
import net.corda.node.internal.NetworkMapInfo
|
import net.corda.node.internal.NetworkMapInfo
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
|
||||||
import net.corda.node.services.messaging.CertificateChainCheckPolicy
|
import net.corda.node.services.messaging.CertificateChainCheckPolicy
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.nodeapi.User
|
import net.corda.nodeapi.User
|
||||||
import net.corda.nodeapi.config.NodeSSLConfiguration
|
import net.corda.nodeapi.config.NodeSSLConfiguration
|
||||||
import net.corda.nodeapi.config.OldConfig
|
import net.corda.nodeapi.config.OldConfig
|
||||||
|
import net.corda.nodeapi.internal.ServiceInfo
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@ -22,6 +21,10 @@ interface NodeConfiguration : NodeSSLConfiguration {
|
|||||||
// myLegalName should be only used in the initial network registration, we should use the name from the certificate instead of this.
|
// myLegalName should be only used in the initial network registration, we should use the name from the certificate instead of this.
|
||||||
// TODO: Remove this so we don't accidentally use this identity in the code?
|
// TODO: Remove this so we don't accidentally use this identity in the code?
|
||||||
val myLegalName: CordaX500Name
|
val myLegalName: CordaX500Name
|
||||||
|
/**
|
||||||
|
* If null then configure the node to run as the netwok map service, otherwise use this to connect to the network map
|
||||||
|
* service.
|
||||||
|
*/
|
||||||
val networkMapService: NetworkMapInfo?
|
val networkMapService: NetworkMapInfo?
|
||||||
val minimumPlatformVersion: Int
|
val minimumPlatformVersion: Int
|
||||||
val emailAddress: String
|
val emailAddress: String
|
||||||
@ -93,12 +96,10 @@ data class FullNodeConfiguration(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun calculateServices(): Set<ServiceInfo> {
|
fun calculateServices(): Set<ServiceInfo> {
|
||||||
val advertisedServices = extraAdvertisedServiceIds
|
return extraAdvertisedServiceIds
|
||||||
.filter(String::isNotBlank)
|
.filter(String::isNotBlank)
|
||||||
.map { ServiceInfo.parse(it) }
|
.map { ServiceInfo.parse(it) }
|
||||||
.toMutableSet()
|
.toSet()
|
||||||
if (networkMapService == null) advertisedServices += ServiceInfo(NetworkMapService.type)
|
|
||||||
return advertisedServices
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,6 @@ import net.corda.core.serialization.deserialize
|
|||||||
import net.corda.core.serialization.serialize
|
import net.corda.core.serialization.serialize
|
||||||
import net.corda.core.utilities.debug
|
import net.corda.core.utilities.debug
|
||||||
import net.corda.core.utilities.loggerFor
|
import net.corda.core.utilities.loggerFor
|
||||||
import net.corda.nodeapi.internal.ServiceType
|
|
||||||
import net.corda.node.services.api.AbstractNodeService
|
import net.corda.node.services.api.AbstractNodeService
|
||||||
import net.corda.node.services.api.ServiceHubInternal
|
import net.corda.node.services.api.ServiceHubInternal
|
||||||
import net.corda.node.services.messaging.MessageHandlerRegistration
|
import net.corda.node.services.messaging.MessageHandlerRegistration
|
||||||
@ -72,8 +71,6 @@ interface NetworkMapService {
|
|||||||
const val PUSH_TOPIC = "platform.network_map.push"
|
const val PUSH_TOPIC = "platform.network_map.push"
|
||||||
// Base topic for messages acknowledging pushed updates
|
// Base topic for messages acknowledging pushed updates
|
||||||
const val PUSH_ACK_TOPIC = "platform.network_map.push_ack"
|
const val PUSH_ACK_TOPIC = "platform.network_map.push_ack"
|
||||||
|
|
||||||
val type = ServiceType.networkMap
|
|
||||||
}
|
}
|
||||||
|
|
||||||
data class FetchMapRequest(val subscribe: Boolean,
|
data class FetchMapRequest(val subscribe: Boolean,
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package net.corda.node
|
package net.corda.node
|
||||||
|
|
||||||
import co.paralleluniverse.fibers.Suspendable
|
import co.paralleluniverse.fibers.Suspendable
|
||||||
|
import net.corda.client.rpc.PermissionException
|
||||||
import net.corda.core.contracts.Amount
|
import net.corda.core.contracts.Amount
|
||||||
import net.corda.core.contracts.ContractState
|
import net.corda.core.contracts.ContractState
|
||||||
import net.corda.core.contracts.Issued
|
import net.corda.core.contracts.Issued
|
||||||
@ -24,14 +25,12 @@ import net.corda.finance.flows.CashIssueFlow
|
|||||||
import net.corda.finance.flows.CashPaymentFlow
|
import net.corda.finance.flows.CashPaymentFlow
|
||||||
import net.corda.node.internal.CordaRPCOpsImpl
|
import net.corda.node.internal.CordaRPCOpsImpl
|
||||||
import net.corda.node.internal.StartedNode
|
import net.corda.node.internal.StartedNode
|
||||||
|
import net.corda.node.services.FlowPermissions.Companion.startFlowPermission
|
||||||
import net.corda.node.services.messaging.CURRENT_RPC_CONTEXT
|
import net.corda.node.services.messaging.CURRENT_RPC_CONTEXT
|
||||||
import net.corda.node.services.messaging.RpcContext
|
import net.corda.node.services.messaging.RpcContext
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.node.services.FlowPermissions.Companion.startFlowPermission
|
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
|
||||||
import net.corda.node.services.transactions.SimpleNotaryService
|
import net.corda.node.services.transactions.SimpleNotaryService
|
||||||
import net.corda.client.rpc.PermissionException
|
|
||||||
import net.corda.nodeapi.User
|
import net.corda.nodeapi.User
|
||||||
|
import net.corda.nodeapi.internal.ServiceInfo
|
||||||
import net.corda.testing.*
|
import net.corda.testing.*
|
||||||
import net.corda.testing.node.MockNetwork
|
import net.corda.testing.node.MockNetwork
|
||||||
import net.corda.testing.node.MockNetwork.MockNode
|
import net.corda.testing.node.MockNetwork.MockNode
|
||||||
@ -68,7 +67,7 @@ class CordaRPCOpsImplTest {
|
|||||||
setCordappPackages("net.corda.finance.contracts.asset")
|
setCordappPackages("net.corda.finance.contracts.asset")
|
||||||
|
|
||||||
mockNet = MockNetwork()
|
mockNet = MockNetwork()
|
||||||
val networkMap = mockNet.createNode(advertisedServices = ServiceInfo(NetworkMapService.type))
|
val networkMap = mockNet.createNode()
|
||||||
aliceNode = mockNet.createNode(networkMapAddress = networkMap.network.myAddress)
|
aliceNode = mockNet.createNode(networkMapAddress = networkMap.network.myAddress)
|
||||||
notaryNode = mockNet.createNode(advertisedServices = ServiceInfo(SimpleNotaryService.type), networkMapAddress = networkMap.network.myAddress)
|
notaryNode = mockNet.createNode(advertisedServices = ServiceInfo(SimpleNotaryService.type), networkMapAddress = networkMap.network.myAddress)
|
||||||
rpc = CordaRPCOpsImpl(aliceNode.services, aliceNode.smm, aliceNode.database)
|
rpc = CordaRPCOpsImpl(aliceNode.services, aliceNode.smm, aliceNode.database)
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
package net.corda.node.messaging
|
package net.corda.node.messaging
|
||||||
|
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
|
||||||
import net.corda.node.services.messaging.Message
|
import net.corda.node.services.messaging.Message
|
||||||
import net.corda.node.services.messaging.TopicStringValidator
|
import net.corda.node.services.messaging.TopicStringValidator
|
||||||
import net.corda.node.services.messaging.createMessage
|
import net.corda.node.services.messaging.createMessage
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.testing.node.MockNetwork
|
import net.corda.testing.node.MockNetwork
|
||||||
import net.corda.testing.resetTestSerialization
|
import net.corda.testing.resetTestSerialization
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
@ -49,7 +47,7 @@ class InMemoryMessagingTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun basics() {
|
fun basics() {
|
||||||
val node1 = mockNet.createNode(advertisedServices = ServiceInfo(NetworkMapService.type))
|
val node1 = mockNet.createNode()
|
||||||
val node2 = mockNet.createNode(networkMapAddress = node1.network.myAddress)
|
val node2 = mockNet.createNode(networkMapAddress = node1.network.myAddress)
|
||||||
val node3 = mockNet.createNode(networkMapAddress = node1.network.myAddress)
|
val node3 = mockNet.createNode(networkMapAddress = node1.network.myAddress)
|
||||||
|
|
||||||
@ -78,7 +76,7 @@ class InMemoryMessagingTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun broadcast() {
|
fun broadcast() {
|
||||||
val node1 = mockNet.createNode(advertisedServices = ServiceInfo(NetworkMapService.type))
|
val node1 = mockNet.createNode()
|
||||||
val node2 = mockNet.createNode(networkMapAddress = node1.network.myAddress)
|
val node2 = mockNet.createNode(networkMapAddress = node1.network.myAddress)
|
||||||
val node3 = mockNet.createNode(networkMapAddress = node1.network.myAddress)
|
val node3 = mockNet.createNode(networkMapAddress = node1.network.myAddress)
|
||||||
|
|
||||||
@ -97,9 +95,9 @@ class InMemoryMessagingTests {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
fun `skip unhandled messages`() {
|
fun `skip unhandled messages`() {
|
||||||
val node1 = mockNet.createNode(advertisedServices = ServiceInfo(NetworkMapService.type))
|
val node1 = mockNet.createNode()
|
||||||
val node2 = mockNet.createNode(networkMapAddress = node1.network.myAddress)
|
val node2 = mockNet.createNode(networkMapAddress = node1.network.myAddress)
|
||||||
var received: Int = 0
|
var received = 0
|
||||||
|
|
||||||
node1.network.addMessageHandler("valid_message") { _, _ ->
|
node1.network.addMessageHandler("valid_message") { _, _ ->
|
||||||
received++
|
received++
|
||||||
|
@ -12,7 +12,6 @@ import net.corda.core.transactions.WireTransaction
|
|||||||
import net.corda.core.utilities.getOrThrow
|
import net.corda.core.utilities.getOrThrow
|
||||||
import net.corda.core.utilities.seconds
|
import net.corda.core.utilities.seconds
|
||||||
import net.corda.node.internal.StartedNode
|
import net.corda.node.internal.StartedNode
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.node.services.transactions.ValidatingNotaryService
|
import net.corda.node.services.transactions.ValidatingNotaryService
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
import net.corda.nodeapi.internal.ServiceInfo
|
||||||
import net.corda.testing.*
|
import net.corda.testing.*
|
||||||
@ -42,7 +41,7 @@ class NotaryChangeTests {
|
|||||||
mockNet = MockNetwork()
|
mockNet = MockNetwork()
|
||||||
oldNotaryNode = mockNet.createNode(
|
oldNotaryNode = mockNet.createNode(
|
||||||
legalName = DUMMY_NOTARY.name,
|
legalName = DUMMY_NOTARY.name,
|
||||||
advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), ServiceInfo(ValidatingNotaryService.type)))
|
advertisedServices = *arrayOf(ServiceInfo(ValidatingNotaryService.type)))
|
||||||
clientNodeA = mockNet.createNode(networkMapAddress = oldNotaryNode.network.myAddress)
|
clientNodeA = mockNet.createNode(networkMapAddress = oldNotaryNode.network.myAddress)
|
||||||
clientNodeB = mockNet.createNode(networkMapAddress = oldNotaryNode.network.myAddress)
|
clientNodeB = mockNet.createNode(networkMapAddress = oldNotaryNode.network.myAddress)
|
||||||
newNotaryNode = mockNet.createNode(networkMapAddress = oldNotaryNode.network.myAddress, advertisedServices = ServiceInfo(ValidatingNotaryService.type))
|
newNotaryNode = mockNet.createNode(networkMapAddress = oldNotaryNode.network.myAddress, advertisedServices = ServiceInfo(ValidatingNotaryService.type))
|
||||||
|
@ -15,7 +15,6 @@ import net.corda.core.node.services.vault.SortAttribute
|
|||||||
import net.corda.core.transactions.TransactionBuilder
|
import net.corda.core.transactions.TransactionBuilder
|
||||||
import net.corda.core.utilities.getOrThrow
|
import net.corda.core.utilities.getOrThrow
|
||||||
import net.corda.node.internal.StartedNode
|
import net.corda.node.internal.StartedNode
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.node.services.statemachine.StateMachineManager
|
import net.corda.node.services.statemachine.StateMachineManager
|
||||||
import net.corda.node.services.transactions.ValidatingNotaryService
|
import net.corda.node.services.transactions.ValidatingNotaryService
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
import net.corda.nodeapi.internal.ServiceInfo
|
||||||
@ -98,7 +97,7 @@ class ScheduledFlowTests {
|
|||||||
mockNet = MockNetwork(threadPerNode = true)
|
mockNet = MockNetwork(threadPerNode = true)
|
||||||
notaryNode = mockNet.createNode(
|
notaryNode = mockNet.createNode(
|
||||||
legalName = DUMMY_NOTARY.name,
|
legalName = DUMMY_NOTARY.name,
|
||||||
advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), ServiceInfo(ValidatingNotaryService.type)))
|
advertisedServices = *arrayOf(ServiceInfo(ValidatingNotaryService.type)))
|
||||||
val a = mockNet.createUnstartedNode(notaryNode.network.myAddress)
|
val a = mockNet.createUnstartedNode(notaryNode.network.myAddress)
|
||||||
val b = mockNet.createUnstartedNode(notaryNode.network.myAddress)
|
val b = mockNet.createUnstartedNode(notaryNode.network.myAddress)
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@ import net.corda.core.node.NodeInfo
|
|||||||
import net.corda.core.serialization.deserialize
|
import net.corda.core.serialization.deserialize
|
||||||
import net.corda.core.utilities.getOrThrow
|
import net.corda.core.utilities.getOrThrow
|
||||||
import net.corda.node.internal.StartedNode
|
import net.corda.node.internal.StartedNode
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
|
||||||
import net.corda.node.services.config.NodeConfiguration
|
import net.corda.node.services.config.NodeConfiguration
|
||||||
import net.corda.node.services.messaging.MessagingService
|
import net.corda.node.services.messaging.MessagingService
|
||||||
import net.corda.node.services.messaging.send
|
import net.corda.node.services.messaging.send
|
||||||
@ -25,12 +24,8 @@ import net.corda.node.services.transactions.SimpleNotaryService
|
|||||||
import net.corda.node.utilities.AddOrRemove
|
import net.corda.node.utilities.AddOrRemove
|
||||||
import net.corda.node.utilities.AddOrRemove.ADD
|
import net.corda.node.utilities.AddOrRemove.ADD
|
||||||
import net.corda.node.utilities.AddOrRemove.REMOVE
|
import net.corda.node.utilities.AddOrRemove.REMOVE
|
||||||
import net.corda.testing.ALICE
|
import net.corda.nodeapi.internal.ServiceInfo
|
||||||
import net.corda.testing.BOB
|
import net.corda.testing.*
|
||||||
import net.corda.testing.CHARLIE
|
|
||||||
import net.corda.testing.DUMMY_MAP
|
|
||||||
import net.corda.testing.chooseIdentity
|
|
||||||
import net.corda.testing.chooseIdentityAndCert
|
|
||||||
import net.corda.testing.node.MockNetwork
|
import net.corda.testing.node.MockNetwork
|
||||||
import net.corda.testing.node.MockNetwork.MockNode
|
import net.corda.testing.node.MockNetwork.MockNode
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
@ -58,7 +53,7 @@ abstract class AbstractNetworkMapServiceTest<out S : AbstractNetworkMapService>
|
|||||||
mapServiceNode = mockNet.createNode(
|
mapServiceNode = mockNet.createNode(
|
||||||
nodeFactory = nodeFactory,
|
nodeFactory = nodeFactory,
|
||||||
legalName = DUMMY_MAP.name,
|
legalName = DUMMY_MAP.name,
|
||||||
advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), ServiceInfo(SimpleNotaryService.type)))
|
advertisedServices = *arrayOf(ServiceInfo(SimpleNotaryService.type)))
|
||||||
alice = mockNet.createNode(mapServiceNode.network.myAddress, nodeFactory = nodeFactory, legalName = ALICE.name)
|
alice = mockNet.createNode(mapServiceNode.network.myAddress, nodeFactory = nodeFactory, legalName = ALICE.name)
|
||||||
mockNet.runNetwork()
|
mockNet.runNetwork()
|
||||||
lastSerial = System.currentTimeMillis()
|
lastSerial = System.currentTimeMillis()
|
||||||
|
@ -2,10 +2,8 @@ package net.corda.node.services.network
|
|||||||
|
|
||||||
import net.corda.core.node.services.NetworkMapCache
|
import net.corda.core.node.services.NetworkMapCache
|
||||||
import net.corda.core.utilities.getOrThrow
|
import net.corda.core.utilities.getOrThrow
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
|
||||||
import net.corda.testing.ALICE
|
import net.corda.testing.ALICE
|
||||||
import net.corda.testing.BOB
|
import net.corda.testing.BOB
|
||||||
import net.corda.testing.DUMMY_NOTARY
|
|
||||||
import net.corda.testing.chooseIdentity
|
import net.corda.testing.chooseIdentity
|
||||||
import net.corda.testing.node.MockNetwork
|
import net.corda.testing.node.MockNetwork
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
@ -40,8 +38,8 @@ class NetworkMapCacheTest {
|
|||||||
@Test
|
@Test
|
||||||
fun `key collision`() {
|
fun `key collision`() {
|
||||||
val entropy = BigInteger.valueOf(24012017L)
|
val entropy = BigInteger.valueOf(24012017L)
|
||||||
val aliceNode = mockNet.createNode(nodeFactory = MockNetwork.DefaultFactory, legalName = ALICE.name, entropyRoot = entropy, advertisedServices = ServiceInfo(NetworkMapService.type))
|
val aliceNode = mockNet.createNode(nodeFactory = MockNetwork.DefaultFactory, legalName = ALICE.name, entropyRoot = entropy)
|
||||||
val bobNode = mockNet.createNode(nodeFactory = MockNetwork.DefaultFactory, legalName = BOB.name, entropyRoot = entropy, advertisedServices = ServiceInfo(NetworkMapService.type))
|
val bobNode = mockNet.createNode(nodeFactory = MockNetwork.DefaultFactory, legalName = BOB.name, entropyRoot = entropy)
|
||||||
assertEquals(aliceNode.info.chooseIdentity(), bobNode.info.chooseIdentity())
|
assertEquals(aliceNode.info.chooseIdentity(), bobNode.info.chooseIdentity())
|
||||||
|
|
||||||
mockNet.runNetwork()
|
mockNet.runNetwork()
|
||||||
|
@ -31,7 +31,6 @@ import net.corda.finance.flows.CashIssueFlow
|
|||||||
import net.corda.finance.flows.CashPaymentFlow
|
import net.corda.finance.flows.CashPaymentFlow
|
||||||
import net.corda.node.internal.InitiatedFlowFactory
|
import net.corda.node.internal.InitiatedFlowFactory
|
||||||
import net.corda.node.internal.StartedNode
|
import net.corda.node.internal.StartedNode
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.node.services.persistence.checkpoints
|
import net.corda.node.services.persistence.checkpoints
|
||||||
import net.corda.node.services.transactions.ValidatingNotaryService
|
import net.corda.node.services.transactions.ValidatingNotaryService
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
import net.corda.nodeapi.internal.ServiceInfo
|
||||||
@ -79,7 +78,7 @@ class FlowFrameworkTests {
|
|||||||
fun start() {
|
fun start() {
|
||||||
setCordappPackages("net.corda.finance.contracts", "net.corda.testing.contracts")
|
setCordappPackages("net.corda.finance.contracts", "net.corda.testing.contracts")
|
||||||
mockNet = MockNetwork(servicePeerAllocationStrategy = RoundRobin())
|
mockNet = MockNetwork(servicePeerAllocationStrategy = RoundRobin())
|
||||||
node1 = mockNet.createNode(advertisedServices = ServiceInfo(NetworkMapService.type))
|
node1 = mockNet.createNode()
|
||||||
node2 = mockNet.createNode(networkMapAddress = node1.network.myAddress)
|
node2 = mockNet.createNode(networkMapAddress = node1.network.myAddress)
|
||||||
|
|
||||||
mockNet.runNetwork()
|
mockNet.runNetwork()
|
||||||
|
@ -14,10 +14,8 @@ import net.corda.core.utilities.getOrThrow
|
|||||||
import net.corda.core.utilities.seconds
|
import net.corda.core.utilities.seconds
|
||||||
import net.corda.node.internal.StartedNode
|
import net.corda.node.internal.StartedNode
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
import net.corda.nodeapi.internal.ServiceInfo
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.testing.*
|
import net.corda.testing.*
|
||||||
import net.corda.testing.contracts.DummyContract
|
import net.corda.testing.contracts.DummyContract
|
||||||
import net.corda.testing.getDefaultNotary
|
|
||||||
import net.corda.testing.node.MockNetwork
|
import net.corda.testing.node.MockNetwork
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
@ -40,7 +38,7 @@ class NotaryServiceTests {
|
|||||||
mockNet = MockNetwork()
|
mockNet = MockNetwork()
|
||||||
notaryNode = mockNet.createNode(
|
notaryNode = mockNet.createNode(
|
||||||
legalName = DUMMY_NOTARY.name,
|
legalName = DUMMY_NOTARY.name,
|
||||||
advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), ServiceInfo(SimpleNotaryService.type)))
|
advertisedServices = *arrayOf(ServiceInfo(SimpleNotaryService.type)))
|
||||||
clientNode = mockNet.createNode(notaryNode.network.myAddress)
|
clientNode = mockNet.createNode(notaryNode.network.myAddress)
|
||||||
mockNet.runNetwork() // Clear network map registration messages
|
mockNet.runNetwork() // Clear network map registration messages
|
||||||
notaryNode.internals.ensureRegistered()
|
notaryNode.internals.ensureRegistered()
|
||||||
|
@ -10,16 +10,13 @@ import net.corda.core.flows.NotaryException
|
|||||||
import net.corda.core.flows.NotaryFlow
|
import net.corda.core.flows.NotaryFlow
|
||||||
import net.corda.core.identity.Party
|
import net.corda.core.identity.Party
|
||||||
import net.corda.core.transactions.SignedTransaction
|
import net.corda.core.transactions.SignedTransaction
|
||||||
import net.corda.core.utilities.getOrThrow
|
|
||||||
import net.corda.core.transactions.TransactionBuilder
|
import net.corda.core.transactions.TransactionBuilder
|
||||||
|
import net.corda.core.utilities.getOrThrow
|
||||||
import net.corda.node.internal.StartedNode
|
import net.corda.node.internal.StartedNode
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
|
||||||
import net.corda.node.services.issueInvalidState
|
import net.corda.node.services.issueInvalidState
|
||||||
import net.corda.node.services.network.NetworkMapService
|
import net.corda.nodeapi.internal.ServiceInfo
|
||||||
import net.corda.testing.*
|
import net.corda.testing.*
|
||||||
import net.corda.testing.contracts.DummyContract
|
import net.corda.testing.contracts.DummyContract
|
||||||
import net.corda.testing.dummyCommand
|
|
||||||
import net.corda.testing.getDefaultNotary
|
|
||||||
import net.corda.testing.node.MockNetwork
|
import net.corda.testing.node.MockNetwork
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
@ -41,7 +38,7 @@ class ValidatingNotaryServiceTests {
|
|||||||
mockNet = MockNetwork()
|
mockNet = MockNetwork()
|
||||||
notaryNode = mockNet.createNode(
|
notaryNode = mockNet.createNode(
|
||||||
legalName = DUMMY_NOTARY.name,
|
legalName = DUMMY_NOTARY.name,
|
||||||
advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), ServiceInfo(ValidatingNotaryService.type))
|
advertisedServices = *arrayOf(ServiceInfo(ValidatingNotaryService.type))
|
||||||
)
|
)
|
||||||
clientNode = mockNet.createNode(notaryNode.network.myAddress)
|
clientNode = mockNet.createNode(notaryNode.network.myAddress)
|
||||||
mockNet.runNetwork() // Clear network map registration messages
|
mockNet.runNetwork() // Clear network map registration messages
|
||||||
|
@ -2,19 +2,18 @@ package net.corda.netmap.simulation
|
|||||||
|
|
||||||
import net.corda.core.flows.FlowLogic
|
import net.corda.core.flows.FlowLogic
|
||||||
import net.corda.core.identity.CordaX500Name
|
import net.corda.core.identity.CordaX500Name
|
||||||
import net.corda.finance.utils.CityDatabase
|
|
||||||
import net.corda.finance.utils.WorldMapLocation
|
|
||||||
import net.corda.core.internal.uncheckedCast
|
import net.corda.core.internal.uncheckedCast
|
||||||
import net.corda.core.messaging.SingleMessageRecipient
|
import net.corda.core.messaging.SingleMessageRecipient
|
||||||
import net.corda.core.utilities.ProgressTracker
|
import net.corda.core.utilities.ProgressTracker
|
||||||
|
import net.corda.finance.utils.CityDatabase
|
||||||
|
import net.corda.finance.utils.WorldMapLocation
|
||||||
import net.corda.irs.api.NodeInterestRates
|
import net.corda.irs.api.NodeInterestRates
|
||||||
import net.corda.node.internal.StartedNode
|
import net.corda.node.internal.StartedNode
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
|
||||||
import net.corda.nodeapi.internal.ServiceType
|
|
||||||
import net.corda.node.services.config.NodeConfiguration
|
import net.corda.node.services.config.NodeConfiguration
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.node.services.statemachine.StateMachineManager
|
import net.corda.node.services.statemachine.StateMachineManager
|
||||||
import net.corda.node.services.transactions.SimpleNotaryService
|
import net.corda.node.services.transactions.SimpleNotaryService
|
||||||
|
import net.corda.nodeapi.internal.ServiceInfo
|
||||||
|
import net.corda.nodeapi.internal.ServiceType
|
||||||
import net.corda.testing.DUMMY_MAP
|
import net.corda.testing.DUMMY_MAP
|
||||||
import net.corda.testing.DUMMY_NOTARY
|
import net.corda.testing.DUMMY_NOTARY
|
||||||
import net.corda.testing.DUMMY_REGULATOR
|
import net.corda.testing.DUMMY_REGULATOR
|
||||||
@ -92,7 +91,6 @@ abstract class Simulation(val networkSendManuallyPumped: Boolean,
|
|||||||
override fun create(config: NodeConfiguration, network: MockNetwork, networkMapAddr: SingleMessageRecipient?,
|
override fun create(config: NodeConfiguration, network: MockNetwork, networkMapAddr: SingleMessageRecipient?,
|
||||||
advertisedServices: Set<ServiceInfo>, id: Int, overrideServices: Map<ServiceInfo, KeyPair>?,
|
advertisedServices: Set<ServiceInfo>, id: Int, overrideServices: Map<ServiceInfo, KeyPair>?,
|
||||||
entropyRoot: BigInteger): SimulatedNode {
|
entropyRoot: BigInteger): SimulatedNode {
|
||||||
require(advertisedServices.containsType(NetworkMapService.type))
|
|
||||||
val cfg = testNodeConfiguration(
|
val cfg = testNodeConfiguration(
|
||||||
baseDirectory = config.baseDirectory,
|
baseDirectory = config.baseDirectory,
|
||||||
myLegalName = DUMMY_MAP.name)
|
myLegalName = DUMMY_MAP.name)
|
||||||
@ -153,7 +151,7 @@ abstract class Simulation(val networkSendManuallyPumped: Boolean,
|
|||||||
|
|
||||||
val mockNet = MockNetwork(networkSendManuallyPumped, runAsync)
|
val mockNet = MockNetwork(networkSendManuallyPumped, runAsync)
|
||||||
// This one must come first.
|
// This one must come first.
|
||||||
val networkMap = mockNet.createNode(nodeFactory = NetworkMapNodeFactory, advertisedServices = ServiceInfo(NetworkMapService.type))
|
val networkMap = mockNet.createNode(nodeFactory = NetworkMapNodeFactory)
|
||||||
val notary = mockNet.createNode(networkMap.network.myAddress, nodeFactory = NotaryNodeFactory, advertisedServices = ServiceInfo(SimpleNotaryService.type))
|
val notary = mockNet.createNode(networkMap.network.myAddress, nodeFactory = NotaryNodeFactory, advertisedServices = ServiceInfo(SimpleNotaryService.type))
|
||||||
val regulators = listOf(mockNet.createUnstartedNode(networkMap.network.myAddress, nodeFactory = RegulatorFactory))
|
val regulators = listOf(mockNet.createUnstartedNode(networkMap.network.myAddress, nodeFactory = RegulatorFactory))
|
||||||
val ratesOracle = mockNet.createUnstartedNode(networkMap.network.myAddress, nodeFactory = RatesOracleFactory)
|
val ratesOracle = mockNet.createUnstartedNode(networkMap.network.myAddress, nodeFactory = RatesOracleFactory)
|
||||||
|
@ -9,7 +9,6 @@ import net.corda.core.internal.read
|
|||||||
import net.corda.core.messaging.startFlow
|
import net.corda.core.messaging.startFlow
|
||||||
import net.corda.core.serialization.CordaSerializable
|
import net.corda.core.serialization.CordaSerializable
|
||||||
import net.corda.node.services.FlowPermissions.Companion.startFlowPermission
|
import net.corda.node.services.FlowPermissions.Companion.startFlowPermission
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.node.services.transactions.ValidatingNotaryService
|
import net.corda.node.services.transactions.ValidatingNotaryService
|
||||||
import net.corda.nodeapi.User
|
import net.corda.nodeapi.User
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
import net.corda.nodeapi.internal.ServiceInfo
|
||||||
@ -297,7 +296,7 @@ class FlowStackSnapshotTest {
|
|||||||
val notaryNode = mockNet.createNode(
|
val notaryNode = mockNet.createNode(
|
||||||
legalName = DUMMY_NOTARY.name,
|
legalName = DUMMY_NOTARY.name,
|
||||||
overrideServices = mapOf(notaryService to DUMMY_NOTARY_KEY),
|
overrideServices = mapOf(notaryService to DUMMY_NOTARY_KEY),
|
||||||
advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), notaryService))
|
advertisedServices = *arrayOf(notaryService))
|
||||||
val node = mockNet.createPartyNode(notaryNode.network.myAddress)
|
val node = mockNet.createPartyNode(notaryNode.network.myAddress)
|
||||||
node.internals.registerInitiatedFlow(DummyFlow::class.java)
|
node.internals.registerInitiatedFlow(DummyFlow::class.java)
|
||||||
node.services.startFlow(FlowStackSnapshotSerializationTestingFlow()).resultFuture.get()
|
node.services.startFlow(FlowStackSnapshotSerializationTestingFlow()).resultFuture.get()
|
||||||
|
@ -830,9 +830,7 @@ class DriverDSL(
|
|||||||
"rpcAddress" to rpcAddress.toString(),
|
"rpcAddress" to rpcAddress.toString(),
|
||||||
"rpcUsers" to defaultRpcUserList,
|
"rpcUsers" to defaultRpcUserList,
|
||||||
"p2pAddress" to dedicatedNetworkMapAddress.toString(),
|
"p2pAddress" to dedicatedNetworkMapAddress.toString(),
|
||||||
"useTestClock" to useTestClock,
|
"useTestClock" to useTestClock)
|
||||||
"extraAdvertisedServiceIds" to listOf(ServiceInfo(NetworkMapService.type).toString())
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
return startNodeInternal(config, webAddress, startInProcess, maximumHeapSize)
|
return startNodeInternal(config, webAddress, startInProcess, maximumHeapSize)
|
||||||
}
|
}
|
||||||
|
@ -400,7 +400,7 @@ class MockNetwork(private val networkSendManuallyPumped: Boolean = false,
|
|||||||
overrideServices: Map<ServiceInfo, KeyPair>? = null,
|
overrideServices: Map<ServiceInfo, KeyPair>? = null,
|
||||||
serviceName: CordaX500Name? = null): StartedNode<MockNode> {
|
serviceName: CordaX500Name? = null): StartedNode<MockNode> {
|
||||||
return createNode(networkMapAddress, legalName = legalName, overrideServices = overrideServices,
|
return createNode(networkMapAddress, legalName = legalName, overrideServices = overrideServices,
|
||||||
advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), ServiceInfo(ValidatingNotaryService.type, serviceName)))
|
advertisedServices = *arrayOf(ServiceInfo(ValidatingNotaryService.type, serviceName)))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convenience method for Java
|
// Convenience method for Java
|
||||||
|
@ -8,17 +8,16 @@ import net.corda.core.internal.div
|
|||||||
import net.corda.core.utilities.getOrThrow
|
import net.corda.core.utilities.getOrThrow
|
||||||
import net.corda.node.internal.Node
|
import net.corda.node.internal.Node
|
||||||
import net.corda.node.internal.StartedNode
|
import net.corda.node.internal.StartedNode
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
|
||||||
import net.corda.nodeapi.internal.ServiceType
|
|
||||||
import net.corda.node.services.config.ConfigHelper
|
import net.corda.node.services.config.ConfigHelper
|
||||||
import net.corda.node.services.config.FullNodeConfiguration
|
import net.corda.node.services.config.FullNodeConfiguration
|
||||||
import net.corda.node.services.config.configOf
|
import net.corda.node.services.config.configOf
|
||||||
import net.corda.node.services.config.plus
|
import net.corda.node.services.config.plus
|
||||||
import net.corda.node.services.network.NetworkMapService
|
|
||||||
import net.corda.node.services.transactions.RaftValidatingNotaryService
|
import net.corda.node.services.transactions.RaftValidatingNotaryService
|
||||||
import net.corda.node.utilities.ServiceIdentityGenerator
|
import net.corda.node.utilities.ServiceIdentityGenerator
|
||||||
import net.corda.nodeapi.User
|
import net.corda.nodeapi.User
|
||||||
import net.corda.nodeapi.config.parseAs
|
import net.corda.nodeapi.config.parseAs
|
||||||
|
import net.corda.nodeapi.internal.ServiceInfo
|
||||||
|
import net.corda.nodeapi.internal.ServiceType
|
||||||
import net.corda.testing.DUMMY_MAP
|
import net.corda.testing.DUMMY_MAP
|
||||||
import net.corda.testing.TestDependencyInjectionBase
|
import net.corda.testing.TestDependencyInjectionBase
|
||||||
import net.corda.testing.driver.addressMustNotBeBoundFuture
|
import net.corda.testing.driver.addressMustNotBeBoundFuture
|
||||||
@ -91,7 +90,7 @@ abstract class NodeBasedTest : TestDependencyInjectionBase() {
|
|||||||
rpcUsers: List<User> = emptyList(),
|
rpcUsers: List<User> = emptyList(),
|
||||||
configOverrides: Map<String, Any> = emptyMap()): StartedNode<Node> {
|
configOverrides: Map<String, Any> = emptyMap()): StartedNode<Node> {
|
||||||
check(_networkMapNode == null || _networkMapNode!!.info.legalIdentitiesAndCerts.first().name == legalName)
|
check(_networkMapNode == null || _networkMapNode!!.info.legalIdentitiesAndCerts.first().name == legalName)
|
||||||
return startNodeInternal(legalName, platformVersion, advertisedServices + ServiceInfo(NetworkMapService.type), rpcUsers, configOverrides).apply {
|
return startNodeInternal(legalName, platformVersion, advertisedServices, rpcUsers, configOverrides).apply {
|
||||||
_networkMapNode = this
|
_networkMapNode = this
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,6 @@ package net.corda.demobench.model
|
|||||||
import com.typesafe.config.Config
|
import com.typesafe.config.Config
|
||||||
import net.corda.core.identity.CordaX500Name
|
import net.corda.core.identity.CordaX500Name
|
||||||
import net.corda.core.utilities.NetworkHostAndPort
|
import net.corda.core.utilities.NetworkHostAndPort
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
|
||||||
import net.corda.nodeapi.internal.ServiceType
|
|
||||||
import tornadofx.*
|
import tornadofx.*
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.nio.file.Files
|
import java.nio.file.Files
|
||||||
@ -54,7 +52,7 @@ class InstallFactory : Controller() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun Config.parseExtraServices(path: String): MutableList<String> {
|
private fun Config.parseExtraServices(path: String): MutableList<String> {
|
||||||
val services = serviceController.services.values.toSortedSet() + ServiceInfo(ServiceType.networkMap).toString()
|
val services = serviceController.services.values.toSortedSet()
|
||||||
return this.getStringList(path)
|
return this.getStringList(path)
|
||||||
.filter { !it.isNullOrEmpty() }
|
.filter { !it.isNullOrEmpty() }
|
||||||
.map { svc ->
|
.map { svc ->
|
||||||
|
@ -3,8 +3,6 @@ package net.corda.demobench.model
|
|||||||
import net.corda.core.identity.CordaX500Name
|
import net.corda.core.identity.CordaX500Name
|
||||||
import net.corda.demobench.plugin.PluginController
|
import net.corda.demobench.plugin.PluginController
|
||||||
import net.corda.demobench.pty.R3Pty
|
import net.corda.demobench.pty.R3Pty
|
||||||
import net.corda.nodeapi.internal.ServiceInfo
|
|
||||||
import net.corda.nodeapi.internal.ServiceType
|
|
||||||
import tornadofx.*
|
import tornadofx.*
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.lang.management.ManagementFactory
|
import java.lang.management.ManagementFactory
|
||||||
@ -100,7 +98,6 @@ class NodeController(check: atRuntime = ::checkExists) : Controller() {
|
|||||||
if (hasNetworkMap()) {
|
if (hasNetworkMap()) {
|
||||||
config.networkMap = networkMapConfig
|
config.networkMap = networkMapConfig
|
||||||
} else {
|
} else {
|
||||||
config.extraServices.add(ServiceInfo(ServiceType.networkMap).toString())
|
|
||||||
networkMapConfig = config
|
networkMapConfig = config
|
||||||
log.info("Network map provided by: ${config.legalName}")
|
log.info("Network map provided by: ${config.legalName}")
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user