Commit Graph

795 Commits

Author SHA1 Message Date
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
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
eb21458885 Some fixes to emoji/ANSI renderer 2017-03-17 10:54:25 +01:00
51a5eb77a0 Added @Suspendable to UntrustworthyData.unwrap to allow Java flows to do I/O inside unwrap 2017-03-16 16:30:28 +00:00
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
f3a5f8e659 Pool Kryo instances for efficiency. (#352)
Pooled Kryo
2017-03-16 08:24:06 +00:00
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
9db773d17c Remove unused vars + and change set/get with indexing operator. (#358) 2017-03-15 17:10:55 +00:00
f581844f3f Flow registration takes in a Class object rather than a KClass 2017-03-15 16:32:13 +00:00
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
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
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
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
23fcbd284c Amount: add ruble and Yen, fix toString. 2017-03-13 14:51:19 +01:00
7cac55ca4a Amount: add support for basic parsing from text. 2017-03-13 14:51:19 +01:00
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
c8b13b257f Remove Any constraint from Generator type param 2017-03-09 17:48:53 +00:00
e9d63b2662 Added bits of versioning info to the node 2017-03-09 16:36:21 +00:00
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
35836d9926 Add a registeredFlows() RPC that lists the RPCs the node knows about. 2017-03-08 15:01:13 +01:00
1e78d6a3a7 Simple Attachment Storage implementation using Requery/H2 database 2017-03-07 16:12:38 +01:00
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
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
f00515b39e Merge pull request #293 from corda/aslemmer-services-for-resolution
core: Add ServicesForResolution interface
2017-03-02 12:08:08 +00:00
0f6b806047 Add anonymous text in case party lookup fails 2017-03-02 12:07:12 +00:00
cc61be5b6a Inform users about the newly available Corda training programs at startup and in the docsite. 2017-02-28 16:50:43 +01:00
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
c4c4c51d7d Kryo serialisation whitelisting and misc enhancements. (#267)
Kryo serialisation whitelisting and misc enhancements
2017-02-28 08:12:18 +00:00
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
8522d79371 core: Add ServicesForResolution interface 2017-02-27 14:03:25 +00:00
16a7298ef5 Fix incorrect whitespace character (required copy paste of tab) 2017-02-23 20:44:23 +00:00
544f2de75e Add Hong Kong to list of cities in lookup table 2017-02-23 16:54:19 +00:00
221278197a Implement RPCOp getCashBalances(). 2017-02-22 13:57:15 +00:00
8b1864e07c Minor: naming and doc tweaks in Merkle tree code. 2017-02-22 14:16:04 +01:00
b8942a2cc9 Remove the SignedTransaction.id field, which took part in serialisation. Calculate it on demand instead. 2017-02-22 14:16:04 +01:00
0b33b52d1a Minor: add a warning suppression over an unchecked cast in the upgrade code. 2017-02-22 14:16:04 +01:00
036b2597d3 Fix a bug in ContractUpgradeFlowTest where it wasn't actually checking both nodes. 2017-02-22 14:16:04 +01:00
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
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
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
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
ed093cdb9d Enforce separation of Party and AnonymousParty 2017-02-16 11:50:33 +00:00
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
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
71babc7019 Remove use of full parties from contract states 2017-02-15 11:43:13 +00:00
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
ab5c30c3da Comment fixes + split some unit-tests 2017-02-14 14:23:38 +00:00
9e447bd22e Comment fixes + allow mixed and lowercase to Hex 2017-02-14 13:34:03 +00:00
076f0a4435 Useful ByteArray and String {en,de}coding extension functions 2017-02-14 11:07:56 +00:00
40dde555e7 Added --logging-level cmd line arg to set the logging level, and improved flow logging 2017-02-14 09:56:50 +00:00