Commit Graph

1765 Commits

Author SHA1 Message Date
Andrius Dagys
f210370885 Pass ports instead of hostAndPorts to the message broker. Pass an address for the NodeMessagingClient to advertise to the network map service. 2017-05-31 15:41:40 +01:00
Ross Nicoll
34eb5a3b70 Store certificate and path with well known identity (#726)
* Construct standard flows using PartyAndCertificate, and add support for launching
flows that are constructed with PartyAndCertificate or just Party.
* Store PartyAndCertificate in network map service
* Expand identity service to store certificates along with all identities.
2017-05-31 14:45:58 +01:00
Ross Nicoll
08c91bd611 Add certificate to node identity (#769)
Add certificate and path to node identity via the `NodeInfo` class.
2017-05-31 11:52:50 +01:00
Ross Nicoll
f148765c57 Add RPC registration diagnostics
Add diagnostic information if attempting to use an RPC interface with duplicate
method names, rather than throwing a collection error.
2017-05-31 11:42:45 +01:00
Shams Asari
329e5ff17b Introducing InitiatedBy annotation to be used on initiated flows to simplify flow registration.
This removes the need to do manual registration using the PluginServiceHub. As a result CordaPluginRegistry.servicePlugins is no longer needed. For oracles and services there is a CorDappService annotation.

I've also fixed the InitiatingFlow annotation such that client flows can be customised (sub-typed) without it breaking the flow sessions.
2017-05-31 10:50:16 +01:00
Ross Nicoll
0e1e4042dc Add PartyAndCertificate class
Add PartyAndCertificate class for pairing proof of a party's identity with the party.
2017-05-31 09:45:40 +01:00
Ross Nicoll
c003ec0042 Replace X509Certificate with X509CertificateHolder
Replace X509Certificate with X509CertificateHolder for consistency in implementation of how X.509 certificates
are managed. Using the Java standard class entails the actual implementing class being one of several options
depending how a certificate is built, which makes serialization/deserialization with Kryo inconsistent as some
of these forms cannot be directly built from outside restricted classes.
2017-05-30 17:05:43 +01:00
Chris Rankin
bb0cc85295 Allow RPC for internal classes with special serialisers. (#751)
Also ensure that HashCheckingStream validates the hash afterwards.
2017-05-26 15:28:22 +01:00
Ross Nicoll
a8d4dccea4 Infrastructure for confidential identities
* De-anonymise parties in AbstractStateReplacementFlow flows
* Convert transaction key negotiation to a subflow instead of utility functions
* Add serialization support for CertPath
* Restructure cash flows so that a counterparty flow can be added later
2017-05-26 10:00:57 +01:00
Andrzej Cichocki
851cccbf7e Don't persist loaded keyPair to the keystore when owningKey is composite (#744) 2017-05-25 17:31:14 +01:00
Konstantinos Chalkias
9f2b44f8f7 Rename Timestamp to TimeWindow (#706)
Rename Timestamp to TimeWindow + refactoring
2017-05-25 13:18:49 +01:00
Andrzej Cichocki
ca36b4676d Unduplicate certificatesDirectory (#740) 2017-05-25 10:30:28 +01:00
Patrick Kuo
246de55433 Create client CA certificate with X509 name constraint (#731)
* The node will be issued a CA certificate with name constraint which will allow the node to create keys with a valid certificate chain.
2017-05-24 16:13:37 +01:00
Andrzej Cichocki
bbe4c170c2 BFT notary demo (#725)
* Rename raft-notary-demo project to notary-demo
* Refactor serialisation filtering to allow BFT SMaRt to work, it no longer relies on the jdk.serialFilter system property
* In NodeBasedTest remove whitespace in node directory names for consistency with cordform and driver
2017-05-24 12:25:06 +01:00
Chris Rankin
375392d32d Compile caplets against correct version of capsule. (#732) 2017-05-24 09:58:33 +01:00
Chris Rankin
179eccdd20 Modify how Gradle creates capsules: (#730)
- Better Gradle dependency management.
- Remove empty module jars from the capsules.
2017-05-23 18:04:20 +01:00
Ross Nicoll
36a091dd6a Add support for X509Certificate and CertPath serialization 2017-05-23 15:42:11 +01:00
Konstantinos Chalkias
53276c1f06 faster key encoding/decoding and generic converters between key implementations 2017-05-22 11:14:05 +01:00
Mike Hearn
207d3b0b8f Vault: any state that has us as a participant is relevant. 2017-05-19 16:45:22 +02:00
Mike Hearn
8dde7757f1 Minor: downgrade another spammy error to warning. 2017-05-19 16:45:22 +02:00
Mike Hearn
c79f369c83 Minor: degrade a log.error to a log.warn as errors get written to the console. 2017-05-19 16:45:22 +02:00
Mike Hearn
a5be12a81b Minor: print org name at startup instead of full X.500 name. 2017-05-19 16:45:22 +02:00
Ross Nicoll
794ce03958 Remove mock identity service
Remove mock identity service and merge it with the in memory identity service. The two services
provide extremely similar functionality, and having two different version for production/test
risks subtle implementation differences. On that note, this patch includes changes to a number
of tests which worked only with mock identity service.
2017-05-19 11:22:47 +01:00
Matthew Nesbit
05a97b11f3 First cut at removing PrivateKey leakage from KeyManagementService
Fixup after rebase

Restore original key property names

Fixup after rebase

Undo extra import that IntelliJ keeps erroneously adding.

Add comments and fix docs for transaction signing.

Fixes after rebase

More fixes after rebase

Address PR requests

Address PR requests
2017-05-18 17:34:04 +01:00
Andrzej Cichocki
c8d71a96f5 One demo definition for both IntelliJ and gradle (#697)
* Raft notary demo now defined in one place that both IntelliJ/driver and gradle/runnodes can run
* New module cordform-common for code common to cordformation and corda
* Add single notary demo
2017-05-18 15:58:35 +01:00
Mike Hearn
cca30ade1e Fix issue with automatic shutdown if the app is paused for longer than 30 seconds. This can happen on Mac laptops that put the node to sleep to save energy. 2017-05-17 09:45:37 +02:00
Chris Rankin
5cf304e8c4 Disable the DemoBench tab if the node exits abnormally. (#692)
* Log a message when the CRaSH shell exits.
* Disable the DemoBench tab if the node exits abnormally.
2017-05-17 00:19:48 +01:00
Rick Parker
68f0e5d683 Fix JPA annotations in test so that columns are correctly named. (#694) 2017-05-16 14:19:19 +01:00
Katarzyna Streich
81501150aa Add Cash flows to default RPC flow list, so they can be invoked by shell commands. (#690)
Add Cash flows to default RPC flow list, so they can be invoked by shell commands.
It should be removed once we separate cash flows into cordapp.
2017-05-16 13:29:57 +01:00
Ross Nicoll
c13a99a2f9 Replaces keys and parties in states with AbstractParty
Switch to using AbstractParty as the standard identifier for parties in
states, so that full parties can be used during construction of
transactions and anonymised parties when the transaction is being added
to the ledger.
2017-05-16 12:07:14 +01:00
Andrzej Cichocki
d3bb040355 Refactoring related to BFT notary demo (#680)
* Fix: Add missing @StartableByRPC to fix the Raft notary demo
* Make loadConfig take a Config object, for cordformation Node
* Unduplicate User.toMap
* Unduplicate WHITESPACE regex, choose possessive form
* Use slash to make a Path
* Remove Companion where redundant
* Remove unused code
2017-05-16 11:30:50 +01:00
Andras Slemmer
f445590cff Address #665, add more leak tests 2017-05-15 15:20:00 +01:00
Andras Slemmer
b192a86a30 Address comments #665 2017-05-15 13:18:45 +01:00
Andras Slemmer
7c3a566197 RPC: call close() on startup failure, add thread leak tests 2017-05-15 13:18:45 +01:00
Andrius Dagys
885f951dc3 Node IP auto-detection (#666)
* If the p2pAddress provided by the configuration is not public, the node tries to discover the public IP:
- First by checking the network interfaces
- If not found, sends a request to the network map service

* Enable initial connection retry

* Improve error handling

* Update docs
2017-05-12 14:09:02 +01:00
Andrzej Cichocki
e981632184 RAFT notary demo refactoring (#629)
Specifically, make the IDE/driver and gradle/NodeRunner methods of launching the demo behave more similarly, with a view to configuring them the same way.
* Add option to driver to nominate a node as network map, so that the driver-based demo doesn't run an additional node
* Change gradle ports to match those chosen by driver
2017-05-12 11:33:26 +01:00
Shams Asari
47c6b9c135 Making use of latest FastClasspathScanner version and cleanup of CollectSignaturesFlow.kt 2017-05-12 10:33:43 +01:00
Andrzej Cichocki
1df29ab06f Make webserver reconnect to rebooted node. (#662) 2017-05-12 10:27:27 +01:00
Shams Asari
8cb7c5eab1 Fix node crash when the plugins dir is empty 2017-05-11 21:34:31 +01:00
Ross Nicoll
edfc4dd7d9 Add certificate path storage to identity service
Add functionality for generating certificate paths from identity
certificates to transaction certificates, validating, storing and
retrieving those certificate paths.
2017-05-11 16:55:23 +01:00
Patrick Kuo
af7ba082a4 Store identity key to keystore with self sign cert (#645)
* Support signing and storing EdDSA key and certificate in java keystore.
2017-05-11 16:53:44 +01:00
Andras Slemmer
1ecce79913 Merge pull request #669 from corda/aslemmer-quasar-hook
Add quasar-hook agent for inspecting quasar instrumentation
2017-05-11 15:34:46 +01:00
Shams Asari
48f58b6dbc Introducing StartableByRPC and SchedulableFlow annotations, needed by flows started via RPC and schedulable flows respectively.
CordaPluginRegistry.requiredFlows is no longer needed as a result.
2017-05-11 14:55:40 +01:00
Ross Nicoll
e4a0bc6e11 Move party classes into identity package
Move AbstractParty, AnonymousParty and Party into a new net.corda.core.identity package,
as they're not really cryptography tools, and in preparation for further code coming in
for identity.

Optimize imports on many files to clean up the resulting refactor.
2017-05-11 11:25:59 +01:00
Andras Slemmer
4cd1f1677f Add quasar-hook agent for inspecting quasar instrumentation 2017-05-10 19:11:34 +01:00
Matthew Nesbit
8aa341dc7b Merge pull request #620 from corda/mnesbit-audit-interface
Create header files for discussion of possible flow audit api.
2017-05-10 16:42:49 +01:00
Matthew Nesbit
540fd746bb Create header files for discussion of possible flow audit api.
Fix compile error

Address PR comments

Change from a general interface to a restricted set of audit event types.

Fixup after rebase
2017-05-10 14:49:11 +01:00
Shams Asari
e75732af91 Making sure non-serialisable objects in FlowException do not interfere with the flow session (#651)
Also TransactionVerificationException no longer has reference to non-serialisable LedgerTransaction
2017-05-10 11:07:28 +01:00
Andras Slemmer
f4354d25dd Merge pull request #644 from corda/aslemmer-fix-issue-55
Fix issue #55
2017-05-10 10:53:11 +01:00
Chris Rankin
d3075928b2 Move FlowHandle implementations back into core so that RPC clients can use them. (#653) 2017-05-09 18:25:43 +01:00
Chris Rankin
bb0ac3253d Move FlowSessionException into core so that it can be serialised. (#654) 2017-05-09 18:09:34 +01:00
Shams Asari
60b1f9b0b2 Merge pull request #639 from corda/shams-initiating-flow-annotation
Introducing InitiatingFlow annotation which has to be annotated by in…
2017-05-09 12:24:33 +01:00
Mike Hearn
670f1256e9 Address review comments from Richard 2017-05-09 11:59:51 +02:00
Andras Slemmer
f153e9a347 #55, #644 Address comments 2017-05-09 10:38:50 +01:00
Ross Nicoll
546d96934a Expand X509Utilities
Mark several functions in X509Utilities as @JvmStatic so they're readily accessible from Java.

Add functions for modifying common name of an X.500 name, either direct replacement or adding a postfix.
2017-05-09 10:27:01 +01:00
Shams Asari
221bb81f84 Introducing InitiatingFlow annotation which has to be annotated by initiating flows.
This removes the need for the shareParentSessions parameter of FlowLogic.subFlow. It also has the flow's version number so FlowVersion is now no longer needed.
2017-05-08 20:19:45 +01:00
Patrick Kuo
1f4535bc2e Support signing and storing EdDSA key and certificate in java keystore. (#601) 2017-05-08 17:38:59 +01:00
Andras Slemmer
5db4e4723d Fix issue #55 2017-05-08 15:33:45 +01:00
Matthew Nesbit
c3557e0a68 Merge pull request #640 from corda/mnesbit-flowlogicfactory-internal
Move the implementation of the FlowLogicRefFactory internal
2017-05-08 15:24:41 +01:00
Mike Hearn
8016bc5fcd Detect broken macOS localhost resolution and tell the user how to fix it. 2017-05-08 14:16:20 +02:00
Matthew Nesbit
bfa7d50d37 Move the implementation of the FlowLogicRefFactory internal to the node as it is an implementation detail, not an API. 2017-05-08 11:32:32 +01:00
Andras Slemmer
489661a289 Merge pull request #592 from corda/aslemmer-rpc-manual-demux
RPC muxing, multithreading, RPC driver, performance tests
2017-05-08 11:18:21 +01:00
Chris Rankin
0ed009dfa0 Set java.io.tmpdir to Gradle's build directory for unit and integration tests. (#638) 2017-05-05 17:30:51 +01:00
Andras Slemmer
3a2afcdbb2 #592: Address more comments 2017-05-05 17:10:52 +01:00
Andras Slemmer
652cbb0d9f #592: RPCServer lifecycle 2017-05-05 17:10:52 +01:00
Andras Slemmer
de88ad4f40 RPC muxing, multithreading, RPC driver, performance tests 2017-05-05 17:10:52 +01:00
Ross Nicoll
25dbac0f07 Change party to hold an X.500 name
Change the legal name of parties to be an X500 name. This ensures that we aren't converting between
common names and X500 names in various places, eliminating substantial scope for error in the conversion
process. As a result, all node names must now be full X500 names, which has impact on most configurations.
2017-05-05 16:13:29 +01:00
Ross Nicoll
b64e7f51f6 Enforce X.500 distinguished names in configuration 2017-05-05 16:13:29 +01:00
josecoll
8c3b9ac589 Vault Query API design (#522)
* Added queryBy(QueryCriteria) Vault API and Junit tests.

* Minor fix following rebase.

* Spit out Vault Query tests into separate source file.

* WIP

* Enable composition of QueryCriteria specifications.
Additional JUnit test cases to validate API.

* Added Deprecating annotations.
Added QueryCriteria for set of contractStateTypes

* Minor tweaks and additional JUnit test cases (chain of linear id)

* Added Java Junit tests and QueryCriteria builder support.

* Added API documentation (including coding snippets and examples).

* Added @JvmOverloads to QueryCriteria classes for easy of use from Java.

* Refactored QueryCriteria API to use composition via sealed data classes.

* Enable infix notation.

* Fixed typo.

* Clarified future work to enforce DB level permissioning.

* Moved PageSpec and Order from QueryCriteria to become parameters of Query itself.

* Moved PageSpec and Order from QueryCriteria to become parameters of Query itself.

* TokenType now specified as set of <Class> (was non extensible enum).

* Exposed new Vault Query API functions via RPC.

* Fixed compiler error in java test.

* Addressed a couple of minor PR review scomments from MH.

* Major updates following PR discussion and recommendations.

* All pagination and sorting arguments are optional (and constructed with sensible defaults).
Added Java helper functions for queryBy and trackBy interfaces.
Added Java trackBy unit tests.
Miscellaneous cleanup.

* Added Generic Index schema mapping and query support.

* Query criteria referencing Party now references a String (until Identity framework built out).
Added participants attribute to general query criteria.

* Fleshed our IndexCriteria including PR recommendation to define column aliases for index mappings.

* Removed all directly exposed API dependencies on requery.

* Updated documentation.

* Provide sensible defaults for all Query arguments.
Add RPC Java helpers and increase range of Vault Service helpers.

* Further improvements (upgrading notes) and updates to documentation.

* RST documentation updates.

* Updates to address RP latest set of review comments.

* Updates to address MH latest set of review comments.

* Updated to highlight use of VaultIndexQueryCriteria to directly reference a JPA-annotated entity (versus the indirect, explicitly mapped attribute to GenericIndexSchema approach)

* Aesthetic updates requested by MH

* Reverted Indexing approach: removed all references to VaultIndexedQueryCriteria and GenericVaultIndexSchemaV1 scheme.

* Final clean-up and minor updates prior to merge.

* Fixed compiler warnings (except deprecation warnings)

* Reverted all changes to Vault Schemas (except simple illustrative VaultLinearState used in VaultQueryTests)

* Reverted all changes to Vault Schemas (except simple illustrative VaultLinearState used in VaultQueryTests)

* Commented out @Deprecated annotations (as a hedge against us releasing M12 with the work half-done)

* Renamed RPC JavaHelper functions as RPCDispatcher does not allow more than one method with same name.
2017-05-05 15:14:43 +01:00
Chris Rankin
0309426cb9 Include log4j2.xml into application jars only. This allows applications to use their own log4j2.xml files, if required. (#635) 2017-05-05 13:12:36 +01:00
Shams Asari
de83866ebe Removed createHandle from the FlowStateMachine interface as it doesn't need to be publicly exposed 2017-05-05 12:21:34 +01:00
Andrius Dagys
9a0653128c Add support for re-sending session messages. This is useful when talking to a distributed service, e.g. notary – if one of the nodes go down in the middle of a session, the session will be re-established with a different node (round-robin order). 2017-05-05 10:08:53 +01:00
Konstantinos Chalkias
d8fa75654f Support for multi-sig schemes. ECC (K1/R1) and EdDSA are fully supported. (#599)
Support for multi-sig scheme. ECC (K1/R1) and EdDSA are fully supported.
2017-05-04 18:19:00 +01:00
Matthew Nesbit
fe7d893de2 Merge pull request #627 from corda/mnesbit-servicehub-cleanup2
Remove scheduler service from ServiceHub
2017-05-04 14:34:41 +01:00
Matthew Nesbit
b3b4457b4e Remove scheduler service from ServiceHub 2017-05-04 10:00:49 +01:00
Shams Asari
eba753ddfe Moved the initiated-side of core flows in net.corda.flows to net.corda.node.services. They are not meant to be visible to end-users. 2017-05-03 17:42:51 +01:00
Chris Rankin
e22ad19fcd Use assert methods from test framework. Don't use Java assert. (#625) 2017-05-03 17:32:30 +01:00
Ross Nicoll
a1fd215863 Extract common name from legal name to determine path in Driver (#613)
Rewrote node name to extract common name to use as the node path for samples, to work around characters being incorrectly treated as separators.
2017-05-03 16:58:48 +01:00
Matthew Nesbit
7e8aa1d706 Remove Messaging service from service hub
Remove mention of MessagingService as being on ServiceHub.
2017-05-03 15:19:27 +01:00
Ross Nicoll
d65d63e4f6 Interim patch introducing X500Names
This is an intermediary step to introducing X500Names in all Party instances, which adds:

* Party constructor which accepts X500Name and then converts it to string.
* startNode() function which takes in X500Name instead of String
* Numerous legal name fixes to use full distinguished names
2017-05-03 10:46:03 +01:00
Shams Asari
cfe5786d2d Introducing versioning of flows using the FlowVersion annotation.
Core flows, which are baked into the platform, are also versioned using the platform version of the node. Several core flows, such as the data vending ones, which were provided via plugins are now instead baked into the node.
2017-05-02 15:12:07 +01:00
josecoll
3d401d1dcb Apply @Suspendable on all flow methods that call vault generateSpend (#612) 2017-05-02 09:38:44 +01:00
Chris Rankin
3208daf507 Customise the error message according to why Corda cannot boot. (#610)
* Customise the error message according to why Corda cannot boot.
* Reset system property programmatically for the sake of developers.
2017-04-28 16:01:19 +01:00
Andrzej Cichocki
f2d138cdab Replace code only used in 1 test with existing general mechanism. (#600) 2017-04-28 15:50:24 +01:00
Andrzej Cichocki
cb3522588f In checkpoints, serialize hash of attachment instead of its data (#543) 2017-04-28 13:50:47 +01:00
Chris Rankin
9f3fae1914 Set the "no deserialisation" property in the Capsule and Driver. (#603) 2017-04-28 10:14:15 +01:00
Andrzej Cichocki
b3894fa38a Fix race in IntegrationTestingTutorial. (#594) 2017-04-27 09:15:12 +01:00
Shams Asari
c5a9312e07 Merge pull request #582 from corda/shams-flow-counterpartymarker-cleanup
Deprecated FlowLogic.getCounterpartyMarker as it's complicated and probably not used
2017-04-26 09:40:48 +01:00
Matthew Nesbit
7e3b9a8934 Fix duplicate content root problems in IntelliJ 2017-04-26 10:37:16 +02:00
Shams Asari
913487cb32 Deprecated FlowLogic.getCounterpartyMarker as it's complicated and probably not used (replacement is to use sub-flows).
Also made flow registration require the client flow class rather than any old class.
2017-04-25 18:53:33 +01:00
Mike Hearn
922a760a09 Shell: more aggressive catch/rethrow of errors during command line parse. Avoids stack traces being dumped to the console when an unknown party name is provided. 2017-04-25 19:43:26 +02:00
Mike Hearn
aed9495b37 Shell: add 'start' as an alias for 'flow start'. 2017-04-25 19:43:26 +02:00
Andrius Dagys
4e86443cac Fix Raft notary demo post name refactoring 2017-04-25 17:11:21 +01:00
Ross Nicoll
c8af48ebd9 Clean up BFTNotaryServiceTests
BFTNotaryServiceTests generates a master node independently of the cluster nodes, so it can put it
at the end of the list of nodes. The calling function however treats the first node in the list as
the master, not the last node. This simplifies the code while maintaining the same behaviour.
2017-04-25 15:12:37 +01:00
Katarzyna Streich
f92949d3b5 Add information on why state machine was removed from StateMachineManager (#570)
* Add information on why state machine was removed from StateMachineManager.
There are two cases: normal end of flow or error.

Return flow result as part of state machine remove data.

Make Change a sealed class with Add and Remove.

fiber.actionOnEnd takes ErrorOr<R> parameter.

* Remove unnecessary fields from StateMachineManager.Change.
2017-04-25 14:34:45 +01:00
Katarzyna Streich
c1b7b1cb75 Add information on who started flow on a node. (#549)
* Add information on who started flow on a node with name where possible.
Add sealed class holding information on different ways of starting a flow: RPC, peer, shell, scheduled.

* Remove invokeFlowAsync from ServiceHub, move it to ServiceHubInternal.
We shouldn't be able to start new state machines from inside flows.
2017-04-24 17:05:51 +01:00
Shams Asari
b5e022f350 Introducing Platform Version and its use by the NMS for min version requirements for the network 2017-04-24 15:31:10 +01:00
Ross Nicoll
684d1089f0 Introduce full legal names for test parties
Use full names for test parties, ahead of complete X.500 name support.
2017-04-24 15:18:21 +01:00
Ross Nicoll
6c6ed3a758 Move transaction generation to OnLedgerAsset
Move functions for generating transactions into OnLedgerAsset from various locations in
the code (VaultService, AbstractConserveAmount, etc.) to unify the code paths and reduce
duplication.
2017-04-24 13:29:52 +01:00
Andrzej Cichocki
160d13b6f7 Prohibit Java deserialisation in the Corda process (#566) 2017-04-21 16:26:35 +01:00
josecoll
2b1a71955c Always remove any soft locks associated with a completed flow. (#561)
Fix issue whereby soft locks associated with a flow were not being released because they were not initially registered properly.
2017-04-21 13:38:03 +01:00
Andrius Dagys
a2de90a6da Test if address is reachable before choosing 2017-04-20 19:36:41 +02:00
Andrius Dagys
a01c466beb Ignore utunX interfaces when detecting public IP 2017-04-20 19:36:41 +02:00
Chris Rankin
d2d7cbc9ec CORDA-299: Remove progress Observable from FlowHandle, unless explicitly requested. (#513)
* Remove progress Observable from FlowHandle, unless explicitly requested.
* Refactor FlowHandle creation into FlowStateMachine.
* Prevent server-side queue subscription for dummy Observable.
* Refactor so that RPC client does not receive any unused progress Observables. This is the simplest way of ensuring we have no dangling "hot" Observables when the RPC client closes.
* Test flow has correct handle.
* Resolve some compiler warnings.
* Document how starting a flow does not involve progress tracking by default.
* Update changelog and release notes for RPC API.
* Rename new RPC API to startTrackedFlow().
* Remove optimisation because of its affect on the client-side.
* Update documentation.
2017-04-19 20:11:51 +01:00
Andras Slemmer
0d90082482 Merge pull request #555 from corda/aslemmer-fix-h2-and-copycat-server-leak
Shutdown copycat server and h2 database on Node shutdown
2017-04-19 14:15:33 +01:00
Andras Slemmer
201c558245 Shutdown copycat server and h2 database on Node shutdown 2017-04-19 12:24:38 +01:00
Shams Asari
37a94237c8 Moved tests in net.corda.node.services to correct packages 2017-04-19 12:11:59 +01:00
Shams Asari
8e0a0ba8fb Provide useful error message if db iterator is left on stack during checkpointing
AutoCloseables in general are also forbidden as restoring them across node restarts is not supported.
2017-04-19 09:39:41 +01:00
Ross Nicoll
6d48667d91 Add infrastructure for X.500 name support (#534)
This introduces new functions for fetching parties by their X.500 name, Kryo serialization support for X500Name objects, an X500Name generator and some X509 utility support in preparation for full X.500 name support.
2017-04-13 15:32:34 +01:00
Ross Nicoll
1a88ca4bee Add composite signature engine (#446)
Add CompositeSignature and CompositeSignatureWithKeys classes as part of preliminary work to make CompositeKey signature validation compatible with java.security classes, so that these keys and signatures can be used readily in X.509 certificates.
2017-04-13 13:25:12 +01:00
Andrzej Cichocki
88b5e32ab2 Convert databaseTransaction to extension function on Database. (#537) 2017-04-12 17:15:29 +01:00
Andrzej Cichocki
3e007c02f4 Fix potential file handle leak in Attachment (#539)
* Make mockito available everywhere (core in particular).
* Also set the not-found path as FNFE message.
2017-04-12 15:30:28 +01:00
Mike Hearn
ac337240a6 Minor: more cleanups 2017-04-12 14:42:30 +02:00
Mike Hearn
bea799c60d Minor: node: fix inspector warnings and delete dead code. 2017-04-12 14:42:30 +02:00
Mike Hearn
1a86ac481f Minor: core: fix static analysis warnings.
One actual bug was found this way, albeit a harmless one.
2017-04-12 14:42:29 +02:00
Ross Nicoll
d35bd74596 Standardise identities used in tests, demos, etc.
Standaridise the identity names of Alice, Bob and Charlie, notary, map service, etc. in order
to ensure consistency across the code base and reduce number of places that have to be changed
to introduce proper X.500 names.

Move Alice, Bob & Charlie identities into the utilities package so they can be used in demos
2017-04-12 11:40:48 +01:00
kasiastreich
36d5d0d7b2 Refactor of CompositeKeys to implement PublicKey interface. (#433)
* Make CompositeKey implement PublicKey

The initial implementation of composite keys as their own distinct class separate from PublicKey
means that the keys cannot be used on standard classes such as Certificate. This work is a beginning
to modifying CompositeKey to being a PublicKey implementation, although significant further work
is required to integrate this properly with the standard Java APIs, especially around verifying
signatures using the new key type.

* First stage of making CompositeKey implement PublicKey interface. Revert to using PublicKey everywhere we expect a key.

* Move algorithm and format into companion object (#432)

Move algorithm and format into companion object so that they can be referenced from other
classes (i.e. the upcoming signature class).

* Add simple invariants to construction of CompositeKey.
Builder emits CompositeKeys in simplified normalised form. Forbid keys with single child node, force ordering on children and forbid duplicates on the same level. It's not full semantical normalisation.

* Make constructor of CompositeKey private, move NodeWeight inside the class.
Add utility function for Kryo deserialization to read list with length constraints.
2017-04-12 11:13:20 +01:00
Mike Hearn
0c0c5521c0 Minor: address more formatting issues spotted by Shams 2017-04-11 15:53:05 +02:00
Mike Hearn
c097229935 Minor: run code cleanup inspections 2017-04-11 15:53:05 +02:00
Mike Hearn
d6af727751 Minor: auto-format of module: node 2017-04-11 15:53:05 +02:00
Clinton
35fa9d2e59 Version number parser can now handle patch versions. (#516) 2017-04-11 12:08:42 +01:00
Rick Parker
d31a6fae85 Fix up HibernateObserver to allow cascading persistence after bug report (#524) 2017-04-10 11:33:03 +01:00
Shams Asari
c17fe29a62 Converted FullNodeConfiguration into a data class and added ability to parse Configs into data classes 2017-04-07 17:54:03 +01:00
Konstantinos Chalkias
f7dd2733f2 Kryo register FileInputStream and addDefaultSerializer for InputStream (#471)
HashCheckingStream CordaSerializable and FileInputStream Kryo register
2017-04-06 11:25:49 +01:00
Ross Nicoll
48b121d145 Add Cash*Flow tests
Add tests for CashIssueFlow, CashPaymentFlow and CashExitFlow. While these were mostly covered by other tests
already, CashExistFlow was not, and any bugs would be harder to identify because they are mixed in with other
functionality (i.e. vault tests)
2017-04-04 13:44:10 +01:00
Shams Asari
848988bf1c Merge pull request #487 from corda/shams-sealed-data-classes
Converted sealed data types to be data classes
2017-04-04 13:04:38 +01:00
Clinton
09e7d89e4e Merge pull request #500 from corda/clint-driverdebugportfix
Readded the debug port to the driver
2017-04-04 11:57:27 +01:00
Shams Asari
faef877a8d Converted sealed data types to be data classes 2017-04-04 11:37:56 +01:00
Clinton Alexander
6768a83232 Readded the debug port to the driver and added a log entry for the debug port. 2017-04-04 10:28:18 +01:00
Konstantinos Chalkias
dbd82705aa Artemis - allow attachments to a maximum of 10MiB including any headers. (#452)
Allow attachments to a maximum of 10MiB including any headers.
2017-04-03 18:42:21 +01:00
josecoll
413e39903d Fixed bug whereby Cash Exit was not taking into account the issuer reference (#492)
* Fixed bug whereby Cash Exit was not taking into account the issuer reference.
Added additional JUnit tests for coin selection by issuer.
Added some trace logging in AbstractConserveAmount.

* PR review: added additional state with 3rd issuer reference in test.
2017-04-03 17:51:56 +01:00
Shams Asari
e0c548d4fa Cleaned up code causing build warnings 2017-04-03 13:52:51 +01:00
Ross Nicoll
30dd29752c Clarify exceptions thrown from loading a key store
Clarify exceptions thrown from loading a key store as a general cleanup. Also tightens the
exceptions caught when loading key stores from AbstractNode, so in case of an unexpected error
we don't silently drop the exception.
2017-04-03 13:41:40 +01:00
Andrius Dagys
846d9caa09 Add non-validating Raft notary 2017-03-31 11:58:53 +01:00
Clinton
fcdcb0bdcf Merge pull request #469 from corda/clint-reducebuildsize
Webserver no longer depends on node.
2017-03-31 11:54:13 +01:00
josecoll
73c0fdc118 CashExitFlow now uses coin selection with soft locking. (#481) 2017-03-31 11:47:59 +01:00
Chris Rankin
b3936a2159 Exclude commons-logging for all projects at top level. (#473) 2017-03-30 20:59:50 +01:00
Chris Rankin
f15a22d828 Replace kotlinx-support-jdk8 with kotlin-stdlib-jre8. (#463)
* Replace kotlinx-support-jdk8 with kotlin-stdlib-jre8.
* Add kotlinVersion to constants.properties.

* Remove unused variable.
2017-03-30 16:27:01 +01:00
Andrius Dagys
55af8cff74 Update Copycat (Raft lib) version to 1.2.3 2017-03-30 15:55:47 +01:00
Clinton Alexander
d4e0ab52fe Moved the webserver from being a subproject of node to a subproject of client. 2017-03-30 14:43:18 +01:00
Clinton Alexander
27e7a4226e Removed unnecessary config for webserver. 2017-03-30 14:33:26 +01:00
Clinton Alexander
561b2e50a6 Webserver no longer depends on node. Added a configuration parser for the webserver. Size of resulting JAR now 16MB smaller. 2017-03-30 14:27:18 +01:00
Mike Hearn
577b2c2c22 CORDA-319: Shell: use ExternalResolver to load our commands
This eliminates JIT java compilation and the consequent need for
tools.jar (which doesn't get shipped in DemoBench). It also makes
development more pleasant by avoiding weird IDE integration issues
that came from having java-in-resources.
2017-03-30 14:58:59 +02:00
Mike Hearn
527e571bc3 CORDA-312: Shell: point at our own fork of CRaSH. 2017-03-30 14:58:59 +02:00
Qian Hong
03deffa955 MQSecurityTest: Make sure no actual message is received. 2017-03-30 14:01:29 +02:00
Patrick Kuo
78a0024e00 Fix various deprecated warnings
* Changed deprecated kotlin.reflect.primaryConstructor to kotlin.reflect.full.primaryConstructor
* Changed deprecated kotlin.reflect.memberProperties to kotlin.reflect.full.memberProperties
* Changed deprecated kotlin.reflect.declaredMemberProperties to kotlin.reflect.full.declaredMemberProperties
* Changed deprecated AllComposition to AllOf
* Changed deprecated AnyComposition to AnyOf
* Changed deprecated kotlin.reflect.KotlinReflectionInternalError to kotlin.reflect.jvm.internal.KotlinReflectionInternalError
* Changed deprecated HostAndPort.hostText to HostAndPort.host
* Removed duplicated method net.corda.core.node.recordTransactions
2017-03-30 10:00:46 +01:00
Patrick Kuo
9a7d0a0fb5 Replace unused variables with _ after kotlin 1.1.1 upgrade (#456)
* Replace unused variables with _ after kotlin 1.1.1 upgrade
2017-03-29 13:54:40 +01:00
josecoll
7eada1408e Reduce warning and info messages in node log files (Artemis) (#449)
* Reduce warning and info messages in node log files (Artemis)
Add an additional lof message for conflicting states identified by the Notary.

* Upgraded severity of user login message from trace to debug.

* Suppress Artemis log4j WARNING's for core.server.checkDeadLetterAddressAndExpiryAddress
2017-03-29 11:40:19 +01:00
josecoll
3497e42f7c Upgrade to Requery 1.2.1 with Composite Key support (#443)
* Test SELECT WHERE IN composite key using requery 1.2.0

Upgraded Vault Service code to use Requery 1.2.0 SELECT .. WHERE IN

Updated generated schema code with Requery 1.2.0

Upgrade to Requery 1.2.1

Upgrade to Requery 1.2.1 - converted to use update DSL with composite key
Removed redundant JDBC SQL test cases.

Minor updates following PR review comments from RP.

* Streamline companion object initialisation.
2017-03-29 10:51:02 +01:00
josecoll
bafedc21e2 Display Corda node legal name in JVisualVM Console for MockNode testing. (#444)
* Display Corda node legal name in JVisualVM Console for MockNode testing.

* Removed dash in displayed corda node name.

* Reinstated the dash in displayed corda node name (as JVisualVM does not parse the space correctly)
2017-03-29 09:22:01 +01:00
Patrick Kuo
6ca0dffa6c use sshdPortAllocation for sshdAddress instead of portAllocation to fix broken demos due to port shift. 2017-03-29 10:15:14 +02:00
Matthew Nesbit
b75913c24a Merge pull request #451 from corda/mnesbit-fix-flaky-tests
Fixes some charset encoding and timing tests problems on windows
2017-03-28 18:21:29 +01:00
Rick Parker
8ef1d767c9 Consolidate maven repositories (#445)
* Consolidate repositories into root build.gradle
2017-03-28 17:17:40 +01:00
Matthew Nesbit
8f1d58a508 Fix unit tests causing problems on windows 2017-03-28 16:39:29 +01:00
Clinton Alexander
252195672b Corrected driver documentation. 2017-03-28 16:18:33 +01:00
Clinton Alexander
48832d44fa Added verifier type to JavaDoc for startNode 2017-03-28 12:27:34 +01:00
exfalso
81dcde99bf #340: Factor out jvm process start into utility function 2017-03-27 17:42:51 +01:00
Andras Slemmer
48952dfc02 Add node-api, split minimal node functionality, OutOfProcessTransactionVerifierService 2017-03-27 17:42:51 +01:00
josecoll
0280299104 Soft locking implementation using database coin selection
Fix broken IssuerFlowTest

Fix IssuerFlowTests after rebase.

Resolve conflicts after rebase.

Soft locking converted to use persistent store.
Added additional optional 'includeLockStates' parameter in VaultService states API call.
Added Vault softLocked states query API call.

Fixed commercial paper failing test.
Improved exception handling on soft locking UPDATE statement.

Using SELECT FOR UPDATE to ensure correct soft locking data visibility.
Db query operations moved out of mutex code (as locking managed by underlying DB)

Adjusted logging severity levels.

Adjusted logging severity levels.

GenerateSpending now performing fine grained query for unconsumed states by joining with contract_cash_states table.
Using H2 proprietary cummulative counting feature (using sessioni SET variables)
Refactored and simplified HibernateObserver constructor to enable usage in JUnit tests.

Event generator issues larger random amounts (10,000..1,000,000) to those than are spent (0..10,000)
Adjusted Issue (5:1) and Exit (10:1) generation frequency vs spending.

Minor fixes: added optional lockid into select for spending criteria, set notary, additional trace logging.

Generate Cash Schema by default upon node start-up (as part of NodeSchemaService initialisation).

Explicitly close JDBC statements in finally() blocks.

Tightened HibernateObserver constructor.

Fix CommercialPaper test (was missing auto-generation of CONTRACT_CASH table)

Revert default JVM size back to 200Mb.

Revert default number of iterations in Explorer Node Simulation mode (back to 10000 with .5 sec sleep interval).

Remove redundant setter function.

Added TODO messages indicating Requery / H2 restrictions & caveats.

Consumed states lock updates now performed in general consumed state Update.

Updated/added Soft Locking documentation.

Addressed initial PR comments: use THREAD_LOCAL_KRYO, use AbstractParty, extract helper method, improve readability, address some doc typos

Addressed PR comment: removed lockId from WireTransaction.

Fixed soft locking UPDATE statements.

Improvements to VaultSoftLockManager for auto-registration of soft locks for flows with spendable states (as notifications from vault).
Other optimisations (IssuerFlow no longer explicitly reserve/release issued state) and improvements (soft lock release management of soft locks, docs update)

Performance update: now using Requery for UPDATE in release soft locking (non-composite key statement)

Removed redundant TODO messages (TODO: revisit Kryo bug when using THREAD_LOCAL_KYRO)

Minor fixes following rebase

Fixed failing JUnit following rebase

Addressed MH PR review items (1st pass)

Fix broken JUnit

Significant changes to RDBMS operations within coin selection and soft locking as requested by PR review.
(Removed SELECT FOR UPDATE; added RETRY upon coin selection; reverting partial soft locks)

Addressed a number of PR review requests added by MH (comments/spelling, lockID instantiation, HibernateObserver instantiation, cash schema white-listing usage)

Addressed latest PR review comments from RP.

Minor fixes following rebase from master.

Fixed final failing JUnit (issuer flow concurrent).

Updated TraderDemo to trigger concurrent issuance of cash.

Fixed compiler warning on lockId null check.

Fixed subtle bug in coin selection intermittently surfaced in IntegrationTestTutorial.

Fixed small memory leak.

Removed stray } in logger trace message.

Slight rewording of description of Soft Locking in docs.

Renamed NoStatesAvailableException to StatesNotAvailableException.
generateSpend is now Suspendable (calls sleep method on flow upon coin selection retry).

Added companion function to enable a Strand to sleep but without locking transactional context.

Improved logging, changed to StateNotAvailableException, using Flow sleep upon retry, tweaked SELECT criteria in coin selection, fixed bug when insufficient states selectable, generateSpend is now @suspendable

Improved handling and logging of flow results in Simulation Mode.

Fixed minor error in sleep when not an active flow.

Retry coin selection when unavailable states (as these may become available as new states).
Additional debug logging to highlight and identify H2 coin selection sporadic bug.

Inlined sleep method due to intermittent Quasar error.

Re-introduce selection clause that prevents selection and temporary locking of already locked states (by other flows).
Improved trace logging for coin selection (SQL row level info).
Correctly calling FlowStateMachineImpl sleep (now inlined and working correctly)

Fixed rebase error.

Remove redundant TODO message.
2017-03-27 17:12:33 +01:00
Shams Asari
bb74f0ca34 Merge pull request #427 from corda/shams-consistent-guava-deps
Upgraded both guava and guava-testlib to 21.0 and made sure they shar…
2017-03-24 18:30:11 +00:00
Ross Nicoll
c3cf2226ea Extend identity service tests
RBS report problems with multiple nodes being able to find each other in the identity service. This extends the name
lookup test case to try three nodes, to check all of the stored values, and to use random keys rather than static.

Add trace log of identity registrations to aid with tracking state.
2017-03-24 18:25:49 +00:00
Shams Asari
52ea54f742 Upgraded both guava and guava-testlib to 21.0 and made sure they share the same version variable 2017-03-24 17:17:36 +00:00
Chris Rankin
558a3207e9 Include CordaCaplet$1 to fix WebServer startup. (#430) 2017-03-24 17:14:20 +00:00
Chris Rankin
ad71a48505 Fix merging: (#426)
- :finance and :node-schemas no longer contain junit-quickcheck-*
  and so no longer need to exclude javassist:javassist.
- RPCStructures.kt has been moved to :node-api, and so we no longer
  need the commons-fileupload dependency here.
2017-03-24 13:38:26 +00:00
Mike Hearn
68ff33549a Address review comments 2017-03-24 12:44:54 +01:00
Mike Hearn
ac90fe724e Shell: add support for uploading and downloading attachments. 2017-03-24 12:44:54 +01:00
Mike Hearn
347224c900 Improve attachment checks to ensure that a stream is actually a JAR/ZIP. 2017-03-24 12:44:54 +01:00
Mike Hearn
2cb02c75eb Minor: remove ANSI progress observer, delete some currently dead code in the shell. 2017-03-24 12:44:54 +01:00
Marek Skocovsky
262c87a5c6 Integrate CRaSH shell (SSHD). Joint effort between Mike Hearn and Marek Skocovsky.
The shell is embedded in the node and offers the ability to monitor
and control the node via the launching terminal.

Still to do:

* Switch to a fork of CRaSH that we can maintain ourselves, and merge in Marek's SSH patch so we can enable SSH access.
* Add persistent command history that survives restarts.
* Tab completion for the 'flow' and 'run' commands.
* Remove the 'jul' command and replace it with a command that lets you see and tail the log4j logs instead.
* Fix or remove the other crash commands that have bitrotted since 2015.
2017-03-24 12:44:54 +01:00
Chris Rankin
eaf9dad7c9 Remove junit-quickcheck from Corda because it is only used for testing. (#416) 2017-03-23 17:32:14 +00:00
Andrius Dagys
71fe3e3d3b Record a metric for duration and rate of execution for every flow (#372)
* Record a metric for the duration and rate of execution for every flow. This is useful for task intense scenarios to detect performance degradation.

* Measure both successful and failed flow durations
2017-03-22 16:52:41 +00:00
Chris Rankin
98266da41c Refactor CordaRPCClient into new :client:rpc Gradle module. (#405)
* CORDA-305: Refactor CordaRPCClient into :client:rpc module

* CORDA-305: Remove the Kotlin test framework from the artifacts.

* CORDA-305: Migrate serialisation whitelist into node-api module.

* CORDA-305: Clean up unused RPC observables.

* CORDA-305: Add :client:rpc module to documentation tasks.

* CORDA-305: Include :finance into :client:rpc for its serialisable classes.

* CORDA-305: Move test classes into the correct directory.

* CORDA-305: Migrate :finance dependency from :client:rpc into DemoBench.

* CORDA-305: Update wording of TODO about handling Observables.
2017-03-22 15:52:54 +00:00
Ross Nicoll
7e0e7bc645 Fix warning in NodeAttachmentService 2017-03-22 12:20:29 +01:00
Chris Rankin
9e43df36d3 Refactor :client module into :client:javafx and :client:mock (#388)
* CORDA-304: Refactor :client modules into :client:javafx and :client:mock.

* CORDA-304: Add :client:mock to Dokka tasks, and remove unused integrationTest task.

* CORDA-304: Migrate DriverBasedTest from node into test-utils.

* CORDA-304: Rename .fx. package to .jfx. to prevent confusion with "exchange rate".

* CORDA-304: Rename module to ':client:jfx'.
2017-03-21 19:45:12 +00:00
Andras Slemmer
7a9bc5bfad driver: Add ShutdownManager, make network map service optional 2017-03-21 18:08:21 +00:00
Mike Hearn
1243118aa9 Minor: more banking jokes, surround legal name in quotes 2017-03-21 18:01:17 +01:00
Mike Hearn
4c6548107a Minor: don't repeat the legal name of the node multiple times in the output (which causes indentation issues) 2017-03-21 18:01:17 +01:00
Shams Asari
209f5c8a25 Logging fixes, including broken --logging-level cmd line arg 2017-03-21 15:36:32 +00:00
Mike Hearn
0d54832d88 FlowSessionException is sent over RPC so must be serializable and documented. 2017-03-20 15:17:31 +01:00
Mike Hearn
afbc8f9b5c De-issuerify the cash payment flow. This makes it easier to use the payment flow from the shell. 2017-03-20 15:14:28 +01:00
Andras Slemmer
4f6b44ceff Merge pull request #379 from corda/aslemmer-node-api
Add :node-api, factor out some artemis code
2017-03-20 13:31:21 +00:00
Chris Rankin
64fe92ce34 Upgrade to H2 1.4.194. (#389)
- Timezone related fixes.
- A Turkish case canonicalisation bug.
- Fixes for some scary threading related bugs.
2017-03-20 10:27:45 +00:00
Andras Slemmer
d3f956ab60 Address PR 379 comments 2017-03-17 15:09:04 +00:00
Rick Parker
1de1f9095f Several tests were corrupting Kryo which was then returned to the common pool. (#378)
* We were leaving trailing attachmentStorage on pooled kryo instances after some tests.  Changed attachment storage logic to make it impossible to leave it behind.

* Some low level tests corrupt the Kryo config, so do not return to pool when this is the case.  Also, we discovered that Kryo is caching class name to class resolution.  We don't want to do this where attachments are involved.  The errors raised highlighted a class missing from the whitelist.  Need to write a unit test to test the class loader issue.

* Unit test for attachment class loading with kryo.
2017-03-17 12:43:11 +00:00
Andras Slemmer
c3c1f3d801 Add :node-api, factor out some artemis code 2017-03-17 11:47:05 +00:00
Ross Nicoll
486368d926 Clean up messaging/RPC port configuration and docs (#296)
* Non-ssl artemis acceptor for RPC connection. (#271)

* New non-ssl acceptor in artemis server for RPC connection.

* Rename artemisAddress with messagingAddress

Rename artemisAddress with messagingAddress so that the node configuration file properties match
the code variable names.
Rename artemisPort to messagingPort in Gradle configuration to match node configuration naming.

* Add rpcPort configuration option for Gradle

* Update docs to reflect changes to RPC port configuration

* Renumber ports in example CorDapp to match numbering used elsewhere

* Restructure upgrade guide

* added config file checks on corda startup to make the upgrade path a bit smoother.
2017-03-17 10:32:14 +00:00
Mike Hearn
eb21458885 Some fixes to emoji/ANSI renderer 2017-03-17 10:54:25 +01:00
Shams Asari
f079c05e6a Merge pull request #361 from corda/shams-nms-reg-error-response
Clean up of network map service  and its tests, and added error msg t…
2017-03-16 17:03:42 +00:00
Konstantinos Chalkias
5966610a6e DEFAULT_MAX_BUCKETS based on max heap size
MAX_DEFAULT_BUCKETS is linearly correlated to max heap size with a minimum of 256 buckets.
2017-03-16 16:40:34 +00:00
Shams Asari
5e3e7f6c1c Clean up of network map service and its tests, and added error msg to registration response 2017-03-16 16:37:21 +00:00
josecoll
391270ed71 RequeryConfiguration setting for table creation is now CREATE_NOT_EXISTS (was DROP_CREATE) (#374) 2017-03-16 16:23:37 +00:00
Rick Parker
f3a5f8e659 Pool Kryo instances for efficiency. (#352)
Pooled Kryo
2017-03-16 08:24:06 +00:00
Shams Asari
f581844f3f Flow registration takes in a Class object rather than a KClass 2017-03-15 16:32:13 +00:00
Andras Slemmer
6a6698b598 Merge pull request #339 from corda/aslemmer-fix-rpc-close-deliver-deadlock
rpc: Fix deadlock caused by deliver() and close()
2017-03-15 16:20:11 +00:00
Konstantinos Chalkias
195d69d0dc Print to screen and log basic info (#356)
Adding an extra logger to printBasicNodeInfo in both console and log file, respectively. Also, node's legal name is now printed to console as well.
2017-03-15 16:18:24 +00:00
Clinton
3b027345b0 Merge pull request #362 from corda/clint-webcapsulefix
Webserver capsule now contains the correct caplet
2017-03-14 16:39:16 +00:00
Clinton Alexander
e0773ff737 Webserver capsule now contains the correct caplet which was missing due to an incorrect path. 2017-03-14 16:02:33 +00:00
josecoll
18e4620928 ArrayDeque FlowLogic references were not being removed on flow termination. (#353) 2017-03-14 15:25:34 +00:00
Clinton
81dcec579e Merge pull request #346 from corda/rnicoll-capsule-web-server
Add webserver Capsule configuration
2017-03-14 15:22:41 +00:00
Andras Slemmer
389685a31e PR 339 Address comments 2017-03-14 15:17:15 +00:00
Andras Slemmer
60520412c8 rpc: Fix deadlock caused by deliver() and close() 2017-03-14 15:17:15 +00:00
Clinton Alexander
20282b5d53 Renamed webserver capsule to webcapsule module to avoid clashes with the node capsule 2017-03-14 12:00:36 +00:00
Shams Asari
bbbc4d9eaa Fix in reading non-present manifest values in single tests 2017-03-13 18:37:16 +00:00
Chris Rankin
ba4cce36ab Use SLF4J's version of the commons-logging bindings. Only include SLF4J's Log4J back-end for actual applications, e.g. Node. (#350) 2017-03-13 15:57:17 +00:00
Ross Nicoll
3e83093987 Add webserver Capsule configuration
Add Capsule configuration for the webserver JAR, so that the classes-only `webserver.jar` is published as well
as the full fat `corda-webserver.jar`. This is required for running the tutorial/template from IntelliJ.
2017-03-13 15:01:11 +00:00
Konstantinos Chalkias
afd5521b00 Lazy NodeVaultService.states (#349)
Convert NodeVaultService states to return Iterable (backed by Sequence) Vs the old way using a List. Worth noting this relieves memory pressure as the number of vault states grows.

* remove toList in ContractUpgradeFlowTest
2017-03-13 14:06:47 +00:00
Mike Hearn
21f5f6d9d0 ANSIProgressRenderer: allow progressTracker to be set to null 2017-03-10 17:26:18 +01:00
Mike Hearn
5e19bad4b5 Minor: don't use a separate thread to start Metrics-to-JMX export.
This should hopefully resolve a shutdown hang due to the misnamed "WebServer" thread not being a daemon thread.
2017-03-10 17:23:43 +01:00
Chris Rankin
42f2536dec Ensure Node uses only a single version of Netty. (#343)
* Ensure Node uses only a single version of Netty.

* Use string version of Gradle dependency.
2017-03-10 15:57:31 +00:00
Shams Asari
1adc9e65ec Logging the PID and version info 2017-03-10 10:29:41 +00:00
Shams Asari
e9d63b2662 Added bits of versioning info to the node 2017-03-09 16:36:21 +00:00
Konstantinos Chalkias
4a9ff84fc7 Allowing multiple signature algorithms (#250)
Basic crypto API to support 5 signature schemes and MetaData-ed signatures.
Supported schemes: (1) RSA_SHA256, (2) ECDSA_SECP256K1_SHA256, (3) ECDSA_SECP256R1_SHA256, (4) EDDSA_ED25519_SHA512, (5) SPHINCS-256_SHA512.

To sign a transaction, a signer should create a MetaData wrapper that contains transaction's merkle root and some extra information, such as signer's public key, timestamp and visibleInputs. Actually, MetaData is utilised to support a practical partial, blind and extra-data attached signature model.
When a MetaData object is signed, the signer sends a TransactionSignature object that contains the signed output and the corresponding MetaData object.

Remarks: 
This is an temporary solution for signature algorithmic agility. Further development is required for a robust and extensible Crypto Manager/Provider PKI that will support certificate creation, key generation, signing/verifying, deterministic key derivation, encoding formats, SGX/HSM support, identity and key management, versioning, revocation, asynchronicity, metadata, partial sig. policies etc.
2017-03-08 17:45:23 +00:00
Rick Parker
dc8c6747d3 Allow escaped unsubscribed RPC Observables to be GC'd (#334)
* QueuedObservable could not leak due to hard references.  Have made it weak referenced but also had to reference count a hard reference to prevent early GC.  Explained in comments.

* Improved comments.

* Fixed typo

* Fixed another typo
2017-03-08 14:09:38 +00:00
Mike Hearn
ca70ca051c Merge branch 'mike-json-support-module' 2017-03-08 15:06:50 +01:00
Mike Hearn
35836d9926 Add a registeredFlows() RPC that lists the RPCs the node knows about. 2017-03-08 15:01:13 +01:00
Mike Hearn
c626f8b306 Make the corda.jar executable on UNIX. When run in this way, it eliminates the overhead of a second JVM. 2017-03-08 14:56:47 +01:00
Katarzyna Streich
561ac60b95 Correctly publish corda-webserver.jar to maven local repository. 2017-03-08 13:54:14 +00:00
Mike Hearn
2628a10c51 Refactor the JSON support out into a separate module, :corda:jackson, as Jackson/JSON configuration is generally useful outside the context of web servers. 2017-03-08 12:31:22 +01:00
Ross Nicoll
cb91842f18 Remove need for full party to deserialize anonymous parties 2017-03-08 10:10:49 +00:00
Andrius Dagys
97b3c35ec2 Add public IP detection (from network interfaces), node outputs a warning if no public IP detected or specified in the config. 2017-03-07 17:41:23 +00:00
Chris Rankin
0e3540d174 CORDA-265: Implement "ALL" permission for RPC users. (#306)
* CORDA-265: Implement "ALL" permission for RPC users. Users with this permission in node.conf can use any flow.

* CORDA-265: Ensure that we always close the RPC proxy object after each test.

* CORDA-265: Refactor construction of dummy RPC client into an abstract base class.

* CORDA-265: Document RPC "ALL" permission.
2017-03-07 16:57:34 +00:00
Karel Hajek
1e78d6a3a7 Simple Attachment Storage implementation using Requery/H2 database 2017-03-07 16:12:38 +01:00
Andrius Dagys
907a893ca1 BFT notary prototype: add validation and signature collection (#279)
* BFT notary prototype: add a non-validating service.
Each replica now validates the transaction timestamp and returns an individual signature to the BFT client. The client then returns a list of signatures back to the notary service flow.

The validating variant is still incomplete - it requires the ability to suspend flows on arbitrary function calls.
2017-03-07 12:39:19 +00:00
Chris Rankin
0a5080a4e4 Exclude old version of Javassist in favour of Hibernate's version from Node. (#320)
* Exclude old version of Javassist in favour of Hibernate's version.

* Comment why we are excluding javassist:javassist, and add TODO for when junit-quickcheck 0.8 is released.
2017-03-07 11:43:06 +00:00
Ross Nicoll
b5ba070301 Revert "Non-ssl artemis acceptor for RPC connection. (#271)"
This reverts commit f0d82e4918.
2017-03-06 14:03:23 +00:00
Shams Asari
059056de65 Removed "FLOW" from network map topic constants 2017-03-02 10:11:38 +00:00
Mike Hearn
cc61be5b6a Inform users about the newly available Corda training programs at startup and in the docsite. 2017-02-28 16:50:43 +01:00
Andrius Dagys
6b4950290e Ignore BFT map test for now
I've removed this test in my further BFT work
2017-02-28 09:34:49 +00:00
Rick Parker
c4c4c51d7d Kryo serialisation whitelisting and misc enhancements. (#267)
Kryo serialisation whitelisting and misc enhancements
2017-02-28 08:12:18 +00:00
Clinton Alexander
f786ff9312 Correct CRLF for BAT files and fixed templating of JAR names. 2017-02-27 16:42:28 +00:00
Clinton Alexander
75ff04d5a7 Webserver is now deployed as a capsule. 2017-02-27 16:42:23 +00:00
Clinton Alexander
8414c97a61 Moved JsonSupport to new webserver module. Fixed a few compile errors.
Fixed compile issues caused by webserver being split to a separate project.
WebServer now starts and stops correctly as a separate module.
2017-02-27 16:41:48 +00:00
Clinton Alexander
bc9f86905c Added webserver module. Moved webserver files to the webserver module. 2017-02-27 16:15:27 +00:00
Patrick Kuo
f0d82e4918 Non-ssl artemis acceptor for RPC connection. (#271)
* New non-ssl acceptor in artemis server for RPC connection.
2017-02-24 15:36:36 +00:00
Chris Rankin
d5872f4e5b Merge pull request #272 from corda/get-cash-balances
Implement RPCOp getCashBalances().
2017-02-23 16:33:35 +00:00
Qian Hong
5e3c874ebf Minor: Fix typo in ValidatingNotaryService comment. 2017-02-23 12:08:44 +01:00
Andrius Dagys
2b3200207a Node refactoring: move building advertised services before SMM initialisation - the node doesn't need to maintain a reference to a uniqueness provider anymore.
Extract parts of start() into separate methods.
2017-02-23 10:45:38 +00:00
Chris Rankin
221278197a Implement RPCOp getCashBalances(). 2017-02-22 13:57:15 +00:00
Mike Hearn
b8942a2cc9 Remove the SignedTransaction.id field, which took part in serialisation. Calculate it on demand instead. 2017-02-22 14:16:04 +01:00
Andrius Dagys
006faa82a1 Make notary flow return a collection of signatures to support the BFT… (#264)
Make notary flow return a collection of signatures to support the BFT notary. For a single-node or RAFT notary it would just contain a single signature.
2017-02-22 11:11:35 +00:00
Shams Asari
7181b697a3 extraAdvertisedServiceIds config is now a list of strings, rather than a comma separated string 2017-02-21 15:21:37 +00:00
Andrius Dagys
33717259bd BFT tests: no need to stop threads explicitly 2017-02-21 15:00:05 +00:00
Andrius Dagys
24ae89db18 BFT server: add missing databaseTransaction statement 2017-02-20 15:34:14 +00:00
Patrick Kuo
9a0a9567f3 Make Network registration process more verbose (#251)
* Make the network registration process more verbose
* removed gradle task for building standalone jar for the certificate signing request utility
* Added a flag "--initial-registration" to the corda jar to start the registration
2017-02-20 13:22:37 +00:00
Thomas Schroeter
99721bf8f1 Implement bft-smart notary prototype 2017-02-20 12:08:22 +00:00
Ross Nicoll
3b8d696379 Add missing @Suspendable
Add missing @Suspendable to CashIssueFlow, as well as adding sanity
check to result of starting CashIssueFlow from
IntegrationTestingTutorial.
2017-02-20 10:41:31 +00:00
Clinton Alexander
539943d790 Added an openAttachment endpoint to the RPC interface and tests for the open, upload and exists attachment RPC interfaces. 2017-02-16 16:57:45 +00:00
Shams Asari
f13817efb3 ProgressTracker emits exception thrown by the flow, allowing the ANSI renderer to correctly stop and print the error (#189) 2017-02-16 12:11:38 +00:00
Ross Nicoll
ed093cdb9d Enforce separation of Party and AnonymousParty 2017-02-16 11:50:33 +00:00
josecoll
fa33336d38 Initial implementation of Vault Persistence using Requery (#191)
* Initial prototyping with Requery as a persistence replacement for Exposed/Hibernate

Applied changes following PR review by RP

Updated timestamp naming (removed committedTimestamp) and StateStatus (removed AWAITING_CONSENSUS) after discussion with RP.

Removed FungibleState and LinearState schemas (and associated tests) - awaiting Requery uni-directional relationship fix.

Added Transaction propagation such that requery re-uses any existing transaction context.

Made requery default logging configurable (disabled by default)

Nullable fields are now truly nullable (in the Kotlin and DDL sense)

Fix for SimmValuation integration test.

Workarounds applied to resolve Requery issues when sharing Transactional context.

Addressed PR review comments from MH.

Further updates following re-review by RP/MH

Further updates following additional PR review comments by RP

Minor update following additional PR review comments by RP

Optimised makeUpdate state processing code.

Resolved conflicts after rebase.

Additional Unit tests and bug fix for correct spending of multiple contract state types within a single transaction.
Required interface change to states() API to take a setOf (ContractStateClassTypes)

Minor code clean-up.

Re-write NodeVaultService consumed state makeUpdate function using SQL.

* Resolve conflict after rebase from master
2017-02-16 11:02:36 +00:00
Ross Nicoll
71babc7019 Remove use of full parties from contract states 2017-02-15 11:43:13 +00:00
Shams Asari
40dde555e7 Added --logging-level cmd line arg to set the logging level, and improved flow logging 2017-02-14 09:56:50 +00:00
Clinton Alexander
3726430e5b Removed unused imports in webserver.kt 2017-02-13 16:52:05 +00:00
Clinton Alexander
ae961a4d99 Fixed the race condition in web server startup with the keystore creation. 2017-02-13 16:42:46 +00:00
Patrick Kuo
28e83d1e66 Example code for contract upgrade using RPC. (#237)
* Added missing out modifier to UpgradedContract class
* Added ContractUpgradeFlow.Instigator to whitelist in AbstractNode
* Added test for contract upgrade using RPC
2017-02-13 15:39:48 +00:00
Andrius Dagys
a19dd55257 Pass a FilteredTransaction instead of a Signed transaction to a non-validating notary flow to preserve privacy.
This also means that the non-validating notary can service requests on the network without loading any custom plugins.
2017-02-13 14:54:46 +00:00
Ross Nicoll
98c30f6432 Remove CashFlow
Remove the CashFlow flow, replacing it with CashFlowCommand which can be used for the use-cases
with instructions passed around as an object.
2017-02-09 18:22:58 +00:00
Patrick Kuo
c054ffe719 Add support for contract upgrades (#165)
* Add support for contract upgrades
* Add interface for the upgraded contract to implement, which provides functionality for upgrading legacy states.
* Add shared upgrade command and verification code for it.
* Add DummyContractV2 to illustrate what an upgraded contract looks like.
* Add new functions to vault service to support upgrading state objects.
* Add contract upgrade flow
2017-02-09 17:14:31 +00:00
Clinton
a61c767505 Merge pull request #232 from corda/clint-cddl
Capsule fat JAR now contains a CDDL notice.
2017-02-09 16:35:01 +00:00
David Lee
21c6c499fa Updated the notice
... to the last version reviewed & approved by legal counsel
2017-02-09 16:07:17 +00:00
Clinton Alexander
1b3bc2ec7d Capsule fat JAR now contains a CDDL notice. 2017-02-09 15:57:31 +00:00
Shams Asari
50e1eb7b21 End flow if waiting for ledger commit and committer flow errors 2017-02-09 15:57:13 +00:00
Ross Nicoll
9055c9d9b0 Split CashFlow into three flows
Split CashFlow into independent CashIssueFlow, CashExitFlow and CashPaymentFlow,
so that users can be given access to one but not the other(s).

Signed-off-by: Ross Nicoll <ross.nicoll@r3.com>
2017-02-09 15:43:48 +00:00
Ross Nicoll
47d260625a Add AnonymousParty superclass of Party
Add AnonymousParty superclass of Party in preparation for anonymising parties stored in
contract states.

Signed-off-by: Ross Nicoll <ross.nicoll@r3.com>
2017-02-09 11:37:32 +00:00
Andrius Dagys
bbcaf5d98c Demo bug fixes (#217)
* Add webAddress back to NMS as it shifts the port allocation for all subsequent nodes and causes all demos to break.

* Attachment demo: fix node names

* Notary demo: fix certificate paths & ports

* IRS demo: role decider fixed to allocate roles properly. Previously it used to pick current node as the Fixer, causing both nodes to initiate the trade flow, resulting in double spend exceptions..
2017-02-07 17:18:21 +00:00
Clinton
dcd8fe915f Merge pull request #218 from corda/clint-webserverlogcleanup
Cleaned up logging in the webdriver...
2017-02-07 16:00:16 +00:00
Shams Asari
657cfa5d96 FlowException can be thrown from within UntrustworthyData.unwrap for better Java interop, and more checked exception annotations relating to flows 2017-02-06 16:00:52 +00:00
Ross Nicoll
9910ce01a3 Switch to using CompositeKey inside network map cache
Switch to using CompositeKey inside network map cache, so that look up of node info from keys
can be done in a more sensible manner.
2017-02-06 14:09:31 +00:00
Mike Hearn
2f378f0e15 Minor: suppress deprecation warning in CordaRPCOpsImpl 2017-02-06 12:29:34 +01:00
Mike Hearn
cc20a10225 Improve the flow commit API.
Make FinalityFlow do more, and be used more consistently.

Add a new waitForLedgerCommit API that is intended to be used at the end of flows, or at any other point where a flow wants to wait for a transaction to finalise (but the finalisation flow is being done by someone else).

Update the docs a bit.
2017-02-06 12:29:34 +01:00
Clinton Alexander
0ae681de76 Cleaned up logging in the webdriver to remove log that fails to display correctly on Windows. 2017-02-03 14:00:49 +00:00
Shams Asari
b86c80691e FlowException serialised over RPC (subtypes are flattened), and improvement to startFlow RPC for correct exception handling 2017-02-03 11:21:10 +00:00
Andrius Dagys
56dbf1e844 Prevent node from starting across upgrades (until we support it better) (#199)
* Prevent node from starting across upgrades (until we support it better).

On first run a version file is created in the node dir, and on subsequent runs the node version is matched against it.

* Move version check from caplet to node.
2017-02-02 18:21:00 +00:00
Ross Nicoll
bc9407d2c8 Correct network map cache tests
InMemoryNetworkMapCacheTest was not actually asserting that an expected exception was thrown, which
meant when earlier changes to the service changed the operation it wasn't caught. The service now
overwrites previous node if a new matching node is added, and this updates the test to follow that
design.
2017-02-02 16:01:10 +00:00
Ross Nicoll
2f9af7d7dc Revert Party.Full in preference for a less invasive change 2017-02-02 13:47:32 +00:00
Andras Slemmer
4afd404db4 Address PR 207 comments 2017-02-02 11:44:18 +00:00
Andras Slemmer
de63f90745 Add isRegisteredWithNetworkMap RPC, poll in Driver, expose RPC proxy 2017-02-02 10:54:50 +00:00
Shams Asari
3f6c8ab1e2 Allow received FlowException to propagate further to initiating flow 2017-02-01 17:30:38 +00:00
Ross Nicoll
1b86ddfd6e Replace Party with Party.Full
Replace Party with Party.Full as an interim step to introducing the Party.Anonymised class.

Signed-off-by: Ross Nicoll <ross.nicoll@r3.com>
2017-02-01 15:18:12 +00:00
Clinton
d376a902ad Merge pull request #180 from corda/clint-webserversplit
Split webserver from node
2017-02-01 12:13:31 +00:00
Patrick Kuo
7f96b752d1 Added reconnect capability to RPC (#192)
* Added reconnect capability to RPC
* Issue - https://github.com/corda/corda/issues/184
* JIRA - https://r3-cev.atlassian.net/browse/CORDA-189
2017-01-31 17:04:05 +00:00
Clinton Alexander
876bae67cb Added TODOs for future splitting of the web server from the node. 2017-01-31 16:03:34 +00:00
Shams Asari
646ce8afe0 FlowException thrown by a flow is propagated to all counterparties 2017-01-31 13:30:33 +00:00
Patrick Kuo
e8015e689a Flows shouldn't have to suspend if just doing a send (#187)
* CORDA-45 Flows shouldn't have to suspend if just doing a send
2017-01-30 16:21:43 +00:00
Ross Nicoll
e383752995 Adapt Party comparison to use owningKey
Change Party instances to be uniquely identified by the owning key, without taking into account name.
This requires that mock node key generation is reworked so that keys for services and the node itself
are distinct, otherwise the network map service cannot differentiate them.

Signed-off-by: Ross Nicoll <ross.nicoll@r3.com>
2017-01-30 15:46:51 +00:00
Richard Green
e54d6388fd Adding optional delay to AMQ message sending via system properties (#185) 2017-01-30 14:39:40 +00:00
Clinton Alexander
a5f6fb9479 Querying of node and webserver now uses infinite retries to avoid any race conditions. 2017-01-30 12:08:41 +00:00
Clinton Alexander
d2ebcbfab0 Fixed whitespace and formatting with IntelliJ autoformat tool. 2017-01-30 12:05:22 +00:00
Clinton Alexander
65b29a8379 Moved the transaction context into the RPC call site. 2017-01-30 11:21:01 +00:00
Clinton Alexander
3482452c8b Added webserver to runnodes. 2017-01-27 14:15:08 +00:00
Clinton Alexander
13551a6b23 Runnodes now works with the new separate webserver. 2017-01-27 14:14:38 +00:00
Clinton Alexander
537ffae113 Moved file uploading to RPC interface. 2017-01-27 14:13:58 +00:00
Clinton Alexander
d4b6e32682 t # This is a combination of 5 commits.
Driver now queries webserver to ensure it has started.
2017-01-27 14:13:29 +00:00
Clinton Alexander
5f4d4c1da3 Moved the webserver code into the main node module. Driver can now start webserver for nodes. 2017-01-27 14:12:54 +00:00
Clinton Alexander
ecfb762143 Nodes can start without web server. Webserver now uses full node configuration. 2017-01-27 14:12:19 +00:00
Clinton Alexander
fa257738e1 Added webserver project. 2017-01-27 14:10:18 +00:00
Ross Nicoll
1362a305c9 Expand details provided when erroring due to missing signatures in notary flow
Signed-off-by: Ross Nicoll <ross.nicoll@r3.com>
2017-01-25 16:15:40 +00:00
Ross Nicoll
a4254ac695 Remove TransferRecipient
Remove TransferRecipient from StateMachineManagerTests to get rid one of the approximately 6 different ways
in which we refer to endpoints, as part of work to simplify this data model.

Signed-off-by: Ross Nicoll <ross.nicoll@r3.com>
2017-01-25 15:32:03 +00:00
Ross Nicoll
1229c429a4 Rename file to correct reference to protocol -> flow 2017-01-25 13:21:42 +00:00
Shams Asari
20fe0f32f2 Removed "Node" prefix from NodeSSLConfiguration and renamed two file properties to end in "File" 2017-01-23 15:46:36 +00:00
Shams Asari
052a660c1b Making sure exceptions thrown while fibers are suspended are handled properly 2017-01-23 15:39:55 +00:00
Andrius Dagys
e9345e2999 Set h2 write delay to 100ms to improve performance 2017-01-20 12:03:00 +00:00
Patrick Kuo
aeb5a59605 Add logging to node startup when it attempt to connect to the map server (#167)
* Add logging to avoid node startup "hang" when it attempt to connects to the network map, also can use as a hint telling user Network map might be down or unreachable.
2017-01-20 11:34:32 +00:00
Shams Asari
c4e3b258c7 Introducing Observable.toFuture() extension method 2017-01-17 12:56:59 +00:00
Andrius Dagys
ca1b08ad37 Node memory leak fix (#152)
Perform Artemis message sending in a separate thread pool to avoid memory leaks
2017-01-13 18:29:56 +00:00
Thomas Schroeter
6b7edf5af6 Tx validation detect duplicate inputs (#138)
* Move duplicate input detection to transaction verification

Duplicate detection was previously part of the NotaryFlow.
2017-01-13 11:37:28 +00:00
Mike Hearn
ef6e9786a8 Cleanup: improve api docs on FlowLogic, make it clearer when stuff is considered internal, rename an obscurely named field. 2017-01-12 13:30:10 +01:00
Mike Hearn
d26c44d08c Configure Capsule/Driver to give Corda a relatively poxy 200mb heap by default: we don't seem to need more for development purposes. Switch to G1GC by default as well. 2017-01-12 11:37:10 +01:00
Rick Parker
354977ffea Fix intermittent failure in ScheduledFlowTests (#140)
Allow a single latch for all activity in the MockNetwork
2017-01-12 09:54:08 +00:00
Shams Asari
e589031d4b Some clean up of the flow code 2017-01-11 16:33:59 +00:00
Shams Asari
7cd281364f Removed basedir from the config file as it's always overwritten by the --base-directory cmd line arg 2017-01-10 10:49:28 +00:00
Shams Asari
334b91faf0 Testing that a node can communicate with a distributed service it's part of 2017-01-09 17:21:51 +00:00
Mike Hearn
78a6daa985 Minor: log RPC/peer logins 2017-01-06 16:39:01 +01:00
Mike Hearn
32523d376e RPC: Improve the client class with a convenience function and some startup time logging.
This reveals that building the first RPC client is ludicrously slow (like 1.8 seconds) but subsequent builds are more like 30 msec. This might be interpreter overhead, or it might be due to Artemis/SSL doing lots of piggy lazy initialisation or something. But at any rate it may be worth investigating a bit later.
2017-01-06 16:39:01 +01:00
Mike Hearn
20dbdf9d1b Make SSL optional in the RPC client 2017-01-06 16:39:01 +01:00
Andrius Dagys
15363e686a Update RaftNotaryServiceTest to support idempotent notary behaviour 2017-01-06 14:39:34 +00:00
Shams Asari
59456cb6b1 Added a method to NodeHandle to simplify using RPC in the Driver 2017-01-06 14:14:32 +00:00
Andrius Dagys
0867a05ad7 Merge pull request #96 from thschroeter/idempotent-notary-flow
Make NotaryFlow idempotent
2017-01-06 13:53:27 +00:00
Rick Parker
592ac07af0 Upgrade reactivex.rxjava version to latest 1.x (#111)
Update rxjava version and fix thread safety of database transaction boundary subject.
2017-01-06 10:26:44 +00:00
Andrius Dagys
b9d5081af6 Update notary change flow to support encumbrances (#101)
* Update notary change flow to support encumbrances.

Move encumbrance pointer from ContractState to TransactionState.

* Refactor & add new encumbrance tests
2017-01-05 17:44:31 +00:00
Shams Asari
08e391579c Node verifies the peer it connects to by checking its TLS common name 2017-01-05 14:22:11 +00:00
Mike Hearn
875efbfa11 Merge pull request #106 from corda/mike-thread-affinity-for-smm
Additional thread affinity for the StateMachineManager.
2017-01-05 11:03:35 +01:00
Thomas Schroeter
bbc9c763e3 Detect duplicate inputs in NotaryFlow
Throw NotaryException when duplicate inputs are detected.
2017-01-05 08:09:49 +00:00
Clinton
d9663f1698 Merge pull request #72 from corda/clint-simmdemointegrationtest
Add SIMM valuation demo integration test
2017-01-04 15:32:44 +00:00
Mike Hearn
1a53834a60 Additional thread affinity for the StateMachineManager.
Check that the SMM.add method is being called on the SMM thread and throw if not. Make ServiceHubInternal.startFlow() do a blocking call onto the server thread. Update unit tests.

This resolves an issue whereby the scheduler was starting flows outside of the server thread, which isn't intended.
2017-01-04 16:06:33 +01:00
Mike Hearn
119d00c384 Upgrade dependencies and centralise some more version numbers in the root gradle file 2017-01-04 15:44:56 +01:00
Shams Asari
e34f33785f Prevent the node from starting if running on a version of Java with the empty Path bug (#83) 2017-01-03 10:42:18 +00:00
Thomas Schroeter
159ca9884f Make NotaryFlow idempotent
Alternatively, we could make the underlying UniquenessProviders
idempotent.
2016-12-31 09:26:18 +00:00
josecoll
021bcb0628 Merge pull request #92 from corda/colljos-fix-issue88
Fixed issue caused by race condition in process registration v node e…
2016-12-23 15:20:16 +00:00
josecoll
b4a5a03992 Fixed issue caused by race condition in process registration v node exit.
See https://github.com/corda/corda/issues/88
2016-12-23 15:09:13 +00:00
Andrius Dagys
2e29673392 Distributed notary: manually initialize the serializer for copycat server & client. This fixes the issue where one of the nodes is unable to connect to the cluster. 2016-12-23 12:52:04 +00:00
josecoll
eac2cb1cc6 Bank of Corda integration with Trader Demo and Explorer
Initial conversion of Explorer to use IssuerFlow (from BankOfCorda)

Initial conversion of TraderDemo to use IssuerFlow (from BankOfCorda)

Updated TraderDemo to use IssuerFlow (from BankOfCorda)

Fixed TraderDemo integration text (added new BankOfCorda node)

Updated Explorer with changes IssuerRequest params

Explorer now correctly displaying transaction id upon Issue.

Moved IssuerFlow into finance package so can be reused across multiple demos (TraderDemo) and applications (eg Explorer)

Refactored BankOfCorda demo to use Finance package and TestUtil constants

Updated TraderDemo to use IssuerFlow

Updated Explorer to use finance package IssuerFlow.

Advertised BankOfCorda as Issuer for usage by Explorer.

Explorer no longer depends on BankOfCorda demo since IssuerFlow promoted to Finance module

Added IssuerFlow to AbstractNode whitelist.
Explicit declarations of IssuerFlow no longer required.

Added plugin registration of IssuerFlow at bootstrap.

Revert whitelisting of IssuerFlow (plugin configured)

Refactored to use constant BOC definition.

Added gradle RPC security config.

Updated documentation

Fixed incorrect references.

Renamed Issuer banks.
Added new permission set (for Issuer nodes)
Added node nearestCity info
Added new Issuer Event Generator for Issuer nodes only

Associated currency with issuer using ServiceType naming structure.

Added argument flag (-S) to trigger event generator simulation node.

Fixed problem with issuers not resolving from network map.

Updated perms on Issuer rpc proxy nodes.

Fixed minor in cash generateExit identified by Explorer.

Changes applied in prep for AWG demo.

Added IntelliJ run-configurations for launching Explorer demo nodes (with and without simulation)

Updated documentation (and added additional gradle task to launch Explorer nodes in simulation mode).

Fix following rebase.

Addressed review items from PR.

Updated TraderDemo readme.

Updated TraderDemo gradle file to launch Bank of Corda node.

Updated JRE properties.

Updated IssuerModel to incorporate correct JFX Observable handling.
Fixed bug with Exit command not displaying any currency.

Added TODO's for revisiting correct Exception handling strategy.

Optimization for when issuing cash to self.

Minor updates following PR review.

Remove old refs to Royal Mint and Federal Reserve
2016-12-22 15:55:50 +00:00
Shams Asari
924fb479e4 Cleaned up DistributedNotaryTests, including addressing overlap with RaftValidatingNotaryServiceTests 2016-12-22 12:49:33 +00:00
Mike Hearn
edc648ae95 Wish our users a merry Christmas and a happy new year. 2016-12-22 11:37:27 +01:00
Rick Parker
bd979534f3 Add database transactions back onto observations. (#77)
Add database transactions back onto Observables now that they are post database commit.
2016-12-22 10:03:22 +00:00
Andras Slemmer
7d9caa984b node: Driver network map starts parallel with other nodes, uses executor service, pre-create most artemis queues 2016-12-20 14:49:55 +00:00
Shams Asari
81d1459599 Fixed bug where messages can't be sent to services running on the network map node (#71) 2016-12-20 12:03:21 +00:00
Clinton Alexander
3c2610613f Integration test uses better naming sceme. Json support module cleaned up to use Kotlin features. 2016-12-19 16:26:54 +00:00
Andrius Dagys
6f3ed327a0 Vault: return a list of unconsumed states rather than a sequence. The lazy evaluation captures some extra context, serialization of which in flows results in errors. 2016-12-16 15:48:48 +00:00
Clinton Alexander
fa1e7cfa15 Corda JSON module now created in a separate function to the default mapper. 2016-12-16 14:51:12 +00:00
Clinton Alexander
234ffb141c Fixed issues with incorrect serialisation in test utilities. 2016-12-16 12:11:26 +00:00
Mike Hearn
f44dd969ce Fix ANSI logging on Windows 2016-12-15 21:00:45 +01:00
Joel Dudley
334ed4806b Adds overload anotations and reorganizes param orders to improve java interop. 2016-12-15 18:27:41 +00:00
Andrius Dagys
7cb4cbcad4 Made vault updates contain full StateAndRef in the consumed set (instead of just StateRef). This allows subscribers to check whether the update contains relevant states.
Cash balances are now calculated by keeping only the aggregate values (it no longer needs to iterate through all states in the vault).
2016-12-15 16:27:39 +00:00
Andrius Dagys
673b0393b4 Increase JDBCHashMap default bucket size. With the current implementa… (#58)
Increase JDBCHashMap default bucket size. With the current implementation of the Vault, once the number of stored transactions (or UTXO) goes over the max bucket size we end up reloading each transaction from the db and deserializing it, which causes severe performance degradation.
2016-12-15 15:45:51 +00:00
exfalso
53bbb57345 Add ReceivedSessionMessage, DriverBasedTest re #57 2016-12-15 11:37:15 +00:00
Andras Slemmer
a3138ab0dc Address PR comments 2016-12-15 11:37:15 +00:00
Andras Slemmer
4f44962962 Add kdocs on service addressing 2016-12-15 11:36:06 +00:00
Andras Slemmer
6a796cef35 Add raft notary integration tests, testing service addressing 2016-12-15 11:36:06 +00:00
Andras Slemmer
7ee88b6ec8 Add SMM test for round robin node picking 2016-12-15 11:36:06 +00:00
Andras Slemmer
fd436b0cdc artemis, sessions, mock: Add Service addressing, tests pass 2016-12-15 11:36:06 +00:00
Shams Asari
7afa3346d6 Updated docs and TODOs to be inline with recent changes to the doorman 2016-12-13 17:03:15 +00:00
Andras Slemmer
09e11f8435 rpc-kryo: Kryo register hidden jar url inputstream class 2016-12-13 11:51:14 +00:00
Patrick Kuo
a4201c7152 This fixes the node startup issue - https://github.com/corda/corda/issues/37 (#48)
* Create missing artemis bridge when node is added to the network map
* Added integration test for this issue
* addressed PR issues
2016-12-12 13:29:31 +00:00
Clinton Alexander
d429385e72 Fix: Capsule did not contain caplet due to an incorrect path. 2016-12-09 17:58:00 +00:00
Shams Asari
9d98673c66 Added commonName extension method to X500Name and helper class for x509 cert factories 2016-12-09 17:13:00 +00:00
Clinton
b43d940297 Merge pull request #35 from corda/clint-M6publishing
Corda can be published to bintray and reduced publishing boilerplate in build.gradle.
2016-12-09 15:07:46 +00:00
Joel Dudley
ae349a8831 Adds todos that will improve java interop. 2016-12-09 14:30:52 +00:00
rick.parker
b52c52378f Move Future completion outside database transaction so that the effects of the flow will be externally visible at Future completion. 2016-12-09 09:21:59 +00:00
Clinton Alexander
2f61340945 Fixed review comments. 2016-12-08 16:58:22 +00:00
rick.parker
0378b8d785 Buffer observations until database commit. 2016-12-08 16:32:45 +00:00
Mike Hearn
5f603a94f0 Minor: add a TODO 2016-12-08 14:06:32 +00:00
Andrius Dagys
b57aec1962 Minor: make distributed notary test use a different folder on every run 2016-12-08 12:15:48 +00:00
Andras Slemmer
4fe1d48e4a demos: Fix demo RPC serialisation after rebase 2016-12-08 11:58:31 +00:00
Andras Slemmer
9117ec9860 Simplify InputStreamSerializer, make NODE_USER role explicit 2016-12-08 11:58:31 +00:00
Andras Slemmer
a601f0abf5 Local RPC, demos use RPC, NODE has special privileges 2016-12-08 11:58:31 +00:00
Matthew Nesbit
f63e6cd2a6 Add some hooks to StateMachineManager and NodeSchedulerService so that unit tests of flows with scheduled actions can safely test for completion of their test activities. Typically this is done using a while loop whilst there are active fibers, or schedules and then blocking on the ReusuableLatches until the status changes and can be re-evaluated.
Add unit tests of ScheduledFlow running on simulated network.

Just use existing DumyContract in test

DummyContract requires value equality so that assertEquals over states works as expected.

Remove blank line.

Add TODO on waitQuiescent.

Fix minor build error
2016-12-07 16:11:55 +00:00
Joel Dudley
03b5e9bced Address review comments. 2016-12-07 14:15:20 +00:00
joeldudleyr3
432015ddfe Adds JvmName annotations where necessary to improve interop when developing CorDapps in java. 2016-12-07 12:12:18 +00:00
Clinton Alexander
41b0b6c0b1 Re-added the capsule file. Fixed deploy with another publish option. 2016-12-06 16:06:16 +00:00
Clinton Alexander
a0d5426ced Due to insurmountable issues with publishing the JARs when the project is called Corda it has been renamed back to capsule. 2016-12-06 16:06:16 +00:00
Clinton Alexander
1463cd2b37 Renamec capsule module to corda. 2016-12-06 16:06:16 +00:00
Clinton Alexander
b24c628e34 Publications now publish JARs again. Install task now publishes again. 2016-12-06 16:06:16 +00:00
Clinton Alexander
bf49dda731 Corda now publishes with updated publish utils. 2016-12-06 16:06:16 +00:00
Clinton Alexander
c8e14b0ac6 Added all artifacts required for the corda capsule to be published on maven central. 2016-12-06 16:06:16 +00:00
Clinton Alexander
810596927e Added a new capsule build.gradle to allow multiple bintray uploads from one build.gradle. 2016-12-06 16:06:16 +00:00
Clinton Alexander
348092cfa6 Re-added corda capsule publication. 2016-12-06 16:06:16 +00:00
Clinton Alexander
dec9cfc5a4 Added client and node publishing. 2016-12-06 16:06:16 +00:00
Andras Slemmer
fd229df956 node: Add ClassSerializer, register default flow parameters for RPC 2016-12-06 13:55:18 +00:00
Matthew Nesbit
99219c6a5f Allow cordapp types to be used in parameters to cordapp startFlowDynamic RPC calls.
Add missing registration.
2016-12-05 16:57:22 +00:00
Shams Asari
10360ae8cf Converted MapChange into a sealed data structure so that only Modified has the previous node property 2016-12-05 10:04:31 +00:00
Shams Asari
4addb91f80 Added security to RPC and P2P systems. 2016-12-02 18:11:08 +00:00
Shams Asari
5432905b4a Clean up NetworkMapCache and InMemoryNetworkMapCache 2016-12-02 14:45:54 +00:00
Andrius Dagys
ad5d6f5cd4 DistributedImmutableMapTest: enable copycat client connection retry to avoid race conditions 2016-12-01 13:21:25 +00:00
Matthew Nesbit
e54a304e2e Depend upon an internal artifact, rather than a maven local published artifact when building the corda fatjar. 2016-11-30 16:16:51 +00:00
Mike Hearn
d500bf8f50 Address review comments. 2016-11-30 15:11:35 +00:00
Mike Hearn
7b40be8361 Run the IntelliJ reformatter across the Kotlin code. Did not reformat JS/web code. 2016-11-30 14:40:34 +00:00
Andrius Dagys
8e836bc279 Distributed notary: configure Raft client retry to avoid race conditions 2016-11-29 11:07:22 +00:00
Andrius Dagys
4c6625559f Merged in andrius-dep-cleanup (pull request #569) 2016-11-28 18:28:28 +00:00
Ross Nicoll
f5ecddb4b2 Add get() method to identity service 2016-11-28 18:01:03 +00:00
Andrius Dagys
ef598d926f Include only required atomix dependencies. 2016-11-28 15:51:31 +00:00
Shams Asari
38876e3984 Introducing Future.getOrThrow() which throws the cause of the ExecutionException 2016-11-28 15:21:22 +00:00
Mike Hearn
7b2eb651be Suppress or fix the few remaining compiler warnings 2016-11-28 14:04:30 +00:00
Jose Coll
bc3550e3e6 Merged in colljos-kryo-observable-registration (pull request #544)
Kryo registration of Observable with explicit ID.
2016-11-28 13:31:51 +00:00
Shams Asari
56ada37259 Remove checked in node logs and git ignore node/logs 2016-11-28 10:49:44 +00:00
Andras Slemmer
811b0e6a8d Merged in aslemmer-warn-on-double-tx-record (pull request #546)
Check for duplicate transaction records
2016-11-28 10:34:34 +00:00
Andrius Dagys
946cfda03e Added a distributed notary demo that runs a notary cluster and gets several transactions notarised 2016-11-25 17:09:57 +00:00
Andrius Dagys
758ab6d359 Extended Driver api to allow custom config overrides. Added helper methods for creating a distributed notary cluster. 2016-11-25 17:09:57 +00:00
Andras Slemmer
44d1b79ef9 docs: Address PR 513 comments 2016-11-25 15:33:04 +00:00
Mike Hearn
aa629f74ca Change startup message of the day 2016-11-25 14:30:40 +01:00
Andras Slemmer
87bd97d0c7 Check for duplicate transaction records 2016-11-24 18:00:04 +00:00
Patrick Kuo
cd34f3ae16 Merged in pat-explorer-more-changes (pull request #505)
Pat explorer more changes
2016-11-24 17:47:01 +00:00
Rick Parker
44e09f3366 Merged in parkri-remove-intermittent-error-at-start (pull request #542)
Remove race condition and intermittent logged error at node start up regarding "Queue created for a peer that we don't know from the network map".
2016-11-24 16:30:14 +00:00
rick.parker
8ec21eedb3 quasarScan removal. 2016-11-24 16:27:51 +00:00
Patrick Kuo
fbf952a1ab Explorer corda branding 2016-11-24 15:46:50 +00:00
Jose Coll
f6f896d072 Kryo registration of Observable with explicit ID. 2016-11-24 15:39:08 +00:00
rick.parker
b20baff54c Remove race condition and intermittent logged error at node start up regarding "Queue created for a peer that we don't know from the network map". 2016-11-24 13:14:07 +00:00
rick.parker
7d387870d2 Fix annotation on JDBCHashMapTestSuite and class name typo. 2016-11-23 13:08:14 +00:00
rick.parker
f68529d1fd Rename protocol to flow. 2016-11-22 17:17:14 +00:00
Mike Hearn
6aa5f0a4b5 Minor: better plugin name printing in the banner 2016-11-22 15:04:15 +01:00
Mike Hearn
a70136f775 Minor: fix startup time calculation, fix demos to print things to stdout instead of log.info 2016-11-22 12:41:05 +01:00
Andrius Dagys
93505d5e2e Merged in andrius-rename-bits (pull request #508) 2016-11-22 08:26:37 +00:00
Mike Hearn
235cee6727 Add a startup banner and suppress console logging unless --log-to-console is passed on the command line. 2016-11-21 16:08:36 +01:00
Andrius Dagys
64299591c3 Rename PublicKeyTree -> CompositeKey and unify terminology across documentation. 2016-11-21 14:47:19 +00:00
Andrius Dagys
635ee8df79 Rename bits -> bytes, as it normally indicates a byte array 2016-11-21 13:02:27 +00:00
Clinton Alexander
063dbec505 Merged in clint-bintray (pull request #496)
Removed duplicate gradle plugins and added bintray publishing tasks
2016-11-21 11:20:13 +00:00
Andrius Dagys
9256056ebc Moved distributed notary tests to integration-test. Stopped using full date as the test folder name. 2016-11-21 09:59:08 +00:00
Andrius Dagys
0d56846b1b Added a distributed notary that uses the Raft consensus algorithm (implemented by Copycat).
The notary operates by storing committed input states in a map state machine which is replicated across the Copycat cluster.
2016-11-18 18:13:19 +00:00
rick.parker
6abb5750bf RPC Kryo plugin functionality. 2016-11-18 17:38:05 +00:00
Clinton Alexander
bf70091172 Now depending on the plugins in jcenter and not buildsrc. 2016-11-18 14:41:06 +00:00
Rick Parker
81d6195a07 Merged in parkri-jdbchashmap-lru (pull request #482)
LRU for JDBCHashMap loadOnInit=false, with tests.
2016-11-18 11:23:26 +00:00
rick.parker
5c1d81824e LRU for JDBCHashMap loadOnInit=false, with tests. 2016-11-18 11:22:25 +00:00
rick.parker
cd98b559bf Move jolokia access config to the config directories, alongside log4j2.xml file. Point samples at top level dev and test config. 2016-11-18 11:11:54 +00:00
Jose Coll
876b17bb12 Transaction notes now stored individually per row. 2016-11-17 17:57:07 +00:00
Rick Parker
0c9b03411a Merged in parkri-pending-messages (pull request #481)
Remove need for pending messages map/table and fix start up race between network map and protocols wanting to look up Party
2016-11-17 17:12:35 +00:00
rick.parker
996b2d13d5 Network map message filtering. Removal of pending messages. Needs cleaning up. 2016-11-17 17:11:10 +00:00
Mike Hearn
ae49c2bdb2 Java code in Node currently targets Java 6 due to the caplet, until we decide we need to separate it out. This file uses Java 7+ features so downgrade it, which fixes the build (for some reason I could not easily reproduce this failure) 2016-11-17 12:33:57 +01:00
Mike Hearn
a9fc6f5495 Target Java 6 for our Caplet, to ensure the corda.jar capsule-ified build can get as far as capsule's version checks if the users JVM is too old. Without this patch capsule tries to load the caplet and then dies because it targets a newer version of Java than what the user has, so the error message the user sees is useless (a bytecode version mismatch). With this patch the user sees a message like this:
"CAPSULE EXCEPTION: Could not find Java installation for requested version [Min. Java version: 1.8.0 JavaVersion: null Min. update version: {}] (JDK required: false). You can override the used Java version with the -Dcapsule.java.home flag. (for stack trace, run with -Dcapsule.log=verbose)"

which isn't awesome either but at least tells the user what to do.
2016-11-16 15:46:50 +01:00
Jose Coll
1427baf797 Transaction note retrieval now using indexed field on database table. 2016-11-16 14:07:16 +00:00
Jose Coll
5dfffb1b84 Re-applied changes following net.corda rebase. 2016-11-16 14:07:16 +00:00
Richard Green
d65ff747b3 Merged in clint-capletfix (pull request #466)
Fixed classpath augmentation for plugins.
2016-11-16 10:39:27 +00:00
Shams Asari
012fa855a1 Moved RPCUserServiceImplTest into correct package 2016-11-15 17:36:35 +00:00
Andras Slemmer
07df9f17b3 loadtest: Add loadtest code 2016-11-15 17:21:26 +00:00
Andras Slemmer
dcd7a8a08a Address PR 465 comments 2016-11-15 16:51:07 +00:00
Andras Slemmer
7f0dd1ab5b Generic startProtocol and typesafe wrappers, per-protocol permissions, CashProtocol, remove executeCommand, move almost all Cash-related things to :finance 2016-11-15 16:46:37 +00:00
Andrius Dagys
9b8f00ef84 Stop using "legally-Identifiable" signatures for the notary protocol 2016-11-15 16:08:42 +00:00
Andrius Dagys
e261167343 Merged in andrius-servicename-gen (pull request #475)
Allow specifying advertised service identity name in configuration, generate a name if none specified
2016-11-15 14:33:02 +00:00
Shams Asari
c326a9ae46 Moved the RPC user config out of the properties file and into the main config file 2016-11-15 12:52:08 +00:00
Andrius Dagys
73bc841b7c Allow specifying advertised service identity name in configuration, generate a name if none specified 2016-11-15 11:12:24 +00:00
Andrius Dagys
d00163e29d Stop using "legally-Identifiable" signatures for the notary protocol, as notary nodes will use their service identity to sign (and not the legal one). It also doesn't make sense to attach an identity on the signature if it's a group identity and the signer holds only 1 out of many keys. 2016-11-14 16:02:20 +00:00
Andrius Dagys
d855b10817 Nodes part of a group identity (e.g. notary) now advertise the whole group Party on the network. When sending a message to a group, a representative node advertising the group identity is first chosen (at random), and its legal identity is used for communication. Currently we assume that a single legal identity can't be advertised by more than one node (the PublicKeyTree of an identity is used for Artemis queue names and we need to do more work to properly map a single queue to multiple nodes) 2016-11-14 14:57:16 +00:00
Andrius Dagys
c33c55eb20 Replace PublicKey with PublicKeyTree in Party. A single entity can now be identified by more than one key. 2016-11-14 14:57:16 +00:00
Clinton Alexander
e3f685f674 Fixed classpath augmentation for plugins. 2016-11-10 18:07:11 +00:00
Mike Hearn
ce99f354cb Rename com.r3corda -> net.corda 2016-11-10 17:14:24 +01:00
Rick Parker
af8859ebf1 Merged in parkri-protocol-error-handling-fix (pull request #447)
Fix handling of node shutdown so protocols don't blow up when they encounter the messaging layer already shutdown.  Protocols will also stop resuming once shutdown has commenced.
2016-11-08 18:15:35 +00:00
rick.parker
fe6bf0e6ea Implement controlled stop of StateMachineManager. 2016-11-08 17:53:43 +00:00
Katarzyna Streich
103817ec57 Add signing of transaction merkle root hash. 2016-11-08 17:41:32 +00:00
Mike Hearn
686b53f768 Fix Cordapp docs which don't use the right gradle syntax. Minor tweaks in AbstractNode 2016-11-08 15:40:44 +01:00
Andras Slemmer
51e86e7cd3 node: Small cleanup 2016-11-08 11:20:10 +00:00
Matthew Nesbit
1c39780c22 Handle the timeout exception, which can happen if the scheduler overruns (e.g. during debugging, but also potentiallyu with slow callbacks). 2016-11-07 09:56:38 +00:00
Katarzyna Streich
71965b0792 Add serialization workaround for HashMaps inside states. Fix tests. 2016-11-04 17:21:11 +00:00
Shams Asari
bd89da458b Added nice extension methods for Path, which are more readable than the static methods from Files 2016-11-04 15:36:14 +00:00
Clinton Alexander
8882b77b1b Fixed quasar scanning. 2016-11-04 13:35:25 +00:00
Clinton Alexander
7e198e7cf3 Renamed contracts project to finance to better reflect the purpose of the project. 2016-11-04 13:35:25 +00:00
rick.parker
143e3a063f Pending redelivery table name prefix added in line with other tables.
No longer delete all pending messages from the database and move into memory before putting back into the database again, which is vulnerable to failure.  Now we delete individual pending messages on successful redelivery.
2016-11-04 10:22:14 +00:00
Patrick Kuo
7f8608c981 Changing UI layout 2016-11-03 11:39:24 +00:00
Shams Asari
6d39b71bf9 Simple RPC access control, with a demo control on the cash RPCs 2016-11-03 10:46:25 +00:00
Jose Coll
1d25d23b73 Merge from master 2016-11-02 14:20:51 +00:00
Jose Coll
012dc9ec10 Merge branch 'master' into colljos-vault-code-clean-up-refactor 2016-11-02 11:20:21 +00:00
Jose Coll
a38b363e9d Fixed subtle bug in Cash Spending when processing for same Issuer with multiple refs. 2016-11-02 11:15:09 +00:00
Clinton Alexander
ad81ecf2f9 Merged in clint-todocleanup (pull request #432)
Removed unused files, cleaned up build scripts.
2016-11-02 11:06:10 +00:00
Rick Parker
847257c250 Merged in parkri-speed-up-integration-tests (pull request #434)
Speed up JDBCHashMapTestSuite by 3min on my laptop by avoiding Exposed table existence checks each time a map/table is created by re-using the map/sets across tests (after clear()-ing to reset their state).
2016-11-02 11:02:54 +00:00
rick.parker
b188bfda52 Speed up JDBCHashMapTestSuite by 3min on my laptop by avoiding Exposed table existence checks each time a map/table is created by re-using the map/sets across tests (after clear()-ing to reset their state). 2016-11-02 10:08:38 +00:00
Ross Nicoll
f26813c1ab Merged in rnicoll-cache-key-collision (pull request #425)
Error if multiple nodes match a key
2016-11-01 18:14:23 +00:00
Jose Coll
7e3c00c1ff Merged in colljos-pluginservicehub (pull request #427)
Added PluginServiceHub for use by Corda plugin service extensions.
2016-11-01 17:12:52 +00:00
Jose Coll
f415c497d9 Minor changes to address PR feedback and comments 2016-11-01 16:47:50 +00:00
Jose Coll
e449ba93c4 Minor fix following rebase to incoporate Ross changes to CashState definition. 2016-11-01 16:29:21 +00:00
Ross Nicoll
b4ee47bd33 Error if multiple nodes match a key
InMemoryNetworkMapCache.getNodeByPublicKey() previously returned null if multiple nodes matched
a given public key (for example if the same node is registered more than once with different
names). This is incorrect behaviour, as there is a match.
2016-11-01 16:27:54 +00:00
Ross Nicoll
e6a0f18436 Add diagnostics for web server and API plugin instantiation 2016-11-01 16:22:49 +00:00
Jose Coll
253a70f55e Fixed bug in generateSpending whereby Issuer Ref was not being checked. 2016-11-01 16:12:19 +00:00
Clinton Alexander
1e6cca4d5d Removed dead installDist configurations and moved Jolokia access to the correct resources dir. 2016-11-01 16:09:13 +00:00
Ross Nicoll
613a86c5d9 Remove deposit and issuanceDef fields
Remove deposit field from the FungibleAsset interface, and moved it into a fixed reference to
amount.token.issuer.
Remove issuanceDef field and replace it with amount.token.
2016-11-01 14:49:57 +00:00
Jose Coll
74dc0b7154 Exposed Vault Transaction Note functionality via RPC. 2016-11-01 12:46:41 +00:00
Jose Coll
d9f0a161e4 Addressed comments in PR review. 2016-11-01 12:05:48 +00:00
Jose Coll
c5500caf98 Minor changes to address PR feedback and comments 2016-11-01 11:39:11 +00:00
Jose Coll
308d7c1df7 Added PluginServiceHub for use by Corda plugin service extensions. 2016-10-31 17:15:06 +00:00
Jose Coll
96007cd777 Changed transaction notes type DB from 'blob' to 'text' 2016-10-31 15:07:34 +00:00
rick.parker
5898a15579 Upgrade H2 to 1.4 to fix curious file corruption issue encountered by Patrick. 2016-10-28 17:39:10 +01:00
Clinton Alexander
c3533bac7d Improved error reporting. 2016-10-28 13:46:43 +01:00
Clinton Alexander
fdbd67db5c Added some more error logging to Node. 2016-10-28 13:46:43 +01:00
Jose Coll
2ce310050e Revert incorrect merge commit. 2016-10-28 10:28:15 +01:00
Jose Coll
b46de0b964 Merge remote-tracking branch 'origin/colljos-vault-transaction-notes' into colljos-vault-transaction-notes
# Conflicts:
#	core/src/main/kotlin/com/r3corda/core/node/services/Services.kt
#	core/src/main/kotlin/com/r3corda/core/testing/InMemoryVaultService.kt
#	node/src/main/kotlin/com/r3corda/node/services/vault/NodeVaultService.kt
2016-10-28 09:59:58 +01:00
Jose Coll
369214a747 Additional method on VaultService to add notes to a transaction
Additional method on VaultService to retrieve notes for a transaction
2016-10-28 09:57:33 +01:00
Jose Coll
504ec42720 Additional method on VaultService to retrieve notes for a transaction 2016-10-27 16:35:26 +01:00
Jose Coll
f2e98ffba5 Merge branches 'colljos-vault-transaction-notes' and 'master' of https://bitbucket.org/R3-CEV/r3prototyping into colljos-vault-transaction-notes 2016-10-27 14:59:37 +01:00
Jose Coll
74e89181da Merge remote-tracking branch 'remotes/origin/master' into colljos-vault-code-clean-up-refactor
# Conflicts:
#	core/src/main/kotlin/com/r3corda/core/contracts/Structures.kt
#	node/src/test/kotlin/com/r3corda/node/services/NodeSchedulerServiceTest.kt

Fixed conflict.
2016-10-27 12:57:37 +01:00
Jose Coll
7d080c39df Merge remote-tracking branch 'remotes/origin/master' into colljos-vault-code-clean-up-refactor
# Conflicts:
#	core/src/main/kotlin/com/r3corda/core/contracts/Structures.kt
#	node/src/test/kotlin/com/r3corda/node/services/NodeSchedulerServiceTest.kt

Fixed failing CommercialPaper test
(caused by re-use of same database transaction context for vault across two different transaction participants)
2016-10-27 12:56:08 +01:00
Clinton Alexander
8f1329b03f Merged in clint-capletnode (pull request #413)
Moved the Corda Caplet to Node to clear out root src dir.
2016-10-25 09:37:32 +00:00
Clinton Alexander
e5db17b029 Rewrote comment to improve readability. 2016-10-25 10:01:52 +01:00
Clinton Alexander
af902ee4df Removed redundant whitespace. 2016-10-24 18:36:19 +01:00
Clinton Alexander
c18ed4b402 ProtocolLogicFactory now initiated before it is used. 2016-10-24 17:56:16 +01:00
Clinton Alexander
f92f7d8d56 NodeSchedulerService no longer takes a default protocol logic ref factory (because otherwise no protocols are whitelisted) and instead now uses the one constructed in the node. 2016-10-24 17:56:16 +01:00
Clinton Alexander
546f3e2bbf Removed dead plugin reference. 2016-10-24 17:56:16 +01:00
Clinton Alexander
2f5efb34d6 Removed the RatesFixProtocol and dependent code and moved to the IRS repo. 2016-10-24 17:56:16 +01:00
Clinton Alexander
b197a8fa66 Fixed comment on function definition. 2016-10-24 17:41:21 +01:00
Clinton Alexander
19a53ea12d Added prerequisite for using the test clock. 2016-10-21 17:29:59 +01:00
Clinton Alexander
71e1c39622 Fixed type of useTestClock. 2016-10-21 16:42:00 +01:00
Clinton Alexander
8631a64c66 Moved capsule to node to remove it from src. 2016-10-21 14:17:05 +01:00
Clinton Alexander
8f326824f3 Test fix and review fix. 2016-10-21 12:09:21 +01:00
Clinton Alexander
cbb8aa74f9 Replaced clock object with clock class and added documentation. 2016-10-21 11:32:29 +01:00
Clinton Alexander
54e002f654 Clock now instantiates via reflection to allow demo clocks to be passed in. 2016-10-21 11:32:29 +01:00
Clinton Alexander
622b5cabf7 Fixed merge conflict. 2016-10-21 11:32:29 +01:00
Clinton Alexander
1d6b8de11e Added clock to the node 2016-10-21 11:32:29 +01:00
Clinton Alexander
201561497a Added clock to node configuration to allow for creating a demo with a different clock. 2016-10-21 11:31:18 +01:00
Clinton Alexander
0ee4f9c19b Added DriverNodeInfo to allow access to the host and port for the api address for use in integration tests. 2016-10-21 11:31:18 +01:00
Shams Asari
e2d6ace449 RPC client authentication using user/password from config file 2016-10-20 17:55:16 +01:00
Jose Coll
75f671a446 Decommissioned InMemoryVaultService service (all dependent Tests updated to use NodeVaultService) 2016-10-20 13:10:00 +01:00
Jose Coll
c7d98b8c6b Fixed items raised by MH in CRD-CR-58 code review. 2016-10-20 10:52:51 +01:00
Matthew Nesbit
30b7eec18c Remove the file based checkpoints and transactions from the tests.
Messages requiring redelivery to late registered handler persisted in database.

Remove spurious comment and make local val not var
2016-10-19 16:33:12 +01:00
Matthew Nesbit
8eee4afe7d Merged in mnesbit-cor-389-driver-remove-startClient (pull request #409)
Unify messaging services to have a database and not support client type connections.
2016-10-19 14:09:50 +00:00
Jose Coll
04920c9507 Additional method on VaultService to add notes to a transaction 2016-10-19 15:06:52 +01:00
Rick Parker
6c6d7f8546 Merged in bugfix-for-persistent-scheduler (pull request #410)
Fixed intermittent stack serialization issue with persistent scheduler.
2016-10-18 17:23:04 +00:00
Matthew Nesbit
4db1836996 Unify messaging services to have a database and not support client type connections when they should use the RPC connections. Also, push NodeInfo across to the driver via the web interface to remove that use of startClient.
Fix typo
2016-10-18 17:48:52 +01:00
rick.parker
8a3027ffd6 Fixed intermittent stack serialization issue with persistent scheduler.
Improved exception reporting when fiber serialization fails or other internal Quasar error to help with future Kryo errors when checkpointing.
2016-10-18 17:05:10 +01:00
Jose Coll
c23aea3997 Fixed broken tests caused by missing Transaction Context (when moving from InMemory to Db implementation of vault service in MockNetwork) 2016-10-18 10:27:12 +01:00
Jose Coll
62dfea2a1a Re-factoring of OnLedgerAsset generateSpend code (moved to VaultService) 2016-10-17 17:58:26 +01:00
Patrick Kuo
3403d50168 Merged pat-cash-creation-ui into master 2016-10-17 16:10:53 +01:00
Rick Parker
6a20f32a7a Merged in persistent-scheduler (pull request #405)
Persistent scheduler
2016-10-17 12:35:40 +00:00
rick.parker
6a25fcfe8c Persistent scheduler, with race condition removed. 2016-10-17 13:33:32 +01:00
rick.parker
962fdba0f8 Make transaction -> statemachine id mapping persistent. 2016-10-17 11:33:29 +01:00
Patrick Kuo
d4362fbd78 New counterparty model and subscription mechanism to retrieve and track counterparty changes in network map
New transaction creation screen for creating new cash transactions, using party info source from the counterparty model.
2016-10-17 11:25:20 +01:00
Jose Coll
67b2d91b33 Re-factoring of CashBalances code (moved to VaultService) 2016-10-17 11:16:53 +01:00
rick.parker
02a9f8fe67 Remove SAME_THREAD executor and it's use in MockNetwork etc.
Remove all traces of unused optional Executor in messaging.
2016-10-12 12:02:28 +01:00
Matthew Nesbit
1f3b1f4df9 Transactions in database
Include basic unit tests of Transaction storage

Use Rick's column storage code as suggested in PR comments

Remove blank line
2016-10-11 17:49:15 +01:00
Shams Asari
e48e09f04e Session handshake optimised to carry the first send payload in the init message 2016-10-11 17:27:09 +01:00
Matthew Nesbit
1388454396 Never send transactions to the Notary that aren't signed by all parties. Toughen up to use validating Notary in general and put Client precheck into NotaryProtocol.
Rename method to better reflect its actions

Handle comments from PR

Correct indentation
2016-10-11 10:43:40 +01:00
Shams Asari
ac01b67549 Using the protocol ID for the protocol logger name 2016-10-10 13:45:43 +01:00
Mike Hearn
11bcaf5fb2 Minor: go back to using logging for the trader demo specific output (i.e. admit defeat with the ANSI renderer, which is not long for this world anyway) 2016-10-10 12:00:48 +02:00
Andras Slemmer
cf19ff37cd node: Add cleanup TODO on cash creation RPC call 2016-10-10 10:38:02 +01:00
rick.parker
50e613bb75 Clean up compiler warning and make database table names and columns more meaningful. 2016-10-07 18:05:54 +01:00
Matthew Nesbit
1e836edd78 Change ServiceType to a sealed class from an abstract class
Allow AdvertisedServices to have their own identity and keys. Also, rationalise legalIdentity onto the local node's NodeInfo which is available on ServiceHub

Fixup after rebase

Remove legal identity that was on storage service. Now access via myInfo.legalIdentity and key via keyManagement lookup.

Enforce singleton notary per node for now

Tidy up based upon Rick's suggestions

Handle PR comments

clean up imports

Fix typo

Fixup rename

Capitalise comment

Eliminate unused variable warning

Make changes based upon PR comments

Cleanup whitespace changes
2016-10-07 13:44:51 +01:00
Andrius Dagys
4e2f0e0ff9 Split out NodeConfiguration helpers into a separate utility class 2016-10-07 10:44:03 +01:00
rick.parker
2e3952ee1f H2 database exported via configurable port number. 2016-10-06 14:33:56 +01:00
Shams Asari
c3f824001d Removed unused ServiceRequestMessage class hierarchy and added sendRequest method 2016-10-06 10:27:35 +01:00
Shams Asari
307c93858b Using Checkpoint.id when storing Checkpoints 2016-10-05 18:30:46 +01:00
Andrius Dagys
6eb91ffe8b Minor refactoring and api doc update 2016-10-05 17:48:04 +01:00
Andrius Dagys
893f6e4f50 Updated config docs 2016-10-05 17:48:04 +01:00
Andrius Dagys
e5072a8854 FullNodeConfiguration: make use of the getOrElse helper 2016-10-05 17:48:04 +01:00
Andrius Dagys
727c3ac5fc Node: get artemisAddress and webAddress from the config rather than constructor parameters 2016-10-05 17:48:04 +01:00
Andrius Dagys
e5c0c975bd Remove hostNotaryServiceLocally config property – nodes need to specify the correct notary service type in extraAdvertisedServiceIds 2016-10-05 17:48:04 +01:00
Andrius Dagys
3b187a2171 Make Node override configuration and use FullNodeConfiguration so that no casting is needed 2016-10-05 17:48:04 +01:00
Andrius Dagys
fac12b4fce Remove NodeConfigurationFromConfig and replace usages with FullNodeConfiguration 2016-10-05 17:48:04 +01:00
rick.parker
5419e773dc Fix kotlin 1.0.4 error on use of Class.cast() 2016-10-05 13:59:18 +01:00
rick.parker
cd301c727e First working version with database persistence in MockNetwork/Node. 2016-10-05 12:03:28 +01:00
Clinton Alexander
38ba8c8759 Merge branch 'clint-cordamaven' 2016-10-05 11:44:11 +01:00
rick.parker
ec975b0426 Hibernate ORM implementation for states. 2016-10-05 11:40:27 +01:00
Andras Slemmer
3bb96f3f3e node: Fix after rebase 2016-10-05 10:40:18 +01:00
Andras Slemmer
8e471c6768 node: Address review comments 2016-10-05 10:40:18 +01:00
Andras Slemmer
5af0e97444 Refactor explorer and friends to use RPC, remove NodeMonitor* 2016-10-05 10:40:18 +01:00
Patrick Kuo
c57229a944 New gradle task for packaging certificate singing request utility jar. 2016-10-04 16:56:18 +01:00
Shams Asari
6b97fbb79f Removed ValidatingClient as notary behaviour is not client configurable 2016-10-04 15:20:36 +01:00
Shams Asari
5e6533eb8a Better use of Futures 2016-10-04 14:11:43 +01:00
Ross Nicoll
53ecb0ecd9 Constrain class type passed to registerProtocolInitiator() 2016-10-04 12:57:22 +01:00
Andrius Dagys
5efa0fd5b3 Advertised services now contain ServiceInfo which describes ServiceType and a service identifier. This will be used, e.g. for grouping distributed notary nodes into the same service cluster. 2016-10-04 11:36:26 +01:00
Matthew Nesbit
76808d36c3 Store protocol checkpoints in the DB, except during Single threaded MockNetwork activity, where we still use the file system based checkpointing. Make the Checkpoint acess a Sequence not an Iterable, so that we don't end up with all the checkpoints permanently resident in memory.
Split up storage initialisation so that there is less code copying in MockNode

Add header comment to DBCheckpointStorage class

Respond to PR comments

Resolve PR comments

Rename iterator on checkpoints

Fix typo

Fixup checkpoints in DB logic after Shams's PR

Delete duplicated code
2016-10-03 17:56:58 +01:00
Shams Asari
67fdf9b2ff Automatic session management between two protocols, and removal of explict topics 2016-10-03 15:21:27 +01:00
Andrius Dagys
b3f3ee0562 Added a json serializer for PublicKeyTree
Typo fixes, other minor refactorings
2016-10-03 11:09:36 +01:00
Andras Slemmer
43d18d46bb Add PartiallyResolvedTransaction to client 2016-10-03 10:17:41 +01:00
Clinton Alexander
9a4cc04eb5 Moved source and javadoc publish tasks into a default publish tasks plugin. 2016-09-30 10:57:20 +01:00
Clinton Alexander
f13a21cc6c Can now publish corda to local repo with gradle publishToMavenLocal 2016-09-30 10:57:20 +01:00
Clinton Alexander
a740167100 Merged in clint-mvcc (pull request #366)
Improved concurrency of H2 database with config
2016-09-28 16:51:27 +01:00
Clinton Alexander
7afb034b8c Merged in clint-vegacorechanges (pull request #380)
Corda Changes required for Vega
2016-09-28 16:28:15 +01:00
Clinton Alexander
43de27c4c1 Updated Corda in preparation for the merging of the Vega cordapp. Includes
some minor changes, including gitignore rule changes. The largest change
is replacing the current fresh key for each transaction with a single
static identity in preparation for aimproved and more fleshed out key
sharing infrastructure.
2016-09-28 14:39:41 +01:00
Andras Slemmer
5b10c207e0 Add StateMachine -> Recorded TX mapping stream and emit events on transaction records 2016-09-28 11:46:37 +01:00
Andras Slemmer
6c96517f6f core, node: Add RPC calls, change RPC init order 2016-09-28 10:32:22 +01:00
Patrick Kuo
8f00ec03a3 Checks for SSL certificate on Node startup 2016-09-27 10:15:09 +01:00
Rick Parker
46d6749616 Merged in persistence-support-in-mock-node (pull request #371)
Persistence support in MockNode
2016-09-26 15:12:59 +01:00
rick.parker
cb1fa83b67 Fix up database persistence to work with MockNetwork/MockNode without getting tangled up in the ThreadLocals. 2016-09-26 14:54:00 +01:00
rick.parker
16eda06095 Fix erroneous log statement that corrupts the logs. 2016-09-26 12:57:01 +01:00
Andras Slemmer
7e7bf08062 Rename stateMachineRunId properties to id, remove unused fiberId 2016-09-26 10:40:18 +01:00
Andras Slemmer
cfa5878ea2 Add StateMachineRunId, type for SMM Changes 2016-09-26 10:40:18 +01:00
Matthew Nesbit
a964073c2f Track message id's to deduplicate replays. Widen the auto-acknowledgement window of Artemis back to the default.
Use synchronized wrapper over set.

Drop discard message to trace level logging.

Fix code layout

Use lazy trace extension method

Track message id's to deduplicate replays. Widen the auto-acknowledgement window of Artemis back to the default.

Use synchronized wrapper over set.

Include tx message unique id in checkpointed data.

Add test for checkpointed resend

Fix bug in not getting UUID off message.

Tidy formatting

Add explanation comments to test asserts

Put unique id even on Client messages.

Tidy formatting
2016-09-26 10:12:50 +01:00
Matthew Nesbit
074964f919 Track message id's to deduplicate replays. Widen the auto-acknowledgement window of Artemis back to the default.
Use synchronized wrapper over set.

Drop discard message to trace level logging.

Fix code layout

Use lazy trace extension method
2016-09-22 15:18:24 +01:00
Patrick Kuo
eee18b55f5 Moved certificates path to node configuration 2016-09-22 14:28:12 +01:00
Ross Nicoll
54991c90a1 Merged in rnicoll-dictionary (pull request #369)
Correct typos, add custom dictionary
2016-09-22 09:52:28 +01:00
Clinton Alexander
58c1ab4562 Changed DB store type to MV store. 2016-09-22 09:37:03 +01:00
Patrick Kuo
f7193fee54 fix ArtemisMessagingServer certificate path 2016-09-21 17:50:26 +01:00
Ross Nicoll
80ccf4df34 Change keypair to "keyPair"/"key pair"
Change "keypair" to "keyPair"/"key pair" to correctly indicate it is two words,
not a single word.
2016-09-21 10:50:28 +01:00
Ross Nicoll
d38392093f Rename wallet monitor service to node monitor service 2016-09-21 10:26:20 +01:00
Ross Nicoll
ebda724f14 Change references to 'wallet' with 'vault' 2016-09-20 18:14:53 +01:00
Andras Slemmer
2640e600c8 Merged in aslemmer-node-explorer (pull request #311)
explorer ui v0.2
2016-09-20 12:02:09 +01:00
Patrick Kuo
9b4bf32fdc client certificate signing utility 2016-09-20 10:51:09 +01:00
Andras Slemmer
01d879772d client, explorer: Rearrange/add tx screen columns 2016-09-19 15:05:23 +01:00
Andras Slemmer
041c33a167 client, node: Handle snapshot in explorer 2016-09-19 15:05:23 +01:00
Andras Slemmer
4b74d94001 node: Fix compile after rebase, small typo fix 2016-09-19 15:05:22 +01:00
Andras Slemmer
a23c1d019c node: Fix compile after rebase 2016-09-19 15:05:22 +01:00
Andras Slemmer
c04a3401c3 client, node: Fix compile error after rebase 2016-09-19 15:05:22 +01:00
Andras Slemmer
3042407250 node: Better diagnostics for exit generation in WalletMonitorService 2016-09-19 15:05:22 +01:00
Andras Slemmer
eb82e946d0 node: Expose LedgerTransactions instead of SignedTransactions in WalletMonitor 2016-09-19 15:05:22 +01:00
Clinton Alexander
7d7418095e Increased timeout to avoid spurious timeouts. Added MVCC flag to allow
better concurrency and prevents deadlocks when multiple transactions are
occurring at once, as has happened on Vega.
2016-09-19 13:45:54 +01:00
Matthew Nesbit
478cb58dd6 Delay State Machine fiber start until network map cache is fully populated.
Add some unit tests of the late init behaviour.

Fix merge error

Change statemachine logic to use an in-memory only flag on checkpoints to track their materialisation during startup.

Add annotations for test method

Fix possible race condition on storing checkpoint objects

Correctly create checkpoint

Use then helper function

Cleanup imports
2016-09-19 12:15:33 +01:00
rick.parker
476db876d9 Move db commit to after "protocol completed" future is set.
Move db commit to after "protocol completed" future is set.
2016-09-16 13:56:49 +01:00
rick.parker
236a47104f Persitent network map and key service. Temporary persistence workaround for scheduler. 2016-09-16 12:14:56 +01:00
Patrick Kuo
1388747484 Permissioning server: added new node properties in node config for certificate signing request 2016-09-16 11:42:33 +01:00
Mike Hearn
4d83f1489f Add a client library that provides an RPC mechanism for talking to the Corda node.
The RPC mechanism uses message queues and is essentially conventional except for the fact that it supports marshalling observables. An observable encapsulates a stream of ongoing events, and server-side observables sent to the client are automatically bound to message queues and managed by Artemis.
2016-09-16 10:13:21 +01:00
rick.parker
17c9d231f4 Fix hanging test and fail fast on hang. 2016-09-15 16:39:58 +01:00
Shams Asari
8ea20dd0d2 Removed session IDs from the send and receive methods of ProtocolLogic and are now partially managed by HandshakeMessage 2016-09-14 15:26:55 +01:00
Shams Asari
f314bab6c8 Replacing the two params of AbstractNodeService with single ServiceHubInternal 2016-09-13 11:52:31 +01:00
Rick Parker
53de66a23d Merged in cor-344-persistence-jdbc-transactions (pull request #353)
Add database transactions ready for more widespread persistence.
2016-09-13 10:48:48 +01:00
rick.parker
27cb1c3597 Introduce database transactions around message handling, web API and in protocols. 2016-09-13 10:47:50 +01:00
Andrius Dagys
422a766c1a Minor persistent uniqueness provider tweak 2016-09-13 10:37:53 +01:00
Mike Hearn
ee637b79e2 Merge branch 'mike-fix-wms-for-k104' 2016-09-12 16:40:11 +01:00
Mike Hearn
0e37547af0 Rename ArtemisMessagingClient to NodeMessagingClient to make the purpose clearer once we start landing the clientrpc framework. 2016-09-12 13:16:45 +01:00
Mike Hearn
f6def0ef8f Minor: fix build for Kotlin 1.0.4 pre-release. It is stricter about some dubious code. 2016-09-12 12:18:35 +01:00
Andrius Dagys
0ed6a0ef4d Added a persistent uniqueness provider, backed by a JDBCHashMap.
Enabled a single node persistent notary.
2016-09-12 10:15:03 +01:00
rick.parker
03a04d10ca Remove use of interrupts to in ClockUtils 2016-09-09 16:45:49 +01:00
rick.parker
879802f7fd JDBC backed persistent hash map implementation. 2016-09-09 14:01:05 +01:00
Matthew Nesbit
bf0721868e Move Interest Rate related classes out of :node to reduce dependency of :node module on any specific contract. (Currently only WalletMonitorService and CashBalanceAsMetricsObserver stop me removing the compil dependency of :node on :contracts rather than :core). This has required that I modify fixing protocol to require information on what class of Oracle to use. 2016-09-09 11:31:08 +01:00
Andras Slemmer
0fc560d20a node: Relax TwoPartyTradeProtocolTests so it only checks a subsequence of store accesses 2016-09-09 10:54:16 +01:00
Matthew Nesbit
9518c38f29 Ensure integration tests in modules are in separate configurations and not directly called from build or installDist. 2016-09-08 15:28:04 +01:00
Matthew Nesbit
245d6ce21f Use standalone Corda main class and configuration in the Driver, rather than a separate class.
Better check for Notary services
2016-09-08 12:44:12 +01:00
Mike Hearn
d8d639f192 Merged in mike-small-tweaks (pull request #337)
A few small tweaks
2016-09-08 12:40:14 +02:00
Matthew Nesbit
1f2a6d256e Simplify the FullNodeConfiguration now that an explicit identity for the NetworkMapService isn't a problem.
Use consistent if style

Don't include NetworkMapAddress in config if hosting locally
2016-09-07 15:35:50 +01:00
Mike Hearn
fa4b503f81 Minor: rename UntrustworthyData.validate to UntrustworthyData.unwrap to better indicate its purpose and deprecate the old name. 2016-09-07 13:09:39 +02:00
Mike Hearn
49a0fd8fdd Improve the usability of SignedTransaction.verifySignatures taking into account how it is typically used. 2016-09-07 13:09:39 +02:00
Mike Hearn
1d272f89c2 Check the tx type in NotaryChangeProtocol and add a TODO to write a test for this once the protocol framework propagates exceptions. 2016-09-07 13:09:39 +02:00
Matthew Nesbit
2e1952a8a7 Get rid of the fake NodeInfo used to identify the NetworkMapService node.
Remove old comment
2016-09-06 18:25:12 +01:00
rick.parker
35274cd15c Refactor network map service in preparation for persistence.
Removed currently superfluous clock.
2016-09-06 18:21:06 +01:00
Mike Hearn
2d40c7e6dc Minor: make the logger in the standalone node private to avoid accidental screwups due to name conflicts (mental or read) 2016-09-06 18:40:39 +02:00
Matthew Nesbit
58aa933307 My recent PR#325 contained a couple of mistakes. In particular on Unix, but not windows the shutdown hook unregister can give a non-fatal exception during some tests. Also, I got the point of client messaging service stop registration wrong, which was leading to the server shutting down teh client session ahead of the proper stop sequence. 2016-09-06 16:26:31 +01:00
Andras Slemmer
9e993c5b86 Merged in aslemmer-generators-fixes (pull request #300)
Aslemmer generators fixes
2016-09-06 14:19:28 +01:00
Andras Slemmer
618f46cba4 node: Fix JsonSupportTest imports 2016-09-06 13:59:01 +01:00
Andras Slemmer
491b1abd4a contracts, core, node: Use entropyToKeyPair in Generators instead of manually creating keys 2016-09-06 13:54:59 +01:00
Andras Slemmer
9ff1ad7769 node: Fix redelivery race 2016-09-06 13:54:58 +01:00
Andras Slemmer
cc556cde6f ndoe: Fix message duping on redelivery 2016-09-06 13:54:58 +01:00
Andras Slemmer
89a5448c39 node, core: Add quickcheck generators for basic types, transactions 2016-09-06 13:54:58 +01:00
Mike Hearn
9d83a9b6d2 Minor: move transaction types out of the contracts package and into a new transactions package 2016-09-06 14:20:32 +02:00
Andras Slemmer
4923e33a7d node: Remove unnecessary @Suppress 2016-09-06 09:52:43 +01:00
Andras Slemmer
737fc0589c node: Add clock test for external interrupt on waiting strand 2016-09-06 09:52:43 +01:00
Andras Slemmer
fc7000c152 node: Fix race in Clock.doInterruptibly by not relying on version counter 2016-09-06 09:52:43 +01:00
Matthew Nesbit
11efe8ca1b Extend Rick's closeOnShutdown so that all the shutdown that was being done manually is done through the same mechanism. Thus allowing for a consistent reverse ordering and hopefully preventing DB shutdown happening ahead of serverThread shutdown.
Follow Rick's PR suggestions

Preserve comment about abitrary timeout on serverThread stop
2016-09-06 09:18:59 +01:00
Andras Slemmer
d8ae07e771 node-driver: Use anyAddress for RandomFree port allication 2016-09-05 17:29:44 +01:00
Andras Slemmer
9836edd191 Revert reuseaddr 2016-09-05 16:08:58 +01:00
Andras Slemmer
6b37048a14 node-driver: Remove reuseAddress = true as it breaks tests on osx 2016-09-05 15:43:19 +01:00
Shams Asari
97e1a59770 Refactored FiberRequest into cleaner ProtocolIORequest and fixed checkpoint regression 2016-09-05 14:42:54 +01:00
Matthew Nesbit
eb8510e7cc Some integration tests seem to be getting exceptions that suggest the ArtemisMQ session has been closed down already. Looking at the client code it is clear two threads can call stop and interfere with each other. Therefore this fixes the running flag logic. 2016-09-05 14:13:38 +01:00
Andras Slemmer
637a41401d node-driver: Reuse address when polling for port, poll for correct condition\(!\) 2016-09-05 11:04:31 +01:00
Mike Hearn
3854fec17f Testing: Make PortAllocation set SO_REUSEADDR to avoid CI conflicts 2016-09-05 11:22:00 +02:00
Andras Slemmer
ca1b0083ed node: Clean up messy issue in test 2016-09-01 18:15:47 +01:00
Andras Slemmer
dded4c6e8f node: FIx WalletMonitorService tests 2016-09-01 18:15:47 +01:00
Ross Nicoll
4d0b23ab6f Add log4j-web to node
Add log4j-web to node so it stops complaining that it's running in a web environment without that option.
Longer term we may want to split the web parts into their own optional extra for node, but for now I think
this is a sensible solution.
2016-09-01 16:15:15 +01:00
Ross Nicoll
b913b18e02 Merged in rnicoll-simulations (pull request #314)
Move test code from node to test-utils
2016-09-01 15:21:34 +01:00
Ross Nicoll
868b23a923 Move simulations to top level 2016-09-01 11:15:05 +01:00
Ross Nicoll
07f44e9e2a Move test code from node to test-utils 2016-09-01 11:15:05 +01:00
Matthew Nesbit
039229cdfd Remove bouncycastle-jdk14 that is causing problems for one of the member banks.
Only need testCompile scope
2016-09-01 11:04:48 +01:00
Andras Slemmer
86d6ee0110 node: Cash Issue doesn't require notary 2016-09-01 09:36:06 +01:00
Andras Slemmer
cfebccc495 node: Remove TransactionBuildResult.Complete, add pretty printing of ServiceToClientEvent 2016-09-01 09:36:06 +01:00
Ross Nicoll
232db9a1fd Move test utilities into their own package
This moves a lot of the test support code into its own package which is only imported for tests,
so it's not shipped as a part of core Corda. The node currently depends on this support code to
compile, although future work could try to separate this out. This change highlights that parts
of production code is dependent on test elements (i.e. dummy keys), and makes it harder for
such accidental crosses to occur later.

An integration test category is also added as part of this work, to contribute towards COR-345.
2016-08-31 15:40:54 +01:00
Clinton Alexander
5439e0980f Merged in clint-driver-debug-fix (pull request #308)
Fixed driver debug mode.
2016-08-31 11:31:02 +01:00
Clinton Alexander
0c4a80453a Used lists instead of strings for appending to JavaArgs in driver. 2016-08-30 14:01:54 +01:00
Matthew Nesbit
8756b49794 Add switchable HTTPS to Node web server
Explain change of cipher

Include extracted Dev Corda Root certificate so that it can be installed by HTTPS users.
2016-08-30 13:07:40 +01:00
Clinton Alexander
82b416cb88 Fixed driver debug mode. 2016-08-30 12:03:31 +01:00
Ross Nicoll
ad8ffca0b4 Add CommitTransactionProtocol
Add new protocol which manages the entire process of taking a signed transaction ready
for notarisation, through notarisation and onto recording it both locally and informing
remote nodes.

This protocol also optionally can include the ClientToServiceCommand which triggered a transaction
being created, to give the remote nodes context on why a change occurred (i.e. "You are being sent
£100")
2016-08-25 16:30:39 +01:00
Matthew Nesbit
089ba2cb69 Only NetworkMapServer addresses can be publicly manufactured. Use identity publick key as addressing, with only bridges using the HostAndPort information
Fixup after rebase and fix issue with checking previous deployment of bridges

Correct comments on ArtemisMessagingClient constructor

Fixup rates fix demo

Get rid of when statements

Make NetworkMapCache send modify as well as add//remove events. Make inboxes for nodes persistent.

Suppress warnings

Fix message acknowledgement so that it actually consumes messages properly.

Change queueName to SimpleString to stop lots of wasted conversions

Get rid of spurious import

Tidy up and add comments

Update to include comments on PR

Remove unnecessary import
2016-08-25 15:56:50 +01:00
Ross Nicoll
f9880a4990 Pre-filter states passed to generateSpend()
Pre-filter states passed to generateSpend(), so that requests from the UI to spend cash only ever
spend cash with the correct issuer.
2016-08-25 13:20:12 +01:00
Mike Hearn
c8323099bb Minor: cleanup the commercial paper contracts.
There's no need for the notary to be specified in commands. A few other tweaks and additions found whilst refreshing the docsite.
2016-08-25 11:30:25 +02:00
Mike Hearn
3e330a2d36 Merged in mike-fix-walletfiller (pull request #277)
Rewrite the test wallet filler code to not be buggy.
2016-08-23 17:59:19 +02:00
Ross Nicoll
dc2f4055fc Restrict cash exit commands to working on cash held by the issuer
Remove the ability to exit cash not held by the cash issuer; this solves a number of problems:

* Ensuring owner of the cash is aware of the funds being destroyed
* Determining where to send any change resulting from partial exiting of funds
* Auditing the destruction of funds
2016-08-22 17:17:19 +01:00
Clinton Alexander
668fecfea7 Merged in clint-no-notary-error (pull request #283)
Fixed bug when incorrect notary service type is specified.
2016-08-22 16:41:38 +01:00
Mike Hearn
097bb033c4 Rewrite the test wallet filler code to not be buggy. 2016-08-22 16:26:32 +02:00
Andras Slemmer
1a2c712a48 node-driver: Make debugging optional and off by default 2016-08-19 17:05:00 +01:00
Andras Slemmer
9d22d66548 node-driver: Fix some kdocs. Also, full stops! 2016-08-19 17:05:00 +01:00
Andras Slemmer
f4577b743e node-driver: Add startClient, startLocalServer 2016-08-19 17:05:00 +01:00
Andras Slemmer
5f33bedc13 node-driver: Polling doesn't timeout, just prints warning 2016-08-19 17:05:00 +01:00
Andras Slemmer
9cbdf001fb node-driver: Return Futures instead of waiting for full node startup 2016-08-19 17:05:00 +01:00
Clinton Alexander
7b3003ea04 Added TODO for further work 2016-08-19 16:41:49 +01:00
Matthew Nesbit
696b9741dd Remove ClashingThreads exception by tightening up unique id on LinearState to be a secure random value, with constraints that it cannot be duplicated. Also, rename to linearId rather than the confusing thread.
Try providing a helper interface to encourage enforcing LinearState rules

Fixup after rebase

Change to using Clauses for verifying LinearState standard properties

Fix whitespace change

Tidy up ClauseVerifier after PR comments

Change from SecureHash to a TradeIdentifier class

Change TradeIdentifier to UniqueIdentifier
2016-08-19 11:52:16 +01:00
Mike Hearn
6adebd3fa8 Clarify exception handling in the SMM add method a bit. 2016-08-18 18:19:46 +01:00
Mike Hearn
db3aa1491c Upgrade Quasar to 0.7.6 and fix an exception handling bug in SMM that it revealed (if an exception was thrown immediately on protocol startup we let it leak instead of capturing it in the future. 2016-08-17 14:43:45 +01:00
Ross Nicoll
a9ec3c253e Merged in rnicoll-notify-tx (pull request #282)
Add observable for transactions being stored
2016-08-16 14:50:55 +01:00
Clinton Alexander
77f5689468 Renamed variable for clarity. 2016-08-16 13:54:08 +01:00
Clinton Alexander
5d68210355 Driver now correctly resolves quasar path on Windows. 2016-08-16 13:26:38 +01:00
Clinton Alexander
85dce390f4 makeNotaryService now enforces post condition with type system. 2016-08-16 09:21:29 +01:00
Clinton Alexander
a74c491745 Fixed a bug where if NotaryService.Type is used as an advertised service no notary is created and no obvious error occurs. 2016-08-16 09:18:33 +01:00
Andras Slemmer
9d9164980e Merged in andrius-driver-fix (pull request #280)
DriverTest fix: get quasar.jar location from the classpath
2016-08-15 17:31:02 +01:00
Clinton Alexander
c5a6d11976 Merged in clint-node-driver-conf-fix (pull request #275)
Config will error earlier if the reference.conf file is missing.
2016-08-15 15:53:50 +01:00
Mike Hearn
a451000623 Merged in mike-fix-artemis-threading (pull request #276)
Messaging layer improvements
2016-08-12 19:07:54 +02:00
Mike Hearn
3d391ec8c2 Add unit tests for the resolve transactions protocol 2016-08-12 17:14:54 +02:00
Ross Nicoll
a3d37a4d00 Require notary to be explicitely stated on each transaction 2016-08-12 15:51:04 +01:00
Ross Nicoll
17ae349f4d Remove support for timestamp commands 2016-08-12 13:51:34 +01:00
Mike Hearn
cba0427e01 Make ArtemisMessagingClient blocking and require the user to directly enter a message loop. This cleans up a few things and ensures we can't get caught out by messages being arbitrarily re-ordered as they pass through any Artemis thread pools. 2016-08-12 14:06:03 +02:00
Ross Nicoll
8346c58d4c Add observable for transactions being stored
Add observable for transactions being stored, so the UI can show transactions as they're received, rather than being
limited to the summarised version available from the wallet service.
2016-08-12 11:58:17 +01:00
Andrius Dagys
cd344058d2 Driver: get quasar.jar location from the classpath instead of a constructor parameter 2016-08-12 11:41:15 +01:00
Mike Hearn
ac81d2aa32 Messaging layer improvements:
- Fix thread safety issues in ArtemisMessagingClient. The Artemis API isn't thread safe, but that isn't well documented and it will happily invoke callbacks in parallel.
- Add discussion of how we tackle threading currently in the codebase and make a few other improvements.
- Add a shutdown hook so we stop properly when the user presses ctrl-c
2016-08-11 14:16:05 +02:00
Clinton Alexander
475322b14f Config will error earlier if the reference.conf file is missing. 2016-08-10 17:22:20 +01:00
Andras Slemmer
00b439802b node-driver: Write node.conf explicitly 2016-08-10 14:35:23 +01:00
Andras Slemmer
1b98c32579 Merged in node-driver (pull request #253)
Node driver
2016-08-10 14:21:16 +01:00
Ross Nicoll
cf40e0db70 Add WalletMonitorService 2016-08-09 18:24:14 +01:00
Andrius Dagys
8386100677 Remove BriefLogFormatter as the formatting is now handled by Log4j configuration. Introduce LogHelpers which now handles the custom log level setting for specific loggers. 2016-08-09 17:31:27 +01:00
rick.parker
d883b3f134 First working hand-rolled persistent wallet
First working Exposed-assisted persistent wallet

Cleaned up Exposed-based persistent wallet

Cleaned up warnings

Fixed up some generic types

Improved comments

Fix up TODO comment

Hikari and config integration

Fix existing tests

Clean up after looking at PR

Clean up commented out lines

Fix initialisation of IRS demo leaving database open

Fix up after rebase

Review feedback.  Main change is lazy wallet iteration.

Rebased and incorporated config changes.

Use standardised config loading.  Make wallet cash test use persistent wallet.

Added test to ensure wallet retains state in database across instance creation.

Tidy up whitespace and fix bug in test.
2016-08-09 16:41:32 +01:00
Andras Slemmer
f20322136f Revert "Merged in node-driver (pull request #253)"
This reverts commit af893e0af5, reversing
changes made to 7357597501.
2016-08-09 16:19:18 +01:00
Andras Slemmer
9df7a0faf0 node-driver: Fix compile error 2016-08-09 15:38:33 +01:00
Andras Slemmer
5b2c687c64 node-driver: Hacky fix of startup race condition 2016-08-09 15:27:27 +01:00
Andras Slemmer
9e3220671c node: stop() ClientFactory and ServerLocator when shutting down and ArtemisMessagingClient 2016-08-09 15:27:27 +01:00
Andras Slemmer
d0385c420e node-driver: Remove parameter and DriverHandle, expose waitForAllNodesToFinish to dsl 2016-08-09 15:27:27 +01:00
Andras Slemmer
c9527a2cdd node-driver: Only stop() artemis if it started fine 2016-08-09 15:27:27 +01:00
Andras Slemmer
20fc200771 node: Fix checking of lateinited networkMapNodeInfo 2016-08-09 15:27:27 +01:00
Andras Slemmer
df4413ab68 node: Add extra Driver checks for node shutdown, extend try/finally scope of cleanup 2016-08-09 15:27:27 +01:00
Andras Slemmer
2e6de61ad0 node: Fix compiler error due to rebase 2016-08-09 15:27:27 +01:00
Andras Slemmer
a5e8c86928 node: Increase poll timeout in driver 2016-08-09 15:27:27 +01:00
Andras Slemmer
feecc36661 node: Address PR comments, better resource releasing, add kdoc 2016-08-09 15:27:27 +01:00
Andras Slemmer
9d071809ef node: Expose port allocation in Driver 2016-08-09 15:27:27 +01:00
Andras Slemmer
e7677c91ce node: Add DriverDSL(Exposed/Internal)Interface, add generic driver method to allow extension 2016-08-09 15:27:27 +01:00
Andras Slemmer
773d53b4c8 node: Load config from disk in Driver, further cleanup 2016-08-09 15:27:27 +01:00
Andras Slemmer
303858c3e4 node: Use proper logging in Driver 2016-08-09 15:27:27 +01:00
Andras Slemmer
35da6b5388 node: Add port allocation strategies to driver dsl, add jvm debug port 2016-08-09 15:27:27 +01:00
Andras Slemmer
8cf635cf74 node: Expose ArtemisMessagingService.Address 2016-08-09 15:27:27 +01:00
Andras Slemmer
3bc62fdb95 node: Add driver dsl test, expose some needed functions 2016-08-09 15:27:27 +01:00
Andras Slemmer
5f5a5e683d node: Add quasarPath parameter to driver dsl (should be replaced once we can do without the external quasar.jar) 2016-08-09 15:27:27 +01:00
Andras Slemmer
a317a5bfd2 node: Expose some Driver functions to allow extension, some cleanup 2016-08-09 15:27:27 +01:00
Andras Slemmer
e42d8c2e8f node: Add driver DSL for starting up nodes 2016-08-09 15:27:27 +01:00
Mike Hearn
87047c8996 Minor: fix various inspector warnings and delete some dead code. 2016-08-09 11:55:40 +02:00
Mike Hearn
8c00b5284d Merged in mike-ledgertx-refactoring (pull request #264)
Refactor the core transaction types
2016-08-08 18:02:32 +02:00
Matthew Nesbit
6b23800f02 Incorporate Clintons review comments 2016-08-08 11:54:41 +01:00
Matthew Nesbit
3dc8a95d69 Tackle comments from code review and fix bad merge on version 2016-08-05 16:42:55 +01:00
Matthew Nesbit
d3309c1171 Allow setting of out of process ArtmeisMQ broker on Node via config file 2016-08-05 15:58:02 +01:00
Matthew Nesbit
d76d271830 Fixup after rebase to split of server and client artemis components. 2016-08-05 14:52:31 +01:00
Matthew Nesbit
6b844c0e41 Gradle task to create a build/standalone folder suitable to demonstrate the capsule.io all in one jar 2016-08-05 14:52:29 +01:00
Andrius Dagys
d1f2958e6d Node: Add API doc for a newly introduced constructor parameter 2016-08-05 14:41:57 +01:00
Andrius Dagys
8d3a3197b9 Split up ArtemisMessagingService into ArtemisMessagingClient & ArtemisMessagingServer. If a Node is given a messagingServerAddress, it will only run a client and attempt to connect to the server at the provided address. By default, it will run both client & server locally 2016-08-05 14:02:32 +01:00
Andras Slemmer
027853c3a8 node: Started refactoring ArtemisMessagingService into ArtemisServerService and ArtemisClientService 2016-08-04 15:32:48 +01:00
Andras Slemmer
845f2bdd64 Merged in pubkey-base58-serialisation (pull request #257)
Pubkey base58 serialisation
2016-08-04 13:58:57 +01:00
Clinton Alexander
b640524bf3 Merged in clint-auto-identity (pull request #261)
Identity service now updates with the network map.
2016-08-04 13:29:54 +01:00
Andras Slemmer
4fb8a38122 core, node: Rename Stirng.toPublicKey to parsePublicKeyBase58 2016-08-04 12:14:40 +01:00
Andras Slemmer
35c4fcadcf node: Use toBase58String/toPublicKey in JsonSupport 2016-08-04 12:14:40 +01:00
Mike Hearn
701fc853ad Refactor the core transaction types to improve clarity, simplify verification and prepare for sandboxing.
Changes include:
- LedgerTransaction is now much more central: it represents a fully resolved and looked-up tx, with the inputs available.
- TransactionGroup and TransactionForVerification are gone. There is a temporary TransactionForContract class for backwards
  compatibility but it will also be gone soon.
- ResolveTransactionsProtocol is simplified, and now commits a tx to the database as soon as it's determined to be valid.
- ServiceHub is now passed in more consistently to verification code, so we can use more services in future more easily e.g. a sandboxing service.
- A variety of APIs have been tweaked or documented better.
2016-08-04 13:05:50 +02:00
Mike Hearn
c2aee2d4e8 Minor: Replace MockServices with a new class that's in core instead of node, old class becomes MockServiceHubInternal. 2016-08-04 12:53:09 +02:00
Mike Hearn
1c3379f508 Testing: make the ledger DSL take a ServiceHub rather than individual services.
It defaults to a fresh UnitTestServices(). Also clear up a few other areas.
2016-08-04 12:52:02 +02:00
Mike Hearn
ba05b90b8f Testing: change fillWithTestCash to issue cash under the DUMMY_CASH_ISSUER identity and adjust code that uses it. Introduce some code that'll prove useful later in WalletWithCashTest.
This change reduces the  testing confusion that can occur when cash is issued by one of the parties in a transaction rather than e.g. a neutral third party like a central bank.
2016-08-04 12:52:01 +02:00
Ross Nicoll
fc804ec746 Add NotifyTxProtocol
Add a protocol for notifying remote nodes of a transaction that may interest them
(typically this means involves them).
2016-08-03 17:10:26 +01:00
Clinton Alexander
b1c1b7f4b4 Review changes - merged two observables into one. 2016-08-03 16:49:37 +01:00
Clinton Alexander
9ef1bf0355 Identity service now updates with the network map. 2016-08-02 17:08:46 +01:00
Mike Hearn
987c374b98 Minor: slightly better error message when trying to send to an unknown party. 2016-08-01 16:42:56 +02:00
Mike Hearn
b40fee1512 Allow for easier conversion from Amount<Issued<T>> to Amount<T> and de-issuerify a few places. 2016-08-01 16:42:56 +02:00
Mike Hearn
97ad07be89 Fix progress rendering after the switch to log4j, as ANSIProgressRenderer had assumed JDK logging.
Also, start using colours and a more compact logging format in the default log4j config.
2016-08-01 13:07:48 +02:00
Ross Nicoll
cf4bb0c9af Break down topic into component parts
Break down what is referred to as "topic" of a message into its component parts. This splits the
general topic from the session ID, so it's clear where a session ID is provided, and whether any
given topic string includes a session ID or not.
2016-07-29 14:24:46 +01:00
Clinton Alexander
7d39a101d4 Merged in COR-276 (pull request #239)
Added Jacoco code coverage to gradle.
2016-07-29 13:29:47 +01:00
Matthew Nesbit
8c77ae7c84 Add comment to explain why AbstractNode is marked as SingletonSerializeAsToken 2016-07-28 16:54:40 +01:00
Matthew Nesbit
a462bb1d6a Incorporate comments from PR 2016-07-28 16:30:53 +01:00
Matthew Nesbit
601b2faf5f Incorporate comments from PR 2016-07-28 16:22:35 +01:00
Matthew Nesbit
c57f265cce Fixup plugins to include static content property after rebase inclusive of that work 2016-07-28 13:55:06 +01:00
Matthew Nesbit
10f68b22f9 Minor fix after rebase 2016-07-28 13:39:16 +01:00
Matthew Nesbit
235497e0f4 Convert long lived services supporting protocol listeners to plugins 2016-07-28 13:39:12 +01:00
Matthew Nesbit
09c795e341 Merge remote-tracking branch 'remotes/origin/master' into mnesbit-cor-261-artemis-over-ssl 2016-07-28 13:28:31 +01:00
Clinton Alexander
5410f8b228 Merged in demowebui (pull request #230)
Added an IRS demo web interface
2016-07-28 13:19:32 +01:00
Ross Nicoll
ec726da7d0 Merged in rnicoll-warnings (pull request #246)
Correct warnings
2016-07-28 13:03:55 +01:00
Matthew Nesbit
7d5ee8ba08 Create MessageServiceInternal interface to allow NetworkMapCache to register addresses with the network service.
Activate WhitelistTrustManager for now to secure the TLS messaging.
2016-07-28 11:25:57 +01:00
Clinton Alexander
188fc29436 Cleaned up build.gradle files. 2016-07-28 09:17:49 +01:00
Ross Nicoll
d54beca77e Add wallet service for notifying remote nodes of transactions 2016-07-27 17:40:52 +01:00
Ross Nicoll
aaaf6ea4f6 Correct warnings 2016-07-27 17:11:46 +01:00
Matthew Nesbit
e3aef96b09 Merge remote-tracking branch 'remotes/origin/master' into mnesbit-cor-261-artemis-over-ssl
# Conflicts:
#	build.gradle
2016-07-27 15:43:01 +01:00
Ross Nicoll
8bdeda63ae Merged in rnicoll-checkpoint-generic (pull request #241)
Rework checkpoint storage to include the FiberRequest
2016-07-27 15:20:40 +01:00
Andrius Dagys
e8c84867cf Merged in andrius-logging (pull request #240)
Enable logging to file
2016-07-27 14:18:24 +01:00
Matthew Nesbit
e5777fd999 Fetch KeyStore passwords from NodeConfiguration 2016-07-26 10:35:57 +01:00
Matthew Nesbit
4c08141ce3 Tidy up based upon comments on PR 2016-07-26 10:35:56 +01:00
Matthew Nesbit
00f897d58d Add X509 creation and manipulation utilities to core and enable SSL in ArtemisMQ 2016-07-26 10:35:54 +01:00
Matthew Nesbit
0d68523f5c Validate protocol type and args via whitelist ahead of class loading. Also, push this work into another method on the Factory. 2016-07-25 16:35:45 +01:00
Matthew Nesbit
0542f7c509 Refactor APIServer to use the same whitelist controlled protocol gateway as the scheduler. 2016-07-25 13:46:40 +01:00
Clinton Alexander
67defe19cc Small refactor of initWebServer to improve readability. 2016-07-25 10:36:37 +01:00
Clinton Alexander
93f4440c14 Moved IRS web folder up a level. Added support for static serving plugins. 2016-07-25 10:30:30 +01:00
Ross Nicoll
2f04d876ae Move FiberRequest out to a top level class
Move FiberRequest out to a top level class, both because it is expanding as functionality is added,
and to enable alternative state machine implementations to share it.
2016-07-24 09:30:16 +01:00
Andrius Dagys
e7ff5b8f6f Typo fix 2016-07-22 17:31:03 +01:00
Ross Nicoll
31ee8ab60b Rework checkpoint storage to include the FiberRequest
Rework checkpoint storage to include the FiberRequest, so that different requests can be supported.
2016-07-22 16:40:15 +01:00
Andrius Dagys
2142bd1d8a Added Log4j bindings for SLF4J. Test log output is redirected to the console, and demo output is now additionally stored in a rolling log file. 2016-07-22 16:15:00 +01:00
Mike Hearn
119813a36d Minor: document the SMM.changes observable. 2016-07-22 15:50:21 +02:00
Ross Nicoll
2c139ae40c Merged in rnicoll-state-machine-id (pull request #234)
Add Fiber ID to state machine change events
2016-07-20 13:23:02 +01:00
Clinton Alexander
40a4623c51 Improved error handling when exceptions occur during suspend. 2016-07-20 11:50:23 +01:00
Ross Nicoll
f72d8ed9fb Add Fiber ID to state machine change events
Where state machine change events are to be serialized for relay to external systems, serializing the entire
protocol is excessive. Instead being able to identify changes based on the ID of the fiber is a lot simpler
for these use-cases.
2016-07-19 14:58:54 +01:00
Ross Nicoll
c92d51a0b6 Correct processing of unhandled messages
Unhandled messages in the in memory messaging network can disrupt runNetwork(), as they
result in getNextQueue() returning null, irrespective of whether there is further work
which could be done. This modifies the flow to loop through the remaining transfers on
the queue before giving up, rather than stopping after the first.
2016-07-19 14:19:57 +01:00
Andrius Dagys
c442cd01a7 Merged in andrius-cleanup-tweaks (pull request #208)
Remove the "verify correct notary has signed" check from TwoParty protocols
2016-07-18 10:40:25 +01:00
Matthew Nesbit
9d18234383 Consistently use an sl4j logger with timestamp, rather than console println within the node. Note that the current protocol events published via the ProgressTracker are sent to the console without a timestamp. 2016-07-13 11:28:52 +01:00
Mike Hearn
ead19c619a Merged in mike-cp-issuance-fix (pull request #224)
Disentangle the concept of CP issuer vs underlying redeemable asset issuer in the CP contract.
2016-07-13 11:13:23 +02:00
Ross Nicoll
254592dc54 Move protocols into correct package 2016-07-12 18:42:00 +01:00
Mike Hearn
f6789c93dd Disentangle the concept of CP issuer vs underlying redeemable asset issuer in the CP contract.
This confusion was introduced by a previous refactoring.
2016-07-12 16:01:50 +02:00
Matthew Nesbit
dba2b980a5 Remove TODO as the usage of CheckpointStorage is only through ServiceHubInternal into the StateMachineManager. We don't restrict access to internal for now as this causes too much other change. 2016-07-12 13:43:43 +01:00
Andras Slemmer
d7cc34c9a5 all: Full stops in comments! 2016-07-11 17:58:53 +01:00
Mike Hearn
e28ecae8c0 Address review comments 2016-07-11 18:47:24 +02:00
Mike Hearn
0a2f313d40 Minor: run IntelliJ 'code cleanup' 2016-07-11 18:15:28 +02:00
Mike Hearn
41d092a169 Minor: optimize imports 2016-07-11 18:15:28 +02:00
Mike Hearn
cc22810b09 Testing cleanup:
- Move code out of ambiguously named TestUtils files (there were three). Sometimes it's simpler to just put these things into the contract source files directly.
- Remove JavaTestHelpers objects (there were three), in favour of just giving the top level kotlin file class better names.
- Misc other small tweaks and cleanups.
2016-07-11 16:22:02 +02:00
Ross Nicoll
6b775ebd4d Replace named timestamping authority with notary
As the timestamping authority is now always the notary service, contracts should
no longer be using name-based lookup of the timestamping authority (as this will
generally be wrong). This introduces a new "timestamp" property on a transaction,
and updates most contracts to refer to it.

In some cases (IRS, CommercialPaper) there are transactions with no input states
to derive notary from, that use timestamps. In these cases a notary is specified
in the command.
2016-07-11 14:54:36 +01:00
Andras Slemmer
4324e33fea testdsl: Removed R type parameter, unify verifies() interface 2016-07-11 14:25:27 +01:00
Andras Slemmer
9bb8439dc3 testdsl: Add failsWith to Ledger 2016-07-11 14:25:27 +01:00
Andras Slemmer
cd0299f650 testdsl: Javadoc comments 2016-07-11 14:25:27 +01:00
Clinton Alexander
208205e7f4 Fixed minor merge conflict. 2016-07-08 16:41:23 +01:00
Clinton Alexander
88fe562886 Removed dependency added in previous commit. Fixed upload code on IRS Demo 2016-07-08 16:41:23 +01:00
Clinton Alexander
2a59600b54 Error now occurs on upload if no files are sent. Added apache httpcomponents as a dependency. 2016-07-08 16:41:23 +01:00
Matthew Nesbit
eee049d66b Add cacheing to ServiceLoader scanning of plugins and add a TODO on whitelisting 2016-07-08 10:38:23 +01:00
Matthew Nesbit
1557a82992 Make ServiceLoader results for CordaPlugins a protected property on the AbstractNode 2016-07-08 10:38:21 +01:00
Matthew Nesbit
51ba0cc8dd Make the IRS Demo web api an api plugin (scanned from the Node classpath) and use the same permission checking entry point for web api's as the scheduler. 2016-07-08 10:38:18 +01:00
Matthew Nesbit
d9d4fb360f Make the IRS Demo web api an api plugin (scanned from the Node classpath) and use the same permission checking entry point for web api's as the scheduler. 2016-07-08 10:34:32 +01:00
Matthew Nesbit
f0f2dc4eb5 Add missing import 2016-07-08 10:34:31 +01:00
Matthew Nesbit
1fb4371de9 Make the IRS Demo web api an api plugin (scanned from the Node classpath) and use the same permission checking entry point for web api's as the scheduler.
Fix whitespace

Change ProtocolLogicRefFactory to use Map<String, Set<String>> as whitelist definition
2016-07-08 10:34:30 +01:00
Mike Hearn
a1177f05c1 Merged in mike-add-gradle-versions (pull request #207)
Add a version number to gradle and allow "gradle install" to install the core module to the local Maven repository.
2016-07-08 10:04:01 +01:00
Andrius Dagys
fb93b86d6b Move test class into correct package 2016-07-07 15:51:47 +01:00
Mike Hearn
ad3e9be1c8 Add a version number to gradle and allow "gradle install" to install the core module to the local Maven repository. 2016-07-07 13:59:55 +01:00
Andrius Dagys
b498928f75 Remove the "verify correct notary has signed" check. This is no longed necessary as the required notary key is added to the "signers" list during transaction construction. We have general validation rules that check the correct notary was included in the signers list, and that we have signatures for all "signers". 2016-07-07 13:22:30 +01:00
Mike Hearn
bbc5c2e981 Merged in mike-july-dependency-upgrades (pull request #200)
Upgrade dependencies, July edition.
2016-07-06 16:25:52 +01:00
Mike Hearn
f6e7ffdd31 Fix a race condition in the MockNode class that only shows up when used in thread-per-node mode. Witnessed in the unit tests. 2016-07-06 14:02:40 +01:00
Mike Hearn
6fb7e59b91 Upgrade dependencies, July edition. 2016-07-06 13:56:22 +01:00
Andras Slemmer
f177b1ffaa test dsl: LastLineShouldTestForVerifiesOrFails->EnforceVerifyOrFail 2016-07-06 13:25:08 +01:00
Andras Slemmer
e31b769fef test dsl: Dsl->DSL, add top-level transaction primitive, add ledger-embedded signAll, other cosmetics 2016-07-06 13:25:08 +01:00
Andras Slemmer
e3d6f51049 contracts, core, node: Port TransactionForTest tests to new DSL 2016-07-06 13:25:08 +01:00
Andras Slemmer
cde315aca9 contracts, node: Port CommercialPaperTests, TwoPartyTradeProtocolTests and GroupToGraphConversion to use new dsl 2016-07-06 13:25:08 +01:00
Shams Asari
5c0e7fbbf2 Moved topic parameter from send/receive methods to a ProtocolLogic property 2016-07-05 15:12:25 +01:00
Ross Nicoll
2121824662 Rename com.r3cord.contracts.cash package to ...asset 2016-06-30 13:31:59 +01:00
Shams Asari
a02263937c send and sendAndReceive use Party for the destination 2016-06-30 12:04:39 +01:00
rick.parker
5271882dcd Event scheduling and docs for event scheduling 2016-06-30 08:51:52 +01:00
Ross Nicoll
779034691e Add AbstractTransactionSubstitutionProtocol
Abstracts the NotaryChangeProtocol to be extensible for other use-cases.
2016-06-29 17:16:46 +01:00
Andras Slemmer
e54dad9a8b node: Add apiAddress constructor parameter 2016-06-28 14:03:32 +01:00
Andras Slemmer
429d8aab74 node, integtest: Code style 2016-06-28 14:03:32 +01:00
Clinton Alexander
ffa9ad1bc9 Added port argument for IRS demo to allow web servers to not have binding collisions during testing and to allow more granular control over demos. 2016-06-28 14:03:32 +01:00
Clinton Alexander
7a4a1363cb Removed unnecessary changes. 2016-06-28 14:03:32 +01:00
Clinton Alexander
36a0ff0503 Added an endpoint that allows querying for status of node. 2016-06-28 14:03:32 +01:00
Clinton Alexander
60daf8059f Removed dependency added in previous commit. Fixed upload code on IRS Demo 2016-06-28 14:03:32 +01:00
Clinton Alexander
f6069e1e15 Error now occurs on upload if no files are sent. Added apache httpcomponents as a dependency. 2016-06-28 14:03:32 +01:00
Clinton Alexander
507d9ea4ae Added new integration test for the IRSDemo and refactored the demo to
run in integration tests.
2016-06-28 14:03:32 +01:00
Mike Hearn
2dfcff1f31 Testing: Fix the wallet filler code. 2016-06-24 17:13:27 +02:00
Andras Slemmer
ac69f566c9 node: Add another test testing correct LinearState sequencing 2016-06-23 18:06:57 +01:00
Andras Slemmer
3a84e2fe9d node: Add test for LinearState thread clash 2016-06-23 18:06:57 +01:00
Andrius Dagys
aaeb99ac25 Validating notary: check for missing signatures. The notary can only sign if all other signatures are present
Please enter the commit message for your changes. Lines starting
2016-06-23 16:15:14 +01:00
Mike Hearn
7ee6bd05ce Refactor the wallet code:
- Rename NodeWalletService to InMemoryWalletService and move into the core module where it's available for unit testing.
- Make a new NodeWalletService that just inherits from InMemoryWalletService and doesn't customise it at all, for now.
- Take the cash specific functionality out of Wallet and into an extension property in the Cash contract (this compiles as CashKt.getCashBalance(wallet) for java users).
- Return the generated states in the fillWalletWithTestCash function.
2016-06-22 14:49:52 +02:00
Mike Hearn
f3d4639059 Testing: make the WalletFiller code a file-level singleton and fillTestWithCash an extension method. For Java users not much changes, the class is still called WalletFiller and the signature remains the same. Re-order some arguments to make it easier to use when accepting the defaults. 2016-06-22 14:49:52 +02:00
Mike Hearn
cdb3e2f126 Minor: move WalletFiller from node.testing to contracts.testing 2016-06-22 14:49:52 +02:00
rick.parker
717a5ab197 Break out message handler changes
Special serializer for kotlin object definitions
2016-06-22 09:50:15 +01:00
Richard Green
859ee053d2 Merged in rg_todo_financetypes_242 (pull request #145)
Changed DateOffset to be an integer instead of enum. Usages and examples also changed. Also renamed to fixingPeriodOffset
2016-06-21 18:18:44 +01:00
Richard Green
6b80530ac6 Changed DateOffset to be an integer instead of enum. Usages and examples also changed. Also renamed to fixingPeriodOffset
Renamed fixingPeriod -> fixingPeriodOffset in the .json files
2016-06-21 18:17:39 +01:00
rick.parker
3ea1090446 Support for moving TestClock to just beyond a specific instant (helpful for schedule related testing)
Added TimeWindow to PR

Review feedback

Review feedback
2016-06-21 16:49:25 +01:00
Clinton Alexander
3e82ee45f2 Merged in nodedircreate (pull request #139)
Todo resolution: Moved node directory creation into the abstract node.
2016-06-21 11:02:29 +01:00
Andras Slemmer
e29a9b15c3 Revert "node: remove buffering logic from InMemoryMessagingNetwork"
This reverts commit bc7ea5f0c5a61e9c3f9d7825e2944e4d27141320.
2016-06-20 17:50:19 +01:00
Andras Slemmer
32b593671b Merged in remove-warnings (pull request #169)
Remove warnings
2016-06-20 14:45:04 +01:00
Shams Asari
411fd1aeb3 Upgraded to artemis 1.3.0 so that exceptions are thrown if something goes wrong on startup 2016-06-20 14:29:27 +01:00
Ross Nicoll
8f57213270 Merged in rnicoll-force-record-tx (pull request #152)
Require all transactions are added via the ServiceHub.recordTransaction() function
2016-06-20 14:25:20 +01:00
Ross Nicoll
a5e07c2600 Require all transactions are added via the ServiceHub.recordTransaction() function 2016-06-20 14:24:55 +01:00
Andras Slemmer
5de6e3f965 node: Remove warnings 2016-06-20 14:16:13 +01:00
Andras Slemmer
c9cb024bb5 Merged in use-urandom-2 (pull request #166)
Use urandom 3
2016-06-20 14:15:03 +01:00
Andras Slemmer
a7419b116d Add newSecureRandom() that uses a non-blocking SecureRandom provider on Linux 2016-06-20 14:11:03 +01:00
Andras Slemmer
6eab61a6a1 node: fix hanging test 2016-06-20 12:37:42 +01:00
Andras Slemmer
08e6333284 node: Add sendManuallyPumped parameter to test 2016-06-20 12:37:42 +01:00
Andras Slemmer
fbbff9fad2 node: remove test that tested buffering logic in IMMN 2016-06-20 12:37:42 +01:00
Andras Slemmer
ccf362bb8a node: fix IRSSimulation so it doesn't rely on buffering 2016-06-20 12:37:42 +01:00
Andras Slemmer
5323eb1073 node: remove buffering logic from InMemoryMessagingNetwork 2016-06-20 12:37:42 +01:00
Andras Slemmer
03c1550394 node: add ability to pump sending as well as receiving, expose both streams 2016-06-20 12:37:42 +01:00
Andras Slemmer
ea27910d51 node: Add JSON EdDSA pubkey serialisation/parsing 2016-06-20 11:48:40 +01:00
Andrius Dagys
30ca340b6e Refactored NotaryChangeProtocol and tests: moved the proposal verification step into the protocol.
Added another proposal verification step in the NotaryChangeProtocol.
Added the cause exception message to the 'notary change refused' error.
2016-06-17 15:05:35 +01:00
Andrius Dagys
0a5b7ace35 Made TransactionBuilder abstract. Every transaction type now needs to implement and provide its own Builder. This is required since for specific types we need to run different logic when adding new items to the transaction. For example, when adding a new input state to a transaction of type NotaryChange we need to add all of the states participants to the signers list. 2016-06-17 15:05:35 +01:00
Andrius Dagys
9958b5c603 Added 'signers' property to the transaction data models. Signers holds the list of all public keys that need to be signed for (command keys and additional ones such as notary).
Removed Notary & ChangeNotary commands, keys to be signed for are added to the signers list during transaction build phase.
2016-06-17 15:05:35 +01:00
Andrius Dagys
70495a021e Introduce TransactionState, which wraps ContractState and holds the notary pointer.
Remove notary from ContractState.
Introduce TransactionType, which specifies custom validation logic for a transaction.
2016-06-17 15:05:35 +01:00
Andrius Dagys
3b1e020082 Extended the data model so that every state has to define a set of 'participants' - parties that are able to consume that state in a valid transaction.
Added protocol for changing the notary for a state, which requires signatures from all participants
2016-06-17 15:05:35 +01:00
Andras Slemmer
0c325c31a2 Revert "Merged in use-urandom-2 (pull request #159)"
This reverts commit 1a1ed3b9e6, reversing
changes made to 09e2e49d44.
2016-06-17 14:12:19 +01:00
Andras Slemmer
ba96282591 node: use newSecureRandom() instead of SecureRandom.getInstanceStrong() 2016-06-17 13:07:25 +01:00
Andras Slemmer
f06487aa4c Merged in sort-of-incremental-quasarScan (pull request #154)
Sort of incremental quasarscan
2016-06-17 10:38:39 +01:00
Shams Asari
7f3458803c Protocols can use the serviceHub lazily in their constructors 2016-06-17 10:30:25 +01:00
Andras Slemmer
dc5da8e1ad build: use QuasarPlugin instead of copypasta 2016-06-17 10:16:46 +01:00
Ross Nicoll
ad72f3e48f Add issuer to cash amounts
Add issuer of a cash when referring to amounts of cash (except for the very few cases where
the issuer is not important, such as when referring to aggregated totals across a set of
issuers). Replaces CommonCashState with TokenDefinition, as a more accurate reflection of
what the class represents.
2016-06-16 15:05:49 +01:00
Ross Nicoll
d6a79b7bae Minor: Pass reference into fillWithSomeTestCash()
Reference is now a parameter to fillWithSomeTestCash() so that the caller can be
clear on the reference to use.
2016-06-16 15:04:33 +01:00
Mike Hearn
7d09a09070 Place the long term identity key into the KMS for now. This will all change later. 2016-06-16 13:01:53 +02:00
Shams Asari
860353c4d4 Initial checkpoint when protocol is first added 2016-06-16 09:54:49 +01:00
Ross Nicoll
f831ffdf3d Add tests for TransactionGraphSearch 2016-06-15 16:21:53 +01:00
Andras Slemmer
3d109252f5 node: add missing @Suspendable 2016-06-15 15:16:08 +01:00
rick.parker
b595b23ed7 Remove quasar scan related warnings of suspendable supers outside our project (in kotlin stdlib).
Suppressed two compiler warnings related to unused variables (seems to be compiler bug)
2016-06-15 14:30:00 +01:00
Shams Asari
853bc683f8 Simplify last checkpoint removal race condition fix 2016-06-15 10:01:33 +01:00
Shams Asari
aa153be6f0 moved methods in ChildrenProgressTrackers into ProgressTracker 2016-06-14 16:42:42 +01:00
Clinton Alexander
6b886bde4a Nodes now need a setup step before running. 2016-06-14 16:07:29 +01:00
Andras Slemmer
56821c3a24 node: rename _networkMapRegistrationSettableFuture to _networkMapRegistrationFuture 2016-06-13 18:09:38 +01:00
Andras Slemmer
16465ba475 node: prefix private field with '_', use get() = 2016-06-13 18:09:38 +01:00
Andras Slemmer
50cd3c938a node: hide writable networkMapRegistrationSettableFuture 2016-06-13 18:09:38 +01:00
Andras Slemmer
0dda3b2473 node: wait for last checkpoint remove before completing state machine future, fixes race in TwoPartyTradeProtocolTests 2016-06-13 18:09:38 +01:00
Andras Slemmer
fe83e41f52 node: use star projection instead of useless transform to hide type param 2016-06-13 18:09:38 +01:00
Andras Slemmer
5525487169 node: remove debug println 2016-06-13 18:09:38 +01:00
Andras Slemmer
3bf95429e9 node: change InMemoryMessagingNetwork so that the exposed allMessages stream is in sync with iterate() 2016-06-13 18:09:38 +01:00
Andras Slemmer
53bd5c2287 node: make AbstractNode's networkMapRegistrationFuture non-nullable 2016-06-13 18:09:38 +01:00
Clinton Alexander
86b5b7299a Moved node directory creation into the abstract node. 2016-06-13 15:30:26 +01:00
rick.parker
73cbab0084 Pull out Wallet observable into it's own branch
Review feedback

Review feedback

Apply feedback from previous PR

Apply feedback from previous PR

Apply feedback from previous PR

PR feedback

PR feedback

PR feedback
2016-06-10 17:16:56 +01:00
rick.parker
82abc69046 Pull out StateMachineManager observable into it's own branch
Review feedback

Review feedback

Review feedback
2016-06-10 13:10:56 +01:00
Shams Asari
2365f9bca5 Persisting transactions to disk 2016-06-08 10:15:14 +01:00
rick.parker
97e04ba7d0 Fix registration of services due to Kryo not following synthetic fields by default
Review feedback
2016-06-07 16:29:59 +01:00
Andrius Dagys
49664b4b50 Assign platformClock in serviceHub directly to avoid serialization issues 2016-06-07 13:53:00 +01:00
Andrius Dagys
21f53a7d3e Revert "Revert "Merged in validating-notary (pull request #123)""
This reverts commit e64145991e.
2016-06-07 13:53:00 +01:00
Ross Nicoll
f4f0e160d2 Genericise Cash contract to support non-Currency things
Split the verification and commands for the Cash contract into a new AbstractCashLike
class, and make Cash a concrete implementation of that class, specialised for dealing
with Currency as the underlying token.
2016-06-07 13:49:26 +01:00
Andrius Dagys
e64145991e Revert "Merged in validating-notary (pull request #123)"
This reverts commit d9f4e4da2e, reversing
changes made to 654dc3f60a.
2016-06-07 12:29:27 +01:00
Andrius Dagys
c45bc0df20 Split up Notary protocol into Client and Service parts. The Service protocol can be extended to provide additional transaction processing logic, e.g. validation.
Implemented a Simple and Validating Notary services.
2016-06-07 10:58:34 +01:00
Shams Asari
654dc3f60a Resuming from checkpoints now working - seller (but not buyer) in trader demo can be restarted 2016-06-06 17:49:40 +01:00
rick.parker
8122e35a8a Have ServiceHub entries implement SerializeAsToken so they are not copied into protocol checkpoints. 2016-06-06 16:55:46 +01:00
Ross Nicoll
d7b367965f Genericise Amount class
Make the Amount class generic so it doesn't have to represent a quantity of a
currency, but can handle other things such as assets as well, or extended detail
(for example a currency-issuer tuple).
2016-06-01 11:58:13 +01:00
Ross Nicoll
fc62010da6 Move cash contract into its own package 2016-05-31 17:07:36 +01:00
Mike Hearn
fac38e1f3f Attempt to fix AffinityExecutorTest and fix an IDE hint.
This test sometimes fails on Jenkins but I can't reproduce the failure here. There is a race in the tests though, I think this should fix it.
2016-05-25 12:27:57 +02:00
rick.parker
7982902e38 Added comment about use of Semaphore and CountDownLatch 2016-05-24 16:27:39 +01:00
rick.parker
4c75effe8c First phase of updates based on feedback 2016-05-24 14:44:09 +01:00
rick.parker
0b2c16be67 Changes to packages after refactor 2016-05-24 11:48:04 +01:00
rick.parker
f8e610aa71 Re-apply changes 2016-05-24 09:41:00 +01:00
Matthew Nesbit
63a5fd1b9e Add com.r3corda to all namespaces. 2016-05-23 14:53:56 +01:00
Matthew Nesbit
c6b788f792 Remove orphaned comment 2016-05-20 16:09:08 +01:00
Matthew Nesbit
06f4c6ab5b Move test to core as part of tidy up. 2016-05-19 14:10:25 +01:00
Matthew Nesbit
5d054c8ab3 Rename node.core to node.internal from Rick's suggestion not to use core outside of the core package. 2016-05-19 12:07:14 +01:00
Matthew Nesbit
4ecc129b72 Kill test resource file that didn't move correctly 2016-05-19 10:59:11 +01:00
Matthew Nesbit
01e9536444 Refactor code into clear core, contracts and node namespaces. Move services into clear implementation and api sides. Push unit tests down to lowest level of dependency hierarchy possible. 2016-05-19 10:59:10 +01:00
Matthew Nesbit
c8130581a9 Push internal subsystems into node 2016-05-19 10:59:07 +01:00
Mike Hearn
e1f899647a Modify the trader demo so it doesn't need a shell script to start it anymore. Now all configuration is in the driver program. 2016-05-17 18:13:24 +02:00
Mike Hearn
e475b146d9 Testing: add a unit test that runs the IRS simulation through to completion, to ensure some test coverage of TwoPartyDealProtocol until it's merged with TPTP. Fix an issue that was breaking the simulation. 2016-05-17 17:57:41 +02:00