* Introduce public subset of config to tweak config via mock net work without exposing internal node config.
* Removal of functions exposing (internal) NodeConfiguration from the public test API
* Code review fixes
* Blank lines removed
* Documented mock network API change in upgrade notes.
* Updated documentation and API doc.
* More documentation/API doc
* Migrated all non-BFT notary implementations to use async commits.
* Mock network: await for async operation completion. When calling runNetwork()
it keeps "pumping" messages between participants until no more messages are generated.
The problem comes in when a flow suspends on an async operation: the mock network
thinks the flow finished the work for the current step, and since no more messages
are generated, completes the runNetwork() function. The message that the flow
generates once it resumes after async operation completion never gets processed.
This change makes runNetwork() wait until all flow async operations finish,
and only then check whether no more messages can be transferred.
The configuration objects for specific notary implementations have been replaced
by a single untyped "extraConfig" Config object that is left to the notary service
itself to parse.
* Remove the raft bootstrapping command from node, we'll need a different
mechanism for that.
* Remove pre-generated identity config value.
* Split up obtainIdentity() in AbstractNode to make it easier to read.
* A temporary workaround for the bootstrapper tool to support BFT notaries.
* Update docs
* Add upgrade notes
* Fix rebase issue
* Add a config diff for the bft notary as well
* ENT-2610: Separate passwords for store and for private keys in Corda OS.
When it comes to KeyStores there are *2* passwords: 1 for the keyStore as a whole and separately there is one private keys within this keyStore.
Unfortunately, those 2 passwords have to be the same due to Artemis limitation, for more details please see:
`org.apache.activemq.artemis.core.remoting.impl.ssl.SSLSupport.loadKeyManagerFactory`
where it is calling `KeyManagerFactory.init()` with store password.
Before change in this PR, throughout our codebase there are multiple places where we assume that storePassword is the same as keyPassword, even in the classes that have nothing to do with Artemis.
This is of course less than ideal as TLS communication may be used not only for Artemis connectivity (e.g. Bridge/Float interaction in Ent) and it is unfair to impose same passwords constraint on that communication channel.
Therefore this PR is removing this limitation and properly separating storePassword from keyPassword.
Linked Jira(https://r3-cev.atlassian.net/browse/ENT-2610) has for more background info.
Suggest to start review from `net.corda.core.crypto.X509NameConstraintsTest` to get an idea about the nature of the changes made.
* ENT-2610: Address PR input from @kchalkias
* ENT-2610: Address PR input from @kchalkias, s/privateKeyPassword/entryPassword/
* ENT-2610: Address PR input from @kchalkias, s/keyPassword/entryPassword/
In the implementation of `CertificateStoreSupplier`
* Upgrade gradle plugin; add target version attribute to finance and sample cordapps.
* Remove '-SNAPSHOT' from gradlePluginsVersion.
* Fix naming.
* Update docs.
* Respond to feedback.
* Fix irs demo
* Fix more samples
* Fix more samples
* Fix deployNodes
* Fix deployNodes
* more fixes
* fix simm valuation
* more fixes
* more fixes
* more fixes
* more fixes
* Publication should have *nothing* to do with cordformation and deployNodes.
Remove it! And if this exposes a bug then "so be it".
* Disable CorDapp signing for Cordapp Configuration and Network Verifier.
* Disable CorDapp signing for SIMM Valuation Demo.
* Remove remaining publishing nonsense from samples.
* Workarounds fpr cordapp-configuration, network-verifier and simm-valuation-demo:
JarSigner rejects jars with duplicates inside, so remove them.
* Upgrade to Gradle plugin 4.0.32 and reenable CorDapp signing for samples.
* ENT-2569: Integration test to simulate Rpc/FlowWorker restart.
Initial analysis shows that 15-25 MB cannot be accounted for after RpcWorker restart.
Please see below for stats sample.
I will need to run memory profiler to understand where the memory is going.
Sample 1:
```
Memory stats @Very beginning - Used memory: 66,167 KB, Total memory: 1,158,144 KB, Max memory: 7,414,784 KB
Memory stats @Between restarts - Used memory: 214,952 KB, Total memory: 3,228,160 KB, Max memory: 7,414,784 KB
Memory stats @Very end - Used memory: 231,285 KB, Total memory: 3,226,112 KB, Max memory: 7,414,784 KB
```
Sample 2:
```
Memory stats @Very beginning - Used memory: 65,649 KB, Total memory: 1,125,376 KB, Max memory: 7,414,784 KB
Memory stats @Between restarts - Used memory: 202,542 KB, Total memory: 3,390,976 KB, Max memory: 7,414,784 KB
Memory stats @Very end - Used memory: 217,969 KB, Total memory: 3,387,392 KB, Max memory: 7,414,784 KB
```
* ENT-2569: Repair FlowWorkerTest and make it use signed network parameters.
* ENT-2569: Take flow worker up and down multiple times.
* ENT-2569: Add memory consumption stats.
Sample output for 10 iterations (1 warm-up and 9 subsequent):
```
Memory stats @Very beginning - Used memory: 126,495 KB, Total memory: 1,599,488 KB, Max memory: 7,416,832 KB
Memory stats @After warm-up round - Used memory: 172,411 KB, Total memory: 2,096,128 KB, Max memory: 7,416,832 KB
Memory stats @Testing done - Used memory: 196,912 KB, Total memory: 2,213,376 KB, Max memory: 7,416,832 KB
```
So during 9 iterations/restart cycles we have lost ~25MB.
* ENT-2569: Re-structure the test in preparation for 2nd legal name.
* ENT-2569: Mote test re-structure.
* ENT-2569: Introduce BankB into the test scenario.
* Move Raft and BFT notaries into separate modules
* Move schemas
* Fix tests & demos
* Modified logic for creating notary services:
Added a new field 'className' to the notary configuration. The node now
loads the specified implementation via reflection. The default className
value points to the simple notary implementation for backwards compatibility.
Relevant schemas are loaded in a similar fashion.
For backwards compatibility purposes the default SimpleNotaryService will
remain built-in to node, but its cordapp will be generated on startup – so
the loading of notary services is streamlined.
* Move test namedcache factory to test utils
* ENT-2500: Refactoring to allow FirewallAuditService have inbound as well as outbound logging.
Change some visibility modifiers to `private`. Use in-place initialisation where possible.
* ENT-2500: Record accepted package coming into Float
* ENT-2500: Introduce optional BridgeAuditService in `nodeApi` module
* ENT-2500: Switch FirewallAuditService to use `ApplicationMessage` and bind outgoing message stats.
* ENT-2500: Introduce scheduled executor and audit service configuration.
* ENT-2500: Stats formatting.
* ENT-2500: Stats formatting unit test.
* ENT-2500: Minor changes to LoggingFirewallAuditService and its unit test.
* ENT-2500: Additional configuration parameter documentation update.
* ENT-2500: Supply optional parameter.
* ENT-2500: Address PR comments.
* ENT-2500: Make API more consistent by using `RoutingDirection`, re-jig `State` data structure, improve unit test.
* ENT-2500: Add breakdown by endpoint address.
* ENT-2500: Compilation fix after rebase in `master`.
* ENT-2500: Making `AuditServiceConfiguration` not optional and supplying default settings.
Also few minor changes.
* ENT-2489: Trivial change to prep for multiple RpcWorkerServiceHubs (i.e. identities)
* ENT-2489: Allow passing `targetLegalIdentity` from Client RPC call.
* ENT-2489: Starting RpcWorker with multiple RpcWorkerServiceHubs (unfinished)
* ENT-2489: Starting RpcWorker with single (for now) RpcWorkerServiceHub
* ENT-2489: Tighten-up integration tests assertions
* ENT-2489: Introduce RPCOpsRouting
* ENT-2489: Output configs for reference
* ENT-2489: Extend test for RpcWorker to operate with multiple identities.
* ENT-2489: Remove un-necessary P2P address
* ENT-2489: New test for RpcWorker getting paid.
* ENT-2489: Make RpcWorkerMultiIdentityTest work
* ENT-2489: Use MAX_RPC_MESSAGE_SIZE when configuring RPC broker.
* ENT-2489: Add exception clause when client attempts to use the wrong identity.
* ENT-2489: Fixes post merge from `master`.
* ENT-2489: Fixes post merge from `master`.
* ENT-2489: Explicitly specify X500 name in test.
* ENT-2489: Use single flow worker and switch anonymity off when making payment.
* ENT-2489: Fix for RpcWorkerTest.
Add `NetworkMapUpdater` to `FlowWorkerServiceHub` or else no-one will ever send a signal on `networkMapCache.nodeReady` future.
Not having `networkMapCache.nodeReady` in completed state, will prevent SMM from operating properly.
* ENT-2489: Handle gracefully the fact that session might be already closed.
* ENT-2489: Fix incorrect merge from `master`.
* ENT-2489: Make `RPCOpsRouting` generic with regard to `RPCOps` following discussion with @mnesbit
* ENT-2489: Make `methodTable` uniform for all the legal names.
* ENT-2489: Make `ObservableContext` non-generic.
* ENT-2489: Tidy-up shutdown sequence post merge from `master`
* ENT-2489: Correct exception type thrown
* ENT-2489: Generics test compilation fix.