Mike Hearn
9720d4e404
Messaging: more huge simplifications to the state machine framework.
...
The usage now looks straightforward enough to document and put into a tutorial.
2015-12-11 20:21:22 +01:00
Mike Hearn
89ba996a3c
Two party trading: big changes to support and test serialisation, refactorings ...
2015-12-11 15:19:13 +01:00
Mike Hearn
65c5fa7502
Messaging: (mock) in memory network implementation improvements.
...
- Now supports simulated restart of nodes
- Messages sent to non-running nodes are queued for delivery
- Messages received by a node that don't match any topics are queued until handlers are registered
These improvements help us unit test various robustness features and ensure things work in truly concurrent context where there can be race conditions like receiving a message before the node had a chance to register the right handlers.
2015-12-11 15:19:13 +01:00
Mike Hearn
0ca47156bc
Trading protocol work in progress
2015-12-11 15:19:13 +01:00
Mike Hearn
fed0ae5629
Add placeholder interfaces for various service submodules.
2015-12-11 15:17:44 +01:00
Mike Hearn
2df8153cda
Minor: rename wallet -> cashStates in the Cash contract spending function.
2015-12-11 15:17:28 +01:00
Mike Hearn
f13b9b00e4
Minor: fix Arrays.asList serialisation by adding the extra serialisers lib as a dependency
2015-12-10 17:14:49 +01:00
Mike Hearn
4c87dc2981
First draft of a basic messaging module interface (VERY ROUGH). Ideally, is something that can have an e.g. Kafka backend, with a full P2P implementation later.
2015-12-10 15:08:11 +01:00
Mike Hearn
7881be07ed
Delete a lot of Kryo/serialisation related boilerplate.
...
This is/was an attempt to be secure against malicious streams, but as Kryo is just a temporary bit of scaffolding and isn't intended to be actually used in any real product, it was just a waste of time and the registration requirement was getting increasingly awkward.
2015-12-10 15:03:34 +01:00
Mike Hearn
951912f8e7
Minor: rename Kryo.registerDataClass to Kryo.registerImmutableClass
2015-12-10 14:27:53 +01:00
Mike Hearn
67c810e315
Make Amount use 64 bit precision and overflow checked operations.
2015-12-08 14:58:16 +01:00
Mike Hearn
73cbd41a09
Misc fixes:
...
- Use the OpaqueBytes wrapper (a box for byte[]) inside TimestampedWireTransaction to avoid array comparison issues.
- Introduce a few utility functions to make OpaqueBytes less painful.
- Make StateAndRef serialisable
- Introduce the notion of an OwnedState which abstracts out the owner field.
2015-12-07 17:53:01 +01:00
Mike Hearn
a656e210c4
Merged in crowdfund-tweaks (pull request #7 )
...
Crowdfunding contract: some cleanups and add some discussion at the top of the different possible models.
2015-12-04 12:34:03 +00:00
Mike Hearn
41f54b8555
Crowdfunding contract: some cleanups and add some discussion at the top of the different possible models.
2015-12-04 12:33:42 +00:00
Mike Hearn
ea4a6d8f06
Add logging utilities using slf4j
2015-12-03 18:24:26 +00:00
Mike Hearn
e5a36580da
Visualiser: reorganise, make it easier to invoke, document it.
2015-12-03 12:00:49 +00:00
Mike Hearn
58c526c68b
Visualiser: reorganise, make it easier to invoke, document it.
2015-12-03 11:54:49 +00:00
Mike Hearn
2193dced0a
Minor: add docs for the cash DSL extensions
2015-12-03 11:07:25 +00:00
Mike Hearn
0e34779fce
Merged in mod-crowdfund-close (pull request #5 )
...
Updated close method
2015-12-03 10:20:18 +00:00
Mike Hearn
f98ebce58b
Update copyrights
2015-12-02 18:53:16 +00:00
Mike Hearn
a95cd056ea
Implement a simple transaction graph visualiser tool.
2015-12-02 09:50:45 +00:00
Mike Hearn
1c1736ff9f
Minor: SecureHash.toString + SecureHash.prefixChars methods
2015-12-01 13:36:58 +00:00
jamescarlyle
91a9b08e7d
Updated close method
2015-11-30 19:16:25 +00:00
Mike Hearn
1f68727f31
Cash: add an onlyParties parameter to the spend crafting method. This allows you to restrict the wallet to only cash issued by particular parties.
2015-11-30 17:58:58 +00:00
Mike Hearn
50c3956988
Rename 'institution' to 'party'.
...
ADP-39 #resolve
2015-11-30 16:51:20 +00:00
Mike Hearn
52288bede1
Add copyright header (not open source for now)
2015-11-30 16:46:26 +00:00
Mike Hearn
9780f6254a
Crowdfund contract: update to latest style for defining commands (singletons don't play nice with serialisation)
2015-11-30 16:39:03 +00:00
Mike Hearn
b3f7e307c7
Reformat the crowdfund contract
2015-11-30 16:36:12 +00:00
Mike Hearn
b8a50a65cf
Merge branch 'finish-timestamping'
...
# Conflicts:
# docs/build/html/searchindex.js
# src/core/serialization/Kryo.kt
2015-11-30 16:35:10 +00:00
jamescarlyle
4e933f6d51
Added basic Crowdfunding contract.
2015-11-27 23:55:47 +00:00
Mike Hearn
42eed3e0a3
Flesh out timestamping logic and fix various serialisation related bugs that it exposes. Timestamps are optional, so update the CommercialPaper contract and tutorial to reflect that.
2015-11-27 18:33:17 +01:00
Mike Hearn
1628c1e17a
Implement and test crafting/generate methods for CommercialPaper.
...
Rename test keys and use real EC keys instead of dummies.
2015-11-27 15:44:43 +01:00
Mike Hearn
d3c15ab7de
Minor: tighten generic bound on StateAndRef
2015-11-27 15:44:06 +01:00
Mike Hearn
a98bc241ae
Early start on support for timestamping (incomplete) and addition of a helper method on LedgerTransaction
2015-11-27 15:43:48 +01:00
Mike Hearn
60f29339ee
Minor: add a convenience extension function to convert from byte arrays to SHA256 hashes.
2015-11-27 15:42:55 +01:00
Mike Hearn
19cd2069c7
Minor: clarify the distinction between sighash and txid hash. Fix Cash contract to not expect keys to be sortable.
2015-11-27 14:56:36 +01:00
Mike Hearn
de40a2082d
Minor: introduce Institution.ref() to get an InstitutionReference
2015-11-27 14:49:08 +01:00
Mike Hearn
3172b0b86a
Contracts: commercial paper issue command doesn't need a nonce, and fix a bug in the unit tests.
2015-11-25 18:14:33 +01:00
Mike Hearn
ff05cb4a4c
Contract: rewrite and finish off tests for commercial paper, using improved test DSL
2015-11-25 17:40:27 +01:00
Mike Hearn
c026e90067
Contracts: JavaCommercialPaper should implement equals/hashCode on its version of the state class and use the same grouping logic as the Kotlin version.
2015-11-25 14:26:17 +01:00
Mike Hearn
5285d3bb47
Minor: define contracts as regular classes instead of using the kotlin singleton syntax
2015-11-24 15:22:19 +01:00
Mike Hearn
5c1e4a0e35
Minor: fix kdoc in Structures.kt, spotted by Richard
2015-11-23 11:53:31 +01:00
Richard G Brown
fa32935e77
legalContractRef changed String to SecureHash (of contract contents)
2015-11-23 10:59:28 +01:00
Mike Hearn
b0b8c74c25
Minor: move the groupBy method to TransactionForVerification where it belongs.
2015-11-20 19:36:20 +01:00
Mike Hearn
a8e34a2bb2
Contracts API: move the notion of grouping into a utility file, and modify the commercial paper contract (java+kotlin) to use it.
...
This resolves several open TODO list items around the composability of contracts.
The current CP tests pass, but they aren't complete, so this doesn't prove the changes are correct. That'll come soon.
2015-11-20 19:25:15 +01:00
Mike Hearn
d6cfa9b9ef
Cash: refactor to allow multi-currency swaps by introducing a notion of grouping.
2015-11-20 18:19:24 +01:00
Mike Hearn
9681f97502
Minor: add a unit test to verify that duplicated inputs are forbidden (conflict) and delete the TODO for it.
2015-11-19 13:09:46 +01:00
Mike Hearn
7f13b8ab4a
Minor: a few misc cleanups
2015-11-19 11:56:07 +01:00
Mike Hearn
a4aef06e41
Major: introduce TransactionGroup for verifying subgraphs.
2015-11-18 19:22:31 +01:00
Mike Hearn
03ddf454c7
Minor: make LedgerTransaction keep track of the hash of the original serialised tx
2015-11-18 13:35:24 +01:00