Commit Graph

121 Commits

Author SHA1 Message Date
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
Mike Hearn
f9920cbc28 Testing: expose a future from the Simulation.start method to let you find out when the simulation has finished (if it finishes at all).
Add a simple test that just forces the IRS simulation through to completion (no real checks on the output).
2016-05-17 17:57:40 +02:00
Mike Hearn
8bcc6bdf1c Testing: expose the full message transfer record (with sender and recipients) when iterating a mock network and simulation.
This is useful for the visualiser to exclude uninteresting interactions.
2016-05-17 17:56:32 +02:00
Mike Hearn
5de2ba4ef9 Tweak the simulation so that the startup sequence of the network (with map registration etc) can be observed. 2016-05-17 17:56:31 +02:00
Mike Hearn
474054411d Minor: expose a started getting on AbstractNode and check for double starts. Expose findMyLocation as public. 2016-05-17 17:55:52 +02:00
Mike Hearn
c5f7849689 Minor: delete dead field 2016-05-17 17:53:28 +02:00
Mike Hearn
b714a09881 A node that is exporting a network map service should not try to register with itself twice (one internally and once over the network).
Minor renamings and cleanups in the network map code.

Throw an exception if a production node isn't configured with any network map service at all.
2016-05-17 17:53:26 +02:00
Mike Hearn
883be19978 Testing: make the in memory messaging service support logging of all sent messages with useful text descriptions of each node 2016-05-17 17:50:27 +02:00
Mike Hearn
c5217412a4 Put the network map service into the list of network services in Simulation, and update the mock physical locations, so the visualiser tool looks better. 2016-05-17 17:50:26 +02:00
Andrius Dagys
8f9413115b Added a TODO for combining the Notary verification logic with command sig verification 2016-05-17 12:14:14 +01:00
Andrius Dagys
4affe7271b Seller: Verify that the Notary signature received from the Buyer is by the correct Notary 2016-05-17 12:14:14 +01:00
Matthew Nesbit
4fd32c3455 Merge remote-tracking branch 'remotes/origin/master' into mnesbit-cor-174-reorganise-for-bank-developers 2016-05-16 15:27:44 +01:00
Matthew Nesbit
e8e909a5ff Use simple for loop for api registration on node 2016-05-16 14:42:04 +01:00
Matthew Nesbit
f26178f602 Fix variable shadowing 2016-05-16 09:24:27 +01:00
Matthew Nesbit
6bdbc7925b Fix IRS demo by allowing demos to optionally register JAX-RS classes on the node at construction time. 2016-05-14 19:26:20 +01:00
Matthew Nesbit
988e00099d Capture file moves to separate Node implementation code into its own gradle module and leave only demo code in top level src folders.
I have to temporarily break\disable the IRS demo to which has a circular dependency. Will fix next.
2016-05-14 17:57:41 +01:00