Commit Graph

2398 Commits

Author SHA1 Message Date
Mike Hearn
96134c8cfa Bugfix: register SwapIdentitiesHandler again. (#4789) 2019-02-19 18:42:32 +00:00
JamesHR3
efabab35c4 [CORDA-2636] Ensure states created with contract upgrades can be migrated (#4786)
* Ensure states created with contract upgrades can be migrated

* Remove line from api-current.txt representing an uncallable constructor
2019-02-19 09:48:39 +00:00
Tommy Lillehagen
21d32681ff
CORDA-2634 - Fix derivation of currentTargetVersion for abstract classes (#4784)
* CORDA-2634 - Fix default currentTargetVersion

* CORDA-2634 - Include abstract flow classes in CorDapp class scanning

* CORDA-2634 - Run test for target platform version 4
2019-02-19 08:47:49 +00:00
JamesHR3
055aabe1bb [CORDA-2627] Fail the custom vault state migration if any states were skipped (#4782)
* Fail the migration if any states were skipped

* Update test case to check running a second time
2019-02-18 15:39:37 +00:00
Tudor Malene
626fa19769 CORDA-2631 - removed unused version mapping and revert tracking test (#4781)
CORDA-2631 - removed unused version mapping and revert tracking test
2019-02-18 14:49:57 +00:00
Mike Hearn
1ed5fce6a6 Backwards compat: Put the confidential-identities module back in the node classpath by default. Separating it out into a standalone "app" needs more thought and design work, if we do it at all. 2019-02-18 14:02:36 +01:00
Shams Asari
b2d0ba7e14 CORDA-2613: FinalityHandler is no longer gated on app target versions
To allow rolling upgrades where members of a BN may not all upgrade at the same time, the FinalityHandler is now always enabled, and not disabled if no old apps are installed.

Previously any attempt to use the FinalityHandler in such a scenerio would send the flow to the hospital, where manual intervention would be required to recover the transaction.
2019-02-18 11:58:23 +01:00
JamesHR3
9353e4dd93 [CORDA-2561] Use the attachments classloader to deserialise contract states in migrations (#4754)
* Use the attachments classloader to deserialize contract states in migrations

* Added some comments to explain serialisation behaviour and how tests work.

* Add debug log to indicate when attachment classloading has failed.

* Use a servicesForResolution to load states for compatibility with notary changes and contract upgrades

* Add test case to cover notary change transactions

* Address review comments

* Change logging message in MigrationServicesForResolution

* Read the network-parameters file if there is nothing in the database

* Update documentation and provide a warning if there are many states.
2019-02-17 08:24:02 +00:00
JamesHR3
092d66ac45 [CORDA-2591] Prevent spurious logs in AttachmentVersionNumberMigration (#4765)
* Handle case where file containing network parameters is missing

* Improve logging if attachments are not available and the file path doesn't exist

* Get logs the right way around

* Fix build error in tests
2019-02-16 07:54:07 +00:00
JamesHR3
9b2725d3aa [CORDA-2486] Improve transaction deserialisation errors and fix possible migration issue (#4761)
* Improve error when transaction deserialisation fails and move migrations for finance to contracts CorDapp

* Revert move of migrations and errors thrown from CordaRPCOps

* Ensure VaultQueryException is thrown from vault queries and remove unused import

* Improve error reporting from VaultQueryException

* Fix API break

* Fix vault query test failure due to exception change
2019-02-15 17:43:04 +00:00
Tudor Malene
3d362e066c CORDA-2595 - check that all attachments are trusted before loading (#4763)
CORDA-2595 - Fix test and api.

CORDA-2595 add test

CORDA-2595 fix tests

CORDA-2595 fix test and address code review comments

CORDA-2595 address code review comments
2019-02-15 17:33:14 +00:00
josecoll
6314c1757a Incorporating feedback from PR review. 2019-02-15 10:55:13 +01:00
josecoll
4feac7f3f0 Shorten system property name. 2019-02-15 10:55:13 +01:00
josecoll
e252401169 Disable hash constraints using system property. 2019-02-15 10:55:13 +01:00
Roger Willis
060bbb0a9d CORDA-2563: Assign external IDs when creating new keys (#4727)
* First pass at fixing 2563.

* In memory KMS now maps keys to IDs.

* CreateDatabaseAndMockServices now creates a persistent key management service and a can take a persistent identity service, so now the external id mapping works for mock services.

* * Created a helper for mock services which allows the creation of a mock services with persistent identity management service key management service and vault.
* MockNode now uses persistent key management service - not sure why it didn't do before?

* * MockNode now uses BasicHSMKeyManagementService
* Updated api-current file

* Little fix required after rebase to master.

* Fixed broken test.

* Added informative error messages to UnsupportedOperationExceptions thrown by E2ETestKeyManagementService.

* Removed redundant private constructor for mock services from api-current.txt.

* Addressed Rick's comments.
2019-02-14 15:18:37 +00:00
josecoll
0bdc8b363a
CORDA-2576 Viral update propagation: select attachments from those loaded by node on startup. (#4745)
* Retrieve contract attachment(s) loaded by node.

* Remove redundant integration test case (downgrade rule checking)

* Address PR review comments.

* Revert changes to classloading dependencies hack.
2019-02-14 13:39:14 +00:00
Dimos Raptis
e6c6c69266 [CORDA-2512] - Adjust uploadAttachmentWithMetadata RPC to use privileged import (#4750) 2019-02-13 15:52:08 +00:00
JamesHR3
4e2a295eb6
[CORDA-2487] Provide a migration for vault states when moving from V3 to V4.1 (#4699)
* Create a new custom migration for populating the state_party table and the relevancy_status column within the vault_states table when migrating from V3 to V4.

* Add a corresponding unit test suite.

* Small refactorings to expose data required by the migration: the isRelevant function in the NodeVaultService, and the node's legal name from the configuration.
2019-02-12 15:22:15 +00:00
Mike Hearn
02645f7b9e Rework package namespace ownership check to verify every package of every class file.
Previous implementation was in LedgerTransaction and focused only on contract classes,
but every package matters.

Also fixes some exception types and does misc refactorings.
2019-02-11 17:10:50 +01:00
Mike Hearn
0a9f4c68ae Minor refactorings.
Take out a useless parameter from a method that was added to the public
API, document it. Add some comments explaining more about why we are
looking up attachment versions in WireTransaction.toLedgerTransaction.
2019-02-11 17:10:50 +01:00
Thomas Schroeter
cdac97120a
[CORDA-2547] Migrate table of SimpleNotaryService (#4722)
* CORDA-2547: WIP Migrate old notary schema correctly.

Modify liquibase scripts to rename the old committed state table instead of creating a new one.

* Rename liquibase change sets

* Change 3.3 baseline before Liquibase.

* Aligin with ENT, orginal node-notary.changelog-v1.xml moved to node-notary.changelog-v2.xml and it's compatible with ENT (which already has changes from v2).

* Aligin with ENT, orginal node-notary.changelog-v1.xml moved to node-notary.changelog-v2.xml and it's compatible with ENT (which already has changes from v2) - adding v2 to master file.

* Ensure setting up Liquibase on pre-existing pre-Liquibase database
2019-02-08 16:30:02 +00:00
Katarzyna Streich
f729453fee CORDA-2334 - Net Params non-downgrade verification in transaction resolution / building. (#4351)
* Add FetchParametersFlow

* No downgrade parameters in ResolveTransactionsFlow

Make sure that parameters in the transaction
graph are ordered (this is to prevent the downgrade attack, when the
malicious notary and participants sign transaction that shouldn't be
notarised otherwise). We ensure that by checking that epochs of network
parameters in the transaction chain are ordered.

* Addressed some minor items from RP review feedback.

* Refactoring following rebase from master.

* Address RP PR review comments (round 2)

* Addressed a couple of minor PR review points.

* Renaming of unit tests and cleanup.

* Changes discusses with RP to ensure Network Param checking is applied at txn verify time + resolve order checking gated on existence of tagged NPs in txn and associated minimum platform version.

* Do not fail on missing ServiceHub impl + return nothing if txn not NP tagged.

* Unify HistoricNetworkParametersStorage and
NetworkParametersStorageInternal

* SignedDataWithCert implements NamedByHash

* Cleanup

* Move parameters ordering check to signed transaction resolution

* Fixes after merge, address comments

* Address Andrius comments
2019-02-08 15:29:32 +00:00
Shams Asari
c667df9bec
Port over ENT changes (#4706)
Port of commit 9b55ad2680
2019-02-01 18:10:10 +00:00
Shams Asari
c39c61ecab
CORDA-2467: Moved non-contract things out of finance-contracts and into finance-workflows (#4700)
This includes all of the cash selection logic, JSON support using jackson and a bunch of utilities which are not relevant to contract verification. The exception to this are Interpolator which has been moved to the IRS demo, and PhysicalLocationStructures.kt which is now in explorer.
2019-02-01 17:31:12 +00:00
josecoll
099a747ebf
CORDA-2526 Allow for duplicate signed attachments in devMode (#4691)
* Allow for duplicate (contract class, version) signed attachments in devMode.

* Code clean-up.

* Fix compilation error in test code.

* Additional gating/warning and added Unit test for development mode behaviour.
2019-01-31 14:41:23 +00:00
Christian Sailer
deba96dce9 ENT-2991 Deadlock between AppendOnlyPersistentMap and underlying database (#4676)
* Remove locks around database access in AppendOnlyPersistentMap and introduce
a unit test that checks that known deadlock scenarios of the old version
are avoided.

* Fix Deadlock unit test

* Add some extra latching to try and make timing less fragile.  Can never be perfect though.

* Review feedback, and some thread safety fixes.
2019-01-30 18:20:53 +00:00
Roger Willis
365471d9f4
CORDA-2531 State mappings are now also updated for new reference states. (#4681)
* State mappings are now also updated for new reference states.
Added a test to prove the above works.

* Addressed Rick's review comments.
2019-01-30 10:42:43 +00:00
Rick Parker
7dc7313fb7
ENT-3000 Start pooling classpath scanning and related fixes (#4664)
* Start pooling classpath scanning

Quickly patch synchronisation of attachment class loader cache.  Needs a revisit but more complicated due to DJVM.

Annotate away for DJVM

Take ClassGraph utils into their own file so we can exclude for DJVM

Clean up a little

* Daemonize the threads

* Seems to be some concurrency problems with use of ClassGraph.  Using a mutex for now to work around.
2019-01-30 10:35:20 +00:00
Andrius Dagys
9ade410109 Minor: remove redundant Raft migration script 2019-01-30 10:50:17 +01:00
Katarzyna Streich
6efd54fce1
CORDA-2520: Add FetchParametersFlow (#4674)
* CORDA-2520: Add FetchParametersFlow

* Address comments, add test
2019-01-29 18:16:37 +00:00
Shams Asari
88e4b85537
CORDA-2521: Checkpoint verifier no longer cares about the CorDapp jar name (#4669)
The check on the CorDapp hash is sufficient.
2019-01-29 16:32:07 +00:00
Tudor Malene
262a7ad1b7
Backport merge fixes added to ENT (#4618)
Fix test and address code review comments.
2019-01-29 13:45:04 +00:00
Andrius Dagys
cfa06853c0 CORDA-2524: Minor – reduce notary service logging noise 2019-01-29 10:23:55 +01:00
JamesHR3
22462cc1e8
[CORDA-1596] Improve error message when CorDapp schema changes (#4506)
* Raise schema exceptions with better error

* Add test and use new exceptions
2019-01-29 08:17:05 +00:00
Shams Asari
2262d05d5c
Made NetworkMapTest leaner (#4645)
Merged three tests into one to avoid repeating the same node startups. The assertions the original tests made can be done in one test without any contamination.
2019-01-28 17:50:26 +00:00
Shams Asari
e20278fbfd
Made FlowCheckpointVersionNodeStartupCheckTest leaner (#4640)
* Removed `restart node successfully with suspended flow` as it duplicates `TraderDemoTest#Test restart node during flow works properly`
* Removed the need for a notary
2019-01-28 14:08:54 +00:00
Shams Asari
49e23bca82
Removed AsymmetricCorDappsTests (#4642)
This is only testing the internal cordappForClasses method which is used for internal testing. This method is covered by other unit and integration tests.
2019-01-28 13:59:38 +00:00
Shams Asari
fc7428a40d
CORDA-2503: Added installCordaService to UnstartedMockNode to allow tests with custom test-only services (#4655) 2019-01-28 13:49:01 +00:00
Shams Asari
3db35d8911
Made NodeRegistrationTest leaner (#4644) 2019-01-28 10:54:30 +00:00
Roger Willis
0e1c20a883
CORDA-2497 fix (#4630)
CORDA-2497 fix
* Added test to show the fix working.
* Now backwards compatible.
* Refactored out some duped code.
* Added better explanations for what's going on.
* Fixed test which was failing due to the serializationEnvRule problem.
* Addressed Tudor's review comments.
2019-01-24 20:36:33 +00:00
szymonsztuka
9f4c8bcea5
CORDA-2490 Attachment in the directory fails to correctly upload (#4627)
The column 'uploader' was marked as not updatable entity so any update wasn't propagated to the database when the attachment was uploaded again and the uploader field was changed to a trusted one. Also 'saveOrUpdate' removed, the entity is already managed, saveOrUpdate is for detached/new entity.
2019-01-23 20:29:16 +00:00
Shams Asari
5bb5244e55
CORDA-2228: Exceptions emanating from ReceiveFinalityFlow are sent to the flow hospital (#4621) 2019-01-23 16:24:49 +00:00
josecoll
100a6fcb56
CORDA-2475 Adjust attachments query logic to return correct results (#4612)
* CORDA-2475 Adjust attachments query logic to return correct results sets for signed/unsigned jars.

* Updates following PR review feedback by RP.
2019-01-22 22:57:43 +00:00
Anthony Keenan
ee4f4f5702
Fix issue with devModeOptions.allowCompatabilityZone not working (#4613) 2019-01-22 10:23:14 +00:00
Shams Asari
c6a7d14f4f
Reducing the size of the CorDapp jars used in tests (#4600)
The helper method enclosedCordapp is a replacement to scanning the current package (which pulls in a lot more into the jar than intended).
2019-01-21 13:54:26 +00:00
szymonsztuka
26cfea202b
CORDA-2450 Creating attachment version from whitelisted JARs fails for node upgrade (#4593)
Upgrade from node 3.0 to 4.0 fails to create versions of whitelisted JARs from networkParameters - read parameters from file at first as in Corda 3.0 there no relevant table, then try from the table.
As this is migration, the code will run only once on each node, she increased log level to info for messages. Tested using https://r3-cev.atlassian.net/browse/R3T-1549
2019-01-17 17:26:24 +00:00
JamesHR3
6b149f8aad CORDA-2432 - Update documentation for filtering by state relevancy in vault queries (#4577)
* Update changelog with changes to vault queries

* Move choice of relevancy state to QueryCriteria

* Ensure relevancy default is correct for all query types

* Remove superfluous imports

* Update documentation for queries using state relevancy

* Fix merge damage

* Revert change to use RELEVANT as the default and update docs

* Revert missed instance of relevancy change

* Rewrite of upgrade notes for vault state query updates

* Address review comments
2019-01-16 19:53:49 +00:00
Tudor Malene
03cff6bd00
Fix flaky test. (#4586)
* Fix flaky test.

* Address code review comments.
2019-01-16 12:02:40 +00:00
Wawrzyniec 'Wawrzek' Niewodniczanski
78a70d2355
Merge pull request #4525 from corda/wn-redo-node-conf-docs
Redo Corda Operation docs [CORDA-2251]
2019-01-15 16:09:27 +00:00
Shams Asari
f592025273 Regen isolated jar to fix failing test(s) (#4583)
https://github.com/corda/corda/pull/4541 removed TransactionBuilder c'tor (which was introduced post-V3) which the frozen isolated jar was using
2019-01-15 14:56:57 +00:00
Dimos Raptis
fbb00bff9c
[CORDA-2431] - Small refactorings following-up on PR-4551 (#4564)
* Small refactorings following-up on PR-4551

* Adjust thread context class loader

* Address Shams' comments
2019-01-15 14:34:11 +00:00
Michele Sollecito
05ffb3d101
CORDA-2403: Flagged API issues between 4.0 and 3.3. (#4541) 2019-01-15 14:27:29 +00:00
Tudor Malene
44733da8b6
Increase timeout (#4579) 2019-01-15 10:20:56 +00:00
Wawrzyniec 'Wawrzek' Niewodniczanski
e003eedd38
Merge branch 'master' into wn-redo-node-conf-docs 2019-01-15 10:05:00 +00:00
Tudor Malene
d1575b4031
Exclude more packages from quasar instrumentation. (#4563) 2019-01-14 16:58:04 +00:00
Shams Asari
24a7821dce
CORDA-2434: CordaRPCClient now only has c'tors rather a mix of c'tors and factory methods (#4569) 2019-01-14 16:07:56 +00:00
Wawrzyniec 'Wawrzek' Niewodniczanski
2f18ce9440
Merge branch 'master' into wn-redo-node-conf-docs 2019-01-14 15:31:32 +00:00
Shams Asari
3b8347e150
Fixed AttachmentLoadingTests (#4565)
There were two issues:
* The original "sealing violation: can't seal package net.corda.nodeapi" issue was due to the isolated CorDapp containing some code in the net.corda.nodeapi namespace. This has been moved to the isolated namespace.
* The test was not correctly creating the second transaction with the dummy command
2019-01-14 14:32:14 +00:00
Dimos Raptis
5b34020e59 [CORDA-2390] - Add whitelists and custom serializers from cordapps to serialization … (#4551)
* Add whitelists and custom serializers from cordapps to serialization context

* Remove changes in TransactionBuilder, add caching

* Add whitelists and custom serializers from cordapps to serialization context

* Remove changes in TransactionBuilder, add caching

* Address comments

* Increase node memory for SIMM integration test

* Cache only serialization context

* Increase integ test timeout

* Fix API breakage

* Increase max heap size for web server integ test

* Move classloading utils from separate module to core.internal

* Adjust heap size for more integ tests

* Increase time window for IRS demo transactions

* Fix determinator

* Add parameter in core-deterministic

* Stub out class-loading method for DJVM
2019-01-13 20:15:05 +00:00
JamesHR3
36cd9b9791
[CORDA-2402] Ensure out of order transactions result in correct vault state (#4559)
* Pass states to record through to transaction resolution

* Add a test case

* Add comment indicating why states are always added in tx resolution

* Update observer node documentation
2019-01-13 15:03:53 +00:00
szymonsztuka
7a4b6b3e44
CORDA-2405 Update versions of whitelisted attachments (#4549)
The version of contract attachments that are whitelisted should be read from NetworkParameters.whitelistedContractImplementations.
It use the lattes network map from db with the highest epoch.
2019-01-13 11:38:19 +00:00
Roger Willis
084b3a1a1d
CORDA-2426 Fixed bug in state pointer search. (#4561)
* Fixed bug in state pointer search and added tests.

* Blacklisted problematic package.

* Addressed Shams' comments.

* Addressed round two of comments.

* Fixed another bug whereby the DFS gets stuck in an infinite loop.
2019-01-13 08:58:52 +00:00
Shams Asari
caad18f6db
CORDA-2347: Added backwards compatibility to SwapIdentitiesFlow (#4548)
The API has been reverted to be completely ABI compatible with V3, and the small changes that were made to the wire format in https://github.com/corda/corda/pull/4260 have also been reverted.
2019-01-12 14:23:20 +00:00
JamesHR3
0832587096
[CORDA-1897] Improve exception handling on startup (#4452)
* Select a console logger based on logging level

* Ensure consistent formatting

* Ensure stack traces only printed when console logging enabled
2019-01-11 17:40:32 +00:00
Andrius Dagys
4004e9473d Exclude BFT smart tests from the build (#4557) 2019-01-11 16:03:54 +00:00
szymonsztuka
9b8fda0d6d
CORDA-2375 Ensure node has unique attachment contract classname/version from signed JARs (#4535)
Corda Node ensures a given contract class and version can be sourced from only one signed and trusted Attachment (JAR).
An attempt to import a signed JAR as a trusted uploader (or promote to be trusted) with a class and version already present in the other trusted Attachment will raise DuplicateContractClassException.

Minor fixes to Hibernate Attachment Query parser (original query to select attachment without signers would always return no attachments)
2019-01-10 14:13:00 +00:00
Christian Sailer
b5fc095288
Use FlowTimeOut exception rather than SQL deadlock in unit tests to avoid hitting the exponential back-off. (#4527) 2019-01-10 09:59:21 +00:00
Andrius Dagys
fa025dedeb
ENT-2822: Move experimental raft and bft-smart notaries back into node, fix reference state support (#4509)
Move Raft and BFT-Smart notaries back into node to preserve backwards compatibility.

* Allow overriding full node config when using internal mock network parameters.

* Make BFT-Smart notary start up in prod mode as well

* Move raft & bftsmart notaries to net.corda.notary.experimental package

* Make sure Raft notary handles reference state edge cases correctly.

* Make sure BFT-Smart notary handles reference state edge cases correctly.

* Include notary schemas in node internal schemas

* Undo Raft notary table schema changes to maintain compatibility.
2019-01-09 15:52:42 +00:00
josecoll
4530a5e982
CORDA-2395 Add cordapp code signing dev key to production blacklist. (#4519)
* Add cordapp code signing dev key to production blacklist.

* Remove code used to generate the actual PK hash (it is now attached to the JIRA story)

* Remove wiki page reference.

* Remove the non redundant cash transfer.
2019-01-09 15:41:24 +00:00
Tudor Malene
d33cb16c5e
ENT-2923 - remove db access code from the verification thread pool (#4504)
* ENT-2923 - remove db access code from the verification thread pool

* Remove worker pool for tx verification and disable db access.

* Address code review comments
2019-01-08 14:37:26 +00:00
Rick Parker
ce250cfafd
ENT-2924 Fix performance of identity checking. (#4515)
* Concentrate accesses to the identity cache.

* Fix tests to reflect change in semantics / method name.

* Delete unused method and tests.
2019-01-08 14:35:32 +00:00
Matthew Nesbit
93d256649f
Reduce the operation of ip autodetect to nodes specifying localhost (#4435)
* Reduce the operation of ip autodetect to nodes specifying localhost, rather than any node with a 192.168.x.x or 10.x.x.x address. Also, catch the common user error of specifying 0.0.0.0 in p2pAddress.

* Fix test that uses invalid config
2019-01-08 09:55:16 +00:00
Tudor Malene
57a70fa1e8
Attempt to fix master (#4517)
* Attempt to fix master

* Attempt to fix master

* Attempt to fix master

* Attempt to fix master

* Ignore failing test

* Ignore failing test
2019-01-08 08:02:38 +00:00
Tudor Malene
b13e92cb24 Fix tests (#4513) 2019-01-07 09:25:05 +00:00
Stefano Franz
e98dbcc2af move back into test-utils 2019-01-04 17:58:43 +00:00
Stefano Franz
c507326ed1 fix breakages due to package movement of the Finance dummy schemas 2019-01-04 17:58:43 +00:00
Stefano Franz
fba47256d4 add magic words to publish the test-contracts jar 2019-01-04 17:58:43 +00:00
Stefano Franz
5081fcc9a8 break out the FungibleAsset testing schemas into module to prevent having to publish a test-jar. 2019-01-04 17:58:43 +00:00
Tudor Malene
24d91c5f89
CORDA-2384 - Fix driver classpath (#4472)
* Fix driver classpath

* Fix tests

* Fix classloader bug.

* Fix tests

* Fix tests

* Fix api

* Disable failing irs test.

* Address code review comments

* Remove @Ignore from test

* Remove @Ignore from tests

* Address code review comments.

* Attempt to fix simm valuation test

* Attempt to fix simm valuation test

* Comment failing functionality.
2019-01-03 20:06:35 +00:00
Michele Sollecito
5d3b24dcfa
[CORDA-2387]: Seeing warnings for "Double insert in net.corda.node.utilities.AppendOnlyPersistentMap" (fixed) (#4499)
* [CORDA-2387]: Reproduced the issue in a test.

* [CORDA-2387]: Fixed.

* [CORDA-2387]: Fixed.
2019-01-03 17:59:34 +00:00
Shams Asari
f590300cdf
CORDA-2345: Updated docs to use the new TestCordapp API, rather than the old scan cordapp packages (#4491)
Also made some improvements to the API, especially for Java users.
2019-01-03 17:57:28 +00:00
Shams Asari
055beefd02
CORDA-2391: Revert behaviour of Try.on to V3 (#4497)
Apps may depend on the previous behaviour of catching Throwable rather than just Exception. Better to not risk this break and instead provide a helper to throw Errors.

Also using Consumer to avoid ugly usage in Java for doOnSuccess and doOnFailure.
2019-01-03 16:48:42 +00:00
JamesHR3
17c654803d
[CORDA-2298] Update trackBy documentation (#4496)
* Update the documentation for trackBy to better indicate that updates are not filtered according to the query criteria
* Add a test that shows the behaviour, which is skipped for now until a solution is implemented.
2019-01-03 16:23:54 +00:00
Tudor Malene
97e02cd9ca
Remove whitelist constraint warnings. (#4488) 2019-01-03 11:53:29 +00:00
Shams Asari
2622c8fe51
CORDA-1942: Renamed NetworkParametersStorage to NetworkParametersService to match its public usage (#4487)
As a public API it's not a true storage - CorDapps can't add network parameters.
2019-01-03 08:52:39 +00:00
Michele Sollecito
30b138a847
[CORDA-2376]: Unable to make contract attachment trusted if it was received via network (fixed). (#4474)
* [CORDA-2376]: Unable to make contract attachment trusted if it was received via network (fixed).

* [CORDA-2376]: Wrote some tests.

* [CORDA-2376]: Wrote some tests.

* [CORDA-2376]: Code review changes.

* [CORDA-2376]: Code review changes.
2019-01-02 18:11:53 +00:00
Tudor Malene
ee9251bd25
CORDA-2327 add attachments for missing dependencies (#4456)
* CORDA-2327 first draft - add attachments for missing dependencies

* CORDA-2327 draft - fix unit tests

* CORDA-2327 draft - some cleanup.

* CORDA-2327 fix test

* CORDA-2327 fix test

* CORDA-2327 fix test

* CORDA-2327 Address code review comments

* CORDA-2327 fix api

* Address code review comments

* CORDA-2327 Address code review comments

* CORDA-2327 Address code review comments

* Fix merge

* Address code review comments
2019-01-02 16:16:53 +00:00
Shams Asari
9a484998bb No longer using deprecated MockNetwork c'tor (#4481) 2019-01-02 09:51:51 +00:00
Viktor Kolomeyko
5e16961fee
ENT-2847: Ent port: Make logging pluggable in NetworkRegistrationHelper. (#4477) 2019-01-01 20:42:43 +00:00
Shams Asari
b4c3fa1948
Fixed incorrect attachment loading integration test (#4453)
* Fixed incorrect attachment loading integration test

`AttachmentLoadingTests.test that attachments retrieved over the network are not used for code` was a false-positive - it was incorrect on multiple levels. Fixing it required updating the finance:isolated CorDapp, at which point it was given the new MANIFEST metadata for V4, and moved out of the net.corda.finance namespace to avoid package sealing issues.

The new test exposed a bug in the LedgerTransaction verification logic. This was cleaned up as it was too easy to verify on the wrong instance.
2018-12-31 15:02:11 +00:00
Shams Asari
33670d62b1
Closing the app class loader on node shutdown (#4479) 2018-12-31 13:15:29 +00:00
Viktor Kolomeyko
cd842274ab
ENT-2913: Port from Ent: Add deprecated annotation for compatibilityZoneURL (#4475) 2018-12-28 17:51:26 +00:00
Wawrzyniec Niewodniczański
718d4b3630 Reorder Ops docs
- reorder Ops docs page to make it easier to follow
- reorder content of node.conf fields
- fix docker-image hierarchy
2018-12-28 17:19:07 +00:00
Shams Asari
c08f65a92c
CORDA-2128: Moved all the helper methods added to NetworkParameters.kt into internal (#4466) 2018-12-27 14:21:37 +00:00
Shams Asari
00672f97fa
CORDA-2128: Moved constraints and attachments stuff out of the public API that shouldn't be there (#4460) 2018-12-24 15:09:38 +00:00
Shams Asari
60d215aaa8
Fixed incorrect usages of assertFailsWith (#4458)
The overload that takes in a String does NOT check that the exception thrown has that message, which is what these tests are assuming. Rather it's the assertion message when the test fails.
2018-12-24 09:44:48 +00:00
josecoll
6f9f6fd870 CORDA-2366 - Adjust assertions to cater for any ordering of results. (#4455) 2018-12-23 16:53:01 +00:00
Andrius Dagys
6f0bc42098 ENT-2813: Fix uniqueness provider double insertion issue
Fix an issue where a transction id is committed twice if a
reference-only transaction gets re-notarised.

Added more tests.

add fix
2018-12-21 22:29:16 +00:00
Dimos Raptis
8ac32f52f6 CORDA-1839 - Remove race condition between trackBy and notifyAll (#4412)
* CORDA-1839 - Remove race condition between trackBy and notifyAll

* Fix null check

* Improve filtering

* Switch equality test to refs

* Refine filtering of seen updates

* Add entry in the changelog

* Address comments
2018-12-21 09:40:07 +00:00
JamesHR3
39e5dc5749
[CORDA-1828] Documentation update for observer nodes (#4443)
CORDA-1828 Documentation update for observer nodes

* Update observer node documentation

* Added test to catch original issue if seen again
2018-12-21 08:18:14 +00:00
Tudor Malene
3c13c07c09
CORDA-2344 Set contextClassloader on the flow threads. (#4437)
* CORDA-2344 Set contextClassloader on the flow threads.

* CORDA-2344 Set contextClassloader on the flow threads.
2018-12-20 15:04:16 +00:00
Rick Parker
3efbad34cc
ENT-2848 remove need for generated IDs on some frequently used tables (#4446)
* Working version

* api-current.txt change to remove diff due to inheritance hierarchy change.

* api-current.txt change to remove warnings of abstract methods in new interfaces.

* Fix indent
2018-12-20 13:06:21 +00:00
Shams Asari
830959c9f7
CORDA-2345: Simplified TestCordapp to make it inline with the recent CorDapp versioning changes (#4434)
TestCordapp has now two implementations to clearly separate the two use cases it has in the Corda repo:

* TestCordappImpl which implements the revised public API of TestCordapp; namely that a TestCordapp instance references a real CorDapp jar on the classpath. This is either an external dependency jar in which case it’s taken as is and given to the node, or it’s a local gradle project in which case it’s compiled using the gradle “jar” task to generate the CorDapp jar. This approach means the jar has all the original CorDapp versioning information, which is important that it’s correct when testing. To this end, TestCordapp only needs to expose the ability to specify the app’s config. All the remaining properties have moved to CustomCordapp.

* CustomCordapp for creating arbitrary custom CorDapps, including specifying the jar’s MANIFEST values. This is internal API and only used for testing the platform. Technically this shouldn’t implement TestCordapp but does so to reduce the complexity of the driver and mock network.
2018-12-20 09:49:58 +00:00
szymonsztuka
4aaefb4fe9 CORDA-2331 Split Workflow and contracts of Finance App into separate Cordapps (#4422)
* Split Workflow and contracts of Finance App into separate Cordapps, part 1 - content which is different between OS and ENT is still in contract Cordapp.

* Move CashSelection implementations to workflow module.

* Move CashSelection implmentations to workflow module.

* Move finance module to finance-flows, top level finance module is empty.

* Move finance module to finance-flows, top level finance module is empty.

* Updated build comment.

* Revert publication of combined (contracts and flows) corda-finance.jar (to maintain backwards compatibility with 3rd party cordapps dependent on finance)

* Added backwards compatibility clarification comment.

* Re-instate new cordapp metadata.

* Global rename of `finance-flows` to `finance-workflows` to follow adopted naming conventions.

* Addressed final review comments.

* Rename application to "Corda Finance Demo"

* Generation of original corda-finance jar from new sub-modules.

* Fixed and tested demobench with new split finance contract and workflow jars.

* Renamed finance sub-modules to contracts and workflows.

* Remove Michele!!!

* Minor fix to filtering logic.

* Align CorDapp configuration filename with workflows jar.

* Fix breaks caused by finance module naming changes.

* Final alignment between OS/ENT of finance contract code.
2018-12-19 18:02:51 +00:00
Rick Parker
a4037b374d
ENT-2848 More contract attachment caching to avoid database queries slowing the node down (#4433) 2018-12-19 17:53:48 +00:00
Christian Sailer
e8a467cab8
CORDA-2304 Never give up on notarisations (#4420)
* Make TimedFlows retry forever, and cap the growth of the time out interval.

* Only time flows for restart if that is sensible (i.e. notary flows that actually have an alternative node to talk to).

* Move check for multi node notary into getter so it the `canBeRestarted` attribute can't be set too late.

* Make restartable timed flow a concept on SubFlow metadata and the relevant events so we can handle it properly for subflows based on their metadata.

* Addressing review comments.

* Consistent naming

* Update documentation

* Addressing documentation comments.
2018-12-18 09:18:12 +00:00
Rick Parker
20e5bbf56f
ENT-2848 Add caching to contract attachment versions (#4410)
* Refactor into attachment service

Fix up mock service

First caching version, but with no invalidation currently

Set cache size

Fix up after rebase

Cache invalidation

Formatting tidy up

Sort out some nullability

Add kdocs.

Unit tests

More unit tests

Fix TODO

Unit test fixes

Unit test fixes

Fixed concurrent invalidating transaction support.

* Correct some transaction concurrency bug, including unit test.

* Added some unit tests for the method I added to persistence.

* Remove some blank lines

* Review feedback

* Fix imports
2018-12-17 15:14:14 +00:00
Thomas Schroeter
fe3182d22f
Remove safe cast at initial registration attempt (#4427) 2018-12-17 14:11:43 +00:00
Shams Asari
9d7be5cf21
Renamed CordappInfoResolver to CordappResolver (#4419) 2018-12-14 19:17:06 +00:00
Shams Asari
1a065ef13d
CORDA-1942: Moved minimumPlatformVersion and targetPlatformVersion to Cordapp (#4416)
Otherwise ContractAndWorkflow ends up having these two duplicated three times.
2018-12-14 15:48:01 +00:00
josecoll
9cdda3bd77
CORDA-2149 CorDapp Contract and Workflow version identifiers (#4363)
* Implementation of Contract and Workflow attribute identifiers.

* Fixes following rebase from master.

* Fix broken JUnit test.

* Fix broken JUnit test.

* Fix broken JUnit test.

* Added missing constants.

* Further clean-up.

* Updated documentation.

* Added changelog entry.

* Updated all samples (using new Gradle Plugin 4.0.37 functionality)

* Temporarily resolve gradle plugins from latest published snapshot.

* Temporarily resolve gradle plugins from latest published snapshot.

* Updates following feedback from PR review.

* Move constants into CordappInfo companion object.

* Contract and Workflow attribute `version` to `versionId` (as version is a reserved gradle variable)

* Clarified warning message on incorrect version identifier.

* Align version identifier processing logic with gradle cordapp plugin.

* Updated comment.

* Minor fixes following rebase from master.

* Fixed broken unit test.

* Improved exception reporting.

* Update to use 4.0.37 of Gradle Plugins.

* Added support for combined Contract and Workflow CorDapp info.

* Updated following discussions with Shams + cleanup.

* Updated following Shams PR review.

* Minor API improvements.

* Added missing cordapp info causing deployNodes to fail.
2018-12-14 09:39:23 +00:00
Matthew Nesbit
767e37a34e
Apply some protective measures to prevent the reconnection test failing when rogue RPC clients on the team city server connect. (#4413) 2018-12-14 09:28:26 +00:00
Christian Sailer
32041930f4
CORDA-2306 backoff on flow retries (#4383)
* Exponential back off for retries

* Log back-off

* Jitter back off timing

* Set the minimum back-off to 10s

* Refactor code to be only called when required.

* Spelling

* Make condition purely based on `Chronic` interface

* Make timer a daemon thread
2018-12-13 13:52:30 +00:00
Remo
eb4a33e438 Corda-3941: initialiseSchema property couples corda node and cordapp ddl handling (#4277)
New property database.initialiseAppSchema introduced that allows to turn-off Hibernate DDL generation while leaving Node-specific Liquibase handling enabled.
2018-12-13 14:34:58 +01:00
Rick Parker
b70740cf2e
ENT-2785 Create clearer separation between RPC and P2P classes to make it easier to adjust logging levels independently. (P2P remained as is, some internal node RPC classes moved to existing node RPC package from generic messaging package, which is now just for P2P). (#4401) 2018-12-12 17:36:44 +00:00
szymonsztuka
4b14c47319
CORDA-2134 - re-enabling ignored tests due to signature constrains non-downgrade rule (#4398)
1) TwoPartyTradeFlowTests - restructured - saving transaction just after creating a state, as it's needed for the next TransactionState to be verified (for non-downgrade rule), enable more tests which were set as @Ignored, left 3 TODOs as 2 tests were slightly modified, need further investigation
2) MockService method loadContractAttachment always returns a dummy Attachment which means it has a default Contract Class Version number 1 used for signature constraints non-downgrade rule.
3) TransactionSerializationTests - added a fake transaction which created fake stated used as input state and using real (not mocked one) implementation of loadContractAttachment
2018-12-12 15:10:08 +00:00
Michele Sollecito
ccaf9dfbfa
[CORDA-2323]: Make detectPublicIp disabled by default. (#4404) 2018-12-12 13:38:57 +00:00
Emanuel Russo
5045f8fb7f Modify toString of DBCheckPoint (#4338)
* Modify toString of DBCheckPoint

Fix toString of object DBCheckPoint  to remove printing of array in DEBUG log

* Update DBCheckpointStorage.kt

Fix for Code Style Guideline
2018-12-12 09:43:16 +00:00
szymonsztuka
6d16e2d146
CORDA-2262 Align ID -> pubKey mapping between BasicHSMKeyManagementService and PersistentKeyManagementService (#4400)
There was a parallel work done on PersistentKeyManagementService (new table added) while this service has been superseded by BasicHSMKeyManagementService.
Move new table change for the former class to the later one and did some minor cleanup.
2018-12-11 19:50:30 +00:00
szymonsztuka
4799df9b80
CORDA-2150 signature constraints non-downgrade rule (#4262)
Contract class version non-downgrade rule is check by LedgerTransaction.verify().
TransactionBuilder.toWireTransaction(services: ServicesForResolution) selects attachments for the transaction which obey non downgrade rule.
New ServiceHub method loadAttachmentConstraint(stateRef: StateRef, forContractClassName: ContractClassName? = null) retrieves the attachment contract related to transaction output states of given contract class name.
2018-12-11 10:23:07 +00:00
Michele Sollecito
58ef83a67e
[CORDA-2007]: Fixed problematic max page size. (#4392) 2018-12-10 13:57:43 +00:00
Viktor Kolomeyko
1f8582e99f
CORDA-2115: Straighten-up @Before invocation chain. (#4379)
Note: similar sort of changes already made in Ent codebase that fix execution against external DBs.
it will make sense to backport those change to OS to avoid merge conflicts in the future.
2018-12-07 11:24:44 +00:00
Michele Sollecito
e2ea97bae7
[CORDA-2265]: Nodes hangs when using AppServiceHub to start a flow in a blocking way (fix) (#4376) 2018-12-06 15:13:32 +00:00
Florian Friemel
c46fde1133 Backport [ENT-2817] (#4364) 2018-12-06 15:04:49 +00:00
Florian Friemel
af1202ba79
[CORDA-2296] Improve initialization of criteriaBuilder in NodeVaultService. (#4374) 2018-12-06 15:02:38 +00:00
szymonsztuka
d2d13c1dfc
Attachment query with contract version, related to CORDA-2150, CORDA-2157 (#4357)
TransactionBuilder loads attachment using attachment storage instead of CordappLoader,
contract class version is now Integer (format and stored in db as Integer).
2018-12-06 11:28:53 +00:00
Michele Sollecito
ad48301149
[CORDA-2247]: Fixed a bug causing Hibernate to produce cross joins. (#4366) 2018-12-06 10:50:47 +00:00
Rick Parker
bac693a6f3
CORDA-2293 fix append only map getIfCached when Missing (#4355) 2018-12-05 08:39:42 +00:00
josecoll
63e326aedb
CORDA-2157 - Hash to Signature constraints migration V2 (#4261)
* Hash to signature constraints migration #1

* After rebase from Attachments Classloader commit.

* Simplified implementation without CZ whitelisting and relaxing the no-overlap rule slightly.

* Further simplification.

* Detailed implementation.

* Use fully loaded Cash contract jar for hash to signature constraints migration test.
Additional debug logging.

* Minor cleanup.

* Address PR review feedback.

* Minor fix.

* Fixes following rebase from master.

* Implemented `calculateEntriesHashes` to improve classloader validation performance.

* Address minor PR review comments.

* Added integration tests and some minor fixes.

* Minor fixes following rebase from master.

* Updates and fixes following integration testing.

* Added changelog entry.

* Fix broken unit tests.

* Fix compilation errors in DriverDSL tests after rebase from master.

* Minor fix to test cordapp jar signing using explicit keystore.

* Run hash-to-signature constraints integration test out of process using a non-validating notary.

* Address PR review feedback: contract version from database + other minor changes.

* Address final PR review feedback: remove signed attachment field from attachmentWithContext

* Resolve conflicts following rebase from master.

* Fix failing junit test.

* Fix Kryo serialization error (forgot to write new `version` identifier field)

* Removed redundant query carried over from previous commit.

* Added documentation.

* Fix test case where explicit Hash Constraint input and Signature Constraint output explicitly configured.

* Addressing PR review comments from SA.

* AttachmentQueryCriteria API: added wither methods and Java Unit tests.

* Fixed compilation error caused by Unit tests being in wrong module.

* Added @CordaInternal to canBeTransitionedFrom function.

* Minimized AttachmentClassloader overlap duplicates checking.

* Moved JarSignatureTestUtils and ContractJarTestUtils to internal pending clean-up and documentation before public release.

* Minor fix following rebase from master.

* Removed redundant checkNotNull(networkParameters) checks now that these are always passed into the main (non-deprecated) constructor.

* Remove capitalization.
2018-12-04 18:45:29 +00:00
Florian Friemel
382e3b651f
[ENT-2821] Make the default schemes for TLS and identity available from the CryptoService interface (#4354)
* Make the default schemes for TLS and identity available from the CryptoService interface.

* Change CryptoService.generateKeyPair to accept SignatureScheme instead of Int.
2018-12-04 17:06:12 +00:00
Andrius Dagys
838c99c6e4 CORDA-2115: Notary whitelist verification changes (#4293)
* CORDA-2115: Notary whitelist verification changes

- For regular and contract upgrade transactions: check that the notary is in the network parameter whitelist
- For notary change transactions: check the the new notary is in the network parameter whitelist. This enabled support for network merging: the old notary doesn't have to be in the current network's notary whitelist for re-pointing old states to another notary.

These checks are done during transaction construction/verification and also by the non-validating notary.

* Address comments

* Remove stale todo

* Use notary whitelist of current network parameters for platform versoin 3

* Cleanup test

* Move `getHistoricNotary` to `HistoricNetworkParameterStorage` in `core.internal`

* Require `newNotary` to be notary on the network map during notary change
2018-12-04 13:54:24 +00:00
Andrius Dagys
0925008f9e ENT-2666: Don't check for network parameter currentness for now (#4322)
* ENT-2666: Don't check for network parameter currentness for now

* Add check for parameters null when version >= 4

* Add check that parameters are known to the node/network

* Add test
2018-12-03 10:22:11 +00:00
Anthony Keenan
fab09c74d5
Node startup minor refactor (#4342)
* Slight refactor

* Move side effect out of method
2018-12-03 09:42:16 +00:00
Thomas Schroeter
27a80900bd
Shorten table name (#4331) 2018-11-30 14:36:27 +00:00
Michele Sollecito
a9ff8a0818
[CORDA-2278]: KillFlow RPC operation is not releasing soft locks. (#4332)
* [CORDA-2278]: Seems to be working. Leaving the test to ensure no future regressions.

* [CORDA-2278]: Seems to be working. Leaving the test to ensure no future regressions.

* [CORDA-2278]: Seems to be working. Leaving the test to ensure no future regressions.

* [CORDA-2278]: Seems to be working. Leaving the test to ensure no future regressions.
2018-11-30 13:10:19 +00:00
Patrick Kuo
4f41dff6cd Stop messaging services before node dies, to prevent port hogging when using in process node (#1620)
(cherry picked from commit 15c11d964f)
2018-11-30 10:33:31 +00:00
Tudor Malene
66e097b58d
CORDA-2147 Use serialization strict mode during transaction verification. (#4312)
* CORDA-2147 Use serialization strict mode during transaction verification.

* CORDA-2147 Address code review comments.

* CORDA-2147 Fix compilation error.
2018-11-30 09:44:41 +00:00
Anthony Keenan
559932a581
[CORDA-2275] Fix DriverTests for windows (#4325)
* Make enforceSingleNodeIsRunning internal for test purposes.

* Test that the file is deleted or the file lock is released to be sure that the node has stopped.

* Additional test for enforceSingleNodeIsRunnin
2018-11-30 09:41:50 +00:00
Katarzyna Streich
3f99d336b3
Add liquibase scripts for network parameters storage (#4324) 2018-11-30 09:39:07 +00:00
Michele Sollecito
4906358aa8
[CORDA-2276]: FlowMonitor repeatedly / indefinitely logs flows in the flow hospital. (fix) (#4327) 2018-11-30 09:31:46 +00:00
Michele Sollecito
628aa0b799
Fixed Thread.sleep() issue inside Fiber. (#4326) 2018-11-29 16:41:16 +00:00
Shams Asari
9100636b8c
CORDA-2269: Removed DriverParameters.initialiseSerialization as it's not needed (#4321) 2018-11-29 13:53:22 +00:00
Michele Sollecito
5d1652bacb
[CORDA-2272]: Recovering from StackOverflowErrors and given time to async logger to flush. (#4323) 2018-11-29 13:20:28 +00:00
Shams Asari
36fdb858c6 CORDA-2239: DriverDSL.startNode overload cleanup (#4252)
The overload that takes in a bunch of the node parameters with default values has been fixed to the V3 version. New node parameters since V3 now only exist in NodeParameters.

The reason for this is otherwise each new release of Corda that introduces new node parameters will force a new startNode overload to be added to DriverDSL to preserve backwards compatibility.

NodeParameters has been moved to its own file and logLevel is removed as it doesn't do anything.
2018-11-28 14:36:26 +00:00
Michele Sollecito
dc1f5f0ccd
[CORDA-2257]: Enabling optional global test port allocation (#4310) 2018-11-27 16:40:30 +00:00
Tudor Malene
06ebb97a31
Fix cache races. (#4311) 2018-11-27 16:36:02 +00:00
Katarzyna Streich
5d2ad46553
CORDA-2089 - network parameters tags - part (#4228)
* CORDA-2089 - network parameters tags - part

Data structures changes, storage and notarisation.

Tag transactions with network parameters hash that was in force when tx
was created. Add component group on all core transactions and resolved
parameters on full transactions. The hash should be always visible on
the filtered versions of transactions. Add
notarisation check that the parameters are current.
Implement network parameters storage on services for resolution.

This is only part of the work, next PR will include changes to
ResolveTransactionsFlow to make sure that parameters in the transaction
graph are ordered (this is to prevent the downgrade attack, when the
malicious notary and participants sign transaction that shouldn't be
notarised otherwise).
Probably on network services side we need the default parameters
endpoint for the
transactions that were created before this change - for now it's default
to the current ones.

* Make parameters storage agnostic to cert hierarchy

Test fixes

* Address most PR comments

* Fixes after rebase

* Fixes. Add epoch column to parameters storage.

* Address part of review comments

* Some more comments

* Hopefully fixing what I broke doing rebse

* Address Kostas comments

* Further fixes

* Save all parameters from updates to storage

* Fix integration test

* Address comments

* Fixes after rebase

* Fix test

* Fixes

* Add wrapper for filtering around parameters hash

* API stability fixes

* Add NetworkParametersStorageInternal

* Rename
2018-11-27 15:48:32 +00:00
Thomas Schroeter
b881fbd330
Throughput is private in PersistentUniquenessProvider (#4302) 2018-11-26 19:15:06 +00:00
Anthony Keenan
b7d04b1c6e
[CORDA-2235]: Add overrides for network parameters via command line and file (#4279)
* Temp commit

* Print the error message first by default, makes error output more natural.

* Polishing

* Further modifications after testing

* Documentation updates

* Couple of fixes after review

* Removing unnecessary tests

* Fix broken test

* Add interface to bootstrapper for testign

* Added unit tests

* Remove unused class

* Fix up bootstrapper unit tests and add a couple more

* Refactor the tests slightly

* Review comments

* Couple of minor tweaks
2018-11-26 17:11:05 +00:00
szymonsztuka
d399e3c242
CORDA-2232 external id to pub key mapping - fixes
Fixes in PersistentKeyManagementService.kt, VaultSchema.kt, and vault-schema.changelog-v8.xml. (#4295)
2018-11-26 16:03:06 +00:00