Commit Graph

1706 Commits

Author SHA1 Message Date
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
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
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
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
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
36052cbd63 Send a transaction for notarisation only if it has inputs or a timestamp 2017-02-13 14:54:46 +00:00
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
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
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
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