Commit Graph

492 Commits

Author SHA1 Message Date
Shams Asari
c3f824001d Removed unused ServiceRequestMessage class hierarchy and added sendRequest method 2016-10-06 10:27:35 +01:00
Ross Nicoll
f98abd4700 Simplify results from notary protocol
Restructure the Result class used in the notary protocol to use a sealed class, so that it's impossible for it
to be empty, removing that error case from the checks.
2016-10-05 14:33:02 +01:00
Clinton Alexander
38ba8c8759 Merge branch 'clint-cordamaven' 2016-10-05 11:44:11 +01:00
rick.parker
ec975b0426 Hibernate ORM implementation for states. 2016-10-05 11:40:27 +01:00
Ross Nicoll
4099034791 Add receivable contract for Trade Finance Registry
This introduces the core of a receivable contract for the second stage Trade Finance Registry project.
This is a subset of the cope of the initial Trade Finance project, which focuses on managing
invoices/receivables only, and does not deal with the contents of the invoice yet.
2016-10-04 15:47:38 +01:00
Shams Asari
6b97fbb79f Removed ValidatingClient as notary behaviour is not client configurable 2016-10-04 15:20:36 +01:00
Shams Asari
5e6533eb8a Better use of Futures 2016-10-04 14:11:43 +01:00
Andrius Dagys
62a9dfe900 Added ServiceInfo unit tests 2016-10-04 11:36:26 +01:00
Andrius Dagys
5efa0fd5b3 Advertised services now contain ServiceInfo which describes ServiceType and a service identifier. This will be used, e.g. for grouping distributed notary nodes into the same service cluster. 2016-10-04 11:36:26 +01:00
Ross Nicoll
607ba634fe Add filter composition for clauses 2016-10-04 10:32:13 +01:00
Shams Asari
67fdf9b2ff Automatic session management between two protocols, and removal of explict topics 2016-10-03 15:21:27 +01:00
Andrius Dagys
b3f3ee0562 Added a json serializer for PublicKeyTree
Typo fixes, other minor refactorings
2016-10-03 11:09:36 +01:00
Andrius Dagys
ecb1acdb8d Add threshold signature support: introduce PublicKeyTree which allows composing public keys into a tree structure with nodes containing thresholds for how many child node signatures it requires. 2016-10-03 11:09:36 +01:00
Clinton Alexander
3612bee6f7 Fixed a syntax error in gradle file. 2016-09-30 10:57:20 +01:00
Clinton Alexander
6a669b6aad Added a line that was accidentally removed. 2016-09-30 10:57:20 +01:00
Clinton Alexander
9a4cc04eb5 Moved source and javadoc publish tasks into a default publish tasks plugin. 2016-09-30 10:57:20 +01:00
Clinton Alexander
f13a21cc6c Can now publish corda to local repo with gradle publishToMavenLocal 2016-09-30 10:57:20 +01:00
Clinton Alexander
7afb034b8c Merged in clint-vegacorechanges (pull request #380)
Corda Changes required for Vega
2016-09-28 16:28:15 +01:00
Clinton Alexander
43de27c4c1 Updated Corda in preparation for the merging of the Vega cordapp. Includes
some minor changes, including gitignore rule changes. The largest change
is replacing the current fresh key for each transaction with a single
static identity in preparation for aimproved and more fleshed out key
sharing infrastructure.
2016-09-28 14:39:41 +01:00
Andras Slemmer
5b10c207e0 Add StateMachine -> Recorded TX mapping stream and emit events on transaction records 2016-09-28 11:46:37 +01:00
Andras Slemmer
6c96517f6f core, node: Add RPC calls, change RPC init order 2016-09-28 10:32:22 +01:00
Andras Slemmer
7e7bf08062 Rename stateMachineRunId properties to id, remove unused fiberId 2016-09-26 10:40:18 +01:00
Andras Slemmer
cfa5878ea2 Add StateMachineRunId, type for SMM Changes 2016-09-26 10:40:18 +01:00
Matthew Nesbit
a964073c2f Track message id's to deduplicate replays. Widen the auto-acknowledgement window of Artemis back to the default.
Use synchronized wrapper over set.

Drop discard message to trace level logging.

Fix code layout

Use lazy trace extension method

Track message id's to deduplicate replays. Widen the auto-acknowledgement window of Artemis back to the default.

Use synchronized wrapper over set.

Include tx message unique id in checkpointed data.

Add test for checkpointed resend

Fix bug in not getting UUID off message.

Tidy formatting

Add explanation comments to test asserts

Put unique id even on Client messages.

Tidy formatting
2016-09-26 10:12:50 +01:00
Andrius Dagys
ac57c5cf86 Merged andrius-crypto-refactor into master 2016-09-22 18:07:31 +01:00
Andrius Dagys
f1a2bed497 Added API doc for SecureHash. Removed signatureAlgorithmName val as it's not being used 2016-09-22 16:52:06 +01:00
Ross Nicoll
54991c90a1 Merged in rnicoll-dictionary (pull request #369)
Correct typos, add custom dictionary
2016-09-22 09:52:28 +01:00
Andrius Dagys
8d84ece9c2 Split out SecureHash and Signed data from CryptoUtilities 2016-09-21 16:06:20 +01:00
Andrius Dagys
5bb7820f5d Api doc typo fix 2016-09-21 14:44:56 +01:00
Ross Nicoll
80ccf4df34 Change keypair to "keyPair"/"key pair"
Change "keypair" to "keyPair"/"key pair" to correctly indicate it is two words,
not a single word.
2016-09-21 10:50:28 +01:00
Ross Nicoll
1d53e59c7d Merged in rnicoll-wallet-vault (pull request #367)
Change 'wallet' to 'vault'
2016-09-21 10:11:30 +01:00
Shams Asari
b316696360 Switched the roles of Instigator and Acceptor in the auto-offer protocol so that they're correctly used according to the classes they inherit 2016-09-20 18:42:47 +01:00
Ross Nicoll
ebda724f14 Change references to 'wallet' with 'vault' 2016-09-20 18:14:53 +01:00
Patrick Kuo
9b4bf32fdc client certificate signing utility 2016-09-20 10:51:09 +01:00
rick.parker
236a47104f Persitent network map and key service. Temporary persistence workaround for scheduler. 2016-09-16 12:14:56 +01:00
Mike Hearn
4d83f1489f Add a client library that provides an RPC mechanism for talking to the Corda node.
The RPC mechanism uses message queues and is essentially conventional except for the fact that it supports marshalling observables. An observable encapsulates a stream of ongoing events, and server-side observables sent to the client are automatically bound to message queues and managed by Artemis.
2016-09-16 10:13:21 +01:00
Shams Asari
8ea20dd0d2 Removed session IDs from the send and receive methods of ProtocolLogic and are now partially managed by HandshakeMessage 2016-09-14 15:26:55 +01:00
Matthew Nesbit
bf0721868e Move Interest Rate related classes out of :node to reduce dependency of :node module on any specific contract. (Currently only WalletMonitorService and CashBalanceAsMetricsObserver stop me removing the compil dependency of :node on :contracts rather than :core). This has required that I modify fixing protocol to require information on what class of Oracle to use. 2016-09-09 11:31:08 +01:00
Mike Hearn
31f3bb28bb Fix build 2016-09-09 11:47:40 +02:00
Mike Hearn
34890b7678 Merged in james-encumbrances (pull request #289)
Encumbrances implemented by reference to an index of an output state
2016-09-09 11:32:03 +02:00
jamescarlyle
b7e6c210d9 Merge with master
# Conflicts:
#	docs/build/html/_sources/index.txt
#	docs/build/html/_sources/protocol-state-machines.txt
#	docs/build/html/_sources/tutorial-contract-clauses.txt
#	docs/build/html/index.html
#	docs/build/html/protocol-state-machines.html
#	docs/build/html/searchindex.js
#	docs/build/html/tutorial-contract-clauses.html
#	docs/build/html/tutorial-contract.html
2016-09-09 09:43:14 +01:00
jamescarlyle
e187c4d91d Further tweaks based on feedback - simplified the embedded timelock contract 2016-09-08 22:49:24 +01:00
Mike Hearn
34ee44b532 Minor: move ErrorOr into the core module and tweak its API a bit. Add a Path div operator. 2016-09-08 13:12:15 +02:00
Mike Hearn
d8d639f192 Merged in mike-small-tweaks (pull request #337)
A few small tweaks
2016-09-08 12:40:14 +02:00
Andras Slemmer
fcd477e332 core: Address topo sort style suggestions 2016-09-08 10:17:00 +01:00
Andras Slemmer
8e6198cf91 core: Make topological sort result deterministic 2016-09-08 10:15:59 +01:00
Andras Slemmer
5596ced5c3 core: Make topological sort more efficient 2016-09-08 10:04:18 +01:00
Andras Slemmer
d6f82637ad core: Fix tx resolution bug by topological sorting of downloaded transactions 2016-09-07 18:34:20 +01:00
Mike Hearn
8a9350fc93 Address review comments 2016-09-07 13:09:39 +02:00
Mike Hearn
fa4b503f81 Minor: rename UntrustworthyData.validate to UntrustworthyData.unwrap to better indicate its purpose and deprecate the old name. 2016-09-07 13:09:39 +02:00
Mike Hearn
a030a45019 Address review comments 2016-09-07 13:09:39 +02:00
Mike Hearn
49a0fd8fdd Improve the usability of SignedTransaction.verifySignatures taking into account how it is typically used. 2016-09-07 13:09:39 +02:00
Mike Hearn
2af6a70b9a Minor: rename BaseTransaction.signers to mustSign to make it a bit clearer what this field is. 2016-09-07 13:09:39 +02:00
Mike Hearn
1d272f89c2 Check the tx type in NotaryChangeProtocol and add a TODO to write a test for this once the protocol framework propagates exceptions. 2016-09-07 13:09:39 +02:00
Mike Hearn
793e912324 State replacement protocols: preserve the UntrustworthyData<T> marker for longer to try and get subclass authors in the right frame of mind. 2016-09-07 13:09:39 +02:00
Matthew Nesbit
2e1952a8a7 Get rid of the fake NodeInfo used to identify the NetworkMapService node.
Remove old comment
2016-09-06 18:25:12 +01:00
jamescarlyle
cdb2c3efa6 updated following review 2016-09-06 17:56:01 +01:00
Mike Hearn
86267e880d Minor: add a log.debug {} utility same as log.trace {} to do lazy message construction 2016-09-06 18:44:25 +02:00
Mike Hearn
5a28b29a7e Merged in mike-tx-types-refactoring-september (pull request #332)
Refactor common fields from WireTransaction/LedgerTransaction out into BaseTransaction. Put some field invariants into the constructors.
2016-09-06 18:03:39 +02:00
Mike Hearn
e398b6e17b Refactor common fields from WireTransaction/LedgerTransaction out into BaseTransaction. Put some field invariants into the constructors. 2016-09-06 17:30:52 +02:00
Andras Slemmer
63e2ec32cf core: Suppress cast warnings 2016-09-06 15:18:41 +01:00
Andras Slemmer
0f29067680 contracts, core: Fix compiler errors 2016-09-06 14:30:03 +01:00
Andras Slemmer
9e993c5b86 Merged in aslemmer-generators-fixes (pull request #300)
Aslemmer generators fixes
2016-09-06 14:19:28 +01:00
Mike Hearn
f3fa54ebef Minor: add field-level documentation to WireTransaction and TODO a few things that don't seem right. 2016-09-06 15:06:29 +02:00
Mike Hearn
8a19e6bbfb Minor: delete dead code in SignedTransaction.verifySignatures as it's not required. 2016-09-06 15:06:28 +02:00
Mike Hearn
210ea2ed95 Minor: remove the TODO about the notary signing last. It is not important at this level as the notary signature does not cover the other signatures. Also a small formatting change to the withAdditionalSignatures methods. 2016-09-06 15:06:28 +02:00
Mike Hearn
99f8477bf1 Minor: move code from TransactionTools.kt into the respective classes, and add some @Throws annotations that were missing (matters for java users) 2016-09-06 15:06:28 +02:00
Andras Slemmer
bd59022e8f Revert "core, contracts: Rewrite Generators to use functions instead of classes"
This reverts commit deddcc91c7f6ad436c44daf69b4cb81a406cb28e.
2016-09-06 13:54:59 +01:00
Andras Slemmer
abdc45176d Revert "core: Small Generator fix"
This reverts commit c57731a978fe41f38b91dbe97dd1e1ddc9e274d1.
2016-09-06 13:54:59 +01:00
Andras Slemmer
fd3707fd24 core: Small Generator fix 2016-09-06 13:54:59 +01:00
Andras Slemmer
2ac31a53b5 core, contracts: Rewrite Generators to use functions instead of classes 2016-09-06 13:54:59 +01:00
Andras Slemmer
491b1abd4a contracts, core, node: Use entropyToKeyPair in Generators instead of manually creating keys 2016-09-06 13:54:59 +01:00
Andras Slemmer
f11a587382 core, contracts: Add Generator<>.generateList to reduce boilerplate 2016-09-06 13:54:59 +01:00
Andras Slemmer
6faf19cccc contracts: Add comment explaining Generators 2016-09-06 13:54:59 +01:00
Andras Slemmer
89a5448c39 node, core: Add quickcheck generators for basic types, transactions 2016-09-06 13:54:58 +01:00
Mike Hearn
f3c2bd6748 Minor: split Transactions.kt file into one file per transaction class 2016-09-06 14:21:37 +02:00
Mike Hearn
9d83a9b6d2 Minor: move transaction types out of the contracts package and into a new transactions package 2016-09-06 14:20:32 +02:00
Mike Hearn
cbf6aa0e27 Minor: make TransactionBuilder.signWith return the builder for ease of use from Java. 2016-09-06 14:20:32 +02:00
Mike Hearn
ad6c59d742 Minor: note in the DummyState doc that it's not a part of DummyContract despite the name. 2016-09-06 14:20:32 +02:00
Andrius Dagys
9cccb11967 Add comment explaining signers 2016-09-06 10:07:08 +01:00
Andrius Dagys
2676e8878d Remove a @Deprecated as the code has been changed since its introduction anyway 2016-09-05 18:50:53 +01:00
Andrius Dagys
84247128b4 Remove addInputState(stateRef, notary) from TransactionBuilder API, as it might lead to issues where someone accidentally provides a different notary than the one in the state 2016-09-05 18:47:51 +01:00
Andrius Dagys
aa166518a0 Remove unused val 2016-09-05 18:41:35 +01:00
Shams Asari
97e1a59770 Refactored FiberRequest into cleaner ProtocolIORequest and fixed checkpoint regression 2016-09-05 14:42:54 +01:00
Ross Nicoll
9cccc7a2b7 Correct warnings 2016-09-01 16:15:15 +01:00
Ross Nicoll
b913b18e02 Merged in rnicoll-simulations (pull request #314)
Move test code from node to test-utils
2016-09-01 15:21:34 +01:00
Ross Nicoll
07f44e9e2a Move test code from node to test-utils 2016-09-01 11:15:05 +01:00
Ross Nicoll
203c4fb3d8 Merge ConcreteClause into Clause
Change Clause to an abstract class, and merge ConcreteClause into it. CompositeClause now
overrides defaults provided in Clause which are more suitable for composition of clauses.
2016-08-31 17:55:36 +01:00
Ross Nicoll
232db9a1fd Move test utilities into their own package
This moves a lot of the test support code into its own package which is only imported for tests,
so it's not shipped as a part of core Corda. The node currently depends on this support code to
compile, although future work could try to separate this out. This change highlights that parts
of production code is dependent on test elements (i.e. dummy keys), and makes it harder for
such accidental crosses to occur later.

An integration test category is also added as part of this work, to contribute towards COR-345.
2016-08-31 15:40:54 +01:00
Matthew Nesbit
8756b49794 Add switchable HTTPS to Node web server
Explain change of cipher

Include extracted Dev Corda Root certificate so that it can be installed by HTTPS users.
2016-08-30 13:07:40 +01:00
Ross Nicoll
13b040ecd6 Rework clauses to use composition
Rework clauses so that rather than defining match/no-match behaviour themselves, they are
now composed by nesting them within clauses that understand how to match their child clauses.
This unifies a lot of the structure of clauses and removes corner cases needed for the first
design, as well as moving towards a model which is easier to prove.
2016-08-26 17:35:52 +01:00
Ross Nicoll
ad8ffca0b4 Add CommitTransactionProtocol
Add new protocol which manages the entire process of taking a signed transaction ready
for notarisation, through notarisation and onto recording it both locally and informing
remote nodes.

This protocol also optionally can include the ClientToServiceCommand which triggered a transaction
being created, to give the remote nodes context on why a change occurred (i.e. "You are being sent
£100")
2016-08-25 16:30:39 +01:00
Matthew Nesbit
089ba2cb69 Only NetworkMapServer addresses can be publicly manufactured. Use identity publick key as addressing, with only bridges using the HostAndPort information
Fixup after rebase and fix issue with checking previous deployment of bridges

Correct comments on ArtemisMessagingClient constructor

Fixup rates fix demo

Get rid of when statements

Make NetworkMapCache send modify as well as add//remove events. Make inboxes for nodes persistent.

Suppress warnings

Fix message acknowledgement so that it actually consumes messages properly.

Change queueName to SimpleString to stop lots of wasted conversions

Get rid of spurious import

Tidy up and add comments

Update to include comments on PR

Remove unnecessary import
2016-08-25 15:56:50 +01:00
Ross Nicoll
59d3cbdece Add documentation around Commodity and CommodityContract 2016-08-23 17:40:45 +01:00
Ross Nicoll
03e120d04b Add default values for ifMatched/ifNotMatched/requiredCommands 2016-08-23 11:23:47 +01:00
jamescarlyle
ee65d4490b Updated based on feedback to check that the encumbered state does not refer to itself as the encumbrance. 2016-08-19 17:49:53 +01:00
jamescarlyle
6ba301b6b8 Updated based on feedback to check that the encumbered state does not refer to itself as the encumbrance. 2016-08-19 17:45:25 +01:00
jamescarlyle
fec2134555 Updated comment on why the encumbrance is an index (Integer). 2016-08-19 12:42:09 +01:00
Matthew Nesbit
413060aa6d Don't use single line style for verify 2016-08-19 12:05:32 +01:00
Matthew Nesbit
696b9741dd Remove ClashingThreads exception by tightening up unique id on LinearState to be a secure random value, with constraints that it cannot be duplicated. Also, rename to linearId rather than the confusing thread.
Try providing a helper interface to encourage enforcing LinearState rules

Fixup after rebase

Change to using Clauses for verifying LinearState standard properties

Fix whitespace change

Tidy up ClauseVerifier after PR comments

Change from SecureHash to a TradeIdentifier class

Change TradeIdentifier to UniqueIdentifier
2016-08-19 11:52:16 +01:00