Commit Graph

1463 Commits

Author SHA1 Message Date
Maksymilian Pawlak
33e45eef4a CORDA-1297 - Columns nullability (#3112) -> V3 (#3303)
* [CORDA-1297] Columns nullability (#3112)

JPA/Hibernate entities need to impose the correct NULL/NOT NULL constraints on the database - whatever these correct values actually are.
API change: net.corda.core.schemas.PersistentStateRef fields (index and txId) are now non-nullable. Rationale: The fields were always effectively non-nullable - values were set from non-nullable fields of other objects. The class is used in context of database table Primary Key of for other entities and a database already imposes those columns as non-nullable (even if JPA annotation nullable=false was absent).

(cherry picked from commit 7d69bc6)

* Compilation fix
2018-06-05 15:55:20 +01:00
Katarzyna Streich
f132923b86 CORDA-866, ENT-1933 - Remove stale nodes from Network, Fix NetParam serialization (#3255) (#3128)
*  CORDA-866: Implement removal of stale nodes from network - backport (#3128)

* CORDA-866: Implement removal of stale nodes from network

Backported

* Implement removal of stale nodes from network

Add eventHorizon to NetworkParameters structure. Add republishing of
node info on 1 day intervals - it is treated by network map as heartbeat from node indicating if it's alive or not. Add removal of old node infos on network map signing.

* Add copy method to NetworkParameters data class

Add JvmOverloads annotation to the constructor, because it's data class
exposed in API

* Fix test

* ENT-1933: make NetworkParameters serialization compatible (#3234)

* ENT-1933: make NetworkParameters serialization compatible

* Fixes after cherry-pick
2018-05-31 10:03:51 +01:00
Michele Sollecito
76eaff6d88 Corda-1338 | Corda-1394 (#3205)
* [CORDA-1394]: Node can fail to fully start when a port conflict occurs, without a useful error message (fix).

* [CORDA-1338]: Error with VaultQuery for entity inheriting from CommonSchemaV1.FungibleState (fix).

* [CORDA-1338]: Error with VaultQuery for entity inheriting from CommonSchemaV1.FungibleState (fix).

* Attempting to fix weird recursive types problem.

* Attempting to fix weird recursive types problem.

* Attempting to fix weird recursive types problem.
2018-05-23 17:52:02 +01:00
Shams Asari
2729ada251 CORDA-1405 - Integration test for network parameter updates and improved logging (#2865)
(cherry picked from commit 620ba1e)

Also updated the toString() of NetworkParameters and NetworkMap to be better formatted.
2018-05-22 13:57:15 +01:00
Katelyn Baker
e39c7a222a
CORDA-1386 - Updates withoutIssuer to not strip display token size. (#3191) 2018-05-18 15:46:04 +01:00
Anthony Keenan
59bdc5862c CORDA-1304 - Remove superfluous registerInitiatedFlow calls from tutorial and example tests (#2944) (#3035) 2018-05-01 14:32:11 +01:00
Katelyn Baker
ddec72674c
REVERT - CORDA-1264 - Needs more thought prior to release (#2952)
* REVERT - CORDA-1264 - Needs more thought prior to release

This reverts commit 33af80ac55.

Since this causes regressions in the way errors are propogated to
clients it seems best to not break or hold up 3.1 but revert this commit
and move on

* fix revert
2018-04-10 18:18:57 +01:00
Michele Sollecito
33af80ac55
[CORDA-1264]: Ensure correct serialisation and masking for throwables raised by a node and propagated through RPC. (#2902) 2018-03-29 14:40:40 +01:00
Michele Sollecito
5ac4c7eda7 CORDA-1267 - Make JPA entities non-final and Serializable. (#2899) 2018-03-29 12:43:42 +01:00
Tudor Malene
de40d1dae5 ENT-1564 - add additional uploader check to the HashConstraint (#2845) (#2881)
* ENT-1564 - add additional uploader check to the HashConstraint (#2845)

(cherry picked from commit 1a1cd94)

* ENT-1564 changelog entry

* ENT-1564 ignored tests that were removed in master
2018-03-27 17:09:22 +01:00
Katelyn Baker
2d394fc6f6
CORDA-1186 - ACtually move annotaiton into core module, not just core namespace (#2781) 2018-03-11 00:34:23 +00:00
Andrius Dagys
c367df0e83 CORDA-1171 - When a double-spend occurs, do not send the consuming transaction id and requesting party back to the client - this might lead to privacy leak. Only the transaction id hash is now returned. (#2746) 2018-03-08 20:44:13 +00:00
Andrius Dagys
da74263f42 CORDA-696 - Ensure deterministic transaction id calculation for contra… (#2676)
* CORDA-696: Ensure deterministic transaction id calculation for contract upgrade and notary change transactions.

The problem with the previous implementation is that the transaction would be deserialized with the schema specified
in the serialized form, but the calculation of the id would involve re-serializing properties using a local serialization context
which might produce a different result.

* Support forwards compatibility for new hidden or visible properties

* Some refactoring and updating api docs

* Fix tests & add custom serializer in case the transaction is captured in a checkpoint

* Update id calculation for notary change transactions as well - no filtering is involved

* Use computeNonce

* More refactoring

* Use helper for computing component hashes

* Optimise id calculation
2018-03-08 17:59:25 +00:00
Konstantinos Chalkias
d32dbc33c5 CORDA-1092 - fix secureRandomBytes (#2766) 2018-03-08 15:12:18 +00:00
Konstantinos Chalkias
cbc07b791c CORDA-1175 - counterparty docs homogenisation (#2747) 2018-03-06 16:10:48 +00:00
Katelyn Baker
41edc88dd6
CORDA-1140 - RPC Client's P2P Context should use AMQP (#2741) 2018-03-06 09:25:55 +00:00
Tudor Malene
d6f9bbfe2e CORDA-1147 - fix shell (#2730) 2018-03-05 16:51:31 +00:00
Shams Asari
d2dc80e4f8 CORDA-1160 - Only read node-info files if their last modified time has changed. (#2717) (#2718)
(cherry picked from commit 4a73a80)
2018-03-05 14:57:03 +00:00
Mike Hearn
f714c3001c
Fix another non-serializable exception, add docs, fix a possible security issue. (#2707) (#2710)
* Fix another non-serializable exception, add docs, fix a possible security issue.

* Update API definition to reflect methods added to make more exceptions serializable
2018-03-02 16:15:09 +01:00
Joel Dudley
67697906d0
1076 - Filters out structural steps when tracking a flow via RPC. 2018-03-02 10:44:52 +00:00
Mike Hearn
3985211352
Fix the serialisability of TransactionVerificationException and subtypes. (#2695)
Add KDocs for the exceptions in this file, and deprecate exceptions that aren't actually used.
2018-03-02 10:36:47 +01:00
Shams Asari
bf712a893e CORDA-1048 - Making it simpler to move an existing local deployment of nodes to across different machines (#2697)
* Various cleanup of the network map code (#2604)

(cherry picked from commit 2af0fee)

* CORDA-1048: Making it simpler to move an existing local deployment of nodes to across different machines. (#2672)

This was achieved by having the hash in the node-info file to be just of the node's X.500 name. This also solves existing duplicate node-info file issues that we've been having.

Also updated the docsite.

(cherry picked from commit 8616f24)
2018-03-02 08:22:25 +00:00
Anthony Keenan
d77290831c CORDA-1035 - Testing api KDoc Updates (#2670)
* [CORDA-1035] Testing api KDoc Updates (#2584)

* Testing api KDoc Updates

* Update after code review

* Update api-current

* Revert changes to compiler.xml

* Made comment changes from review

* Fixing merge conflict

* Don't expose net.corda.node through test API (first pass)

* Fixing merge conflicts

* Update api-current

* Addressing review commits

* Fix exposure of internal implementation of MessageHandlerRegistration

* Make InProcess expose ServiceHub instead of internal StartedNodeServices

* Move InternalMockMessaginService interface to internal namespace

* Move MOCK_VERSION_INFO to internal namespace to avoid exposing VersionInfo

* Don't expose WritableTransactionStorage via testing api

* Create public VerifierType enum

* Update api-current and modify check-api-changes to check for net.corda.node exposures

* Fix merge conflicts

* Fixing another merge conflict

* Fix accidentally broken unit tests

* Make getInternalServices a property

* Fix failing unit tests

* Add todo to check-api-changes

* Fix rpc sender thread busy looping

* Fix tests

* Fixing tests

* Address mike's comments

* Fixing tests

* Make random port allocation internal

* Update api

* Update api
2018-02-28 15:59:56 +00:00
Andrius Dagys
dc990126d5 CORDA-696 - Contract upgrade transactions - handle WhitelistedByZoneAttachmentConstraint for input state constraint verification (#2664) 2018-02-28 13:35:09 +00:00
Andras Slemmer
de577904eb CORDA-1043 - recieveAll documentation (#2611)
* CORDA-1043

* Update API
2018-02-22 17:54:57 +00:00
Andrius Dagys
659d6c03ef CORDA-696 - Create separate transaction types for contract upgrade transactions (#2589)
* CORDA-986 and CORDA-985 CompositeKey and Signature verification performance fixes (#2467)

* CORDA-696: Create separate transaction types for contract upgrade transactions.

Add rationale around upgrade transactions

Move contract upgrade transaction resolution logic into internal until it's stabilised.

Throw a better exception when contract attachment not found

Default legacy contract constraint to always accepting - needs to be changed to whitelist constraint before merging

Introduce a new upgraded contract interface that allows specifying the legacy constraint.

Remove StateLoader, make all tx resolution functions take in ServicesForResolution

Contract upgrade transactions can handle whitelist by zone constraints

When creating a contract upgrade transaction, make sure the attachment of the old cordapp gets attached when using hash constraints.
Attachment lookup for a given contract class name only scans currently loaded cordapps, and we don't load old versions of cordapps.
2018-02-22 17:51:41 +00:00
Christian Sailer
ce4735da20 CORDA-1096 - Performance when loading multiple states from the vault (#2609)
* Provide efficient `loadStates()` implementation

* Replace loops using `loadState` with calls to `loadStates`
2018-02-22 16:12:07 +00:00
Andrius Dagys
7358e902a5 CORDA-941 - Instead of storing the network map contract implementation whitelist along with (#2581)
the constraint, pass it in during verification on LedgerTransaction
2018-02-21 16:45:50 +00:00
Andrius Dagys
f6c82dc99e CORDA-1010 - Send a request signature in addition to a transaction to the notary (#2573)
* Make NotaryFlow.Client more modular and easier to customise

* CORDA-1010: Send a request signature in addition to a transaction to the notary (#2527)

CORDA-1010: Notary flow - clients now send a signature over a notarisation
request in addition to the transaction. This will be logged by the notary
to be able to prove that a particular party has requested the consumption
of a particular state.
2018-02-20 12:09:51 +00:00
Tudor Malene
60a4bcba5b CORDA-941 - Add Network Parameters contract implementation Whitelist (#2539)
* CORDA-941 Add Network Parameters contract implementation Whitelist

* CORDA-941 fix merge

* CORDA-941 added uploader support to Attachments and added check into the AttachmentClassloader to only allow loading attachments that were uploaded from the local cordapps folder

* CORDA-941 update api spec

* CORDA-941 address some code review changes and fix and add classloader test

* CORDA-941 fix test

* CORDA-941 address code review comments

* CORDA-941 address code review comments - use and update existing whitelist

* CORDA-941 address code review comments

* CORDA-941 fix compile error

* CORDA-941 address code review comments

* CORDA-941 removed: whitelistAllContractsForTest

* CORDA-941 removed: whitelistAllContractsForTest

* CORDA-941 add comment

* CORDA-941 remove toLedgerTransaction

* CORDA-941 add warning when node not using latest CorDapp

* CORDA-941 remove the stubbing approach for cleaning LedgerTransaction

* CORDA-941 Code review changes

* CORDA-941 Fix merge

* CORDA-941 workaround for api scanner bug

* Fixed JacksonSupportTest.
2018-02-20 11:09:23 +00:00
sollecitom
22f6827131 CORDA-961 - Revert the introduction of GlobalProperties.
* Changes to LargeTransactionTests.
 * Code review changes.
 * Code review changes.
 * Code review changes.
 * Reverted to MAX_FILE_SIZE for Artemis.
 * reverted max message size for BridgeControlListener inside Node.kt
 * reverted max message size for BridgeControlListener inside Node.kt
 * Renamed setNetworkParameters to withNetworkParameters in MockNetwork.kt
 * Updated to reflect latest state.
2018-02-19 15:57:21 +00:00
Mike Hearn
c0448a0e3c Minor: reduce the size of the MockNetwork API a bit, add some better documentation 2018-02-16 18:40:43 +01:00
Shams Asari
4bc3f9ffa8 ENT-1519 - Ensure NodeInfo always has at least one address by checking in the c'tor (#2538) (#2542)
Further, the look up of the node's own node-info from its database has been tightened to ensure there isn't more than one.

Also fixed some brittle code which was assuming exactly one address rather than at least one.

(cherry picked from commit 2864ce1)
2018-02-16 16:52:08 +00:00
Anthony Keenan
b24ec9f680 CORDA-939 - Modify Api Scanner to check api for internal exposures (#2534)
* CORDA-939 Modify Api Scanner to check api for internal exposures (#2510)

* Update check api changes to look for internals

* Update several more uses of internal

* Make check-api-changes script filter out internal class usages

* Make CordaClock part of API

* Update api-current.txt

* Remove exclusion of nodeapi.internal

* Remove access to CordaPersistence from public api

* Don't expose DB Connection from StartedMockNode and remove unnecessary transaction from CustomVaultQueryTest

* Make internal tests that use need db access use InternalMockNetwork

* Make test certificates internal

* Address further review comments

* Revert some accidental changes to api-current.txt

* Address Shams' review comments

* Update Api Scanner to filter out CordaInternal attribute

* Update api-current.txt

* Remove superfluous brackets

* Add transaction to StartedMockNode

* More leaky transaction fixes

# Conflicts:
#	.ci/api-current.txt
#	node-api/src/test/kotlin/net/corda/nodeapi/internal/AttachmentsClassLoaderStaticContractTests.kt
#	node-api/src/test/kotlin/net/corda/nodeapi/internal/AttachmentsClassLoaderTests.kt
#	node/src/integration-test/kotlin/net/corda/node/services/AttachmentLoadingTests.kt
#	node/src/test/kotlin/net/corda/node/internal/cordapp/CordappProviderImplTests.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/InternalMockNetwork.kt
#	testing/test-utils/src/main/kotlin/net/corda/testing/internal/MockCordappConfigProvider.kt
#	testing/test-utils/src/main/kotlin/net/corda/testing/internal/MockCordappProvider.kt

* Bump gradle plugins version

* One last internal exposure

* Update constants.properties

* Fix api-current

* Address mikes review comments
2018-02-16 15:22:13 +00:00
Katelyn Baker
f0e52e1eed
CORDA-1007 - Tweak the way invocation context is integrated to reduce the pain for devs using the old API (#2447) (#2524)
Minor tweaks to the invocation context code.

1) Un-deprecate FlowInitiator, move the deprecation to the field. This
   eliminates large numbers of warnings and means developers are warned
   only once in the place where they obtain one.

2) Add documentation for StateMachineInfo and create a type alias to give
   it a better name in an ABI compatible way.

3) Improve markup on InvocationContext

4) Rename field from just "context" to "invocationContext" (Context is vague)
2018-02-13 13:12:26 +00:00
Joel Dudley
c9ade00de6 No IdentityServiceInternal as public param. Start nodes without params. Simpler MockServices ctors. (#2521)
* Removes IdentityServiceInternal as a public parameter to MockServices.

* Reorders params to put non-default args first. Creates simpler default constructors.

* Adds constructors for creating mock nodes by passing params.
2018-02-13 11:32:04 +00:00
Shams Asari
49f75dab9c CORDA-1006: Undoing the wiring of maxMessageSize as it's not correctly implemented and updating the docs to clarify its status. (#2501)
The network parameter was just fed into Artemis' minLargeMessageSize property which isn't the same thing.
2018-02-13 11:31:39 +00:00
Konstantinos Chalkias
133bff90a6 CORDA-967 - Allow multi-tx signature verification (#2495)
* Allow multi-tx signature verification

* remove empty line

* CORDA-967 Allow multi-tx signature verification
2018-02-13 09:45:15 +00:00
Michele Sollecito
fbb7f8f019 CORDA-990 - Flows Draining Mode (#2507)
* [CORDA-990]: Flows Draining Mode

* Fixed incorrect disconnect login.

* Code review changes.

* Fixed compilation error about MockNetwork...

* Fixed compilation error about MockNetwork...

* Fixed broken compilation.

* Ignoring an unstable test.
2018-02-13 09:34:10 +00:00
Anthony Keenan
e363090f30 CORDA-939 - Don't expose StartedNode and AbstractNode as part of public test api (#2472) (#2505)
* Don't expose StartedNode via Node Driver

* Dont expose StartedNode/Abstract Node via MockNetwork

* Remove internal var from constructor as it doesn't hide from public api and change to internal initialisation method

* Update api

* Rename MockNode to StartedMockNode to avoid confusion
Update documentation
Update api-current.txt

* Fix typo

* Fix test failure

* Modify flow tests to use internal mock network and remove additional internal exposures from StartedMockNode

* Fix api-current

* Change InProcess and OutOfProcess to interfaces

* Explicitly declare MockNetwork parameters
Dont expose StateMachineManager
Move affected tests to use internal mock network

* Fix api-current

* Changes requested via review

* Fix IRS Demo address

* Fix api

* Remove internal attribute from classes in internal package

* Remove accidentally added code

* Move useHttps into NodeHandleInternal

* Remove duplicated code

* Update api-current

* Make webAddress internal on NodeHandle

* Make sure parameters in public api are explicitly specified

* Use correct address in IRS Demo

* Get webaddress from webserver handle

* Update api-current

# Conflicts:
#	.ci/api-current.txt
2018-02-12 13:26:56 +00:00
Patrick Kuo
c18bc8758f CORDA-961 Wire up and enforce max transaction size (#2465) (#2493)
* wire up and enforce max transaction size

* fixup after rebase
moved network parameter from AbstractNode to NodeProperties

* removed TODO

* fix broken import

* address PR issues

* remove API breaking change
address PR issue

* added max transaction size to driver and mock network.
address PR issues

* fix failing test

* added TODO

* fix verifier test

* fix spring driver build error

(cherry picked from commit c8cf46c)
2018-02-09 17:24:15 +00:00
Katarzyna Streich
af4aba2bfa First approach to network parameters updates (#2412) (#2487)
* Network parameters updates

Add two RPC methods networkParametersFeed and
acceptNewNetworkParameters. Implementation of client handling of network
parameters update event. Partial implementation of accepting new
parameters and installing them on the node as well as node startup with
updated parameters.

Move reading of network parameters on startup to separate
NetworkParametersReader class. Add tests.

Move NetworkParameters and NotaryInfo classes to core.

* Ignore evolvability test - to be fixed later

* Add documentation on update process
2018-02-09 14:55:19 +00:00
Anthony Keenan
e41408d21e CORDA-939 - Dont expose FlowStateMachine via public API (#2438) (#2476)
* CORDA-939 - Dont expose FlowStateMachine via public API (#2438)

* Create CordaInternal attribute for properties on public classes that are not part of the api and apply to FlowLogic.stateMachine

* Remove startFlow from public test api and replace with startFlowAndReturnFuture

* Update api-current with changed signature

* Change test used in documentation to use public test methods

* Remove the rest of the unneccessary usages of the startFlow test utility

* Remove extra whitespace

* Rename startFlowAndReturnFuture back to startFlow

* Update api

* The annotation doesn't appear unless its marked as on the actual getter and setter

* Updated docs and removed pointless attribute

* Deleted whitespace

# Conflicts:
#	.ci/api-current.txt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/NodeTestUtils.kt

* Revert api-current to v1 api

* Adding missing line and missing annotations

* Made changes post review

* Minor text change
2018-02-08 14:40:16 +00:00
Katelyn Baker
e5627622db CORDA-943 - Deterministic serialization order breaks object ref cache 2018-02-02 10:40:14 +00:00
Patrick Kuo
941429d3a7
Remove word restriction in corda x500 name (#2439)
* Remove word restriction in x500 name https://github.com/corda/corda/issues/2326

* remove unused const

* address PR issue

* address PR issue

* address PR issue
2018-01-31 17:05:52 +00:00
Andrius Dagys
e357a88181
Deprecate TimeWindowChecker, make TimeWindowInvalid report exact current time and transaction time window (#2280)
* Make notary service return the current time and the transaction time window
along with the TimeWindowInvalid error.

Deprecate TimeWindowChecker.
Add a static method for validating transaction time window to reduce code duplication.
2018-01-26 09:32:11 +00:00
Mike Hearn
17a6f61eba
Simplify CashTests and add some comments/convenience APIs to MockServices (#2241) 2018-01-25 16:29:26 +01:00
Andrzej Cichocki
242d9cf7ad
CORDA-692 Don't include internal packages in API documentation (#2415)
* Use G1 for gradle daemon
2018-01-25 15:26:13 +00:00
Michele Sollecito
9783f11ba8
Exposed RPC SSL settings through Cordformation (#2419) 2018-01-25 14:32:58 +00:00
Shams Asari
0fa6969d5d
Added various X509 utilities to remove some of the existing boilerplate. (#2416) 2018-01-24 18:07:29 +00:00