Mike Hearn
ac337240a6
Minor: more cleanups
2017-04-12 14:42:30 +02:00
Mike Hearn
1a86ac481f
Minor: core: fix static analysis warnings.
...
One actual bug was found this way, albeit a harmless one.
2017-04-12 14:42:29 +02:00
Ross Nicoll
d35bd74596
Standardise identities used in tests, demos, etc.
...
Standaridise the identity names of Alice, Bob and Charlie, notary, map service, etc. in order
to ensure consistency across the code base and reduce number of places that have to be changed
to introduce proper X.500 names.
Move Alice, Bob & Charlie identities into the utilities package so they can be used in demos
2017-04-12 11:40:48 +01:00
gary-rowe
108f171e03
Replace 'by' with 'using' to avoid overloading Kotlin keyword in contracts DSL. Deprecates 'by' with offered replacement.
2017-04-12 12:27:02 +02:00
kasiastreich
36d5d0d7b2
Refactor of CompositeKeys to implement PublicKey interface. ( #433 )
...
* Make CompositeKey implement PublicKey
The initial implementation of composite keys as their own distinct class separate from PublicKey
means that the keys cannot be used on standard classes such as Certificate. This work is a beginning
to modifying CompositeKey to being a PublicKey implementation, although significant further work
is required to integrate this properly with the standard Java APIs, especially around verifying
signatures using the new key type.
* First stage of making CompositeKey implement PublicKey interface. Revert to using PublicKey everywhere we expect a key.
* Move algorithm and format into companion object (#432 )
Move algorithm and format into companion object so that they can be referenced from other
classes (i.e. the upcoming signature class).
* Add simple invariants to construction of CompositeKey.
Builder emits CompositeKeys in simplified normalised form. Forbid keys with single child node, force ordering on children and forbid duplicates on the same level. It's not full semantical normalisation.
* Make constructor of CompositeKey private, move NodeWeight inside the class.
Add utility function for Kryo deserialization to read list with length constraints.
2017-04-12 11:13:20 +01:00
Mike Hearn
0c0c5521c0
Minor: address more formatting issues spotted by Shams
2017-04-11 15:53:05 +02:00
Mike Hearn
4853e41a58
Minor: inspector fixes
2017-04-11 15:53:05 +02:00
Mike Hearn
c097229935
Minor: run code cleanup inspections
2017-04-11 15:53:05 +02:00
Mike Hearn
d9391b3d29
Minor: auto-format of module: core
2017-04-11 15:53:05 +02:00
Clinton
35fa9d2e59
Version number parser can now handle patch versions. ( #516 )
2017-04-11 12:08:42 +01:00
Konstantinos Chalkias
f7dd2733f2
Kryo register FileInputStream and addDefaultSerializer for InputStream ( #471 )
...
HashCheckingStream CordaSerializable and FileInputStream Kryo register
2017-04-06 11:25:49 +01:00
Shams Asari
faef877a8d
Converted sealed data types to be data classes
2017-04-04 11:37:56 +01:00
Konstantinos Chalkias
dbd82705aa
Artemis - allow attachments to a maximum of 10MiB including any headers. ( #452 )
...
Allow attachments to a maximum of 10MiB including any headers.
2017-04-03 18:42:21 +01:00
josecoll
413e39903d
Fixed bug whereby Cash Exit was not taking into account the issuer reference ( #492 )
...
* Fixed bug whereby Cash Exit was not taking into account the issuer reference.
Added additional JUnit tests for coin selection by issuer.
Added some trace logging in AbstractConserveAmount.
* PR review: added additional state with 3rd issuer reference in test.
2017-04-03 17:51:56 +01:00
Patrick Kuo
3327517d61
[M10 Fixes] - fixes enum - json conversion problem in kotlin 1.1.1 ( #495 )
2017-04-03 17:30:56 +01:00
Patrick Kuo
bf90b140c1
[M10 Fixes] - remote debug flag fix ( #494 )
2017-04-03 16:16:31 +01:00
Shams Asari
e0c548d4fa
Cleaned up code causing build warnings
2017-04-03 13:52:51 +01:00
Ross Nicoll
30dd29752c
Clarify exceptions thrown from loading a key store
...
Clarify exceptions thrown from loading a key store as a general cleanup. Also tightens the
exceptions caught when loading key stores from AbstractNode, so in case of an unexpected error
we don't silently drop the exception.
2017-04-03 13:41:40 +01:00
Matthew Nesbit
51c7f6ca30
Merge pull request #453 from corda/mnesbit-amount-improvements
...
Modify the Amount concept to allow conversion to from displayable formats
2017-03-31 14:37:32 +01:00
josecoll
73c0fdc118
CashExitFlow now uses coin selection with soft locking. ( #481 )
2017-03-31 11:47:59 +01:00
Konstantinos Chalkias
d72b75caa4
Observable.subscribe().unsubscribe() and ListenableFuture.cancel() ( #397 )
...
Observable.subscribe().unsubscribe() dance to free up the MQ resources server-side.
* remove an unused import
* implement a FlowHandle<Transaction>.finalize method
* Rename finalize() to discard() - remove the collection and run discard individually
* Remove unused imports
* Observable.notUsed helper function
* Tweaks to comments
* FlowHandle implements AutoClosable
* Resolving conflicts and move notUsed to RPC module
* Copy Observable.notUsed in core module.
* delete discard method
2017-03-31 10:08:12 +01:00
Chris Rankin
b3936a2159
Exclude commons-logging for all projects at top level. ( #473 )
2017-03-30 20:59:50 +01:00
Patrick Kuo
c7e5cf5079
Fixed : Message value in NotaryException is always null ( #470 )
2017-03-30 16:59:23 +01:00
Chris Rankin
f15a22d828
Replace kotlinx-support-jdk8 with kotlin-stdlib-jre8. ( #463 )
...
* Replace kotlinx-support-jdk8 with kotlin-stdlib-jre8.
* Add kotlinVersion to constants.properties.
* Remove unused variable.
2017-03-30 16:27:01 +01:00
Matthew Nesbit
cedfc4e1ad
Add a concept of token size to Amount<T> so that conversion to/from indicative and displayable BigDecimal works sensibly
...
Add an AmountTransfer type to express the concept of asset flows.
Unify the currency amount creators and fix a few old style display conversions in teh explorer cash dialogs.
Modifications according to PR comments.
Change TransferAmount display string as it may not always be a payment.
Update docs
2017-03-30 16:16:11 +01:00
Patrick Kuo
78a0024e00
Fix various deprecated warnings
...
* Changed deprecated kotlin.reflect.primaryConstructor to kotlin.reflect.full.primaryConstructor
* Changed deprecated kotlin.reflect.memberProperties to kotlin.reflect.full.memberProperties
* Changed deprecated kotlin.reflect.declaredMemberProperties to kotlin.reflect.full.declaredMemberProperties
* Changed deprecated AllComposition to AllOf
* Changed deprecated AnyComposition to AnyOf
* Changed deprecated kotlin.reflect.KotlinReflectionInternalError to kotlin.reflect.jvm.internal.KotlinReflectionInternalError
* Changed deprecated HostAndPort.hostText to HostAndPort.host
* Removed duplicated method net.corda.core.node.recordTransactions
2017-03-30 10:00:46 +01:00
Matthew Nesbit
062dc67ab6
Add Any
constraint to Amount token
...
Signed-off-by: Ross Nicoll <ross.nicoll@r3.com>
2017-03-29 17:11:30 +01:00
Matthew Nesbit
e0a2c76f39
Remove unnecessary parameters to copy()
...
Signed-off-by: Ross Nicoll <ross.nicoll@r3.com>
2017-03-29 17:11:30 +01:00
Patrick Kuo
9a7d0a0fb5
Replace unused variables with _ after kotlin 1.1.1 upgrade ( #456 )
...
* Replace unused variables with _ after kotlin 1.1.1 upgrade
2017-03-29 13:54:40 +01:00
josecoll
7eada1408e
Reduce warning and info messages in node log files (Artemis) ( #449 )
...
* Reduce warning and info messages in node log files (Artemis)
Add an additional lof message for conflicting states identified by the Notary.
* Upgraded severity of user login message from trace to debug.
* Suppress Artemis log4j WARNING's for core.server.checkDeadLetterAddressAndExpiryAddress
2017-03-29 11:40:19 +01:00
josecoll
3497e42f7c
Upgrade to Requery 1.2.1 with Composite Key support ( #443 )
...
* Test SELECT WHERE IN composite key using requery 1.2.0
Upgraded Vault Service code to use Requery 1.2.0 SELECT .. WHERE IN
Updated generated schema code with Requery 1.2.0
Upgrade to Requery 1.2.1
Upgrade to Requery 1.2.1 - converted to use update DSL with composite key
Removed redundant JDBC SQL test cases.
Minor updates following PR review comments from RP.
* Streamline companion object initialisation.
2017-03-29 10:51:02 +01:00
Matthew Nesbit
b75913c24a
Merge pull request #451 from corda/mnesbit-fix-flaky-tests
...
Fixes some charset encoding and timing tests problems on windows
2017-03-28 18:21:29 +01:00
Rick Parker
8ef1d767c9
Consolidate maven repositories ( #445 )
...
* Consolidate repositories into root build.gradle
2017-03-28 17:17:40 +01:00
Matthew Nesbit
8f1d58a508
Fix unit tests causing problems on windows
2017-03-28 16:39:29 +01:00
Andras Slemmer
259bdf4261
Merge pull request #340 from corda/aslemmer-verifier-split
...
Verifier split
2017-03-27 18:21:18 +01:00
Ross Nicoll
979b07723d
Give "Response" a more meaningful name
2017-03-27 18:14:13 +01:00
exfalso
81dcde99bf
#340 : Factor out jvm process start into utility function
2017-03-27 17:42:51 +01:00
Andras Slemmer
48952dfc02
Add node-api, split minimal node functionality, OutOfProcessTransactionVerifierService
2017-03-27 17:42:51 +01:00
josecoll
0280299104
Soft locking implementation using database coin selection
...
Fix broken IssuerFlowTest
Fix IssuerFlowTests after rebase.
Resolve conflicts after rebase.
Soft locking converted to use persistent store.
Added additional optional 'includeLockStates' parameter in VaultService states API call.
Added Vault softLocked states query API call.
Fixed commercial paper failing test.
Improved exception handling on soft locking UPDATE statement.
Using SELECT FOR UPDATE to ensure correct soft locking data visibility.
Db query operations moved out of mutex code (as locking managed by underlying DB)
Adjusted logging severity levels.
Adjusted logging severity levels.
GenerateSpending now performing fine grained query for unconsumed states by joining with contract_cash_states table.
Using H2 proprietary cummulative counting feature (using sessioni SET variables)
Refactored and simplified HibernateObserver constructor to enable usage in JUnit tests.
Event generator issues larger random amounts (10,000..1,000,000) to those than are spent (0..10,000)
Adjusted Issue (5:1) and Exit (10:1) generation frequency vs spending.
Minor fixes: added optional lockid into select for spending criteria, set notary, additional trace logging.
Generate Cash Schema by default upon node start-up (as part of NodeSchemaService initialisation).
Explicitly close JDBC statements in finally() blocks.
Tightened HibernateObserver constructor.
Fix CommercialPaper test (was missing auto-generation of CONTRACT_CASH table)
Revert default JVM size back to 200Mb.
Revert default number of iterations in Explorer Node Simulation mode (back to 10000 with .5 sec sleep interval).
Remove redundant setter function.
Added TODO messages indicating Requery / H2 restrictions & caveats.
Consumed states lock updates now performed in general consumed state Update.
Updated/added Soft Locking documentation.
Addressed initial PR comments: use THREAD_LOCAL_KRYO, use AbstractParty, extract helper method, improve readability, address some doc typos
Addressed PR comment: removed lockId from WireTransaction.
Fixed soft locking UPDATE statements.
Improvements to VaultSoftLockManager for auto-registration of soft locks for flows with spendable states (as notifications from vault).
Other optimisations (IssuerFlow no longer explicitly reserve/release issued state) and improvements (soft lock release management of soft locks, docs update)
Performance update: now using Requery for UPDATE in release soft locking (non-composite key statement)
Removed redundant TODO messages (TODO: revisit Kryo bug when using THREAD_LOCAL_KYRO)
Minor fixes following rebase
Fixed failing JUnit following rebase
Addressed MH PR review items (1st pass)
Fix broken JUnit
Significant changes to RDBMS operations within coin selection and soft locking as requested by PR review.
(Removed SELECT FOR UPDATE; added RETRY upon coin selection; reverting partial soft locks)
Addressed a number of PR review requests added by MH (comments/spelling, lockID instantiation, HibernateObserver instantiation, cash schema white-listing usage)
Addressed latest PR review comments from RP.
Minor fixes following rebase from master.
Fixed final failing JUnit (issuer flow concurrent).
Updated TraderDemo to trigger concurrent issuance of cash.
Fixed compiler warning on lockId null check.
Fixed subtle bug in coin selection intermittently surfaced in IntegrationTestTutorial.
Fixed small memory leak.
Removed stray } in logger trace message.
Slight rewording of description of Soft Locking in docs.
Renamed NoStatesAvailableException to StatesNotAvailableException.
generateSpend is now Suspendable (calls sleep method on flow upon coin selection retry).
Added companion function to enable a Strand to sleep but without locking transactional context.
Improved logging, changed to StateNotAvailableException, using Flow sleep upon retry, tweaked SELECT criteria in coin selection, fixed bug when insufficient states selectable, generateSpend is now @suspendable
Improved handling and logging of flow results in Simulation Mode.
Fixed minor error in sleep when not an active flow.
Retry coin selection when unavailable states (as these may become available as new states).
Additional debug logging to highlight and identify H2 coin selection sporadic bug.
Inlined sleep method due to intermittent Quasar error.
Re-introduce selection clause that prevents selection and temporary locking of already locked states (by other flows).
Improved trace logging for coin selection (SQL row level info).
Correctly calling FlowStateMachineImpl sleep (now inlined and working correctly)
Fixed rebase error.
Remove redundant TODO message.
2017-03-27 17:12:33 +01:00
Patrick Kuo
dc06d37369
Intellij bug workaround ( #434 )
...
* Workaround for `"bound callable references" is only available since language version 1.1` when using kotlin 1.1.1 plugin.
2017-03-27 15:12:01 +01:00
Ross Nicoll
c73a2e6034
Add utility functions for requesting transaction keys
...
Add utility functions for requesting transaction keys and a small example flow which uses
these functions for testing purposes. These keys are required in for the anonymisation of
transactions, by providing per-transaction keys which cannot be associated with the owning
party's keys without an intermediary certificate.
2017-03-27 14:19:14 +01:00
Shams Asari
52ea54f742
Upgraded both guava and guava-testlib to 21.0 and made sure they share the same version variable
2017-03-24 17:17:36 +00:00
Chris Rankin
19ee4f2d7b
Create testArtifacts configuration for 'core' module. ( #425 )
2017-03-24 13:33:54 +00:00
Mike Hearn
67e6bbc068
Support overloads in the StringToMethodCallParser
2017-03-24 12:44:54 +01:00
Mike Hearn
ac90fe724e
Shell: add support for uploading and downloading attachments.
2017-03-24 12:44:54 +01:00
Katarzyna Streich
c5966a93e5
Remove duplicated SecureRandom functions in crypto package.
2017-03-24 10:36:05 +00:00
Chris Rankin
eaf9dad7c9
Remove junit-quickcheck from Corda because it is only used for testing. ( #416 )
2017-03-23 17:32:14 +00:00
Andrius Dagys
0713baf513
Fix isValidatingNotary check: throw exception if the provided party is not a notary
2017-03-23 12:11:18 +00:00
Chris Rankin
98266da41c
Refactor CordaRPCClient into new :client:rpc Gradle module. ( #405 )
...
* CORDA-305: Refactor CordaRPCClient into :client:rpc module
* CORDA-305: Remove the Kotlin test framework from the artifacts.
* CORDA-305: Migrate serialisation whitelist into node-api module.
* CORDA-305: Clean up unused RPC observables.
* CORDA-305: Add :client:rpc module to documentation tasks.
* CORDA-305: Include :finance into :client:rpc for its serialisable classes.
* CORDA-305: Move test classes into the correct directory.
* CORDA-305: Migrate :finance dependency from :client:rpc into DemoBench.
* CORDA-305: Update wording of TODO about handling Observables.
2017-03-22 15:52:54 +00:00
Shams Asari
209f5c8a25
Logging fixes, including broken --logging-level cmd line arg
2017-03-21 15:36:32 +00:00
Chris Rankin
d415865efe
Explicit dependency on SLF4J API, to help IntelliJ. ( #393 )
2017-03-20 17:04:39 +00:00
Mike Hearn
afbc8f9b5c
De-issuerify the cash payment flow. This makes it easier to use the payment flow from the shell.
2017-03-20 15:14:28 +01:00
Rick Parker
1de1f9095f
Several tests were corrupting Kryo which was then returned to the common pool. ( #378 )
...
* We were leaving trailing attachmentStorage on pooled kryo instances after some tests. Changed attachment storage logic to make it impossible to leave it behind.
* Some low level tests corrupt the Kryo config, so do not return to pool when this is the case. Also, we discovered that Kryo is caching class name to class resolution. We don't want to do this where attachments are involved. The errors raised highlighted a class missing from the whitelist. Need to write a unit test to test the class loader issue.
* Unit test for attachment class loading with kryo.
2017-03-17 12:43:11 +00:00
Mike Hearn
eb21458885
Some fixes to emoji/ANSI renderer
2017-03-17 10:54:25 +01:00
Shams Asari
51a5eb77a0
Added @Suspendable to UntrustworthyData.unwrap to allow Java flows to do I/O inside unwrap
2017-03-16 16:30:28 +00:00
Konstantinos Chalkias
6844ab32f8
Custom Logger serializer and its related unit-test.
...
Custom Logger serialiser using only its name when serialising and deserialising using LoggerFactory.getLogger(name).
2017-03-16 15:38:37 +00:00
Rick Parker
f3a5f8e659
Pool Kryo instances for efficiency. ( #352 )
...
Pooled Kryo
2017-03-16 08:24:06 +00:00
Shams Asari
69a99b2f42
Merge pull request #364 from corda/shams-register-class
...
Flow registration takes in a Class object rather than a KClass
2017-03-15 17:14:03 +00:00
Konstantinos Chalkias
9db773d17c
Remove unused vars + and change set/get with indexing operator. ( #358 )
2017-03-15 17:10:55 +00:00
Shams Asari
f581844f3f
Flow registration takes in a Class object rather than a KClass
2017-03-15 16:32:13 +00:00
Clinton Alexander
f091659b7c
Updated JAX RS to the actual version that is downloaded to avoid mismatches with the dependencies zip.
2017-03-14 16:08:30 +00:00
Andras Slemmer
31dc6e4b8f
Merge pull request #338 from corda/aslemmer-generator-remove-any-constraint
...
Remove Any constraint from Generator type param
2017-03-13 18:05:24 +00:00
Chris Rankin
ba4cce36ab
Use SLF4J's version of the commons-logging bindings. Only include SLF4J's Log4J back-end for actual applications, e.g. Node. ( #350 )
2017-03-13 15:57:17 +00:00
Konstantinos Chalkias
afd5521b00
Lazy NodeVaultService.states ( #349 )
...
Convert NodeVaultService states to return Iterable (backed by Sequence) Vs the old way using a List. Worth noting this relieves memory pressure as the number of vault states grows.
* remove toList in ContractUpgradeFlowTest
2017-03-13 14:06:47 +00:00
Mike Hearn
23fcbd284c
Amount: add ruble and Yen, fix toString.
2017-03-13 14:51:19 +01:00
Mike Hearn
7cac55ca4a
Amount: add support for basic parsing from text.
2017-03-13 14:51:19 +01:00
Ross Nicoll
7898c902e4
Remove out of date documentation
...
Remove out of date documentation about the "covering" field of DigitalSignature, which no longer
exists.
2017-03-10 17:24:36 +01:00
Andras Slemmer
c8b13b257f
Remove Any constraint from Generator type param
2017-03-09 17:48:53 +00:00
Shams Asari
e9d63b2662
Added bits of versioning info to the node
2017-03-09 16:36:21 +00:00
Konstantinos Chalkias
4a9ff84fc7
Allowing multiple signature algorithms ( #250 )
...
Basic crypto API to support 5 signature schemes and MetaData-ed signatures.
Supported schemes: (1) RSA_SHA256, (2) ECDSA_SECP256K1_SHA256, (3) ECDSA_SECP256R1_SHA256, (4) EDDSA_ED25519_SHA512, (5) SPHINCS-256_SHA512.
To sign a transaction, a signer should create a MetaData wrapper that contains transaction's merkle root and some extra information, such as signer's public key, timestamp and visibleInputs. Actually, MetaData is utilised to support a practical partial, blind and extra-data attached signature model.
When a MetaData object is signed, the signer sends a TransactionSignature object that contains the signed output and the corresponding MetaData object.
Remarks:
This is an temporary solution for signature algorithmic agility. Further development is required for a robust and extensible Crypto Manager/Provider PKI that will support certificate creation, key generation, signing/verifying, deterministic key derivation, encoding formats, SGX/HSM support, identity and key management, versioning, revocation, asynchronicity, metadata, partial sig. policies etc.
2017-03-08 17:45:23 +00:00
Mike Hearn
35836d9926
Add a registeredFlows() RPC that lists the RPCs the node knows about.
2017-03-08 15:01:13 +01:00
Karel Hajek
1e78d6a3a7
Simple Attachment Storage implementation using Requery/H2 database
2017-03-07 16:12:38 +01:00
Andrius Dagys
907a893ca1
BFT notary prototype: add validation and signature collection ( #279 )
...
* BFT notary prototype: add a non-validating service.
Each replica now validates the transaction timestamp and returns an individual signature to the BFT client. The client then returns a list of signatures back to the notary service flow.
The validating variant is still incomplete - it requires the ability to suspend flows on arbitrary function calls.
2017-03-07 12:39:19 +00:00
Chris Rankin
0a5080a4e4
Exclude old version of Javassist in favour of Hibernate's version from Node. ( #320 )
...
* Exclude old version of Javassist in favour of Hibernate's version.
* Comment why we are excluding javassist:javassist, and add TODO for when junit-quickcheck 0.8 is released.
2017-03-07 11:43:06 +00:00
Andras Slemmer
f00515b39e
Merge pull request #293 from corda/aslemmer-services-for-resolution
...
core: Add ServicesForResolution interface
2017-03-02 12:08:08 +00:00
Ross Nicoll
0f6b806047
Add anonymous text in case party lookup fails
2017-03-02 12:07:12 +00:00
Mike Hearn
cc61be5b6a
Inform users about the newly available Corda training programs at startup and in the docsite.
2017-02-28 16:50:43 +01:00
Rick Parker
6d375351bd
Add a header to all serialised data & switch to compatibility serializer. ( #294 )
...
Add a header to all serialised data & switch to compatibility serializer
2017-02-28 11:17:57 +00:00
Rick Parker
c4c4c51d7d
Kryo serialisation whitelisting and misc enhancements. ( #267 )
...
Kryo serialisation whitelisting and misc enhancements
2017-02-28 08:12:18 +00:00
Clinton Alexander
8414c97a61
Moved JsonSupport to new webserver module. Fixed a few compile errors.
...
Fixed compile issues caused by webserver being split to a separate project.
WebServer now starts and stops correctly as a separate module.
2017-02-27 16:41:48 +00:00
Andras Slemmer
8522d79371
core: Add ServicesForResolution interface
2017-02-27 14:03:25 +00:00
Gary Rowe
16a7298ef5
Fix incorrect whitespace character (required copy paste of tab)
2017-02-23 20:44:23 +00:00
Gary Rowe
544f2de75e
Add Hong Kong to list of cities in lookup table
2017-02-23 16:54:19 +00:00
Chris Rankin
221278197a
Implement RPCOp getCashBalances().
2017-02-22 13:57:15 +00:00
Mike Hearn
8b1864e07c
Minor: naming and doc tweaks in Merkle tree code.
2017-02-22 14:16:04 +01:00
Mike Hearn
b8942a2cc9
Remove the SignedTransaction.id field, which took part in serialisation. Calculate it on demand instead.
2017-02-22 14:16:04 +01:00
Mike Hearn
0b33b52d1a
Minor: add a warning suppression over an unchecked cast in the upgrade code.
2017-02-22 14:16:04 +01:00
Mike Hearn
036b2597d3
Fix a bug in ContractUpgradeFlowTest where it wasn't actually checking both nodes.
2017-02-22 14:16:04 +01:00
Andrius Dagys
006faa82a1
Make notary flow return a collection of signatures to support the BFT… ( #264 )
...
Make notary flow return a collection of signatures to support the BFT notary. For a single-node or RAFT notary it would just contain a single signature.
2017-02-22 11:11:35 +00:00
Shams Asari
ade32b16cb
Java code can now extend core FlowLogics which don't return anything (by using Void? instead of Unit)
2017-02-21 12:20:39 +00:00
Clinton Alexander
539943d790
Added an openAttachment endpoint to the RPC interface and tests for the open, upload and exists attachment RPC interfaces.
2017-02-16 16:57:45 +00:00
Shams Asari
f13817efb3
ProgressTracker emits exception thrown by the flow, allowing the ANSI renderer to correctly stop and print the error ( #189 )
2017-02-16 12:11:38 +00:00
Ross Nicoll
ed093cdb9d
Enforce separation of Party and AnonymousParty
2017-02-16 11:50:33 +00:00
josecoll
fa33336d38
Initial implementation of Vault Persistence using Requery ( #191 )
...
* Initial prototyping with Requery as a persistence replacement for Exposed/Hibernate
Applied changes following PR review by RP
Updated timestamp naming (removed committedTimestamp) and StateStatus (removed AWAITING_CONSENSUS) after discussion with RP.
Removed FungibleState and LinearState schemas (and associated tests) - awaiting Requery uni-directional relationship fix.
Added Transaction propagation such that requery re-uses any existing transaction context.
Made requery default logging configurable (disabled by default)
Nullable fields are now truly nullable (in the Kotlin and DDL sense)
Fix for SimmValuation integration test.
Workarounds applied to resolve Requery issues when sharing Transactional context.
Addressed PR review comments from MH.
Further updates following re-review by RP/MH
Further updates following additional PR review comments by RP
Minor update following additional PR review comments by RP
Optimised makeUpdate state processing code.
Resolved conflicts after rebase.
Additional Unit tests and bug fix for correct spending of multiple contract state types within a single transaction.
Required interface change to states() API to take a setOf (ContractStateClassTypes)
Minor code clean-up.
Re-write NodeVaultService consumed state makeUpdate function using SQL.
* Resolve conflict after rebase from master
2017-02-16 11:02:36 +00:00
Konstantinos Chalkias
111a2fac08
Change encoding between base58, base64, hex ( #242 )
...
Helper String extension functions to change encoding between base58, base64, hex
2017-02-15 17:50:15 +00:00
Ross Nicoll
71babc7019
Remove use of full parties from contract states
2017-02-15 11:43:13 +00:00
Konstantinos Chalkias
d132d9ed2e
Merge pull request #241 from corda/kostas-cryptoB
...
Useful ByteArray and String {en,de}coding extension functions
2017-02-14 15:56:22 +00:00
Konstantinos Chalkias
ab5c30c3da
Comment fixes + split some unit-tests
2017-02-14 14:23:38 +00:00
Konstantinos Chalkias
9e447bd22e
Comment fixes + allow mixed and lowercase to Hex
2017-02-14 13:34:03 +00:00
Konstantinos Chalkias
076f0a4435
Useful ByteArray and String {en,de}coding extension functions
2017-02-14 11:07:56 +00:00
Shams Asari
40dde555e7
Added --logging-level cmd line arg to set the logging level, and improved flow logging
2017-02-14 09:56:50 +00:00
Patrick Kuo
28e83d1e66
Example code for contract upgrade using RPC. ( #237 )
...
* Added missing out modifier to UpgradedContract class
* Added ContractUpgradeFlow.Instigator to whitelist in AbstractNode
* Added test for contract upgrade using RPC
2017-02-13 15:39:48 +00:00
Andrius Dagys
36052cbd63
Send a transaction for notarisation only if it has inputs or a timestamp
2017-02-13 14:54:46 +00:00
Andrius Dagys
a19dd55257
Pass a FilteredTransaction instead of a Signed transaction to a non-validating notary flow to preserve privacy.
...
This also means that the non-validating notary can service requests on the network without loading any custom plugins.
2017-02-13 14:54:46 +00:00
Ross Nicoll
98c30f6432
Remove CashFlow
...
Remove the CashFlow flow, replacing it with CashFlowCommand which can be used for the use-cases
with instructions passed around as an object.
2017-02-09 18:22:58 +00:00
Andrius Dagys
288d709668
Include Merkle tree root hash in FilteredTransaction
...
Remove no longer needed test. Make FilteredTransaction constructor private
2017-02-09 17:57:31 +00:00
Patrick Kuo
c054ffe719
Add support for contract upgrades ( #165 )
...
* Add support for contract upgrades
* Add interface for the upgraded contract to implement, which provides functionality for upgrading legacy states.
* Add shared upgrade command and verification code for it.
* Add DummyContractV2 to illustrate what an upgraded contract looks like.
* Add new functions to vault service to support upgrading state objects.
* Add contract upgrade flow
2017-02-09 17:14:31 +00:00
Shams Asari
50e1eb7b21
End flow if waiting for ledger commit and committer flow errors
2017-02-09 15:57:13 +00:00
Ross Nicoll
47d260625a
Add AnonymousParty superclass of Party
...
Add AnonymousParty superclass of Party in preparation for anonymising parties stored in
contract states.
Signed-off-by: Ross Nicoll <ross.nicoll@r3.com>
2017-02-09 11:37:32 +00:00
Konstantinos Chalkias
0287876987
minor changes in for/while loops. Sanity check for even number of nodes (in buildMerkleTree) has now been moved before entering the loop.
2017-02-08 16:23:50 +00:00
chalkido
c0bcbc381d
Extract Class pattern: Move MerkleTree (from MerkleTransaction) to its own class file inside core.crypto package.
2017-02-08 16:23:50 +00:00
Shams Asari
657cfa5d96
FlowException can be thrown from within UntrustworthyData.unwrap for better Java interop, and more checked exception annotations relating to flows
2017-02-06 16:00:52 +00:00
Ross Nicoll
1e5dd1843d
Update party match in vault service
...
Replaces the legacy name-only comparison in the vault service with a party comparison. `Party` now
has an equals method that only uses the owning key, and therefore this functions as expected.
2017-02-06 15:29:11 +00:00
Mike Hearn
5ad10b05fb
Make FlowLogicRef able to handle multiple constructors more elegantly (e.g. when invoking FinalityFlow directly via RPC).
2017-02-06 12:29:34 +01:00
Mike Hearn
cc20a10225
Improve the flow commit API.
...
Make FinalityFlow do more, and be used more consistently.
Add a new waitForLedgerCommit API that is intended to be used at the end of flows, or at any other point where a flow wants to wait for a transaction to finalise (but the finalisation flow is being done by someone else).
Update the docs a bit.
2017-02-06 12:29:34 +01:00
kasiastreich
45d8e0f76d
Tearoff fixes ( #78 )
...
* Move merkle building extension functions on wire tx to WireTransaction class.
* Add timestamp, notary, transaction type and signers to wire transaction id calculation.
* Change construction of MerkleTree from duplicating last node on a given level to padding leaves' list with zero hash to size of the nearest power of 2 - so we always have a full binary tree.
The problem was that it was possible to construct 2 different transactions with the same ids. Trick worked for txs having number of leaves that were not power of 2.
* Update tear-offs documentation and diagrams to reflect changes in construction of Merkle trees - padding with zero hashes and including all WireTransaction fields in id computation.
* Change in filtering API of WireTransaction for partial Merkle trees calculation.
Instead of many filtering functions over a transaction only one needs to be provided.
Additional change to check and verification of FilteredTransaction.
* IRS demo change. Make filtering function a protected method of RatesFixFlow class.
Comment on situation when capturing too much scope and connected problems with checkpointing.
Change oracle and tear-offs documentation.
2017-02-03 14:02:51 +00:00
Shams Asari
b86c80691e
FlowException serialised over RPC (subtypes are flattened), and improvement to startFlow RPC for correct exception handling
2017-02-03 11:21:10 +00:00
Ross Nicoll
bc9407d2c8
Correct network map cache tests
...
InMemoryNetworkMapCacheTest was not actually asserting that an expected exception was thrown, which
meant when earlier changes to the service changed the operation it wasn't caught. The service now
overwrites previous node if a new matching node is added, and this updates the test to follow that
design.
2017-02-02 16:01:10 +00:00
Ross Nicoll
2f9af7d7dc
Revert Party.Full in preference for a less invasive change
2017-02-02 13:47:32 +00:00
Andras Slemmer
4afd404db4
Address PR 207 comments
2017-02-02 11:44:18 +00:00
Andras Slemmer
de63f90745
Add isRegisteredWithNetworkMap RPC, poll in Driver, expose RPC proxy
2017-02-02 10:54:50 +00:00
Ross Nicoll
1b86ddfd6e
Replace Party with Party.Full
...
Replace Party with Party.Full as an interim step to introducing the Party.Anonymised class.
Signed-off-by: Ross Nicoll <ross.nicoll@r3.com>
2017-02-01 15:18:12 +00:00
Clinton
d376a902ad
Merge pull request #180 from corda/clint-webserversplit
...
Split webserver from node
2017-02-01 12:13:31 +00:00
Shams Asari
646ce8afe0
FlowException thrown by a flow is propagated to all counterparties
2017-01-31 13:30:33 +00:00
Ross Nicoll
e383752995
Adapt Party comparison to use owningKey
...
Change Party instances to be uniquely identified by the owning key, without taking into account name.
This requires that mock node key generation is reworked so that keys for services and the node itself
are distinct, otherwise the network map service cannot differentiate them.
Signed-off-by: Ross Nicoll <ross.nicoll@r3.com>
2017-01-30 15:46:51 +00:00
Joel Dudley
7b57cbe351
Adds signWithECDSA() to SignedTransaction for improved Java interop.
2017-01-30 14:27:27 +00:00
Clinton Alexander
3482452c8b
Added webserver to runnodes.
2017-01-27 14:15:08 +00:00
Clinton Alexander
537ffae113
Moved file uploading to RPC interface.
2017-01-27 14:13:58 +00:00
Clinton Alexander
ecfb762143
Nodes can start without web server. Webserver now uses full node configuration.
2017-01-27 14:12:19 +00:00
Ross Nicoll
1362a305c9
Expand details provided when erroring due to missing signatures in notary flow
...
Signed-off-by: Ross Nicoll <ross.nicoll@r3.com>
2017-01-25 16:15:40 +00:00
Andrius Dagys
8bc65999c4
Kryo: Remove unnecessary keypair generation ( #178 )
2017-01-25 15:02:02 +00:00
Shams Asari
052a660c1b
Making sure exceptions thrown while fibers are suspended are handled properly
2017-01-23 15:39:55 +00:00
S. Matthew English
b89b014d9a
unify references to notary in output
...
harmonize line 167 with earlier references on line 146 for example
2017-01-19 12:33:00 +01:00
Shams Asari
c4e3b258c7
Introducing Observable.toFuture() extension method
2017-01-17 12:56:59 +00:00
Ross Nicoll
2efd44d46b
Clean up semantics of composite clauses
...
This deprecates the existing composition clauses and adds new better named versions,
as well as changing 'AnyOf' to require at least one matching subclase (better matching
the name of the clause).
2017-01-17 11:34:21 +00:00
Thomas Schroeter
6b7edf5af6
Tx validation detect duplicate inputs ( #138 )
...
* Move duplicate input detection to transaction verification
Duplicate detection was previously part of the NotaryFlow.
2017-01-13 11:37:28 +00:00
Mike Hearn
ef6e9786a8
Cleanup: improve api docs on FlowLogic, make it clearer when stuff is considered internal, rename an obscurely named field.
2017-01-12 13:30:10 +01:00
Shams Asari
e589031d4b
Some clean up of the flow code
2017-01-11 16:33:59 +00:00
Ross Nicoll
c1d5e5c82e
Add functions for converting Amount to/from decimal
...
Add new functions for converting amounts to/from decimal representation. Also adds clarification that
the constructor which takes in a BigDecimal drops any fractional part.
Signed-off-by: Ross Nicoll <ross.nicoll@r3.com>
2017-01-11 14:08:07 +00:00
Clinton Alexander
e83c6e6b9d
Fixed TransactionSerializationTests.signWireTX by ensuring the signed transaction corruption always corrupts the signature.
2017-01-11 10:55:05 +00:00
Ross Nicoll
1fbad81773
Correct message when checking signing keys
...
The keys used to sign a command are tested for being a superset of the keys which own
the states, not for being an exact match (as the text previously suggested). This corrects
the message used if this requirement isn't met.
Signed-off-by: Ross Nicoll <ross.nicoll@r3.com>
2017-01-10 13:19:43 +00:00
Shams Asari
334b91faf0
Testing that a node can communicate with a distributed service it's part of
2017-01-09 17:21:51 +00:00
Mike Hearn
ecb460b698
Minor: small improvement to logElapsedTime (use the montonic clock and log even when an exception is thrown)
2017-01-06 16:39:01 +01:00
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
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
jamescarlyle
2c7d6fc053
Encumbrances implemented by reference to an index of an output state
2016-08-18 20:39:34 +01:00
jamescarlyle
ff1a1c4848
Encumbrances implemented by reference to an index of an output state
2016-08-18 19:41:17 +01:00
Clinton Alexander
43625308fa
Merged in clint-immutable-kryo-serialisers (pull request #274 )
...
Added immatuable serialisers to Kyro.
2016-08-17 14:50:33 +01:00
Ross Nicoll
a9ec3c253e
Merged in rnicoll-notify-tx (pull request #282 )
...
Add observable for transactions being stored
2016-08-16 14:50:55 +01:00
Mike Hearn
a451000623
Merged in mike-fix-artemis-threading (pull request #276 )
...
Messaging layer improvements
2016-08-12 19:07:54 +02:00
Mike Hearn
3d391ec8c2
Add unit tests for the resolve transactions protocol
2016-08-12 17:14:54 +02:00
Mike Hearn
709fe096b3
Minor: add a rootCause property to Throwable
2016-08-12 17:13:41 +02:00
Mike Hearn
b8dc755926
Minor: a couple of small usability improvements to TransactionBuilder
2016-08-12 17:13:41 +02:00
Mike Hearn
c60c333ba9
Minor: add a utility to OpaqueBytes
2016-08-12 17:13:41 +02:00
Ross Nicoll
a3d37a4d00
Require notary to be explicitely stated on each transaction
2016-08-12 15:51:04 +01:00
Ross Nicoll
a2dff5488f
Add debugging information in case of missing signatures
2016-08-12 13:51:34 +01:00
Ross Nicoll
17ae349f4d
Remove support for timestamp commands
2016-08-12 13:51:34 +01:00
Ross Nicoll
f0aa5a30d4
Deprecate existing timestamp infrastructure
2016-08-12 13:51:34 +01:00
Ross Nicoll
8346c58d4c
Add observable for transactions being stored
...
Add observable for transactions being stored, so the UI can show transactions as they're received, rather than being
limited to the summarised version available from the wallet service.
2016-08-12 11:58:17 +01:00
Ross Nicoll
162d19deeb
Change how clause verification is called
...
Change away from extending ClauseVerifier for contracts which support clauses, and explicitely call
clause verification code in the verify() function. This should make the flow of control easier to understand.
2016-08-11 15:39:11 +01:00
Mike Hearn
ac81d2aa32
Messaging layer improvements:
...
- Fix thread safety issues in ArtemisMessagingClient. The Artemis API isn't thread safe, but that isn't well documented and it will happily invoke callbacks in parallel.
- Add discussion of how we tackle threading currently in the codebase and make a few other improvements.
- Add a shutdown hook so we stop properly when the user presses ctrl-c
2016-08-11 14:16:05 +02:00
Clinton Alexander
10035860eb
Added immatuable serialisers to Kyro.
2016-08-10 16:17:14 +01:00
Clinton Alexander
9fb8061ba4
Replaced array with list to fix comparisons.
2016-08-10 11:10:38 +01:00
Andrius Dagys
8386100677
Remove BriefLogFormatter as the formatting is now handled by Log4j configuration. Introduce LogHelpers which now handles the custom log level setting for specific loggers.
2016-08-09 17:31:27 +01:00
rick.parker
d883b3f134
First working hand-rolled persistent wallet
...
First working Exposed-assisted persistent wallet
Cleaned up Exposed-based persistent wallet
Cleaned up warnings
Fixed up some generic types
Improved comments
Fix up TODO comment
Hikari and config integration
Fix existing tests
Clean up after looking at PR
Clean up commented out lines
Fix initialisation of IRS demo leaving database open
Fix up after rebase
Review feedback. Main change is lazy wallet iteration.
Rebased and incorporated config changes.
Use standardised config loading. Make wallet cash test use persistent wallet.
Added test to ensure wallet retains state in database across instance creation.
Tidy up whitespace and fix bug in test.
2016-08-09 16:41:32 +01:00
Mike Hearn
7357597501
Fix build. Delete a couple of dead parameters that escaped the last cleanup.
2016-08-09 16:25:35 +02:00
Mike Hearn
87047c8996
Minor: fix various inspector warnings and delete some dead code.
2016-08-09 11:55:40 +02:00
Mike Hearn
2bc77ae095
Minor: suppress bogus "cast never succeeds" compiler warning in whitelist manager unit test
2016-08-08 18:05:02 +02:00
Mike Hearn
da63ad57a4
Minor: run intellij "code cleanup" on all but javascript files.
2016-08-08 18:05:02 +02:00
Mike Hearn
8c00b5284d
Merged in mike-ledgertx-refactoring (pull request #264 )
...
Refactor the core transaction types
2016-08-08 18:02:32 +02:00
Mike Hearn
befff71252
Address review comments.
2016-08-08 11:44:59 +02:00
Matthew Nesbit
8e8a7ea60b
Separate WhitelistTrustManager registration from object creation, so that adding entries to the whitelist doesn't cause partial registration errors.
2016-08-05 14:52:30 +01:00
Mike Hearn
1f94335850
Address review comments.
2016-08-05 15:38:29 +02:00
Mike Hearn
25f65a60c7
Address review comments.
2016-08-05 14:04:07 +02:00
Mike Hearn
d61356ca9e
Don't let Kryo crawl into Rx subscriptions, and add a unit test to ensure this doesn't regress, as the rule is not intuitive.
2016-08-04 17:19:10 +02:00
Andras Slemmer
845f2bdd64
Merged in pubkey-base58-serialisation (pull request #257 )
...
Pubkey base58 serialisation
2016-08-04 13:58:57 +01:00
Clinton Alexander
b640524bf3
Merged in clint-auto-identity (pull request #261 )
...
Identity service now updates with the network map.
2016-08-04 13:29:54 +01:00
Andras Slemmer
4fb8a38122
core, node: Rename Stirng.toPublicKey to parsePublicKeyBase58
2016-08-04 12:14:40 +01:00
Andras Slemmer
a3cf85e778
core: Use toBase58String/toPublicKey in Kryo
2016-08-04 12:14:40 +01:00
Andras Slemmer
1cebae633d
core: Add utilities for parsing/serialising pubkeys as base58
2016-08-04 12:14:40 +01:00
Mike Hearn
701fc853ad
Refactor the core transaction types to improve clarity, simplify verification and prepare for sandboxing.
...
Changes include:
- LedgerTransaction is now much more central: it represents a fully resolved and looked-up tx, with the inputs available.
- TransactionGroup and TransactionForVerification are gone. There is a temporary TransactionForContract class for backwards
compatibility but it will also be gone soon.
- ResolveTransactionsProtocol is simplified, and now commits a tx to the database as soon as it's determined to be valid.
- ServiceHub is now passed in more consistently to verification code, so we can use more services in future more easily e.g. a sandboxing service.
- A variety of APIs have been tweaked or documented better.
2016-08-04 13:05:50 +02:00
Mike Hearn
c2aee2d4e8
Minor: Replace MockServices with a new class that's in core instead of node, old class becomes MockServiceHubInternal.
2016-08-04 12:53:09 +02:00
Mike Hearn
1c3379f508
Testing: make the ledger DSL take a ServiceHub rather than individual services.
...
It defaults to a fresh UnitTestServices(). Also clear up a few other areas.
2016-08-04 12:52:02 +02:00
Mike Hearn
dd53acfb64
Testing: add a UnitTestServices class which implements ServiceHub. This is a lighter weight version of MockServices, and is intended to assist in the testing of core contract code, vs MockServices which can go on to be used only from the node module.
2016-08-04 12:52:01 +02:00
Clinton Alexander
b1c1b7f4b4
Review changes - merged two observables into one.
2016-08-03 16:49:37 +01:00
Clinton Alexander
72c4c2e5f7
Added comments.
2016-08-02 17:27:18 +01:00
Clinton Alexander
9ef1bf0355
Identity service now updates with the network map.
2016-08-02 17:08:46 +01:00
Ross Nicoll
9672168f64
Add DirectRequestMessage
...
Add DirectRequestMessage for addressing specific endpoints rather than parties.
2016-08-02 13:29:23 +01:00
Mike Hearn
5df1caf0ca
Minor: couple of tiny reformattings.
2016-08-01 16:42:57 +02:00
Mike Hearn
daff65f220
Minor: add infix utilities for overflow checked arithmetic.
2016-08-01 16:42:57 +02:00
Mike Hearn
0662798b0f
Introduce some new cryptographic utility functions
...
1. Function for converting raw entropy into an EDDSA key pair. This is useful for unit tests when you don't want a random key but would rather be able to identify it from the logs by eyesight, and will be useful later also when implementing deterministic key derivation.
2. Function that can format any collection of public keys using the bitcoin-style base58 form.
3. A dummy NullSignature object, again, useful for tests when you don't want to provide a real signature.
Then set a handful of dummy unit testing keys to predictable/fixed values.
2016-08-01 16:42:56 +02:00
Mike Hearn
b40fee1512
Allow for easier conversion from Amount<Issued<T>> to Amount<T> and de-issuerify a few places.
2016-08-01 16:42:56 +02:00
Mike Hearn
309159da14
Better toString for Amount post-issuer refactoring.
2016-08-01 16:09:22 +02:00
Ross Nicoll
e1d1aed541
Add commodity contract and test obligations can be settled for it
2016-08-01 14:20:04 +01:00
Ross Nicoll
f72e223f3b
Add Commodity class
2016-08-01 14:20:04 +01:00
Ross Nicoll
cf4bb0c9af
Break down topic into component parts
...
Break down what is referred to as "topic" of a message into its component parts. This splits the
general topic from the session ID, so it's clear where a session ID is provided, and whether any
given topic string includes a session ID or not.
2016-07-29 14:24:46 +01:00
Clinton Alexander
7d39a101d4
Merged in COR-276 (pull request #239 )
...
Added Jacoco code coverage to gradle.
2016-07-29 13:29:47 +01:00
Clinton Alexander
8d3d9d6572
Removed inline that has Kotlin specific compile bug with specific Gradle configurations.
2016-07-29 13:23:33 +01:00
Richard Green
4a3da67c6c
Merged in rg_trade_finance_experimental (pull request #250 )
...
Rg_trade_finance_experimental
2016-07-29 10:41:00 +01:00
Matthew Nesbit
a462bb1d6a
Incorporate comments from PR
2016-07-28 16:30:53 +01:00
Richard Green
e3f36a4942
Modified tests for new DSL
2016-07-28 15:57:09 +01:00
Matthew Nesbit
235497e0f4
Convert long lived services supporting protocol listeners to plugins
2016-07-28 13:39:12 +01:00
Matthew Nesbit
09c795e341
Merge remote-tracking branch 'remotes/origin/master' into mnesbit-cor-261-artemis-over-ssl
2016-07-28 13:28:31 +01:00
Clinton Alexander
5410f8b228
Merged in demowebui (pull request #230 )
...
Added an IRS demo web interface
2016-07-28 13:19:32 +01:00
Matthew Nesbit
7d5ee8ba08
Create MessageServiceInternal interface to allow NetworkMapCache to register addresses with the network service.
...
Activate WhitelistTrustManager for now to secure the TLS messaging.
2016-07-28 11:25:57 +01:00
Clinton Alexander
aebdc86225
Reverted change from previous commit.
2016-07-28 09:17:49 +01:00
Clinton Alexander
188fc29436
Cleaned up build.gradle files.
2016-07-28 09:17:49 +01:00
Clinton Alexander
ffc3c8f421
Added Jacoco code coverage to gradle.
2016-07-28 09:17:49 +01:00
Ross Nicoll
d54beca77e
Add wallet service for notifying remote nodes of transactions
2016-07-27 17:40:52 +01:00
Matthew Nesbit
5a20b67ce2
Clean up comments
2016-07-27 15:45:32 +01:00
Matthew Nesbit
e3aef96b09
Merge remote-tracking branch 'remotes/origin/master' into mnesbit-cor-261-artemis-over-ssl
...
# Conflicts:
# build.gradle
2016-07-27 15:43:01 +01:00
Andrius Dagys
e8c84867cf
Merged in andrius-logging (pull request #240 )
...
Enable logging to file
2016-07-27 14:18:24 +01:00
Matthew Nesbit
772ce28a81
remove extra space
2016-07-26 15:42:11 +01:00
Matthew Nesbit
9a9df847af
Merge remote-tracking branch 'remotes/origin/master' into mnesbit-cor-261-artemis-over-ssl
2016-07-26 15:25:58 +01:00
Matthew Nesbit
fea452d9ac
Change to a ConcurrentHashSet whitelist so that we don't hold any locks across the DNS lookup.
2016-07-26 14:40:30 +01:00
Clinton Alexander
e81d8b9928
Removed reference from progress tracker output to improve output readability.
2016-07-26 10:43:41 +01:00
Matthew Nesbit
cb8876678e
Address comments from code review. Also, make whitelist registration synchronized.
2016-07-26 10:35:59 +01:00
Matthew Nesbit
ed52f2b35d
An implementation of a Security Provider that replaces the default TrustManager with one that checks certificate names against a manually controlled white list. This isn't activated anywhere yet, but the network map should register the valid node dns names.
2016-07-26 10:35:58 +01:00
Matthew Nesbit
e5777fd999
Fetch KeyStore passwords from NodeConfiguration
2016-07-26 10:35:57 +01:00
Matthew Nesbit
4c08141ce3
Tidy up based upon comments on PR
2016-07-26 10:35:56 +01:00
Matthew Nesbit
c7bc5ae652
Correct usage of hostName and cannonicalHostName in certificates to ensure the SSL certificates validate on Linux
2016-07-26 10:35:55 +01:00
Matthew Nesbit
00f897d58d
Add X509 creation and manipulation utilities to core and enable SSL in ArtemisMQ
2016-07-26 10:35:54 +01:00
Matthew Nesbit
0d68523f5c
Validate protocol type and args via whitelist ahead of class loading. Also, push this work into another method on the Factory.
2016-07-25 16:35:45 +01:00
Clinton Alexander
93f4440c14
Moved IRS web folder up a level. Added support for static serving plugins.
2016-07-25 10:30:30 +01:00
Andrius Dagys
e7ff5b8f6f
Typo fix
2016-07-22 17:31:03 +01:00
Andrius Dagys
2142bd1d8a
Added Log4j bindings for SLF4J. Test log output is redirected to the console, and demo output is now additionally stored in a rolling log file.
2016-07-22 16:15:00 +01:00
Andrius Dagys
c442cd01a7
Merged in andrius-cleanup-tweaks (pull request #208 )
...
Remove the "verify correct notary has signed" check from TwoParty protocols
2016-07-18 10:40:25 +01:00
Ross Nicoll
c32af56b41
Rebuild commercial paper contracts using clauses
2016-07-13 16:55:18 +01:00
Ross Nicoll
cba3aab96e
Rebuild asset contracts using clauses
2016-07-13 13:08:23 +01:00
Ross Nicoll
254592dc54
Move protocols into correct package
2016-07-12 18:42:00 +01:00
Matthew Nesbit
3a5399f878
Remove TODO associated with the fact that the ZIP filesystem does not specify the Path Separator character. Add a test to check access through forward or backward slashes is consistent.
2016-07-12 13:43:44 +01:00
Andras Slemmer
d7cc34c9a5
all: Full stops in comments!
2016-07-11 17:58:53 +01:00
Mike Hearn
e28ecae8c0
Address review comments
2016-07-11 18:47:24 +02:00
Mike Hearn
2be91ff516
Minor: tighten variance when possible (via the Inspector)
2016-07-11 18:15:28 +02:00
Mike Hearn
0a2f313d40
Minor: run IntelliJ 'code cleanup'
2016-07-11 18:15:28 +02:00
Mike Hearn
41d092a169
Minor: optimize imports
2016-07-11 18:15:28 +02:00
Mike Hearn
6b7580c977
Minor: fix compiler warnings.
2016-07-11 18:15:28 +02:00
Mike Hearn
cc22810b09
Testing cleanup:
...
- Move code out of ambiguously named TestUtils files (there were three). Sometimes it's simpler to just put these things into the contract source files directly.
- Remove JavaTestHelpers objects (there were three), in favour of just giving the top level kotlin file class better names.
- Misc other small tweaks and cleanups.
2016-07-11 16:22:02 +02:00
Ross Nicoll
6b775ebd4d
Replace named timestamping authority with notary
...
As the timestamping authority is now always the notary service, contracts should
no longer be using name-based lookup of the timestamping authority (as this will
generally be wrong). This introduces a new "timestamp" property on a transaction,
and updates most contracts to refer to it.
In some cases (IRS, CommercialPaper) there are transactions with no input states
to derive notary from, that use timestamps. In these cases a notary is specified
in the command.
2016-07-11 14:54:36 +01:00
Andras Slemmer
d0903ae265
docs: Rename test tutorial subtitle
2016-07-11 14:25:27 +01:00
Andras Slemmer
e13a95857a
core: Remove colons from @param comments
2016-07-11 14:25:27 +01:00
Andras Slemmer
4324e33fea
testdsl: Removed R type parameter, unify verifies() interface
2016-07-11 14:25:27 +01:00
Andras Slemmer
9bb8439dc3
testdsl: Add failsWith to Ledger
2016-07-11 14:25:27 +01:00
Andras Slemmer
cd0299f650
testdsl: Javadoc comments
2016-07-11 14:25:27 +01:00
Andras Slemmer
3d885eb928
testdsl: Clean up TestUtils.kt
2016-07-11 14:25:27 +01:00
Andras Slemmer
c3060c11c0
testdsl: Use and expose TransactionBuilder in TestTransactionDSLInterpreter
2016-07-11 14:25:27 +01:00
Ross Nicoll
1ae8ada999
Add support for clause based contract verification
2016-07-08 11:17:24 +01:00
Matthew Nesbit
eee049d66b
Add cacheing to ServiceLoader scanning of plugins and add a TODO on whitelisting
2016-07-08 10:38:23 +01:00
Matthew Nesbit
1fb4371de9
Make the IRS Demo web api an api plugin (scanned from the Node classpath) and use the same permission checking entry point for web api's as the scheduler.
...
Fix whitespace
Change ProtocolLogicRefFactory to use Map<String, Set<String>> as whitelist definition
2016-07-08 10:34:30 +01:00
Mike Hearn
ad3e9be1c8
Add a version number to gradle and allow "gradle install" to install the core module to the local Maven repository.
2016-07-07 13:59:55 +01:00
Andrius Dagys
b498928f75
Remove the "verify correct notary has signed" check. This is no longed necessary as the required notary key is added to the "signers" list during transaction construction. We have general validation rules that check the correct notary was included in the signers list, and that we have signatures for all "signers".
2016-07-07 13:22:30 +01:00
Mike Hearn
bbc5c2e981
Merged in mike-july-dependency-upgrades (pull request #200 )
...
Upgrade dependencies, July edition.
2016-07-06 16:25:52 +01:00
Mike Hearn
2e3f689fd3
Minor: fix PublicKey.toShortString after the switch to ed25519
2016-07-06 16:04:10 +01:00
Mike Hearn
6fb7e59b91
Upgrade dependencies, July edition.
2016-07-06 13:56:22 +01:00
Andras Slemmer
0cf54d1c1f
test dsl: Comment full stops
2016-07-06 13:25:08 +01:00
Andras Slemmer
26d8973746
test dsl: Add TODO on type synonyms
2016-07-06 13:25:08 +01:00
Andras Slemmer
f177b1ffaa
test dsl: LastLineShouldTestForVerifiesOrFails->EnforceVerifyOrFail
2016-07-06 13:25:08 +01:00
Andras Slemmer
e31b769fef
test dsl: Dsl->DSL, add top-level transaction primitive, add ledger-embedded signAll, other cosmetics
2016-07-06 13:25:08 +01:00
Andras Slemmer
e3d6f51049
contracts, core, node: Port TransactionForTest tests to new DSL
2016-07-06 13:25:08 +01:00
Andras Slemmer
a27f195b4f
core: Add LastLineShouldBeVerifiesOrFails, fix attachment primitive, Java interop
2016-07-06 13:25:08 +01:00
Andras Slemmer
f4a6a43aa6
contracts, core: Port CommercialPaperTests, IRSTests, ObligationTests, TransactioGroupTests
2016-07-06 13:25:08 +01:00
Andras Slemmer
cb47e00feb
core: Add convenience input(), remove TransactionGroupDSL
2016-07-06 13:25:08 +01:00
Andras Slemmer
9b36df607e
core: Remove binding of State type in test dsl
2016-07-06 13:25:08 +01:00
Andras Slemmer
bf4272b64a
core: transaction/ledger DSL interfaces and implementation for tests
2016-07-06 13:25:08 +01:00
Shams Asari
5c0e7fbbf2
Moved topic parameter from send/receive methods to a ProtocolLogic property
2016-07-05 15:12:25 +01:00
Shams Asari
a02263937c
send and sendAndReceive use Party for the destination
2016-06-30 12:04:39 +01:00
rick.parker
5271882dcd
Event scheduling and docs for event scheduling
2016-06-30 08:51:52 +01:00
Ross Nicoll
b3af0ce218
Merged in rnicoll-upgrade-infrastructure (pull request #193 )
...
Infrastructure ahead of contract upgrade support
2016-06-29 17:26:44 +01:00
Ross Nicoll
11eff398a0
Minor: Typo (classfiles -> class files)
2016-06-29 17:16:47 +01:00
Ross Nicoll
c767638127
Move DummyContract.State into its own file
...
DummyContract.State isn't actually used by the DummyContract any more, so shouldn't
be part of that contract class.
2016-06-29 17:16:46 +01:00
Ross Nicoll
779034691e
Add AbstractTransactionSubstitutionProtocol
...
Abstracts the NotaryChangeProtocol to be extensible for other use-cases.
2016-06-29 17:16:46 +01:00
Andrius Dagys
dd9a653ab4
TransactionBuilder: added a comment explaining the default notary parameter purpose
2016-06-29 16:32:29 +01:00
rick.parker
cfe54c5f21
Fix up bug in attachment Zip file processing when path might not be normalised to start with
2016-06-29 09:10:18 +01:00
Clinton Alexander
9d4f75f241
Improved readability and brevity of hasEmojiTerminal.
2016-06-28 14:03:32 +01:00
Clinton Alexander
bef4258430
Fixed Emoji crash where LANG envvar is not defined in particularly exotic setups (msys bash in Powershell for example)
2016-06-28 14:03:32 +01:00
Andras Slemmer
47decb3bbe
coree: Expose MOCK_IDENTITY_SERVICE as MockIndentityService instead of IdentityService
2016-06-24 18:33:53 +01:00
Andras Slemmer
5973725186
core: Make top-level side-effecting getters lazy instead
2016-06-24 18:33:21 +01:00
Andras Slemmer
10d8f5cd06
core: Add comment on how to define globals for the Java test DSL
2016-06-24 16:37:43 +01:00
Andras Slemmer
bc326660a3
contracts, core: Fix static init cycle issue of JavaTestHelpers
2016-06-24 16:37:43 +01:00
Andras Slemmer
341adafd3a
contracts, core: Rename Java to JavaTestHelpers
2016-06-24 16:37:43 +01:00
Andras Slemmer
040e51ec12
contracts, core: Expose top-level DSL values/functions to Java by wrapping them in an object
...
core: Add overloads for convenient Java interop
contracts, core: Uniform Java interop for tests, use camelCase
2016-06-24 16:37:43 +01:00
Andras Slemmer
bec1ab7a7e
core: Add javadoc on how to be Java-compatible with the Kotlin DSL
2016-06-24 16:37:43 +01:00
Andras Slemmer
6109065dee
core: Use LastLineShouldTestForAcceptOrFailure trick on rejects()
2016-06-24 16:37:43 +01:00
Andras Slemmer
2d8d5571c2
core: Add more info to ClashingThreads exception
2016-06-23 18:06:57 +01:00
Andras Slemmer
57270c8c66
core: Add nonce to DummyLinearState
2016-06-23 18:06:57 +01:00
Andras Slemmer
6bab0eb79f
core: Add comment about Wallet.states
2016-06-23 18:06:57 +01:00
Andras Slemmer
f233780e08
core: Add DummyLinearState and AlwaysSucceedContract for testing
2016-06-23 18:06:57 +01:00
Andras Slemmer
2c7b86fee2
core: Add LinearState thread clash check to InMemoryWalletService.notifyAll
2016-06-23 18:06:57 +01:00
Andras Slemmer
3cc0cef9c5
core: Typo
2016-06-23 18:06:57 +01:00
Andrius Dagys
aaeb99ac25
Validating notary: check for missing signatures. The notary can only sign if all other signatures are present
...
Please enter the commit message for your changes. Lines starting
2016-06-23 16:15:14 +01:00
Ross Nicoll
99ae145edc
Minor: Preparation work for Obligation contract
2016-06-23 13:17:22 +01:00
Andrius Dagys
e5e5383e71
Minor formatting and typo fixes
2016-06-22 14:36:01 +01:00
Ross Nicoll
d24ec06b40
Add netting support structures
...
Add NetType enum for use in contracts which deal with netting
Add BilateralNettingState interface
Add support for more complex issued things
2016-06-22 14:30:06 +01:00
Mike Hearn
7ee6bd05ce
Refactor the wallet code:
...
- Rename NodeWalletService to InMemoryWalletService and move into the core module where it's available for unit testing.
- Make a new NodeWalletService that just inherits from InMemoryWalletService and doesn't customise it at all, for now.
- Take the cash specific functionality out of Wallet and into an extension property in the Cash contract (this compiles as CashKt.getCashBalance(wallet) for java users).
- Return the generated states in the fillWalletWithTestCash function.
2016-06-22 14:49:52 +02:00
Mike Hearn
f3d4639059
Testing: make the WalletFiller code a file-level singleton and fillTestWithCash an extension method. For Java users not much changes, the class is still called WalletFiller and the signature remains the same. Re-order some arguments to make it easier to use when accepting the defaults.
2016-06-22 14:49:52 +02:00
Andrius Dagys
9f1a4e9254
Update docs relating to the multiple notary support work
2016-06-22 13:18:00 +01:00
Mike Hearn
39186c7e99
Minor: correct an API doc in AttachmentStorage
2016-06-22 13:46:57 +02:00
Mike Hearn
749949669f
Minor: Make a few class field names and constructor layouts more consistent.
2016-06-22 13:46:57 +02:00
Mike Hearn
d084f76594
Minor: Remove a no longer relevant kdoc line
2016-06-22 13:46:57 +02:00
rick.parker
717a5ab197
Break out message handler changes
...
Special serializer for kotlin object definitions
2016-06-22 09:50:15 +01:00
Richard Green
859ee053d2
Merged in rg_todo_financetypes_242 (pull request #145 )
...
Changed DateOffset to be an integer instead of enum. Usages and examples also changed. Also renamed to fixingPeriodOffset
2016-06-21 18:18:44 +01:00
Richard Green
6b80530ac6
Changed DateOffset to be an integer instead of enum. Usages and examples also changed. Also renamed to fixingPeriodOffset
...
Renamed fixingPeriod -> fixingPeriodOffset in the .json files
2016-06-21 18:17:39 +01:00
rick.parker
3ea1090446
Support for moving TestClock to just beyond a specific instant (helpful for schedule related testing)
...
Added TimeWindow to PR
Review feedback
Review feedback
2016-06-21 16:49:25 +01:00
Ross Nicoll
93e9d0459c
Add custom serialiser for NonEmptySet
2016-06-20 16:08:17 +01:00
Ross Nicoll
723e610dfc
Rename verifyMoveCommand()
...
Rename verifyMoveCommands() to verifyMoveCommand() to represent that move commands must
be singular within a transaction.
2016-06-20 16:08:16 +01:00
Ross Nicoll
af53a52b06
Add common Issue and Move commands
...
* Add common Issue command to encourage presence of a nonce value when issuing state objects.
* Add common Move command for contracts which support being moved in order to fulfil other contracts.
2016-06-20 16:08:16 +01:00
Andras Slemmer
32b593671b
Merged in remove-warnings (pull request #169 )
...
Remove warnings
2016-06-20 14:45:04 +01:00
Ross Nicoll
8f57213270
Merged in rnicoll-force-record-tx (pull request #152 )
...
Require all transactions are added via the ServiceHub.recordTransaction() function
2016-06-20 14:25:20 +01:00
Ross Nicoll
a5e07c2600
Require all transactions are added via the ServiceHub.recordTransaction() function
2016-06-20 14:24:55 +01:00
Andras Slemmer
878a683823
core: Remove warnings
2016-06-20 14:16:13 +01:00
Andras Slemmer
c9cb024bb5
Merged in use-urandom-2 (pull request #166 )
...
Use urandom 3
2016-06-20 14:15:03 +01:00
Andras Slemmer
a7419b116d
Add newSecureRandom() that uses a non-blocking SecureRandom provider on Linux
2016-06-20 14:11:03 +01:00
Mike Hearn
d4674a9d8f
Add a comment to ContractState describing the intended constraints design.
2016-06-20 15:00:16 +02:00
Andrius Dagys
30ca340b6e
Refactored NotaryChangeProtocol and tests: moved the proposal verification step into the protocol.
...
Added another proposal verification step in the NotaryChangeProtocol.
Added the cause exception message to the 'notary change refused' error.
2016-06-17 15:05:35 +01:00
Andrius Dagys
0a5b7ace35
Made TransactionBuilder abstract. Every transaction type now needs to implement and provide its own Builder. This is required since for specific types we need to run different logic when adding new items to the transaction. For example, when adding a new input state to a transaction of type NotaryChange we need to add all of the states participants to the signers list.
2016-06-17 15:05:35 +01:00
Andrius Dagys
9958b5c603
Added 'signers' property to the transaction data models. Signers holds the list of all public keys that need to be signed for (command keys and additional ones such as notary).
...
Removed Notary & ChangeNotary commands, keys to be signed for are added to the signers list during transaction build phase.
2016-06-17 15:05:35 +01:00
Andrius Dagys
70495a021e
Introduce TransactionState, which wraps ContractState and holds the notary pointer.
...
Remove notary from ContractState.
Introduce TransactionType, which specifies custom validation logic for a transaction.
2016-06-17 15:05:35 +01:00
Andrius Dagys
3b1e020082
Extended the data model so that every state has to define a set of 'participants' - parties that are able to consume that state in a valid transaction.
...
Added protocol for changing the notary for a state, which requires signatures from all participants
2016-06-17 15:05:35 +01:00
Andras Slemmer
0c325c31a2
Revert "Merged in use-urandom-2 (pull request #159 )"
...
This reverts commit 1a1ed3b9e6
, reversing
changes made to 09e2e49d44
.
2016-06-17 14:12:19 +01:00
Andras Slemmer
1a1ed3b9e6
Merged in use-urandom-2 (pull request #159 )
...
Use /dev/urandom try no.2
2016-06-17 13:36:23 +01:00
Andras Slemmer
f9d1c54195
core: Add comments explaining the never-to-be-removed deprecated functions
2016-06-17 13:27:35 +01:00
Andras Slemmer
1f171a1ece
Revert "core: Removed unused deprecated test functions"
...
This reverts commit 1c09ff86ed6803fcda6c76b6f5e323621c4b0e06.
2016-06-17 13:27:35 +01:00
Andras Slemmer
eaf37e2e7a
core: make comment javadoc style
2016-06-17 13:27:35 +01:00
Andras Slemmer
643d3bab2b
core: force transaction tests to check for accept/fail
2016-06-17 13:27:35 +01:00
Andras Slemmer
f0d74d0859
core: Removed unused deprecated test functions
2016-06-17 13:27:35 +01:00
Andras Slemmer
ea7f9177d4
core: make newSecureRandom() a one-liner
2016-06-17 13:07:25 +01:00
Andras Slemmer
481d2f7151
core: use newSecureRandom() instead of SecureRandom.getInstanceStrong()
2016-06-17 13:07:25 +01:00
Andras Slemmer
6229e39b42
core: Add newSecureRandom() that uses a non-blocking SecureRandom provider
2016-06-17 13:07:25 +01:00
Andras Slemmer
f06487aa4c
Merged in sort-of-incremental-quasarScan (pull request #154 )
...
Sort of incremental quasarscan
2016-06-17 10:38:39 +01:00
Shams Asari
7f3458803c
Protocols can use the serviceHub lazily in their constructors
2016-06-17 10:30:25 +01:00
Andras Slemmer
dc5da8e1ad
build: use QuasarPlugin instead of copypasta
2016-06-17 10:16:46 +01:00
Andras Slemmer
2663a6390e
core: Kryo extension methods for reading/writing ByteArrays prefixed with their sizes
2016-06-16 17:03:44 +01:00
Andras Slemmer
5b4c4f167d
core: .equals() -> ==
2016-06-16 17:03:44 +01:00
Andras Slemmer
2b4ebd4f09
core: use optimizedPositive for size serialization
2016-06-16 17:03:44 +01:00
Andras Slemmer
cd91c6a0e7
core: add serialization test for keypairs
2016-06-16 17:03:44 +01:00
Andras Slemmer
af3d87803d
core: serialize bytearray sizes instead of relying on static sizes
2016-06-16 17:03:44 +01:00
Andras Slemmer
376b73b823
core: switch to static size bytearray serialization of keypairs
2016-06-16 17:03:44 +01:00
Andras Slemmer
22567d11b5
core: implement custom serializers for ed25519 keypairs
2016-06-16 17:03:44 +01:00
Andras Slemmer
1fe283c113
core: switch to ed25519
2016-06-16 17:03:44 +01:00
Andras Slemmer
9930e8d5c7
core: add net.i2p.crypto:eddsa dependency
2016-06-16 17:03:44 +01:00
Rick Parker
512e304bf1
Merged in remove-commented-out-resolve-tx-proto (pull request #156 )
...
Remove commented out ResolveTransactionsProtocol call as it is not required
2016-06-16 16:19:03 +01:00
Ross Nicoll
ad72f3e48f
Add issuer to cash amounts
...
Add issuer of a cash when referring to amounts of cash (except for the very few cases where
the issuer is not important, such as when referring to aggregated totals across a set of
issuers). Replaces CommonCashState with TokenDefinition, as a more accurate reflection of
what the class represents.
2016-06-16 15:05:49 +01:00
rick.parker
cae39332bf
Remove commented out ResolveTransactionsProtocol call as it is not required
2016-06-16 13:15:37 +01:00
Ross Nicoll
f831ffdf3d
Add tests for TransactionGraphSearch
2016-06-15 16:21:53 +01:00
Shams Asari
aa153be6f0
moved methods in ChildrenProgressTrackers into ProgressTracker
2016-06-14 16:42:42 +01:00
Richard Green
2ce0dce0aa
.
2016-06-14 11:28:58 +01:00
Richard Green
86203709c0
Payment dates now are calculated as an offset to the period end date
2016-06-13 19:00:27 +01:00
rick.parker
73cbab0084
Pull out Wallet observable into it's own branch
...
Review feedback
Review feedback
Apply feedback from previous PR
Apply feedback from previous PR
Apply feedback from previous PR
PR feedback
PR feedback
PR feedback
2016-06-10 17:16:56 +01:00
Shams Asari
2365f9bca5
Persisting transactions to disk
2016-06-08 10:15:14 +01:00
rick.parker
97e04ba7d0
Fix registration of services due to Kryo not following synthetic fields by default
...
Review feedback
2016-06-07 16:29:59 +01:00
Andrius Dagys
21f53a7d3e
Revert "Revert "Merged in validating-notary (pull request #123 )""
...
This reverts commit e64145991e
.
2016-06-07 13:53:00 +01:00
Ross Nicoll
f4f0e160d2
Genericise Cash contract to support non-Currency things
...
Split the verification and commands for the Cash contract into a new AbstractCashLike
class, and make Cash a concrete implementation of that class, specialised for dealing
with Currency as the underlying token.
2016-06-07 13:49:26 +01:00
Andrius Dagys
e64145991e
Revert "Merged in validating-notary (pull request #123 )"
...
This reverts commit d9f4e4da2e
, reversing
changes made to 654dc3f60a
.
2016-06-07 12:29:27 +01:00
Andrius Dagys
c45bc0df20
Split up Notary protocol into Client and Service parts. The Service protocol can be extended to provide additional transaction processing logic, e.g. validation.
...
Implemented a Simple and Validating Notary services.
2016-06-07 10:58:34 +01:00
Shams Asari
654dc3f60a
Resuming from checkpoints now working - seller (but not buyer) in trader demo can be restarted
2016-06-06 17:49:40 +01:00
rick.parker
8122e35a8a
Have ServiceHub entries implement SerializeAsToken so they are not copied into protocol checkpoints.
2016-06-06 16:55:46 +01:00
Ross Nicoll
d7b367965f
Genericise Amount class
...
Make the Amount class generic so it doesn't have to represent a quantity of a
currency, but can handle other things such as assets as well, or extended detail
(for example a currency-issuer tuple).
2016-06-01 11:58:13 +01:00
Ross Nicoll
f7c0756526
Add a dummy test to NonEmptySetTest.Guava
...
Add a dummy test so that when IntelliJ (incorrectly) scans NonEmptySetTest.Guava
looking for tests, it finds one and doesn't complain.
2016-05-25 10:17:02 +01:00
Ross Nicoll
e3727a1de6
Merged in rnicoll-base58-tests (pull request #113 )
...
Port Base58Test to Kotlin
2016-05-24 18:20:56 +01:00
Rick Parker
570dc38423
Merged in cor-133-clock-helpers (pull request #112 )
...
MutableClock for testing, simulation and demos plus associated utilities
2016-05-24 17:58:37 +01:00
Ross Nicoll
4744740913
Add NonEmptySet
...
Add a new set-like collection which is constrained to ensure it's never
empty.
2016-05-24 15:39:24 +01:00
Ross Nicoll
40b6b0d186
Port Base58Test to Kotlin
2016-05-24 14:20:53 +01:00
rick.parker
f8e610aa71
Re-apply changes
2016-05-24 09:41:00 +01:00
Matthew Nesbit
63a5fd1b9e
Add com.r3corda to all namespaces.
2016-05-23 14:53:56 +01:00
Matthew Nesbit
d1e8d15d9d
Merge branch 'mnesbit-cor-174-refactor-namespaces' of https://bitbucket.org/R3-CEV/r3prototyping into mnesbit-cor-174-refactor-namespaces
...
# Conflicts:
# core/src/main/kotlin/core/testing/TestUtils.kt
2016-05-20 16:56:41 +01:00
Matthew Nesbit
1d5f409c66
Remove unnecessary .Companion statements brought in during refactoring.
2016-05-20 16:43:03 +01:00
Matthew Nesbit
60ff42dd30
Move test to core as part of tidy up.
2016-05-20 16:43:02 +01:00
Matthew Nesbit
69cba98ddc
Push unit tests that needed some contract functionality into core by embedding the minimal contract support needed.
2016-05-20 16:43:02 +01:00
Matthew Nesbit
f6f56797ce
Refactor code into clear core, contracts and node namespaces. Move services into clear implementation and api sides. Push unit tests down to lowest level of dependency hierarchy possible.
2016-05-20 16:42:59 +01:00
Matthew Nesbit
a556dfb17d
Push internal subsystems into node
2016-05-20 16:42:56 +01:00
Matthew Nesbit
06f4c6ab5b
Move test to core as part of tidy up.
2016-05-19 14:10:25 +01:00
Matthew Nesbit
097a520e05
Push unit tests that needed some contract functionality into core by embedding the minimal contract support needed.
2016-05-19 14:01:38 +01:00
Matthew Nesbit
01e9536444
Refactor code into clear core, contracts and node namespaces. Move services into clear implementation and api sides. Push unit tests down to lowest level of dependency hierarchy possible.
2016-05-19 10:59:10 +01:00
Matthew Nesbit
c8130581a9
Push internal subsystems into node
2016-05-19 10:59:07 +01:00
rick.parker
041aab5af0
Serialization tokenization support for large objects (e.g. entries in ServiceHub)
2016-05-18 10:25:50 +01:00
Andrius Dagys
e8ae3be38d
TwoPartyDealProtocol fix: don't check Notary identity if the transaction has no inputs
2016-05-18 10:06:30 +01:00
Andrius Dagys
4affe7271b
Seller: Verify that the Notary signature received from the Buyer is by the correct Notary
2016-05-17 12:14:14 +01:00
Andrius Dagys
f363439a6c
NotaryException now provides the specific error information
2016-05-17 12:14:14 +01:00
Matthew Nesbit
058ac986bd
Move contracts base files to namespace to make api aspect clearer in includes.
...
Move Party to core.crypto as Party is closely aligned with the signing and used in code areas unrelated to the contract code.
2016-05-14 13:47:07 +01:00
Andrius Dagys
422d65cc54
Rearranging interfaces and implementations. Notary fix for the cash tests.
2016-05-13 16:34:25 +01:00
Andrius Dagys
2c422bebd3
Added noneOrSingle extension method, which returns a single element, null if no elements found and throws if more than one element found
2016-05-13 16:17:50 +01:00
Andrius Dagys
fa3f7e7fa6
Added a basic Notary service with protocol for signing transactions
2016-05-13 16:17:50 +01:00
Rick Parker
539e23a0b1
Merged in plt-141-moves-only-part-3 (pull request #93 )
...
File and interface moves to core module for scheduler
2016-05-13 15:17:32 +01:00
Ross Nicoll
25e2c4bc4d
Add issuance definition for cash contract
...
Add issuance definition for cash contract, as well as common interfaces to support later
extensions. The issuance definition encapsulates the core values for state objects when
issued, and essentially acts as the Ricardian contract for Corda states.
2016-05-13 14:55:12 +01:00
rick.parker
030f12876f
Remove copyright notices from a couple of files
2016-05-13 14:12:28 +01:00
rick.parker
1ce8a64938
File and interface moves to core module
2016-05-13 14:03:28 +01:00
Rick Parker
3ee601360e
Merged in plt-141-moves-only-part-2 (pull request #92 )
...
File moves to core module and split of interfaces and implementations in preparation for further moves
2016-05-13 13:22:08 +01:00
rick.parker
e319a33b52
Added TODO to ServiceHub and CheckpointStorage
2016-05-13 12:37:39 +01:00
Mike Hearn
81c698a260
Minor: fix some compiler warnings
2016-05-13 12:58:17 +02:00
rick.parker
6017179bc0
File moves to core module and split of interfaces and implementations in preparation for further moves
2016-05-13 11:35:45 +01:00
rick.parker
a18e7b06bf
File moves to core module and split of interfaces and implementations in preparation for further moves
2016-05-13 10:07:44 +01:00
Ross Nicoll
2d4c83556e
Annotate verify() function to indicate it throws IllegalArgumentException
2016-05-09 18:16:33 +01:00
Ross Nicoll
642b951bae
Rename PartyReference to PartyAndReference
2016-05-09 17:55:37 +01:00
Ross Nicoll
73f4803b72
Move common move command verification into a shared function
2016-05-05 11:12:25 +01:00
Ross Nicoll
47401a2a28
Merged in rnicoll-signed-data (pull request #69 )
...
Add SignedData class
2016-04-27 13:16:42 +01:00
Ross Nicoll
7c9cff799e
Add SignedData class
...
Adds a new SignedData class which will provide a deserialized copy of the data
contained only if the signature on it is valid.
2016-04-27 13:16:01 +01:00
Ross Nicoll
c8865c1b40
Remove deregisterIdentity()
...
Remove the ability to remove registered identities. Once registered, identities are part
of a permanent record (for example you would want to ensure parties to contracts cannot
"disappear" by removing themselves from the identity service).
2016-04-27 11:43:10 +01:00
Ross Nicoll
b4513e8bec
Add InMemoryIdentityService
...
Move FixedIdentityService to MockIdentityService under testing as it's specialised for use in tests.
Add a new InMemoryIdentityService replacing the fixed identity service in AbstractNode.
2016-04-21 17:10:43 +01:00
Mike Hearn
e88907dd41
Delete unnecessary service IDs. Only services exposed to the wider network need this type of identifier.
2016-04-20 15:28:59 +02:00
Mike Hearn
fcc36c472a
Improve the contracts API and Cash contract a bit, and beef up the unit tests.
...
Better usage of generics in groupStates so the group exposes the grouping key that was used, this avoids constructs like `val issuer = outputs[0].deposit.party` which is a bit ugly.
2016-04-20 14:36:14 +02:00
Mike Hearn
2de44a516f
Switch Kryo serialisation to always include the class name, and avoid overhead from writing out SerializedBytes wrapper data.
...
This simplifies the serialisation code, reduces the use of inline functions, and ensures that running SerializedBytes<SuperClass>.deserialise() will correctly return SubClass if that's what it contained, efficiently.
2016-04-20 14:27:40 +02:00
Mike Hearn
105f39adb5
Minor: Rename core/.../Services.kt to AttachmentStorage.kt
2016-04-20 14:27:40 +02:00
Mike Hearn
77fd7941f9
Minor: remove a utility method that's used only once from WireTransaction
2016-04-20 14:27:40 +02:00
Mike Hearn
70210f3ef9
Minor: rename some fields in Command to be consistent with AuthenticatedObject, just to simplify the next refactor
2016-04-20 14:27:40 +02:00
Mike Hearn
306ff69312
Minor: split TransactionBuilder into its own file, so Transactions.kt is just the core immutable types.
2016-04-20 14:27:40 +02:00
Mike Hearn
d9cfb5e1eb
Minor: make LedgerTransaction implement the NamedByHash interface, for improved consistency
2016-04-20 14:27:40 +02:00
Mike Hearn
6c9222ad6a
Minor: delete some unnecessary code from LedgerTransaction
2016-04-20 14:27:40 +02:00
Mike Hearn
37f3061958
Minor: add a TODO to SignedTransaction indicating that the sandboxing/attachments based ClassLoader isn't actually used yet
2016-04-18 18:01:03 +02:00
Mike Hearn
800151b774
Merge branch 'master' into dynamic-loading
2016-04-18 17:56:31 +02:00
Mike Hearn
531e4a85fe
Tweak the attachment classloader tests so that they don't break if IntelliJ has put the 'contracts:isolated' module on the classpath.
2016-04-14 19:42:39 +02:00
Mike Hearn
e91c46f045
Rewrite the AttachmentsClassLoader to avoid temporary file copies and fix the overlap check.
...
Throw a specialised exception that lists missing exceptions during deserialisation, so the dependency resolution code can access it (coming up).
2016-04-14 17:55:49 +02:00
Mike Hearn
3050a6ad8f
Minor: add API docs for the groupStates methods on TransactionForVerification
2016-04-14 12:45:47 +02:00
Mike Hearn
7a9f74ca79
Merge branch 'master' into dynamic-loading
2016-04-13 19:03:04 +02:00
Andrius Dagys
9a8b3bd1ef
Added interpolation functionality for the rates oracle. The oracle can be set up with different interpolation mechanisms, currently supported are: linear and cubic spline
2016-04-13 12:32:04 +01:00
Ross Nicoll
265948dcee
Clean up code based on feedback from Mike
...
* Move advertisedServices parameter in NodeInfo up one in the parameter order
* Change ServiceType away from being an enum
* Tweaked wording around what a NodeInfo is
* Renamed LocationStructures to PhysicalLocationStructures
* Move generator outside of function parameters
2016-04-11 16:09:15 +01:00
sofusmortensen
d05e6bb6a4
Merge branch 'master' into dynamic-loading
2016-04-09 01:01:36 +02:00
sofusmortensen
6fe8107d27
Merge branch 'master' into dynamic-loading
2016-04-08 22:40:18 +02:00
Mike Hearn
49d5fb33c4
Remove copyright headers from the files and put the text in the README instead, per feedback from Jacob and external counsel.
2016-04-08 11:46:07 +02:00
Mike Hearn
caf48b65c9
Run auto-formatter over the code.
2016-04-07 20:16:28 +02:00
Mike Hearn
f3863ac5ef
Minor: eliminate compiler warnings
2016-04-07 20:00:29 +02:00
Mike Hearn
10ee49d994
Minor: refactoring to reduce dependencies of the JSON object mapper. Clean up how mock identities are handled a little. This assists with the simulation code.
2016-04-07 19:32:06 +02:00
Mike Hearn
196380a9be
Some ProgressTracker improvements
2016-04-07 19:32:06 +02:00
Rick Parker
34940c903b
Merged in plt-17-api-server-merge5 (pull request #51 )
...
IRS related protocols and scripts
2016-04-07 15:01:25 +01:00
rick.parker
55265e6115
IRS related protocols and scripts
...
Additional changes based on feedback
Additional changes based on feedback
2016-04-07 14:56:30 +01:00
Andrius Dagys
40443f68cb
Changed the order of Polynomial coefficients back
2016-04-05 17:40:42 +01:00
Andrius Dagys
b728bd3b9d
Changed Polynomial to accept coefficients in reverse order
2016-04-05 16:47:39 +01:00
Andrius Dagys
ec80ddfcd5
Added an interpolator (natural cubic splines) to be used by the interest rate fix oracle for missing data points.
2016-04-05 15:35:47 +01:00
sofusmortensen
9561013b65
Replaced class Kryo2 with extension method on Kryo
2016-04-05 01:02:54 +02:00
sofusmortensen
bba0a4a55d
Fixed bug in Kryo.useClassLoader
...
Renamed to AttachmentsClassLoader + autoformat
Added unit test to validate exception being throw when deserializing WireTransaction without contract jar in attachments.
2016-04-05 00:34:46 +02:00
sofusmortensen
88a7406ec9
Merge branch 'master' into dynamic-loading
2016-04-03 13:59:36 +02:00
rick.parker
e122a57bf2
First working commit
...
First working commit
Formatting clean up
Revert All_tests.xml
Remove extra space
Feedback from code review
2016-03-30 15:04:08 +01:00
sofusmortensen
58a509de63
Merge branch 'master' into dynamic-loading
2016-03-24 13:10:36 +00:00
sofusmortensen
0b8820265e
removed couple of warnings
2016-03-24 13:09:04 +00:00
sofusmortensen
1156e5ef52
fixed unit test TwoPartyTradeProtocolTests
2016-03-24 12:36:18 +00:00
sofusmortensen
e5dbf5d2a8
WireTransaction deserialization using AttachmentStorage
2016-03-24 12:06:41 +00:00
sofusmortensen
1344bfd6bb
Replaced programRef in ContractState with a simple reference to contract
2016-03-23 17:51:14 +00:00
Richard Green
c450c70f9a
Merged in calendar-name-parameter (pull request #43 )
...
Field name request from client
2016-03-23 17:08:30 +00:00
Mike Hearn
e21f61ff10
Minor: add toString methods to progress tracker objects
2016-03-23 16:53:29 +00:00
rick.parker
a0780c84a7
Made calendars property a string array rather than just string
2016-03-23 13:42:52 +00:00
Richard Green
4167b044a1
Field name request from client
2016-03-23 12:17:30 +00:00
rick.parker
9f7ae4c61d
Basic JSON API with servertime call exposed at GET /api/servertime
...
Global Clock as part of ServiceHub to offer source of time in transactions, protocols, time stamping service etc (can be replace for demos and testing with a Clock that can be externally manipulated)
Edited with Mike's feedback
Edited with Mike's feedback
2016-03-23 09:34:45 +00:00
sofusmortensen
5d5bcbfb00
Merge branch 'master' into dynamic-loading
2016-03-22 13:37:33 +00:00
sofusmortensen
527b0f4817
Improved unit tests.
...
Cleaned up project structure a bit.
2016-03-22 12:15:47 +00:00
Richard Green
6c0e696107
Updated with new Tenor class that verifies string during construction.
...
Now uses new Tenor class for Interest Rate Oracle
2016-03-22 11:46:06 +00:00
Richard Green
a78c5b11d1
IRS Contract example
2016-03-22 11:36:40 +00:00
Richard Green
5e3ff4238f
Cosmetic change to Amount to display decimal places
2016-03-18 13:45:22 +00:00
Mike Hearn
5161b2b085
Minor: style fixes
2016-03-15 19:43:37 +01:00
Richard Green
966724f941
Utility functions / classes / enums that will assist in the writing of some financial products
2016-03-15 18:22:36 +00:00
Mike Hearn
2754546942
Don't report errors when dependency version conflicts are found, as Gradle's default behaviour of picking the newest version is normally the right one and in practice what we've been doing anyway.
...
Remove RxKotlin. It doesn't add enough value over just using the RxJava API directly.
2016-03-11 11:49:50 +01:00
Mike Hearn
975d569e55
Merged irs-oracle into master
2016-03-09 14:38:39 +01:00
Mike Hearn
779e5d8af8
Minor: remove dokka stuff from build.gradle, it's now invoked via an external script
2016-03-08 18:30:17 +01:00
Mike Hearn
f1c9b5495c
Add Fix and FixOf types to a new FinanceTypes.kt file, move Amount there too.
2016-03-08 17:29:56 +01:00
Mike Hearn
57ec407755
Minor: TransactionBuilder: split up checkAndAddSignature
2016-03-08 15:19:44 +01:00
Mike Hearn
9069a80bc3
Minor: add another variant of signWithECDSA
2016-03-08 13:55:20 +01:00
Mike Hearn
c18579fd60
Minor: add extension method to support "1.234".d to create a BigDecimal
2016-03-08 13:55:03 +01:00
Mike Hearn
8d041a6b1a
Minor: yet another small move
2016-03-08 11:12:45 +01:00
Mike Hearn
bf3aed11e7
Minor: another small move
2016-03-08 11:10:31 +01:00
Mike Hearn
e9fddbc709
Reorganise the file hierarchy a bit.
2016-03-08 11:06:16 +01:00
Mike Hearn
d26b06c35c
Allow download of attachments, and files within attachments, over HTTP.
2016-03-04 15:56:25 +01:00
Mike Hearn
6cb86ab840
Plumb attachments through to the contract verify functions (no contract uses them yet).
...
The right way to do this is probably to put the contracts onto the classpath before execution of the contract. However, this interacts closely with the sandboxing work, which isn't yet started, so for now this will do.
2016-03-02 15:35:46 +01:00
Mike Hearn
1123c28f02
Make the trader demo attach a PDF to the commercial paper self-issuance and then scan for it on the buyer side, print out the path on the filesystem where the PDF can be found.
2016-03-02 15:08:55 +01:00
Mike Hearn
8d906c703d
Support auto-expansion of attachment jars on disk.
2016-03-02 14:51:42 +01:00
Mike Hearn
7fd9b43e50
Add a simple TransactionGraphSearch class that can be used to query transaction graphs recursively loaded from storage. Right now it only supports a single type of query.
2016-03-02 14:51:42 +01:00
Mike Hearn
f0fa9e3097
Resolve and insert attachments to the local store when resolving transactions. Attachments aren't yet exposed to contract code.
2016-03-02 14:51:42 +01:00
Mike Hearn
7f5eb5bf2f
Minor: make TwoPartyTradeProtocolTests use the new MockNode infrastructure
2016-03-02 14:51:42 +01:00
Mike Hearn
a69a663354
Minor: add a paperclip icon to the Emoji library
2016-03-02 14:51:42 +01:00
Mike Hearn
c52f1e096f
Minor: a serialisation related fix and an additional explainer comment in SerializedBytes
2016-03-02 14:51:42 +01:00
Mike Hearn
42cd9a14cb
Minor: fix bug in SecureHash.parse()
2016-03-02 14:51:42 +01:00
Mike Hearn
02e9473201
Minor: add a simple List<T>.indexOfOrThrow() utility and use it in a new LedgerTransaction.outRef helper.
2016-02-29 22:06:18 +01:00
Mike Hearn
bab3c609c1
Minor: provide a specialisation of SerializedBytes<WireTransaction>.deserialize() which caches the bytes properly.
2016-02-29 19:05:06 +01:00
Mike Hearn
0224bca1a9
Add a simple file backed attachment store, with tests.
2016-02-29 19:04:41 +01:00
Mike Hearn
105f9e1069
Add Apache JEXL as a dependency, as part of an exploration of on-the-fly contract specialisation (this solution may not be taken forward but suffices to unblock other work)
2016-02-29 18:56:03 +01:00
Mike Hearn
c24d991a7e
Introduce a NamedByHash interface, for things that are identified via secure hash.
2016-02-25 19:24:18 +01:00
Mike Hearn
f32c83b8b3
Protocols: fix unit tests for progress tracker and don't emit UNSTARTED to all subscribers.
2016-02-24 14:51:04 +01:00
Mike Hearn
8f27c35f18
Minor: compile->testCompile dependency in core/build.gradle
2016-02-24 14:50:21 +01:00
Mike Hearn
c3f86f6557
Integrate a simple progress tracking system into the protocol framework.
...
The progress tracker API lets you model a tree of steps, along the same structure as protocols and subprotocols. Each step has an (optionally changing) label, and thus progress trackers can be arranged in a tree. Updates to the progress at each level flow up the tree via an RxJava observable (I guess we will use this more in future).
A simple console renderer is provided that uses ANSI escapes and Emoji to show animated progress through a protocol.
The trader demo is enhanced to use this framework, when run outside of Gradle.
2016-02-24 12:58:37 +01:00
Mike Hearn
ab2b447a5e
Minor: add a TransientProperty utility class.
...
It makes it a bit easier to define properties that don't survive serialisation and are reconstructed each time.
2016-02-23 18:28:06 +01:00
Mike Hearn
96eacfeda8
Minor: another emoji
2016-02-23 18:28:06 +01:00
Mike Hearn
6c4825aeb2
Minor: fix typo in file name
2016-02-23 18:28:06 +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
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
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
Sofus Mortensen
994abb3edb
Added new project core.
...
Project Contracts depends only on core.
2016-02-16 17:14:17 +01:00