Mike Hearn
02f5dc5948
Update the protocol framework documentation
2016-02-18 17:47:05 +01:00
Mike Hearn
adda2bbe6b
Minor: move ExcessivelyLargeTransactionGraph exception into the right place
2016-02-18 17:29:44 +01:00
Mike Hearn
54a73166c3
Merge branch 'master' into PLT-61-resolve-deps
2016-02-18 17:22:35 +01:00
Mike Hearn
f6167cbe12
Minor: tweak build file to describe how to activate Dokka API docs
2016-02-18 13:43:15 +01:00
Mike Hearn
1243ca2066
Trading: in the two party trade protocol, check that the proposed transaction is contract-valid, and that the missing signatures are what is expected.
2016-02-17 18:38:24 +01:00
Mike Hearn
cd28733360
Major: Separate out the dep resolution protocol into a couple of sub protocols and use on both sides of the trade.
...
* Dependency resolution/checking is now working on both sides of the two party trading protocol.
* The commercial paper contract was changed to check timestamping authority identities by name instead of key.
* The trader demo has been rewritten to use the protocol framework, which simplifies the code.
2016-02-17 18:11:37 +01:00
Mike Hearn
eb47d8af4d
Minor: Unit testing: allow a subset of transactions in a group to be signed.
2016-02-17 17:19:37 +01:00
Mike Hearn
bdadaffbc0
Minor: Logging of how many transactions were validated in TransactionGroup.verify()
2016-02-17 17:19:37 +01:00
Mike Hearn
58e84fbeca
Minor: Unit testing: InMemoryNetwork.Node.stop, running = false after thread shutdown not before.
2016-02-17 17:19:36 +01:00
Mike Hearn
55989a8e92
Minor: add logging to the RecordingMap unit test utility
2016-02-17 17:19:36 +01:00
Mike Hearn
b2b51183b8
Minor: logging - allow multiple package specs to be passed to BriefLogFormatter.initVerbose()
2016-02-17 17:19:36 +01:00
Mike Hearn
299e1af15e
Protocol frameworks: separate the fiber object from the logic object to make it easier to compose subprotocols together.
2016-02-17 17:19:36 +01:00
Mike Hearn
dc520392b8
Protocol framework: tweak error handling a bit and add unit test for it.
2016-02-17 17:19:36 +01:00
Mike Hearn
df4d926bca
First pass at implementing dependency resolution and checking in the two-party trade protocol.
...
This commit is incomplete: only the seller side currently checks. The code will be refactored out into subprotocols in further commits.
Note that timeouts are currently unhandled.
2016-02-17 17:19:36 +01:00
Mike Hearn
f92455442d
Minor: Unit testing: don't always require a lambda when running the network synchronously.
2016-02-17 17:19:36 +01:00
Mike Hearn
40d9b7686b
Minor: tweak IntelliJ run configs so trader demo nodes check Quasar instrumentation when run in IntelliJ
2016-02-17 17:19:36 +01:00
Mike Hearn
ed72e9b997
Unit tests: fix a couple of threading issues for async unit tests that use the in memory network
2016-02-16 17:39:08 +01:00
Mike Hearn
de4427c240
Minor: add a few utilities for working with listenable futures
2016-02-16 17:39:02 +01:00
Mike Hearn
1f8fd4b578
Kotlin 1.0 (huzzah)
2016-02-16 17:26:12 +01:00
Mike Hearn
8c72f68736
Minor: fix a minor merge issue that broke pretty output in the trader demo
2016-02-16 17:17:15 +01:00
Sofus Mortensen
994abb3edb
Added new project core.
...
Project Contracts depends only on core.
2016-02-16 17:14:17 +01:00
Sofus Mortensen
00977c0d83
build.gradle edited online with Bitbucket
2016-02-16 17:14:17 +01:00
Sofus Mortensen
e34731bad7
Sorting of files. Create build.gradle in contracts. Comments.
2016-02-16 17:14:17 +01:00
Sofus Mortensen
cbfcac994a
New separate project for contracts. Canonicalization.
2016-02-16 17:14:17 +01:00
Mike Hearn
8bd54dfc74
Merged in tests-with-signing-improvements (pull request #19 )
...
Improve unit tests to support signatures, refactor transaction classes a bit
2016-02-12 20:01:55 +01:00
Mike Hearn
a01746a04b
Minor: use DummyTimestampingAuthority key/identity in the InMemoryNetwork
2016-02-12 16:50:44 +01:00
Mike Hearn
b7fd0ce0ed
Minor: move InMemoryNetwork to tests directory
2016-02-12 16:47:45 +01:00
Mike Hearn
9f4897f7c4
Simplifies two-party trade protocol to return SignedTransaction instead of a pair of other forms.
2016-02-12 15:49:18 +01:00
Mike Hearn
6deef5b598
Minor: rename SignedWireTransaction to just SignedTransaction
2016-02-12 15:47:23 +01:00
Mike Hearn
a42d7e64ef
Minor: add a TODO to Kryo.kt about lazy properties.
2016-02-12 15:41:36 +01:00
Mike Hearn
ea18e239d9
Testing: rework TransactionGroupDSL to work with WireTransactions instead of LedgerTransactions and simplify original hash/serialised bits tracking.
2016-02-12 15:41:22 +01:00
Mike Hearn
fc000ec03c
Testing: more utilities on Transaction and TransactionGroupForTest to help with testing signed transactions.
2016-02-12 14:55:11 +01:00
Mike Hearn
48192d8d9d
Merged in PLT-60-misc-code-cleanups (pull request #17 )
...
Misc code cleanups
2016-02-10 17:59:53 +01:00
Mike Hearn
5b473be79c
Minor: fix test breakage under Gradle due to some horrible stuff Gradle does with injecting things into our environment.
2016-02-10 17:59:28 +01:00
Mike Hearn
ae6309a113
Minor: make SecureHash c'tor private so it's not possible to instantiate directly.
2016-02-10 17:59:28 +01:00
Mike Hearn
31964f8695
Introduce ContractFactory to replace Map<SecureHash, Contract>. It allows for lazy loading of contracts.
2016-02-10 17:59:28 +01:00
Mike Hearn
2ccbd5db3e
Minor: code cleanup on ArtemisMessagingService.
...
- Use fixes in Kotlin 1.0 RC to clean up property access a bit (fewer set* calls)
- Note that we currently won't notice if Artemis throws an exception during startup, as it happens async. There is a fix to Artemis pending.
2016-02-10 17:59:28 +01:00
Mike Hearn
d98a3871da
Refactor the 2-party trading protocol
...
- Fix a security bug/TODO by having seller send back the signatures rather than a full blown transaction (which would allow a malicious seller to try and confuse the buyer by sending back a completely different TX to the one he proposed)
- Introduce an UntrustworthyData<T> wrapper as an (inefficient) form of taint tracking, to make it harder to forget that data has come from an untrustworthy source and may be malicious.
- Split the giant {Buyer, Seller}.call() methods into a set of smaller methods that make it easier to unit test various kinds of failure/skip bits in tests that aren't needed.
2016-02-10 17:59:28 +01:00
Mike Hearn
28daae5bd4
Minor: in CashTests make editIssuedBy into an infix fun with a space in the name, like owned by
.
...
Makes the code read a bit more like English.
2016-02-10 16:30:21 +01:00
Mike Hearn
bd8d056466
Minor: remove duplicated copyright header from CashTests.kt
2016-02-10 16:30:21 +01:00
Mike Hearn
52172c5f95
Minor: in TraderDemo comments point to docsite instead of duplicating
2016-02-10 16:30:21 +01:00
Mike Hearn
e426e784b4
Minor: Use exitProcess rather than System.exit, as the former interacts better with flow typing.
2016-02-10 16:30:21 +01:00
Mike Hearn
55646104b4
Minor: tweak StateMachineManager to work around a cosmetic issue in Quasar, where it prints exception details to stderr twice. We'd rather log it ourselves.
2016-02-10 16:30:21 +01:00
Mike Hearn
0665492645
Minor: introduce a generateKeyPair() function that wraps the Java API, so we can switch algorithm more easily later.
2016-02-10 16:30:21 +01:00
Mike Hearn
8d1b318370
Minor: some more renamings for concision and consistency
2016-02-10 16:30:21 +01:00
Mike Hearn
6f3b07a600
Minor: move and api doc the Node.DEFAULT_PORT field
2016-02-10 16:30:20 +01:00
Mike Hearn
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
Mike Hearn
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
Mike Hearn
262124385d
Move Crypto.kt into core/crypto/CryptoUtilities.kt
2016-02-10 16:30:20 +01:00
Mike Hearn
b023e570fc
Docs: update contracts tutorial to talk about generation instead of crafting
2016-02-10 16:29:44 +01:00