Commit Graph

7493 Commits

Author SHA1 Message Date
882217fa9d Merged in code-style-guide (pull request #13)
Code style guide
2016-01-27 15:41:03 +00:00
52d30b4870 Regen docsite. 2016-01-27 15:07:46 +00:00
c16abb2825 Add a coding style guide. 2016-01-27 15:07:46 +00:00
9cfa5743ff Minor: rewrap a few lines to be style guide compliant. 2016-01-27 15:01:20 +00:00
4a36751798 Minor: bump Gradle to 2.10 2016-01-22 12:54:24 +01:00
fd63543566 Minor: Quasar 0.9.4 is out so we don't need the snapshot version anymore. 2016-01-22 12:00:14 +01:00
b3bfe9d532 Merged in quasar (pull request #12)
Upgrade protocol framework
2016-01-13 13:56:12 +01:00
d9c6df51f4 Update docs for new simpler protocol framework API. 2016-01-13 13:54:10 +01:00
3d051ced3a Minor: fix bug in BriefLogFormatter 2016-01-12 16:40:35 +01:00
8a3f619480 Check in an "All tests" config and add quasar jar to lib directory to simplify IntelliJ configuration 2016-01-12 16:40:34 +01:00
33b98bc9c3 Minor: bump Guava to v19 to avoid conflicts with new Quasar 2016-01-12 12:14:46 +01:00
a729d5134e Minor: take out the 'inline reified' functions from the ProtocolStateMachine class. The slightly nicer syntax it enables isn't worth the readability hit for readers who aren't familiar with what this Kotlin feature does in this case. 2016-01-12 12:14:46 +01:00
363b335896 Minor: use "platform.*" as the naming hierarchy for protocols that are supposed to be standardised. 2016-01-12 12:14:46 +01:00
717651db45 Minor: remove a TODO that is now done. 2016-01-12 12:14:45 +01:00
78849f44d2 Protocols: simplify the two party (dvp) protocol some more, now that we've switched to Quasar. There's no longer any need to define InitialArgs objects. 2016-01-12 12:14:45 +01:00
c59603c26f Implement timestamping as a separate service that the two party (dvp) protocol calls out to via a simple client object.
Lots of big changes in this commit:
* Introduction of "network map" and "legally identifiable node" concepts to the networking abstraction.
* State machines framework now lets you send messages to multiple different destinations in the same protocol.
* Timestamping service that can run inside a node is now implemented and unit tested.
* Starting to benefit from the improvements in Quasar (the initialArgs concept can mostly be got rid of now, etc)
2016-01-12 12:14:45 +01:00
412212a860 Switch from JavaFlow to Quasar to provide fibers.
Quasar is a more modern, better maintained and more powerful framework. The main improvement is that this lets us avoid the ClassLoader tricks that JavaFlow was requiring, by using an agent. This introduces a requirement to mark methods that might be on a suspended stack as @Suspendable, but means that code interops cleanly. In Java 9 it is hoped that the marking requirement may even go away entirely.
2016-01-12 12:14:39 +01:00
018825d7d7 Minor: fix the JDK logging bug workaround 2016-01-07 16:20:44 +01:00
9e22cda15c Messaging interface now exposes the nodes own address. 2016-01-07 15:58:26 +01:00
5f8dec4ff9 Minor: add an "until" infix function that applies to Temporal's ... the primary purpose of this beyond a trivial bit of extra readability, is null safety. 2016-01-07 15:58:26 +01:00
2190fbf2ee Minor: reintroduce using Java serialisation for KeyPair as the JDK customises it and the Kryo serialisation is both bloated and (more problematically) non-deterministic! 2016-01-07 15:58:26 +01:00
0a9fffe8b7 Minor: remove unused import 2016-01-07 15:58:26 +01:00
0d0e75e6ff Commands must have at least one pubkey. 2016-01-07 15:58:26 +01:00
992b56a2b2 Bump Dokka version to fix gradle build 2016-01-05 11:46:26 +01:00
5aeab5c933 Minor: move a bit of code around, add some javadocs 2016-01-04 11:24:14 +01:00
81812d2f2d Kotlin 1.0.0-beta-4584 (docs) 2015-12-24 17:22:00 +00:00
cd7d01917f Kotlin 1.0.0-beta-4584 2015-12-24 17:21:10 +00:00
31fbf5e1eb Improve the transactions API a small amount with lazily deserialized access to the WireTransaction inside a SignedTransaction, and id/hash fields (again lazily calculated).
This required bringing back the ImmutableClassSerializer and registration of classes that need it, to ensure the constructors run.
2015-12-22 16:41:25 +00:00
3c23c4f53d Minor: move TransactionForVerification to be next to TransactionGroup and rename the file to be more descriptive. 2015-12-22 15:30:49 +00:00
049f0aa3b3 Rename PartialTransaction -> TransactionBuilder. The term "partial transaction" should be reserved to mean a transaction that is lacking some signatures as it's in the process of being built up by multiple parties. 2015-12-22 15:28:38 +00:00
89b1a5648b Docs: regen HTML + reorganise left hand menu a bit. 2015-12-22 15:15:38 +00:00
c217702606 Merged tx-simplifications into master 2015-12-22 15:07:51 +00:00
ef12d474d5 Refresh 'overview' page with info about the latest data model. 2015-12-22 15:03:25 +00:00
bcc56859af Add a unit test to check before/after processing by the dummy timestamper.
Tweak the timestamping API a bit.
2015-12-22 15:03:11 +00:00
77554d619c Merged in Frederic_Dalibard/r3prototyping (pull request #11)
Minor change in doc source (getting-set-up.rst):
2015-12-22 09:36:25 +00:00
ba99bfde7c Minor:
- changed Kotlin version
- changed "playground.git" into "r3repository.git"
2015-12-21 22:16:19 +01:00
784452ac50 Reorganise how time is handled: timestamping authorities are now oracles who sign the entire transaction.
As a result, TimestampedWireTransaction is gone. Timestamp fields are gone. Timestamp commands contain before/after fields. The notion of time tolerance is now a part of the timestamping interface and timestamp data.

TODO:
- Unit tests to verify the notBefore/notAfter logic
- Documentation update
2015-12-18 19:14:33 +01:00
6144ccc2c7 Small cleanup of commands.
1. Rename Command -> CommandData, WireCommand -> Command, PartialTransaction.addArg -> addCommand
2. Add some helper functions to PartialTransaction to make creation of transactions simpler.
2015-12-18 12:38:26 +01:00
4cec5dac02 Minor: remove ambiguous c'tor in PartialTransaction and rename addItems -> withItems 2015-12-16 16:25:58 +01:00
ab9e026053 Minor: some small serialisation type safety improvements 2015-12-16 15:24:52 +01:00
5863d489bc Minor: misc comment/whitespace fixes. 2015-12-15 18:54:22 +01:00
d6cdc8b8de Delete the notes directory, it is long since obsoleted by the wiki and the docs site. 2015-12-15 17:19:54 +01:00
e3cfe0ae49 Docs: fix a few typos and rewrap a few code samples in the state machines article. 2015-12-15 15:52:07 +01:00
bf647f6c15 Docs: regen all docs 2015-12-15 14:27:06 +01:00
b38b80b98a Updated README.md with "Cheat-Sheet" pre-requisite details 2015-12-15 13:22:35 +01:00
1bb729d329 Merged in asset-trade-protocol (pull request #9)
Asset trade protocol
2015-12-15 13:17:58 +01:00
c4549a5ecb Docs: regen HTML 2015-12-15 13:16:20 +01:00
06ee9db3f6 Minor: provide a random63BitValue() function and use it instead of the previously duplicated code. Update docs. 2015-12-15 13:16:13 +01:00
020a594a60 State machines: thread safety and a few more comments. 2015-12-15 13:01:57 +01:00
3c578550a9 State machines: don't leak references to completed state machines. Add an extension function for working with futures. 2015-12-14 21:41:57 +01:00