Commit Graph

1390 Commits

Author SHA1 Message Date
Tudor Malene
817748c87e
Performance improvement: cache app classloaders (#2060)
Cache results of the classpath scanning for cordapps
2017-11-17 15:35:05 +00:00
josecoll
f5c9fd8f44
Cross provider Issuer Reference database storage (#2032)
* 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).
2017-11-17 14:18:16 +00:00
Ross Nicoll
19aba62fc6
Move tests to using named identities (#1879)
Move tests to using named identities in preparation for multiple identities work. Includes:

* NetworkMapCacheTest
* NodeInterestRatesTest
* NodeVaultServiceTest
* ContractUpgradeFlowTest
* Cash tests
* AttachmentSerializationTest
* CordaRPCOpsImplTest
* VaultWithCashTest
* ScheduledFlowTests
2017-11-17 14:16:17 +00:00
Thomas Schroeter
9d6d027523
Merge pull request #2056 from thschroeter/raft-cluster-monitor-available-members
Raft notary cluster: metrics for available members
2017-11-17 13:14:25 +00:00
Andrzej Cichocki
aabc3c5b02
NodeInfo is no longer lateinit. (#2068) 2017-11-17 13:07:18 +00:00
Andrzej Cichocki
787de9d956
CORDA-716 Fix last of the test thread leaks (#2069)
* copycat servers/clients
* an SMM CheckpointChecker
* and log error rather than fail on propagation of stale inheritable thread local
2017-11-17 12:28:34 +00:00
Andrzej Cichocki
039cacae76
CORDA-787 Remove unused class (#2049)
* and refactor a superclass that isn't really one
* move it to internal
* misc refactorings
2017-11-17 12:24:55 +00:00
Thomas Schroeter
3d87a1a735 RaftCluster metrics for available members 2017-11-17 12:00:19 +00:00
Shams Asari
953a4a3790 Revert "Introducing network parameters."
This reverts commit d04e487
2017-11-17 10:04:38 +00:00
Ross Nicoll
e4f5e16bf4
Clean up identities in tests, stage 1 (#2059)
* 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
2017-11-16 17:17:45 +00:00
Andrzej Cichocki
37b34c6fc1
Remove unused code. (#2071) 2017-11-16 17:01:46 +00:00
Andrzej Cichocki
55bcf295ee
Move class to the only place that uses it. (#2067) 2017-11-16 14:40:39 +00:00
josecoll
5bdbd2457a
Removal of transaction contract state as BLOB in VaultStates table. (#2034)
* 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.
2017-11-15 19:28:04 +00:00
szymonsztuka
b423fea537
Consistent database tables naming convention. (#2064)
* 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.
2017-11-15 18:35:26 +00:00
Ross Nicoll
d78308f510
Detangle issuers in NodeVaultServiceTest (#2057)
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().
2017-11-15 15:26:17 +00:00
Michele Sollecito
92c8861802
[CORDA-760]: Propagate invocation context across the codebase. (#2016) 2017-11-15 14:58:43 +00:00
szymonsztuka
f0a5ea96e7
Consistent database columns naming convention. (#2043)
* Consistent database column naming convention.
* Remove a column length constraint in NodeAttachmentService.
2017-11-15 13:09:25 +00:00
Thomas Schroeter
419fe5063f
Merge pull request #2055 from thschroeter/thomas-store-raft-index
Store Raft commit index in DistributedImmutableMap
2017-11-15 11:40:00 +00:00
Andrzej Cichocki
b5fffa76f2
Retire a lateinit var. (#2038) 2017-11-15 11:24:27 +00:00
Andrzej Cichocki
c4a9320e70
CORDA-716 Don't allow the netty global executor to inherit serialization env holder (#2048)
and close some dangling RPC connections.
2017-11-15 11:22:35 +00:00
Thomas Schroeter
ecd09b7e6c Store raft commit index in DistributedImmutableMap 2017-11-15 10:52:22 +00:00
Thomas Schroeter
2577c75f28
Merge pull request #2046 from thschroeter/thomas-remove-snapshotting
CORDA-767: Raft Notary: remove snapshotting
2017-11-15 09:59:34 +00:00
Thomas Schroeter
fc8ed34205 Switch from compaction mode sequential to full
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.
2017-11-14 16:34:41 +00:00
Thomas Schroeter
0d2382619b Raft Notary: bootstrap command line flag 2017-11-14 13:51:21 +00:00
Patrick Kuo
64a9946f03
Replace artemis network map with http network map (#1970)
* 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
2017-11-14 11:37:50 +00:00
szymonsztuka
3627cc9fc2
Vault query - return single column which groups multiple aggregation functions.
* Vault query was returning redundant selects (repeated column used to 'group by') for query with multiple aggregation functions.
2017-11-14 11:20:57 +00:00
Andrzej Cichocki
2d997b1fa7
Retire verifierDriver serialization init. (#2026) 2017-11-14 10:45:36 +00:00
Thomas Schroeter
b23e727685 Raft Notary: change compaction mode to sequential
Keep log until it has been applied to all replicas.
2017-11-14 10:39:16 +00:00
Thomas Schroeter
cf33be66ff Raft Notary: remove snapshotting 2017-11-14 10:39:16 +00:00
Maksymilian Pawlak
1a02c9a74f
AttachmentCriteriaQuery class and infrastructure (#2022)
* Attachments metadata support
2017-11-14 10:22:02 +00:00
Ross Nicoll
c583af8f4b
Add AbstractPartyDescriptor to stop Hibernate warning (#1878) 2017-11-13 18:04:38 +00:00
Andrzej Cichocki
b8b3911ceb
Fix the BFT startup consensus workaround. (#2042) 2017-11-13 15:45:26 +00:00
Ross Nicoll
076a8ab937
Step through cert path when registering (#2027)
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).
2017-11-10 17:41:45 +00:00
Andrzej Cichocki
6a569fb3f1
Retire findTokenizableService. (#2036) 2017-11-10 16:40:18 +00:00
Andrzej Cichocki
052124bbe0
CORDA-716 Make serialization init less static (#1996) 2017-11-10 15:44:43 +00:00
Christian Sailer
2a83167d3b
Merge pull request #2024 from corda/christians_public-key-caching-hooks
Public key customization hooks
2017-11-10 13:37:37 +00:00
Christian Sailer
52dea9e5c3
Merge pull request #1958 from corda/christians_nodeconfig-fix
Add helper for checking whether to check checkpoints and unit test it.
2017-11-10 11:28:13 +00:00
Andrzej Cichocki
6b71c6cf75
Retire some initialiseSerialization booleans. (#2019) 2017-11-10 10:15:55 +00:00
Christian Sailer
219433c3cd Hooks for PublicKeySerializer 2017-11-09 14:49:23 +00:00
bpaunescu
7d1f7ab53d
CORDA-296: added rpc that returns an observable for node state (#2004)
* 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
2017-11-08 12:44:10 +00:00
Andrzej Cichocki
a036a6300c
Enforce serialization API for Java. (#2014) 2017-11-08 11:49:52 +00:00
Shams Asari
117261caa4 Retired getDefaultNotary test extension method.
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.
2017-11-07 21:20:43 +00:00
Shams Asari
e26e41a384 Various structural cleanups of node-driver:
* Extracted out ShutdownManager into its own file
* Moved RPCDriver and ProcessUtilities into internal package
* Made n.c.testing.performance package internal
2017-11-07 16:58:40 +00:00
Katarzyna Streich
deaba2887d
Some cleanup after network map removal (#2006) 2017-11-07 12:16:49 +00:00
Shams Asari
a4be26a296 Removed unnecessary calls to MockNetwork.runNetwork (b/c there is no more P2P node registration) and removed redundant entries in cordappPackages 2017-11-06 21:28:20 +00:00
Andrzej Cichocki
00a9014852
CORDA-716 Rename one TestClock to DemoClock, and unduplicate code (#1988) 2017-11-06 11:13:56 +00:00
Shams Asari
3bb018a5ce Removed the ability to manually start notary nodes from the driver and MockNetwork. Instead by default a single notary is automatically started. This can be customised at creation time of the driver and MockNetwork. This more accurately models the concept of network parameters in a CZ.
Also added helper methods to retrieve this default notary.
2017-11-05 22:55:33 +00:00
Alberto Arri
9be37c2b88
Remove useless call to waitUntilNetworkReady within driver started nodes (#1998)
Remove usages of waitUntilNetworkReady in conjunction with driver
2017-11-03 14:27:46 +00:00
Patrick Kuo
22453204ed
move node info schema to internal package (#1976) 2017-11-03 11:30:29 +00:00
Shams Asari
d04e48740b Introducing network parameters.
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)
2017-11-03 09:46:10 +00:00
Alberto Arri
5490465750
[CORDA-446] Remove entities from netmap cache & friends (#1980)
* Remove PersistentNetworkMapService and related classes. They were part of the old network map node code.
2017-11-03 09:28:52 +00:00
Shams Asari
837e8800e8 Checking that the smoke tests don't have the node on their classpath. 2017-11-02 20:58:03 +00:00
Andrzej Cichocki
2e0e78e883
Retire DriverBasedTest. (#1986) 2017-11-02 16:56:08 +00:00
Michele Sollecito
d882f8871e
[CORDA-758]: Permissions are now checked for each RPC method. (#1985)
* Permissions are now checked for each RPC method.

* Fixed NodeMonitorModelTest

* Fixed IRSDemoTest
2017-11-02 15:09:49 +00:00
Alberto Arri
a21d361df8
Clean up mentions of nodeReady future and friends from MockNetwork/Driver (#1979)
* Clean up mentions of nodeReady future and friends from MockNetwork/Driver
2017-11-02 10:31:31 +00:00
Alberto Arri
00e682a544
[CORDA-446] Clean up other mentions of network map node and logic (#1974)
* [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
2017-11-01 14:25:48 +00:00
Katelyn Baker
86d273f2ef
Merge pull request #1955 from corda/feature/kat/refactorKryo
Refactor Kryo into sub module just like AMQP
2017-11-01 10:16:11 +00:00
Andrzej Cichocki
6b2b663ab3
CORDA-716 Retire MockNetwork.Factory (#1937) 2017-10-31 17:10:37 +00:00
Katelyn Baker
d6adb83cd0 CORDA-756 - Refactor Kryo into sub module as per AMQP 2017-10-31 15:45:58 +00:00
Shams Asari
6ebba9dea1 Removed the startNotary methods from NodeBasedTest, and moved it into an internal package
This commit is in preparation for the upcoming network parameters work.
2017-10-31 11:49:33 +00:00
Andrzej Cichocki
4b0b13dad4
CORDA-716 Retire TestDependencyInjectionBase (#1939) 2017-10-31 10:21:38 +00:00
Christian Sailer
bad31658fb Fix whitespace 2017-10-30 13:49:08 +00:00
Christian Sailer
3f43d8ad21 Add helper for checking whether to check checkpoints and unit test it. 2017-10-30 11:55:04 +00:00
Alberto Arri
9176fcb8e6
Remove for good network map service node (#1942)
* [CORDA-446] Kill network map registration and fix NodeBasedTest
2017-10-30 11:45:52 +00:00
Andrzej Cichocki
05d6fb91c7
Reinstate Simulation config overrides for notary. (#1947) 2017-10-30 11:41:53 +00:00
Shams Asari
cde1587ac7 Cleaned up devModeOptions 2017-10-28 13:26:06 +01:00
Christian Sailer
862b908dd9 Merge branch 'master' of https://github.com/corda/corda into christians_checkpoint_checker_thread
# Conflicts:
#	node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt
#	node/src/test/kotlin/net/corda/node/services/config/FullNodeConfigurationTest.kt
2017-10-27 15:33:00 +01:00
Christian Sailer
5b5a4bd2e4 Code rewiew: turn dev mode options into a data class 2017-10-27 15:13:00 +01:00
Alberto Arri
a0b9768be7 Retire FullNodeConfiguration (#1954)
* Retire FullNodeConfiguration

* Moved logic and tests for Artermis user names in RPCUserServiceImpl
2017-10-27 14:30:10 +01:00
Christian Sailer
5440594afd Merge branch 'master' of https://github.com/corda/corda into christians_checkpoint_checker_thread 2017-10-27 14:14:09 +01:00
Christian Sailer
4a4500811f Code rewiew: reformat 2017-10-27 10:24:03 +01:00
Christian Sailer
79f080368b Code rewiew: constant naming 2017-10-27 09:37:39 +01:00
Alberto Arri
01f80fb187 remove outdated test (#1949) 2017-10-27 09:27:23 +01:00
Mike Hearn
428eb43abe Minor: add a discussion to recordTransactions.
Discuss the interaction between coin selection and observer nodes and
why it's designed the way it is.
2017-10-26 18:05:24 +02:00
Mike Hearn
d7e4aa1783 Add more formal support for observer/regulator nodes. This is a simplistic
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.
2017-10-26 18:05:24 +02:00
Mike Hearn
1b4a5f3d4c Add a toString to FlowSessionImpl 2017-10-26 18:05:24 +02:00
Christian Sailer
170fde9d71 Code rewiew:
- add comments
- clearer variable names
- use constants instead of literal
2017-10-26 16:09:58 +01:00
Christian Sailer
d275ab41a8 Rename debugOptions to devModeOptions, extension method 2017-10-26 14:40:19 +01:00
Christian Sailer
0cbee046f9 Add extension method to check for flags devModeOptions, formatting 2017-10-26 14:36:24 +01:00
Christian Sailer
74595c65c9 Add optional debug options to config and allow to switch checkpointChecking off in dev mode 2017-10-26 14:03:16 +01:00
Christian Sailer
71fe0daa08 Give the checkpoint checker thread a meaningful name 2017-10-26 12:27:29 +01:00
Christian Sailer
a3be4d0dad Add extraPackages to NodePerformanceTest so it runs successfully 2017-10-26 11:47:37 +01:00
josecoll
5349d4f850 Standardisation of Public Keys in Schema entities. (#68) (#1936)
* 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.
2017-10-24 22:11:41 +01:00
Rick Parker
4b8590ef41 CORDA-736 Add some new features to corda.jar via node.conf for testing (#1926) 2017-10-24 16:49:47 +01:00
Andrzej Cichocki
927924498b Introduce MockNodeParameters/Args (#1923) 2017-10-24 11:58:32 +01:00
josecoll
7f6608deb5 Retrofit changes from Enterprise PR #61 (#1934) 2017-10-24 11:41:59 +01:00
Katelyn Baker
70a7eb8bae Merge pull request #1928 from corda/kat/amqp/amqpTestFix3
CORDA-435 - AMQP enablement fixes
2017-10-23 17:37:38 +01:00
Alberto Arri
b04368e36a [CORDA-442] make MockNetwork not start a networkmap node (#1908)
* [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
2017-10-23 16:50:53 +01:00
Katelyn Baker
2463cbd416 CORDA-435 - AMQP enablement fixes
AMQP has different serialization rules than Kryo surrounding the way we
introspect objects to work out how to construct them
2017-10-23 16:40:09 +01:00
Katelyn Baker
b73020a014 Merge pull request #1924 from corda/kat/amqp/amqpTestFix2
CORDA-435 - AMQP serialisation cannot work with private vals
2017-10-23 16:24:44 +01:00
Katelyn Baker
303acf715f CORDA-435 - AMQP serialisation cannot work with private vals
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
2017-10-23 15:08:30 +01:00
Patrick Kuo
01728e5a47 Network map service REST API wrapper (#1907)
* Network map client - WIP

* Java doc and doc for doc site

* remove javax.ws dependency

* NetworkParameter -> NetworkParameters

* move network map client to node

* Fix jetty test dependencies

* NetworkParameter -> NetworkParameters

* Address PR issues

* Address PR issues and unit test fix

* Address PR issues
2017-10-23 11:46:24 +01:00
Andras Slemmer
c66a84bfc6 Interface changes for multi-threading 2017-10-20 11:29:30 +01:00
Andras Slemmer
54f901c4fe move SMM 2017-10-20 11:27:37 +01:00
Andrzej Cichocki
005ce349a7 * Retire MockServiceHubInternal (#1909)
* Introduce rigorousMock
* Add test-utils and node-driver to generated documentation
2017-10-20 10:06:53 +01:00
Tomas Tauber
342090db62 Experimental support for PostgreSQL (#1525)
* 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
2017-10-19 14:17:54 -07:00
Chris Rankin
2c84d07e8e CORDA-704: Implement @DoNotImplement annotation (#1903)
* 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.
2017-10-19 17:18:35 +01:00
Clinton
3dd09fd69b Cordformation in Kotlin (#1873)
Cordformation rewritten in kotlin.
2017-10-19 15:41:25 +01:00
Andrzej Cichocki
12fa945077 CORDA-680 Update cordapp packages documentation (#1901)
* Introduce MockNetworkParameters
2017-10-19 15:06:51 +01:00
Andrzej Cichocki
dfd90701a0 CORDA-599 PersistentNetworkMapCache no longer circularly depends on SH (#1652) 2017-10-19 11:19:55 +01:00