Commit Graph

605 Commits

Author SHA1 Message Date
6f3b07a600 Minor: move and api doc the Node.DEFAULT_PORT field 2016-02-10 16:30:20 +01:00
5d0d926568 Node: if the node is started twice, abort and tell the sysadmin the PID of the other instance. 2016-02-10 16:30:20 +01:00
7a70cdd4de Minor: rename InMemoryNetwork.Node to InMemoryNetwork.InMemoryNode
Makes IDE class navigation easier by avoiding having two classes with the same name.
2016-02-10 16:30:20 +01:00
262124385d Move Crypto.kt into core/crypto/CryptoUtilities.kt 2016-02-10 16:30:20 +01:00
1bc57085c8 Rename ContractStateRef -> StateRef. Rename craft* methods to generate* 2016-02-10 16:29:44 +01:00
5e30e1b94b Fix build. 2016-02-10 16:28:22 +01:00
ea2b18eb41 Merged in rg_work_in_progress (pull request #16)
Updated as comments per previous pull request, now generic tests run both Kotlin and Java CommercialPaper class tests.
2016-02-10 15:04:13 +00:00
201803ff36 Now runs Java CommercialPaper unit tests
Acted upon comments from last pull request.
Added an interface to enable the usage of the same tests for both the Kotlin and Java example CommercialPaper class - did appropriate refactoring to enable.
Added javadoc, removed public modifier from interfaces.
Various fixes from code review comments.
2016-02-10 14:56:11 +00:00
88e02440d4 Kotlin 1.0 RC
Hopefully this is the last time they break backwards compatibility.
2016-02-08 19:35:30 +01:00
b57f30ff3e Use DL as the address prefix instead of R3. 2016-02-05 15:49:26 +01:00
f705eee312 Use buyer/seller instead of alpha/beta and allow nodes to both be named localhost. Update docs. 2016-02-05 15:48:58 +01:00
75a542f79d Change network config to listen to adapter publicly 2016-02-05 11:59:50 +00:00
a06d4d23bd Add toString() methods to a few data structures and use them to make the output of the trader demo a bit nicer.
Import Base58 code from bitcoinj and use it for rendering pubkeys (note: not calculated in the same way as Bitcoin).
2016-02-05 11:13:49 +01:00
1e8ea8eb2c Implement the beginnings of a serving node.
It uses Artemis (an embeddable MQ broker) and can run in either a 'serving' mode, in which case it will sit around waiting to sell fake commercial paper assets, or a 'buying' mode in which case it will connect to a specified serving node and run the two party trade protocol.

Most services are either mocked out or too trivial to be useful at this point. They will be fleshed out in the future.
2016-02-03 16:57:01 +01:00
f683f50eb5 Logging: mention if a log message is a warning or error. 2016-02-03 15:35:55 +01:00
af116f6990 Minor: bugfix for the Java requireSingleCommand API. 2016-02-03 15:35:08 +01:00
606926a692 Logging: don't include inner class names in log output (i.e. trim anything after the $ sign in the class name) 2016-02-03 12:49:36 +01:00
fbd4b60834 Minor: allow double constants to be used to create Amounts, you can now write 35.99.DOLLARS to mean $35.99 2016-02-03 12:49:36 +01:00
0417e24fae Minor: fix an incorrect use (process specific) of reflection hashCodes in the Kryo wrapper. 2016-02-03 12:49:36 +01:00
f51aa73687 Minor: fix bug in BriefLogFormatter 2016-02-03 12:49:36 +01:00
a355ad14be Minor: javadoc fixes 2016-02-03 12:49:35 +01:00
b014782959 Minor: comment fix 2016-02-03 12:48:53 +01:00
cb12770b9c Tyop :-/ 2016-02-01 17:48:45 +00:00
68e8f32462 Merge remote-tracking branch 'origin/master' 2016-02-01 17:21:41 +00:00
ca0f5ff9f5 Adding Issue in Commands class to mirror Kotlin code 2016-02-01 17:20:39 +00:00
b3e801eb85 Minor: add an explanatory comment to the two-party trade protocol. 2016-02-01 16:09:09 +01:00
9cfa5743ff Minor: rewrap a few lines to be style guide compliant. 2016-01-27 15:01:20 +00: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
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
5aeab5c933 Minor: move a bit of code around, add some javadocs 2016-01-04 11:24:14 +01: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
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
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