Commit Graph

803 Commits

Author SHA1 Message Date
Andrius Dagys
0867a05ad7 Merge pull request #96 from thschroeter/idempotent-notary-flow
Make NotaryFlow idempotent
2017-01-06 13:53:27 +00:00
Rick Parker
592ac07af0 Upgrade reactivex.rxjava version to latest 1.x (#111)
Update rxjava version and fix thread safety of database transaction boundary subject.
2017-01-06 10:26:44 +00:00
Andrius Dagys
6bb0a68d6d Add @JvmOveloads to TransactionState so the encumbrance pointer doesn't have to always be specified when calling from Java 2017-01-06 10:18:29 +00:00
Thomas Schroeter
0f43a88b19 Add TODO to move duplicate input detection to TransactionType.verify
Resolving the TODO in a follow-up PR.
2017-01-06 09:10:45 +00:00
Thomas Schroeter
0b43c5634e Clean comment 2017-01-05 19:33:46 +00:00
Andrius Dagys
b9d5081af6 Update notary change flow to support encumbrances (#101)
* Update notary change flow to support encumbrances.

Move encumbrance pointer from ContractState to TransactionState.

* Refactor & add new encumbrance tests
2017-01-05 17:44:31 +00:00
Shams Asari
08e391579c Node verifies the peer it connects to by checking its TLS common name 2017-01-05 14:22:11 +00:00
Mike Hearn
875efbfa11 Merge pull request #106 from corda/mike-thread-affinity-for-smm
Additional thread affinity for the StateMachineManager.
2017-01-05 11:03:35 +01:00
Thomas Schroeter
67e807b075 Detect duplicate inputs ahead of calling beforeCommit 2017-01-05 09:40:49 +00:00
Thomas Schroeter
bbc9c763e3 Detect duplicate inputs in NotaryFlow
Throw NotaryException when duplicate inputs are detected.
2017-01-05 08:09:49 +00:00
Mike Hearn
1a53834a60 Additional thread affinity for the StateMachineManager.
Check that the SMM.add method is being called on the SMM thread and throw if not. Make ServiceHubInternal.startFlow() do a blocking call onto the server thread. Update unit tests.

This resolves an issue whereby the scheduler was starting flows outside of the server thread, which isn't intended.
2017-01-04 16:06:33 +01:00
Mike Hearn
119d00c384 Upgrade dependencies and centralise some more version numbers in the root gradle file 2017-01-04 15:44:56 +01:00
Thomas Schroeter
159ca9884f Make NotaryFlow idempotent
Alternatively, we could make the underlying UniquenessProviders
idempotent.
2016-12-31 09:26:18 +00:00
Thomas Schroeter
2b73901341 Minor: display emojis in iTerm on OS X 2016-12-22 17:31:00 +00:00
josecoll
eac2cb1cc6 Bank of Corda integration with Trader Demo and Explorer
Initial conversion of Explorer to use IssuerFlow (from BankOfCorda)

Initial conversion of TraderDemo to use IssuerFlow (from BankOfCorda)

Updated TraderDemo to use IssuerFlow (from BankOfCorda)

Fixed TraderDemo integration text (added new BankOfCorda node)

Updated Explorer with changes IssuerRequest params

Explorer now correctly displaying transaction id upon Issue.

Moved IssuerFlow into finance package so can be reused across multiple demos (TraderDemo) and applications (eg Explorer)

Refactored BankOfCorda demo to use Finance package and TestUtil constants

Updated TraderDemo to use IssuerFlow

Updated Explorer to use finance package IssuerFlow.

Advertised BankOfCorda as Issuer for usage by Explorer.

Explorer no longer depends on BankOfCorda demo since IssuerFlow promoted to Finance module

Added IssuerFlow to AbstractNode whitelist.
Explicit declarations of IssuerFlow no longer required.

Added plugin registration of IssuerFlow at bootstrap.

Revert whitelisting of IssuerFlow (plugin configured)

Refactored to use constant BOC definition.

Added gradle RPC security config.

Updated documentation

Fixed incorrect references.

Renamed Issuer banks.
Added new permission set (for Issuer nodes)
Added node nearestCity info
Added new Issuer Event Generator for Issuer nodes only

Associated currency with issuer using ServiceType naming structure.

Added argument flag (-S) to trigger event generator simulation node.

Fixed problem with issuers not resolving from network map.

Updated perms on Issuer rpc proxy nodes.

Fixed minor in cash generateExit identified by Explorer.

Changes applied in prep for AWG demo.

Added IntelliJ run-configurations for launching Explorer demo nodes (with and without simulation)

Updated documentation (and added additional gradle task to launch Explorer nodes in simulation mode).

Fix following rebase.

Addressed review items from PR.

Updated TraderDemo readme.

Updated TraderDemo gradle file to launch Bank of Corda node.

Updated JRE properties.

Updated IssuerModel to incorporate correct JFX Observable handling.
Fixed bug with Exit command not displaying any currency.

Added TODO's for revisiting correct Exception handling strategy.

Optimization for when issuing cash to self.

Minor updates following PR review.

Remove old refs to Royal Mint and Federal Reserve
2016-12-22 15:55:50 +00:00
Mike Hearn
edc648ae95 Wish our users a merry Christmas and a happy new year. 2016-12-22 11:37:27 +01:00
Shams Asari
81d1459599 Fixed bug where messages can't be sent to services running on the network map node (#71) 2016-12-20 12:03:21 +00:00
Andrius Dagys
6f3ed327a0 Vault: return a list of unconsumed states rather than a sequence. The lazy evaluation captures some extra context, serialization of which in flows results in errors. 2016-12-16 15:48:48 +00:00
Joel Dudley
334ed4806b Adds overload anotations and reorganizes param orders to improve java interop. 2016-12-15 18:27:41 +00:00
Andrius Dagys
7cb4cbcad4 Made vault updates contain full StateAndRef in the consumed set (instead of just StateRef). This allows subscribers to check whether the update contains relevant states.
Cash balances are now calculated by keeping only the aggregate values (it no longer needs to iterate through all states in the vault).
2016-12-15 16:27:39 +00:00
Andras Slemmer
8ea4c258f1 Extend messaging.rst about service queues 2016-12-15 11:37:15 +00:00
Andras Slemmer
a3138ab0dc Address PR comments 2016-12-15 11:37:15 +00:00
Andras Slemmer
4f44962962 Add kdocs on service addressing 2016-12-15 11:36:06 +00:00
Andras Slemmer
6a796cef35 Add raft notary integration tests, testing service addressing 2016-12-15 11:36:06 +00:00
Andras Slemmer
fd436b0cdc artemis, sessions, mock: Add Service addressing, tests pass 2016-12-15 11:36:06 +00:00
Shams Asari
7afa3346d6 Updated docs and TODOs to be inline with recent changes to the doorman 2016-12-13 17:03:15 +00:00
Shams Asari
9d98673c66 Added commonName extension method to X500Name and helper class for x509 cert factories 2016-12-09 17:13:00 +00:00
Clinton
b43d940297 Merge pull request #35 from corda/clint-M6publishing
Corda can be published to bintray and reduced publishing boilerplate in build.gradle.
2016-12-09 15:07:46 +00:00
Joel Dudley
ae349a8831 Adds todos that will improve java interop. 2016-12-09 14:30:52 +00:00
rick.parker
0378b8d785 Buffer observations until database commit. 2016-12-08 16:32:45 +00:00
Andras Slemmer
4fe1d48e4a demos: Fix demo RPC serialisation after rebase 2016-12-08 11:58:31 +00:00
Andras Slemmer
9117ec9860 Simplify InputStreamSerializer, make NODE_USER role explicit 2016-12-08 11:58:31 +00:00
Andras Slemmer
a601f0abf5 Local RPC, demos use RPC, NODE has special privileges 2016-12-08 11:58:31 +00:00
kasiastreich
036b1b4964 Fix double spending of inputs issue on ledger level in test dsl. (#15)
* Fix double spending of inputs issue on ledger level in test dsl.

* Address PR comments.
2016-12-08 10:15:33 +00:00
Matthew Nesbit
f63e6cd2a6 Add some hooks to StateMachineManager and NodeSchedulerService so that unit tests of flows with scheduled actions can safely test for completion of their test activities. Typically this is done using a while loop whilst there are active fibers, or schedules and then blocking on the ReusuableLatches until the status changes and can be re-evaluated.
Add unit tests of ScheduledFlow running on simulated network.

Just use existing DumyContract in test

DummyContract requires value equality so that assertEquals over states works as expected.

Remove blank line.

Add TODO on waitQuiescent.

Fix minor build error
2016-12-07 16:11:55 +00:00
joeldudleyr3
432015ddfe Adds JvmName annotations where necessary to improve interop when developing CorDapps in java. 2016-12-07 12:12:18 +00:00
Clinton Alexander
b24c628e34 Publications now publish JARs again. Install task now publishes again. 2016-12-06 16:06:16 +00:00
Clinton Alexander
bf49dda731 Corda now publishes with updated publish utils. 2016-12-06 16:06:16 +00:00
Clinton Alexander
6ecbe1f1fd Added finance publishing. 2016-12-06 16:06:16 +00:00
Clinton Alexander
57f2be51b8 Added core publishing. 2016-12-06 16:06:16 +00:00
Andras Slemmer
ed14c95d6f Merge pull request #25 from corda/aslemmer-fix-X509-on-linux
core: Remove CN from X509 subjectAlternativeNames, always add hostname
2016-12-05 17:16:22 +00:00
Andras Slemmer
948e3f3932 core: Remove CN from X509 subjectAlternativeNames, always add hostname 2016-12-05 13:17:52 +00:00
Shams Asari
10360ae8cf Converted MapChange into a sealed data structure so that only Modified has the previous node property 2016-12-05 10:04:31 +00:00
Shams Asari
4addb91f80 Added security to RPC and P2P systems. 2016-12-02 18:11:08 +00:00
Shams Asari
5432905b4a Clean up NetworkMapCache and InMemoryNetworkMapCache 2016-12-02 14:45:54 +00:00
Andrius Dagys
84c127bfff Merge pull request #12 from corda/andrius-txverify-refactor 2016-12-01 13:54:59 +00:00
Andrius Dagys
cef2c906ab Minor transaction verification logic refactoring 2016-12-01 12:07:37 +00:00
Joel Dudley
110864f19a Adds a JvmName annotation to Utils.kt for better java interop. 2016-12-01 11:31:03 +00:00
Andrius Dagys
053dd9a1fe Merge pull request #5 from corda/composite-key-serializer 2016-12-01 10:17:40 +00:00
Andrius Dagys
ea04ebe311 Added a TODO to follow Crypto-conditions spec 2016-11-30 17:07:39 +00:00
Mike Hearn
d500bf8f50 Address review comments. 2016-11-30 15:11:35 +00:00
Mike Hearn
7b40be8361 Run the IntelliJ reformatter across the Kotlin code. Did not reformat JS/web code. 2016-11-30 14:40:34 +00:00
Andrius Dagys
acaeca5814 Added a custom CompositeKey serializer for a more compact serialized form 2016-11-30 14:18:18 +00:00
Ross Nicoll
f5ecddb4b2 Add get() method to identity service 2016-11-28 18:01:03 +00:00
Shams Asari
38876e3984 Introducing Future.getOrThrow() which throws the cause of the ExecutionException 2016-11-28 15:21:22 +00:00
Andras Slemmer
811b0e6a8d Merged in aslemmer-warn-on-double-tx-record (pull request #546)
Check for duplicate transaction records
2016-11-28 10:34:34 +00:00
Andrius Dagys
946cfda03e Added a distributed notary demo that runs a notary cluster and gets several transactions notarised 2016-11-25 17:09:57 +00:00
Andras Slemmer
87bd97d0c7 Check for duplicate transaction records 2016-11-24 18:00:04 +00:00
Rick Parker
699710b736 Merged in parkri-remove-quasar-scan (pull request #540)
quasarScan removal.  It's no longer required by our code base.
2016-11-24 16:28:44 +00:00
rick.parker
8ec21eedb3 quasarScan removal. 2016-11-24 16:27:51 +00:00
rick.parker
492005bcfe Fix up and improve some docs 2016-11-24 15:06:10 +00:00
Mike Hearn
a1759016a8 Minor: simplify the implementation of requireThat{} a little bit (reviewed by Roger). 2016-11-23 18:27:08 +01:00
rick.parker
f68529d1fd Rename protocol to flow. 2016-11-22 17:17:14 +00:00
Roger Willis
81b9cd6840 Merged in rog-party-participants-comment (pull request #510)
Added comment around usage of 'parties' in DealStates.
2016-11-22 09:47:40 +00:00
Andrius Dagys
93505d5e2e Merged in andrius-rename-bits (pull request #508) 2016-11-22 08:26:37 +00:00
Mike Hearn
235cee6727 Add a startup banner and suppress console logging unless --log-to-console is passed on the command line. 2016-11-21 16:08:36 +01:00
RogerWillis
1be32da0f5 Added comment around usage of 'parties' in DealStates. 2016-11-21 15:00:55 +00:00
Andrius Dagys
dce290f8ec Recompile isolated.jar 2016-11-21 14:47:19 +00:00
Andrius Dagys
64299591c3 Rename PublicKeyTree -> CompositeKey and unify terminology across documentation. 2016-11-21 14:47:19 +00:00
Andrius Dagys
635ee8df79 Rename bits -> bytes, as it normally indicates a byte array 2016-11-21 13:02:27 +00:00
Clinton Alexander
063dbec505 Merged in clint-bintray (pull request #496)
Removed duplicate gradle plugins and added bintray publishing tasks
2016-11-21 11:20:13 +00:00
Roger Willis
31dd93523b Merged in rog-additional-compiler-warning-fixes (pull request #502)
Fixed an additional 2 compiler warnings.
2016-11-21 11:07:03 +00:00
RogerWillis
33c80a7091 Fixed an additional 2 compiler warnings. 2016-11-19 18:46:41 +00:00
Andrius Dagys
0d56846b1b Added a distributed notary that uses the Raft consensus algorithm (implemented by Copycat).
The notary operates by storing committed input states in a map state machine which is replicated across the Copycat cluster.
2016-11-18 18:13:19 +00:00
rick.parker
6abb5750bf RPC Kryo plugin functionality. 2016-11-18 17:38:05 +00:00
Clinton Alexander
bf70091172 Now depending on the plugins in jcenter and not buildsrc. 2016-11-18 14:41:06 +00:00
Clinton Alexander
14ca7847d0 Publishing to jcenter possible via bintrayUpload (with the correct credentials) and corda now has a dependency on the published gradle plugin to allow the split. 2016-11-18 13:02:04 +00:00
Jose Coll
876b17bb12 Transaction notes now stored individually per row. 2016-11-17 17:57:07 +00:00
Andras Slemmer
cae9b758ff core: Fix ErrorOr.combine 2016-11-16 14:43:54 +00:00
Jose Coll
5dfffb1b84 Re-applied changes following net.corda rebase. 2016-11-16 14:07:16 +00:00
Andras Slemmer
3c09056e22 Remove :Any restriction from ErrorOr's type parameter 2016-11-15 18:05:00 +00:00
Andras Slemmer
07df9f17b3 loadtest: Add loadtest code 2016-11-15 17:21:26 +00:00
Andras Slemmer
dcd7a8a08a Address PR 465 comments 2016-11-15 16:51:07 +00:00
Andras Slemmer
7f0dd1ab5b Generic startProtocol and typesafe wrappers, per-protocol permissions, CashProtocol, remove executeCommand, move almost all Cash-related things to :finance 2016-11-15 16:46:37 +00:00
Andrius Dagys
9b8f00ef84 Stop using "legally-Identifiable" signatures for the notary protocol 2016-11-15 16:08:42 +00:00
Shams Asari
c326a9ae46 Moved the RPC user config out of the properties file and into the main config file 2016-11-15 12:52:08 +00:00
Andrius Dagys
f4925c0fa9 Remove unnecessary TODO 2016-11-15 11:52:58 +00:00
Ross Nicoll
cf6a3050c3 Add sanity check on SignedTransaction.id
Add sanity check on SignedTransaction.id when deserializing the wrapped transaction. This
check is already done when verifying signatures, this moves it up to an earlier step and
adds a more specific error message to aid diagnosis.
2016-11-14 16:25:41 +00:00
Andrius Dagys
d00163e29d Stop using "legally-Identifiable" signatures for the notary protocol, as notary nodes will use their service identity to sign (and not the legal one). It also doesn't make sense to attach an identity on the signature if it's a group identity and the signer holds only 1 out of many keys. 2016-11-14 16:02:20 +00:00
Andrius Dagys
d855b10817 Nodes part of a group identity (e.g. notary) now advertise the whole group Party on the network. When sending a message to a group, a representative node advertising the group identity is first chosen (at random), and its legal identity is used for communication. Currently we assume that a single legal identity can't be advertised by more than one node (the PublicKeyTree of an identity is used for Artemis queue names and we need to do more work to properly map a single queue to multiple nodes) 2016-11-14 14:57:16 +00:00
Andrius Dagys
c33c55eb20 Replace PublicKey with PublicKeyTree in Party. A single entity can now be identified by more than one key. 2016-11-14 14:57:16 +00:00
Katarzyna Streich
79ecd03413 Add serialization without refrences to all leaves of transaction (for Merkle tree calculation). 2016-11-11 13:34:09 +00:00
Mike Hearn
0c7662d53a Fix up a move problem 2016-11-11 11:45:40 +01:00
Mike Hearn
ce99f354cb Rename com.r3corda -> net.corda 2016-11-10 17:14:24 +01:00
Katarzyna Streich
103817ec57 Add signing of transaction merkle root hash. 2016-11-08 17:41:32 +00:00
Katarzyna Streich
71965b0792 Add serialization workaround for HashMaps inside states. Fix tests. 2016-11-04 17:21:11 +00:00
Katarzyna Streich
023ba380a0 Style changes. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
a5dfaa255d Code cleanup, add comments and tests to reflect changes. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
e7cb47ecd0 Add cached Merkle tree structure to wire transaction and root hash as transaction id. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
6af7573955 Build Partial Merkle Tree as recursive data structure. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
cd59dfd2af Build Merkle Tree as a recursive data structure instead of heap like structure. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
6749555996 Change transaction filtering, remove sorting. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
a38e7e54a0 Minor style changes in tests. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
79fc47f0ec Add comments and minor changes. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
b31598b801 Change tests to reflect changes in code structure. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
e823e11e85 Change places in code where instead of transaction id hash is used. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
6b5ad92f9b Substitute WireTransaction id property getter with calculated merkle root. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
ea826988af Add leaves filtering and building trees with different leaves types. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
2ce21842f8 Add simple filtering and ordering of command leaves. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
7f6f1807b1 Code cleanup and add comments. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
0c573c76e2 Add simple partial tree building and verification tests (also on transactions). 2016-11-04 17:15:59 +00:00
Katarzyna Streich
930f6bbb24 Add initial test for testing Partial Merkle Tree building. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
b5fd359c0a Add Partial Merkle Tree verification.
Not tested.
2016-11-04 17:15:59 +00:00
Katarzyna Streich
e8bdfa5691 Build Partial Merkle Tree for filtered transactions. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
1a8e47fcaa Filter, build and verify merklized transaction from a wire transaction.
Initial structure for a merkleized transaction, with full Merkle tree building.
2016-11-04 17:15:59 +00:00
Ross Nicoll
9d254bd924 Use UUID only for UniqueIdentifier equality
The UniqueIdentifier class exists to ensure any external ID for a state is kept coupled to a
proper unique ID, however in doing so it requires both UUID and external ID to find linear head
states in the vault. This modifies the equality and hashing algorithms to use the UUID only,
so that lookup can be done without knowing the external ID.
2016-11-04 16:16:43 +00:00
Shams Asari
bd89da458b Added nice extension methods for Path, which are more readable than the static methods from Files 2016-11-04 15:36:14 +00:00
Clinton Alexander
cf4b91d7c7 Removed redundant file. 2016-11-03 11:03:54 +00:00
Clinton Alexander
acaa9f82a5 Rewrote some documentation about the simm demo. Moved a util function to the main utils file. 2016-11-03 11:03:54 +00:00
Clinton Alexander
73a2215747 Added core changes and docs required for simm valuation demo. 2016-11-03 11:01:36 +00:00
Shams Asari
6d39b71bf9 Simple RPC access control, with a demo control on the cash RPCs 2016-11-03 10:46:25 +00:00
Jose Coll
1d25d23b73 Merge from master 2016-11-02 14:20:51 +00:00
Jose Coll
012dc9ec10 Merge branch 'master' into colljos-vault-code-clean-up-refactor 2016-11-02 11:20:21 +00:00
Jose Coll
a38b363e9d Fixed subtle bug in Cash Spending when processing for same Issuer with multiple refs. 2016-11-02 11:15:09 +00:00
Jose Coll
7e3c00c1ff Merged in colljos-pluginservicehub (pull request #427)
Added PluginServiceHub for use by Corda plugin service extensions.
2016-11-01 17:12:52 +00:00
Jose Coll
f415c497d9 Minor changes to address PR feedback and comments 2016-11-01 16:47:50 +00:00
Jose Coll
253a70f55e Fixed bug in generateSpending whereby Issuer Ref was not being checked. 2016-11-01 16:12:19 +00:00
Ross Nicoll
613a86c5d9 Remove deposit and issuanceDef fields
Remove deposit field from the FungibleAsset interface, and moved it into a fixed reference to
amount.token.issuer.
Remove issuanceDef field and replace it with amount.token.
2016-11-01 14:49:57 +00:00
Jose Coll
d9f0a161e4 Addressed comments in PR review. 2016-11-01 12:05:48 +00:00
Clinton Alexander
276683e053 Merged in clint-attachmentdemosample (pull request #421)
Moved attachment demo to another repo. Added ApiUtils.
2016-11-01 11:54:59 +00:00
Clinton Alexander
7d08c0b068 Removed attachment demo.
Added ApiUtils - a library for managing api lifecycles with less boilerplate.

Added default values to http api and improved the api utils.

Fixed spacing and comments.

Removed withName and added a bad request response to handle error cases.

Replaced use of 400 error with a 404 and error message as per HTTP spec.
2016-11-01 11:53:49 +00:00
Jose Coll
c5500caf98 Minor changes to address PR feedback and comments 2016-11-01 11:39:11 +00:00
Jose Coll
308d7c1df7 Added PluginServiceHub for use by Corda plugin service extensions. 2016-10-31 17:15:06 +00:00
Andras Slemmer
3f36462053 core: Bind client socket to getLocalHost explicitly, fixes #6 2016-10-31 15:53:15 +00:00
Jose Coll
2ce310050e Revert incorrect merge commit. 2016-10-28 10:28:15 +01:00
Jose Coll
b46de0b964 Merge remote-tracking branch 'origin/colljos-vault-transaction-notes' into colljos-vault-transaction-notes
# Conflicts:
#	core/src/main/kotlin/com/r3corda/core/node/services/Services.kt
#	core/src/main/kotlin/com/r3corda/core/testing/InMemoryVaultService.kt
#	node/src/main/kotlin/com/r3corda/node/services/vault/NodeVaultService.kt
2016-10-28 09:59:58 +01:00
Jose Coll
369214a747 Additional method on VaultService to add notes to a transaction
Additional method on VaultService to retrieve notes for a transaction
2016-10-28 09:57:33 +01:00
Jose Coll
504ec42720 Additional method on VaultService to retrieve notes for a transaction 2016-10-27 16:35:26 +01:00
Jose Coll
bc525aabdf FungibleAsset reverted back to original filename. 2016-10-27 16:21:05 +01:00
Jose Coll
f2e98ffba5 Merge branches 'colljos-vault-transaction-notes' and 'master' of https://bitbucket.org/R3-CEV/r3prototyping into colljos-vault-transaction-notes 2016-10-27 14:59:37 +01:00
Jose Coll
7d080c39df Merge remote-tracking branch 'remotes/origin/master' into colljos-vault-code-clean-up-refactor
# Conflicts:
#	core/src/main/kotlin/com/r3corda/core/contracts/Structures.kt
#	node/src/test/kotlin/com/r3corda/node/services/NodeSchedulerServiceTest.kt

Fixed failing CommercialPaper test
(caused by re-use of same database transaction context for vault across two different transaction participants)
2016-10-27 12:56:08 +01:00
Ross Nicoll
65a03efc55 Correct Comparable interface used for isOrderedAndUnique() 2016-10-25 14:31:37 +01:00
Clinton Alexander
2f5efb34d6 Removed the RatesFixProtocol and dependent code and moved to the IRS repo. 2016-10-24 17:56:16 +01:00
Clinton Alexander
2727d56b4a Removed IRS specific code to new repo. 2016-10-24 17:56:16 +01:00
Shams Asari
e2d6ace449 RPC client authentication using user/password from config file 2016-10-20 17:55:16 +01:00
Jose Coll
75f671a446 Decommissioned InMemoryVaultService service (all dependent Tests updated to use NodeVaultService) 2016-10-20 13:10:00 +01:00
Jose Coll
c7d98b8c6b Fixed items raised by MH in CRD-CR-58 code review. 2016-10-20 10:52:51 +01:00
Jose Coll
04920c9507 Additional method on VaultService to add notes to a transaction 2016-10-19 15:06:52 +01:00
Jose Coll
62dfea2a1a Re-factoring of OnLedgerAsset generateSpend code (moved to VaultService) 2016-10-17 17:58:26 +01:00
Patrick Kuo
3403d50168 Merged pat-cash-creation-ui into master 2016-10-17 16:10:53 +01:00
rick.parker
962fdba0f8 Make transaction -> statemachine id mapping persistent. 2016-10-17 11:33:29 +01:00
Patrick Kuo
d4362fbd78 New counterparty model and subscription mechanism to retrieve and track counterparty changes in network map
New transaction creation screen for creating new cash transactions, using party info source from the counterparty model.
2016-10-17 11:25:20 +01:00
Jose Coll
67b2d91b33 Re-factoring of CashBalances code (moved to VaultService) 2016-10-17 11:16:53 +01:00
rick.parker
02a9f8fe67 Remove SAME_THREAD executor and it's use in MockNetwork etc.
Remove all traces of unused optional Executor in messaging.
2016-10-12 12:02:28 +01:00
Matthew Nesbit
1f3b1f4df9 Transactions in database
Include basic unit tests of Transaction storage

Use Rick's column storage code as suggested in PR comments

Remove blank line
2016-10-11 17:49:15 +01:00
Clinton Alexander
d85c82d505 Replaced maven plugin with the newer, simpler, maven-publish plugin and added an alias. 2016-10-11 13:05:46 +01:00
Matthew Nesbit
1388454396 Never send transactions to the Notary that aren't signed by all parties. Toughen up to use validating Notary in general and put Client precheck into NotaryProtocol.
Rename method to better reflect its actions

Handle comments from PR

Correct indentation
2016-10-11 10:43:40 +01:00
Shams Asari
ac01b67549 Using the protocol ID for the protocol logger name 2016-10-10 13:45:43 +01:00
Matthew Nesbit
1e836edd78 Change ServiceType to a sealed class from an abstract class
Allow AdvertisedServices to have their own identity and keys. Also, rationalise legalIdentity onto the local node's NodeInfo which is available on ServiceHub

Fixup after rebase

Remove legal identity that was on storage service. Now access via myInfo.legalIdentity and key via keyManagement lookup.

Enforce singleton notary per node for now

Tidy up based upon Rick's suggestions

Handle PR comments

clean up imports

Fix typo

Fixup rename

Capitalise comment

Eliminate unused variable warning

Make changes based upon PR comments

Cleanup whitespace changes
2016-10-07 13:44:51 +01:00
Mike Hearn
0bcecac7f6 Merge branch 'master' of https://bitbucket.org/R3-CEV/r3prototyping 2016-10-07 11:11:54 +02:00
Mike Hearn
604aa05859 Minor: suppress useless warnings 2016-10-06 18:36:33 +02:00
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