From ad5ceedbd914c781c1e0dfc60e62685e2491a796 Mon Sep 17 00:00:00 2001 From: szymonsztuka Date: Wed, 4 Apr 2018 18:01:35 +0100 Subject: [PATCH] Merge remote-tracking branch 'remotes/open/master' # Conflicts: # docs/source/changelog.rst --- docs/source/changelog.rst | 3 +++ docs/source/permissioning.rst | 10 +++++++--- docs/source/upgrade-notes.rst | 2 ++ .../node/services/rpc/RpcExceptionHandlingTest.kt | 6 ++++-- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index 5ab52a857b..bece2b78a3 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -85,6 +85,9 @@ Unreleased * JDBC drivers for SQL server and PostgresSQL are no longer bundled as part of Corda releases. If you are running a node on such databases you need to provide the associated driver as described in :doc:`node-database`. +* Shell (embedded available only in dev mode or via SSH) connects to the node via RPC instead of using the ``CordaRPCOps`` object directly. + To enable RPC connectivity ensure node’s ``rpcSettings.address`` and ``rpcSettings.adminAddress`` settings are present. + R3 Corda 3.0 Developer Preview ------------------------------ diff --git a/docs/source/permissioning.rst b/docs/source/permissioning.rst index 81186269a3..ca4ed2ccb1 100644 --- a/docs/source/permissioning.rst +++ b/docs/source/permissioning.rst @@ -1,4 +1,4 @@ -Network permissioning + Network permissioning ===================== .. contents:: @@ -59,8 +59,8 @@ We can visualise the permissioning structure as follows: Keypair and certificate formats ------------------------------- -You can use any standard key tools or Corda's ``X509Utilities`` (which uses Bouncy Castle) to create the required -public/private keypairs and certificates. The keypairs and certificates should obey the following restrictions: +You can use any standard key tools to create the required public/private keypairs and certificates. The keypairs and +certificates must obey the following restrictions: * The certificates must follow the `X.509 standard `_ @@ -75,6 +75,10 @@ public/private keypairs and certificates. The keypairs and certificates should o * RSA with 3072-bit key size +.. note:: Corda's ``X509Utilities`` show how to generate the required public/private keypairs and certificates using + Bouncy Castle. You can find the ``X509Utilities`` in the `Corda repository `_, under + ``/node-api/src/main/kotlin/net/corda/nodeapi/internal/crypto/X509Utilities.kt``. + Certificate role extension -------------------------- Corda certificates have a custom X.509 v3 extension that specifies the role the certificate relates to. This extension diff --git a/docs/source/upgrade-notes.rst b/docs/source/upgrade-notes.rst index ae4168ea4d..8954a9623e 100644 --- a/docs/source/upgrade-notes.rst +++ b/docs/source/upgrade-notes.rst @@ -163,6 +163,8 @@ Applies to both gradle deployNodes tasks and/or corda node configuration (node.c JoinColumn(name = "transaction_id", referencedColumnName = "transaction_id"))) override var participants: MutableSet? = null, +* Shell - to use Shell ensure ``rpcSettings.address`` and ``rpcSettings.adminAddress`` settings are present. + Testing ^^^^^^^ diff --git a/node/src/integration-test/kotlin/net/corda/node/services/rpc/RpcExceptionHandlingTest.kt b/node/src/integration-test/kotlin/net/corda/node/services/rpc/RpcExceptionHandlingTest.kt index ad3b08daaa..d2f4f8a63b 100644 --- a/node/src/integration-test/kotlin/net/corda/node/services/rpc/RpcExceptionHandlingTest.kt +++ b/node/src/integration-test/kotlin/net/corda/node/services/rpc/RpcExceptionHandlingTest.kt @@ -9,6 +9,8 @@ import net.corda.core.utilities.getOrThrow import net.corda.core.utilities.unwrap import net.corda.node.services.Permissions import net.corda.nodeapi.exceptions.InternalNodeException +import net.corda.testing.core.ALICE_NAME +import net.corda.testing.core.BOB_NAME import net.corda.testing.core.singleIdentity import net.corda.testing.driver.DriverParameters import net.corda.testing.driver.NodeParameters @@ -63,8 +65,8 @@ class RpcExceptionHandlingTest { driver(DriverParameters(startNodesInProcess = true)) { - val nodeA = startNode(NodeParameters(rpcUsers = users)).getOrThrow() - val nodeB = startNode(NodeParameters(rpcUsers = users)).getOrThrow() + val nodeA = startNode(NodeParameters(providedName = ALICE_NAME, rpcUsers = users)).getOrThrow() + val nodeB = startNode(NodeParameters(providedName = BOB_NAME, rpcUsers = users)).getOrThrow() assertThatCode { nodeA.rpc.startFlow(::InitFlow, nodeB.nodeInfo.singleIdentity()).returnValue.getOrThrow() }.isInstanceOfSatisfying(InternalNodeException::class.java) { exception ->