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
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