* Generate networkParameteres for Cordformation.
Fix deployNodes task in Cordformation to generate NetworkParameters before running the nodes.
Add TestNetworkParametersGenerator utility loaded after node infos generation step.
* Get rid of bouncy castle provider dependency
For cordform-common. It caused problems with loading our custom
X509EdDSAEngine for generation of network parameters in deployNodes
task.
* new network map object for network map, and verify signature and root in Signed network map and node info
* fixup after rebase
* * added certificate and key to network map server
* move DigitalSignature.WithCert back to NetworkMap.kt, as its breaking API test, will raise another PR to move it back.
* Make DigitalSignature.WithCert not extend WithKey, as per PR discussion.
* various fixes after rebase.
* move Network map back to core/node, as its breaking API test
* revert unintended changes
* move network map objects to node-api
1. The runRPCCashIssue and runWebCashIssue gradle tasks didn't work because they were using the wrong ports
2. Notary lookup was failing because the lookup name didn't include the correct CN for the notary name (this slipped through when reverting the network parameters)
The ports change occurred in #1922 which was attempting the fix the runIssuer gradle task. This is actually a misleading and redundant task as all it does is start up the nodes, which is what the documented deployNodes already does. The ports runIssuer allocated to the nodes were different to the ones specified in deployNodes.
To make sure we have integration tests which closely match deployNodes, the BoC demo has been updated to make use of CordformDefinition. This keeps the node definitions in one place, removing the need to have disparate files in sync. runIssuer has been removed.
* make node info file copying optional by setting "compatabilityZoneURL" in driver
integration test for node using http network map using driver
some bug fixes
* rebase to feature branch and fixup
* add initialRegistration flag to driver
* remove useFileBaseNetworkMap flag, add network map server to DriverTest
* remove useFileBaseNetworkMap flag, add network map server to DriverTest
* use PortAllocation.Incremental instead of random
* * use PortAllocation.Incremental instead of random
* fix NodeInfoWatcher thread leak issue
* reset scheduler before create notary
* move port allocation out of companion object
* move port allocation out of companion object
* make node info file copier lateinit to avoid observable thread pool get created on init
* Revert "CORDA-296: added rpc that returns an observable for node state (#2004)"
This reverts commit 7d1f7ab
* Revert "CORDA-296: added rpc that returns an observable for node state (#2004)"
This reverts commit 7d1f7ab
Previously when de-anonymising a Party instance, the name of the Party was used rather than
the key, meaning a Party could be constructed with a random nonsense key and any name, and be treated as corresponding to the well known identity. This is not a security hole in itself as
in any real scenario a party shouldn't be trusted without having been registered, it creates
a significant risk of a security hole depending on how trusted the anonymous identity is, and
the returned identity is considered.
Pass notary identity into flow in `NodeStatePersistenceTests` rather than resolving it from the network map cache, which avoids a race condition between the flow starting and the notary registration being sent to the cache.
* consistent storage of Issuer Reference using `ByteArray` Kotlin type in Schema definition and a custom Hibernate Type to map this to a VARBINARY database type.
Creation of a new Issued type now also validates maximum size permissible (512).
* Clean up identities in CashTests so that the mini/mega corp keys and identities are correctly
paired together throughout. Previously `miniCorpServices` presented the same key as the
MegaCorp identity, but with the name Mini Corp attached.
* Correct key/name matches in VaultWithCashTest
* Split services in CashTests to not have multiple identities per service hub
* Removal of transaction contract state as BLOB in VaultStates table.
Transaction contract state now resolved using StateLoader (from DBTransactionStorage).
Fixed broken JUnits.
* Changes to address review comments by RP
Address logic error.
* Fixed failing JUnit (CashExitFlowTests.exit zero cash).
* Fix VaultQueryTests to respect transaction visibility boundaries.
* Adopt consistent use of "session" using DatabaseTransactionManager.
* Removed redundant transaction demarcation boundaries in Vault Query tests.
* Added explicit table names (mostly for join tables).
* Shorten or alter name of 2 tables backing notaries.
* Change a compound index declaration to one column index.
Detangle issuers in NodeVaultServiceTest, which has been using two keys on a single node, for different
issuing identities, which doesn't work right now because we don't actually have multiple identity support.
Also remove duplicate data in parameters to fillWithSomeTestCash().
Full requires the command to be `closed` before it can be removed from
the log during compaction. We don't close commands, thus and retaining
the log forever, allowing users to increase the cluster size. The
downsize is the unbounded growth of the size of the log.
Cluster membership changes need testing.
* Network map cache using Network map client instead of artemis. -- WIP
* fix up after rebase
* address PR issues, split network map update test, added todos to remove sleeps
* move jimfs and baseDir to field variable
Ensure when registering identities, we store the certificate closest to the trust root, with the same name. This ensures that looking up an identity by name produces the best match, not earliest registered identity (often but not necessarily the same).
* CORDA-296: added rpc that returns an observable for node state; used to let rpc clients know that the know is about to shut down
* replaced node shut down observation String with enum
Most uses where with MockNetwork which recently got a defaultNotaryIdentity property for dealing with the default single notary case. The remaining uses where in flows.
* Extracted out ShutdownManager into its own file
* Moved RPCDriver and ProcessUtilities into internal package
* Made n.c.testing.performance package internal
network-parameters file read in by the node at startup, of which only the list of notaries is used. For now, the driver and MockNetwork have been updated to require notaries to be started first. This is so that the same set of network parameters can be defined for all the nodes.
CN in the legal name is not longer disallowed since it's no longer reserved for distributed notary names.
Single-node notaries now only have one identity, their main identity. Nodes part of a cluster continue to have two.
(Based off Kasia's work)
* [CORDA-446] Clean up other mentions of network map node and logic
* Rename AbstractNetworkMapService to NetworkMapService and remove the empty NetworkMapService
* fix build
* fix artemismessaging tests
* pr comments
approach which assumes a dedicated node for observers: states that are
reported to the node will appear in the database and update feeds as
normal. Apps that expect all updates to be relevant to themselves may
need adjusting if they run on an observer node too, but this is likely
to be rare.
* CORDA-351: force update dependencies and suppress vulnerabilities not affecting corda
* CORDA-351: force update dependencies and suppress vulnerabilities not affecting corda
* Standardisation of Public Keys in Schema entities. (#68)
* Standardisation in usage of Public Keys in Schema entities.
Use PK Hash where optimal, otherwise use ByteArray/LOB representation of PK.
* Redundant after rebase.
* Use .encoded and Crypto.decode<Public|Private>Key(bytes) instead of Corda serialization.
* Optimize DBPartyAndCertificate entity to store and query on ownerKeyHash.
* Updated API stability check for schema attribute change.
* [CORDA-442] make MockNetwork not start a networkmap node
Now MockNetwork will put the appropriate NodeInfos inside each running node networkMapCache.
Tests relating to networkmap node starting and interaction have been removed since they where relaying on MockNetwork
They won't be reported as properties by the introspector and thus we
will fail to find a constructor for them. This makes sense as we will be
unable to serialise an object whose members we cannot read
* Cash selection refactoring such that 3d party DB providers are only required to implement Coin Selection SQL logic.
* Re-added debug logging statement.
* Updated to include PR review feedback from VK
* Refactoring following rebase from master.
* Fix broken JUnits following rebase.
* Use JDBC ResultSet getBlob() and added custom serializer to address concern raised by tomtau in PR.
* Fix failing JUnits.
* Experimental support for PostgreSQL: CashSelection done using window functions
* Moved postgresql version information into corda/build.gradle
* Using a PreparedStatement in CashSelectionPostgreSQLImpl
* Changed the PostgreSQL Cash Selection implementation to use the new refactored AbstractCashSelection
* Enhance the API Scanner plugin to monitor class annotations.
* Implement @DoNotImplement annotation, and apply it.
* Update API definition.
* Update API change detection to handle @DoNotImplement.
* Document the `@DoNotImplement` annotation.
* [CORDA-442] let Driver run without network map
- Nodes started by driver run without a networkMapNode.
- Driver does not take a networkMapStartStrategy anymore
- a new parameter in the configuration "noNetworkMapServiceMode" allows for a node not to be a networkMapNode nor to connect to one.
- Driver now waits for each node to write its own NodeInfo file to disk and then copies it into each other node.
- When driver starts a node N, it waits for every node to be have N nodes in their network map.
Note: the code to copy around the NodeInfo files was already in DemoBench, the NodeInfoFilesCopier class was just moved from DemoBench into core (I'm very open to core not being the best place, please advise)
Move from `chooseIdentity()` to `singleIdentity()` where tests use a single identity, or to fetching by name where multiple identities are present, so we stop using the first identity as special.
* Fixed AbstractNode to load custom notary services properly.
Added a custom notary sample.
* Prevent multiple custom notaries from being loaded
* Throw if more than once custom notary service is loaded
Rework identity usage in tests to extract identity from nodes by name, rather than just arbitrarily choosing the first identity. This better models the intended design for production (future work).
Let NodeInfoWatcher create the directory it wants to poll at startup.
Also log failure in creating the directory, but don't log anything if it can be found at poll time.
Remove all the Kotlin functions with spaces in them since the Android doesn't support them.
See https://github.com/corda/corda/issues/1730 for a more in-depth discussion.
Handle non-standard file systems such as JimFs, in NodeInfoWatcher. Instead of using `toFile()` to convert a Path to a File, open the Path for writing to directly.
* Stop using the watch service, just re-read the whole directory every time. On macOS it's quite unpredictable and the tests are almost always failing.
* Remove local function because it is serialised as a lambda.
* Don't automatically whitelist Kotlin lambdas unless checkpointing.
* Add comment to @CordaSerializable, warning not to allow AnnotationTarget.EXPRESSION.
* Add functions to:
** Return PartyAndCertificate rather than just Party
** Return all NodeInfo entries for a name (rather than just by key)
* General documentation improvements
Update tests
Add a test to show progress tracking works
Include service startable flow in Cordapp data structures.
Respond to PR comments
Fixup change of api inline with PR comments.
Address PR comments
* MockNode rename overrideServices to notaryIdentity
Permit only one override of service.
* MockNetwork: force creation of NetworkMapNode
Tests cleanup: decouple normal nodes and network map. NetworkMap node is created as first.
Add the logic in node to poll for new serialized nodes to appear on disk.
Newly discovered nodes are automatically added to the PersistentNetworkMapCache
* Updated corda release version to 1.0.0.RC2 (#1641)
* Fixed Simm Valuation Demo Test and enable serializabe java 8 lambdas. (#1655)
* [CORDA-624] Node Explorer on Issuing cash throws MissingContractAttachements exception (#1656)
(cherry picked from commit 27fea4d)
* BIGINT fix for H2 coin selection. (#1658)
* BIGINT fix for H2 coin selection.
* Review feedback
* CORDA-637 Node Explorer shows Network Map Service in Cash Issue dropdown (#1665)
* [CORDA-637] Node Explorer shows Network Map Service in Cash Issue dropdown
* add TODO to remove the hack
* Declare this internal message string as "const". (#1676)
* Merge "A variety of small fixes" into the 1.0 release branch (#1673)
* Minor: improve javadocs in NodeInfo
* Minor: use package descriptions in Kotlin build of api docs too, not just javadocs.
* RPC: make RPCConnection non-internal, as it's a core API. Move docs around so they're on public API not internal API.
* Add an IntelliJ scope that covers the currently supported Corda API.
This is useful when used in combination with the "Highlight public
declarations with missing KDoc" inspection.
* Ironic: upgrade the version of the Gradle plugin that checks for upgraded versions of things.
It had broken due being incompatible with the new versions of Gradle
itself.
* Docs: flesh out javadocs on ServiceHub
* Docs: add @suppress to a few things that were polluting the Dokka docs.
* Docs: mention RPC access in NodeInfo javadoc
* IRS Fixes to bring UI closer to declared financial types (#1662)
* Made problematic CordaRPCClient c'tor private (with internal bridge methods) and added correct c'tors for public use. (#1653)
initialiseSerialization param has also been removed.
* Fixing flow snapshot feature (#1685)
* Fix validating notary flow to handle notary change transactions properly. (#1687)
Add a notary change test for checking longer chains involving both regular and notary change transactions.
* Unification of VaultQuery And VaultService APIs (into single VaultService interface) to simplify node bootstrapping and usability. (#1677) (#1688)
* Identity documentation (#1620)
* Sketch initial identity docs
* Restructure confidential identity docs to better fit structure
* Split confidential identities into API and concepts
* Further expansion on basic identity conceptS
* Merge Party type into api-identity.rst
* Address feedback on written content
* Rework inline code with literalinclude
* Start addressing feedback from Richard
* Clarify use of "counterparty"
* Address comments on key concepts
* Correct back to US english
* Clarify distribution/publishing of identities
* Update changelog around confidential identities
* CORDA-642 Notary demo documentation fixes (#1682)
* Notary demo documentation fixes.
* One of the tables is prefixed.
* CORDA-641: A temporary fix for contract upgrade transactions (#1700)
* A temporary fix for contract upgrade transactions:
during LedgerTransaction verification run the right logic based on whether
it contains the UpgradeCommand.
* Move ContractUpgradeFlowTest away from createSomeNodes()
* Remove assembleBareTx as it's not used
* Update corda version tag to 1.0.0-RC3 (#1705)
* Hide SerializationContext from public API on TransactionBuilder (#1707)
* Hide SerializationContext from public API on TransactionBuilder
(cherry picked from commit 6ff7b7e)
* Hide SerializationContext from public API on TransactionBuilder
(cherry picked from commit 6ff7b7e)
* Address feedback on confidential identities docs (#1701)
* Address minor comments on confidential identities docs
* Expand on implementation details of confidential identities
* Cleanup
* Clarify details of the data blob in the swap identites flow
* Add that certificate path is not made public for confidential identities
* FlowSession docs (#1693)
* FlowSession docs (#1660)
* FlowSession docs
* PR comments
* Milder example flow name
* Fixes bugs with contract constraints (#1696)
* Added schedulable flows to cordapp scanning
Fixed a bug where the core flows are included in every cordapp. Added a test to prove the scheduled flows are loaded correctly. Added scheduled flow support to cordapp.
Renabled broken test.
Fixed test to prove cordapps aren't retreived from network.
Review fixes.
Fixed a test issue caused by gradle having slightly different paths to IntelliJ
* Fixed test for real this time.
* Consistent use of CordaException and CordaRuntimeException (#1710)
* Custom exceptions in corda, should either derive from an appropriate closely related java exception, or CordaException, or CordaRuntimeException. They should not inherit just from Exception, or RuntimeException.
Handle PR comments
Add nicer constructors to CordaException and CordaRuntimeException
* Fix ambiguous defaulted constructor
* Add @suppress (#1725)
* Git-ignore Node Explorer config. (#1709)
* add message warning windows users they might need to manually kill explorer demo nodes started by gradle (#1717) (#1726)
* Misc documentation fixes (#1694)
(cherry picked from commit 592896f)
* Document -parameters compiler arg for Java CorDapps. (#1712)
* Correct non-anonymous two party trade flow (#1731)
* Parameterize TwoPartyTradeFlowTests to confirm deanonymised functionality works.
* Correct handling of counterparty using well known identity in TWoPartyTradeFlow
* CORDA-594 - SIMM Demo doc update (#1723) (#1735)
* CORDA-594 - SIMM Demo doc update
For V1 write a series of JSON / curl commands a user can follow to run
the demo
* Review Comments
* Updated the rationale behind as to why SIMM was introduced.
* typo
* Cordapps now have a name field. (#1664)
Corrected cordapp name generation.
Added changelog entry.
* Small API fixes against M16 (#1737)
* Move CompositeSignaturesWithKeys into net.corda.core.crypto package.
(cherry picked from commit 8f29562)
* Rename and move CordaPluginRegistry to reflect its real purpose now.
Simplify serialization code a bit.
(cherry picked from commit e2ecd3a)
* Docs: docsite improvements
* Remove discussion of webserver from 'writing a cordapp' page.
* Fixup some flow docs.
* Add a couple more package descriptions.
(cherry picked from commit 2aedc43)
* Review comments
(cherry picked from commit ba1d007)
* Review comments - always apply default whitelist and no longer load it via ServiceLoader
(cherry picked from commit 7d4d7bb)
* Added wording about renaming services resource file
* Update corda version tag to 1.0.0-RC4 (#1734)
* Update corda version tag to 1.0.0-RC3
* Update corda version tag to 1.0.0-RC4
* Update build.gradle
* V1 tests and fixes for the ContractConstraints work (#1739)
* V1 tests and fixes for the ContractConstraints work
* More fixes.
* Added a contract constraints section to the key concepts doc. (#1704)
Documentation for contract constraints.
Added to index.
Review fixes round 1.
More review fixes.
Review fixes.
Explained package contents.
review fixes.
Addressed RGB's final review comments.
Updated source code type to 'java'
* Fixes dead links. (#1749)
* Update gradle plugins version to 1.0.0 (#1753)
* Update Readme (#1756)
* Update Readme
Minor tweaks to Readme -- consistent capitalisation and more descriptive list of features (also reordered to put the important things first)
* Copied master readme.
* Update Readme
Minor tweaks to Readme -- consistent capitalisation and more descriptive list of features (also reordered to put the important things first)
* Fixes .rst formatting. (#1751)
* Updates tutorials. (#1649)
* Updates tutorials.
* Addresses review comments.
* Tutorial refresh for v1.0 and moving of code into separate files. (#1758)
* Moves code sections in tutorials to code files.
* Removes wallet references.
* Updates repo layout doc.
* Removes remaining cordapp-tutorial references, replaced with cordapp-example.
* Fixes broken link.
* Misc docs fixes.
* Refreshes the ServiceHub and rpc ops api pages.
* Updates the cheat sheet.
* Updates cookbooks.
* Refreshes the running-a-notary tutorial.
* Updates flow-testing tutorial
* Updates tear-offs tutorial.
* Refreshes integration-testing tutorial.
* Updates to contract tutorial and accompanying code to bring inline with V1 release.
* Refreshes contract-upgrade tutorial.
* Fixed broken code sample in "writing a contract" and updated contracts dsl.
* Added contract ref to java code. Fixed broken rst markup.
* Updates transaction-building tutorial.
* Updates the client-rpc and flow-state-machines tutorials.
* Updates the oracles tutorial.
* Amended country in X500 names from "UK" to "GB"
* Update FlowCookbook.kt
* Amended cheatsheet. Minor update on contract upgrades tutoraial.
* Added `extraCordappPackagesToScan` to node driver.
* Changes to match new function signature.
* Update to reflect change in location of cash contract name.
* CORDA-670: Correct scanned packages in network visualiser (#1763)
* Add CorDapp dependency of IRS to network visualiser
* Set CorDapp directories
* Checking out the latest milestone will no longer be required. (#1761)
* Updated documentation indices (#1754)
* Update documentation indices.
* Reference a moveable tag for V1 docs.
Remove redundant warning text.
* Reverted proposed usage of new docs release tag
* Minor: print a deprecation warning when the web server starts. (#1767)
* Release and upgrade notes for V1.0 (#1736)
* Release and upgrade notes for V1.0
* Update changelog.rst
* Update changelog.rst
* Formatting.
* Incorporating review feedback from KB and MN.
* "guarantee" instead of "promise"
* Updated with final review comments from KB and RGB.
* Updated upgrade notes to describe migration from removed CordaPluginRegistry.
* Minor clarification.
* Minor updates following final RGB feedback.
* Kat's further pedantic feedback
* Minor changes following feedback from KB.
* Incorporating review feedback from MH.
* killed 'patent-pending'
* Made the visualiser into a regular JVM module - not a CorDapp. (#1771)
* Docs: more package descriptions and take non-stabilised APIs out of the docs build. (#1775)
* Update corda version tag to 1.0.0
* Updated release notes to fix minor typos (#1779)
Fixed bold type on simplified annotation driven scanning bullet and added bold type to module name bullets
* Fixed drop down.. probably. (#1780)
* fixed formatting for release notes. (#1782)
* Improve API page wording (#1784)
* Removed "unreleased" sections from the release notes and change log.
* Merge remote-tracking branch 'origin/release-V1' into colljos-merge-v1-docs
# Conflicts:
# build.gradle
# client/jfx/src/main/kotlin/net/corda/client/jfx/model/NodeMonitorModel.kt
# client/rpc/src/main/kotlin/net/corda/client/rpc/CordaRPCClient.kt
# client/rpc/src/main/kotlin/net/corda/client/rpc/PermissionException.kt
# constants.properties
# core/src/main/kotlin/net/corda/core/flows/FlowSession.kt
# core/src/test/kotlin/net/corda/core/contracts/DummyContractV2Tests.kt
# core/src/test/kotlin/net/corda/core/flows/ContractUpgradeFlowTest.kt
# docs/source/api-flows.rst
# docs/source/api-index.rst
# docs/source/changelog.rst
# docs/source/example-code/src/main/java/net/corda/docs/java/tutorial/testdsl/CommercialPaperTest.java
# docs/source/example-code/src/main/kotlin/net/corda/docs/FlowCookbook.kt
# docs/source/example-code/src/main/kotlin/net/corda/docs/tutorial/contract/TutorialContract.kt
# docs/source/example-code/src/main/kotlin/net/corda/docs/tutorial/testdsl/TutorialTestDSL.kt
# docs/source/hello-world-state.rst
# docs/source/key-concepts-contract-constraints.rst
# docs/source/serialization.rst
# docs/source/tut-two-party-flow.rst
# docs/source/tutorial-tear-offs.rst
# node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/CordaClassResolver.kt
# node-api/src/test/java/net/corda/nodeapi/internal/serialization/ForbiddenLambdaSerializationTests.java
# node-api/src/test/java/net/corda/nodeapi/internal/serialization/LambdaCheckpointSerializationTest.java
# node/src/integration-test/kotlin/net/corda/node/services/AttachmentLoadingTests.kt
# node/src/integration-test/kotlin/net/corda/services/messaging/MQSecurityTest.kt
# node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt
# node/src/test/kotlin/net/corda/node/internal/cordapp/CordappLoaderTest.kt
# node/src/test/kotlin/net/corda/node/services/NotaryChangeTests.kt
# samples/attachment-demo/src/main/kotlin/net/corda/attachmentdemo/AttachmentDemo.kt
# samples/trader-demo/src/main/kotlin/net/corda/traderdemo/TraderDemo.kt
# testing/node-driver/src/integration-test/kotlin/net/corda/testing/FlowStackSnapshotTest.kt
# testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt
# testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt
# webserver/src/main/kotlin/net/corda/webserver/internal/NodeWebServer.kt
Initial PR for https://r3-cev.atlassian.net/projects/CORDA/issues/CORDA-442
Allow for cordformation not to specify which node is the network map.
When that happens Cordformation will start each node and make it serialize its NodeInfo to disk.
This make 'depolyNodes' slower. On my machine for the traderDemo it's ~25s
PersistentNetworkMapCache will load files from disk at startup.
Additionally nodeinfos are loaded in the networkMapCache only if they're newer than the currently known version.
* Added schedulable flows to cordapp scanning
Fixed a bug where the core flows are included in every cordapp. Added a test to prove the scheduled flows are loaded correctly. Added scheduled flow support to cordapp.
Renabled broken test.
Fixed test to prove cordapps aren't retreived from network.
Review fixes.
Fixed a test issue caused by gradle having slightly different paths to IntelliJ
* Fixed test for real this time.