Commit Graph

214 Commits

Author SHA1 Message Date
Ross Nicoll
773aa28873 Clean up IssuerFlow
* Switch to using anonymous party as recipient
* Enable anonymisation for issuance as well as move in issuer flows.
* Pass notary into issuer flow rather than taking a notary at random from the network map.
* Enable anonymisation in Bank of Corda RPC test
* Parameterize issuer flow tests into anonymous and deanonymised versions
2017-07-13 11:23:56 +01:00
Shams Asari
7caee508ec Refactored ErrorOr into Try, with Success and Failure data sub-classes, and moved it into core.utilities 2017-07-11 12:10:38 +01:00
Andrzej Cichocki
d2869e4f45 Refactor then/success/failure (#984)
to make ListenableFuture replacement less fiddly.
2017-07-07 15:50:50 +01:00
Shams Asari
fb0a043485 Moved dummy contracts to test-utils 2017-07-07 15:16:29 +01:00
Andrzej Cichocki
cefa14507a Retire HostAndPort (#962)
* Don't attempt to parse a resolved InetSocketAddress toString
* A mock node isn't reachable via an address
2017-07-07 15:11:07 +01:00
Shams Asari
8f1529b863 Moved ByteArrays.kt to core.utilities 2017-07-06 17:58:18 +01:00
Shams Asari
2973755bc8 Moved TestConstants.kt from core into test-utils 2017-07-05 11:54:43 +01:00
Ross Nicoll
3176ecfecf Clean up transaction key flow
* Identities returned from TxKeyFlow were backwards, meaning keys were incorrectly assigned to the remote and local identities. Added unit test covering this case and corrected the flow logic.
* Rename TxKeyFlow to TransactionKeyFlow
* Correct registration of transaction key flows
* Move TransactionKeyFlow.Provider into CoreFlowHandlers
* Move TransactionKeyFlow.Request up to the top level class instead of being a class within an object.
* Remove AbstractIdentityFlow and move the validation logic into individual flows to make it clearer that it's registering the received identities.
* Cash flows now return the recipient identity instead of full identity lookup, as this is what
the caller actually needs and simplifies a lot of cases.
2017-07-05 11:39:08 +01:00
Matthew Nesbit
3ef5c39633 Put test classes into clear namespaces, so that they don't pollute the API. 2017-07-05 09:14:22 +01:00
Joel Dudley
7df8c50167 Adds helper methods to grab a LedgerTx or verify a SignedTx. Deprecates builder signing methods. 2017-07-03 15:53:48 +01:00
Patrick Kuo
1c2265d3b7 Pat remove stability test randomness (#891)
* Remove randomness from stability test

* address PR issues
2017-06-30 11:45:08 +01:00
Ross Nicoll
1a4965c294 Change CashIssueFlow to use anonymous identity
* Add functions for:
    * Retrieving nodes via their legal identity
    * Filtering a set of public keys down to those the node has corresponding private keys for
* Modify contract upgrade flows to handle identifying participants after an anomymisation step
* Correct terminology: "party who" -> "party which"
* Modify CashIssueFlow and CashPaymentFlow to optionally use an anonymous identity for the recipient.
2017-06-28 13:47:50 +01:00
Katarzyna Streich
58da76c052 Network map redesign: Change field types in NodeInfo, move away messaging data from NodeInfo (#921)
* First stage of changing fields in NodeInfo.

Part of work related to NetworkMapService upgrade. Create slots for
multiple IP addresses and legalIdentities per node.

* NodeInfo stores HostAndPort.

Move information specific to messaging layer away from NodeInfo.
Only HostAndPort addresses are stored. Add peer name - peer handle
mapping to MockNetwork to reflect that change.
2017-06-27 18:14:51 +01:00
Andrzej Cichocki
c6d1274e47 Add tz to all non-test logging config (#894)
* Use millis comma and pattern= consistently
2017-06-27 16:34:02 +01:00
Chris Rankin
92c238b2aa Alter logging patterns to a more explicit form. (#918) 2017-06-26 13:24:24 +01:00
Chris Rankin
433a9ab5c3 DemoBench operates exclusively on localhost, so no need for public IP. (#919) 2017-06-26 10:12:48 +01:00
Ross Nicoll
19ff72a411 Correct ISO country code in names 2017-06-21 14:04:22 +01:00
Katarzyna Streich
ab1b7eb551 Move all changes unrelated to flow view in explorer to open source. 2017-06-20 18:01:49 +02:00
Patrick Kuo
66421692a3 pass consoleLogLevel parameter to load test to enable log to console (#866) 2017-06-20 10:52:47 +01:00
Katarzyna Streich
20403d806a Cleanup of the explorer code related to internal flow view work. (#832)
Cleanup of the explorer code related to internal flow view work.
Changes in simulation, widgets, minor visual.
2017-06-20 10:45:42 +01:00
Patrick Kuo
28afb6d3ff Added throttling to the load test tool and added stability test. (#847)
* Added throttling to the load test tool.
* Added stability test to the tool.
* Some refactoring to allow some configuration via vm option.
* updated doc.
* gradle now passes system parameter to load test.
* using Guava's RateLimiter instead of execute at fix rate.
2017-06-16 15:30:11 +01:00
Shams Asari
b52d3706eb Moved Driver.kt to net.corda.testing.driver in the test-utils module 2017-06-14 15:12:39 +01:00
Chris Rankin
97053be4f7 Build capsules using runtime dependencies instead of compile ones. (#842)
This restores `artemis-amqp-protocol` to Corda Node.
2017-06-14 15:10:59 +01:00
Chris Rankin
d3de125166 Update documentation for DemoBench's MacOSX signing key. (#826) 2017-06-12 12:50:22 +01:00
Patrick Kuo
58114f817c A better looking scrollbar css for corda explorer (#802) 2017-06-08 16:54:54 +01:00
FredericDalibard
d76c23824e Add EUR to the cash app and demobench tool. Authored by Frederic Dalibard. 2017-06-08 16:33:49 +02:00
Katarzyna Streich
73e5eddb13 Fix wrong layout of new added nodes to map view in explorer. (#794)
* Fix wrong layout of new added nodes to map view in explorer. Fix double rendering of myIdentity label.

* Make buttons in map view take the whole available space.

* Remove party full name from network map view in explorer.
2017-06-07 13:28:29 +01:00
Mike Hearn
f4321affad DemoBench: enable emoji in the terminal when built with a JetBrains JRE. 2017-06-06 14:55:09 +02:00
Chris Rankin
db9cc3a460 Upgrade DemoBench to purejavacomm 0.0.18 (#791) 2017-06-05 15:31:33 +01:00
Katarzyna Streich
39fdb353ad Remove nearestCity from node configuration. (#721)
* Fix bug in demobench. Explorer didn't show correctly location of a node.
There was no nearestCity override in config.

* Remove nearestCity from node configuration. Now information about the location is always taken from
node's legal name. If not present - exception on node startup.

* Add X500Name.locationOrNull that soft fails when location is not in X500 name. Address PR comments.

* Remove unused imports.
2017-05-31 16:07:13 +01:00
Ross Nicoll
34eb5a3b70 Store certificate and path with well known identity (#726)
* Construct standard flows using PartyAndCertificate, and add support for launching
flows that are constructed with PartyAndCertificate or just Party.
* Store PartyAndCertificate in network map service
* Expand identity service to store certificates along with all identities.
2017-05-31 14:45:58 +01:00
Shams Asari
329e5ff17b Introducing InitiatedBy annotation to be used on initiated flows to simplify flow registration.
This removes the need to do manual registration using the PluginServiceHub. As a result CordaPluginRegistry.servicePlugins is no longer needed. For oracles and services there is a CorDappService annotation.

I've also fixed the InitiatingFlow annotation such that client flows can be customised (sub-typed) without it breaking the flow sessions.
2017-05-31 10:50:16 +01:00
Chris Rankin
e117ab7703 Allow DemoBench to install Explorer's CorDapps multiple times. (#761) 2017-05-31 10:31:10 +01:00
Chris Rankin
bcf4c4a2bb Document how we should test DemoBench. (#742) 2017-05-25 15:24:18 +01:00
Chris Rankin
35ee60f12b Require user R3CEV for DemoBench DMG signing key. (#737) 2017-05-25 14:12:58 +01:00
Chris Rankin
1aae41214f Unpack DemoBench's capsules within $HOME/demobench directory. (#738)
* Unpack the capsules into a subdirectory of $HOME/demobench.
* Minor tidy up.
* Add a new suggested bank.
2017-05-25 11:49:21 +01:00
Chris Rankin
375392d32d Compile caplets against correct version of capsule. (#732) 2017-05-24 09:58:33 +01:00
Chris Rankin
179eccdd20 Modify how Gradle creates capsules: (#730)
- Better Gradle dependency management.
- Remove empty module jars from the capsules.
2017-05-23 18:04:20 +01:00
Chris Rankin
975866590b Prevent DemoBench hanging on shutdown (#722)
* We need to close the RPC client as otherwise the rpc-client-reaper-* thread is leaked, which also prevents shutdown. Sleep instead when the server exits, just long enough for the client to realise that the server is dead.
* Fix warning about leaking private types.
2017-05-22 12:18:53 +01:00
Mike Hearn
7244f2eeea Temp hack to fix DemoBench in master: leak the RPC connections when a node shuts down to avoid a hang. 2017-05-19 16:45:22 +02:00
Chris Rankin
5cf304e8c4 Disable the DemoBench tab if the node exits abnormally. (#692)
* Log a message when the CRaSH shell exits.
* Disable the DemoBench tab if the node exits abnormally.
2017-05-17 00:19:48 +01:00
Ross Nicoll
c13a99a2f9 Replaces keys and parties in states with AbstractParty
Switch to using AbstractParty as the standard identifier for parties in
states, so that full parties can be used during construction of
transactions and anonymised parties when the transaction is being added
to the ledger.
2017-05-16 12:07:14 +01:00
Andrzej Cichocki
d3bb040355 Refactoring related to BFT notary demo (#680)
* Fix: Add missing @StartableByRPC to fix the Raft notary demo
* Make loadConfig take a Config object, for cordformation Node
* Unduplicate User.toMap
* Unduplicate WHITESPACE regex, choose possessive form
* Use slash to make a Path
* Remove Companion where redundant
* Remove unused code
2017-05-16 11:30:50 +01:00
Chris Rankin
6bc885fb09 Create X.500 names for DemoBench nodes. (#674) 2017-05-12 12:15:17 +01:00
Shams Asari
48f58b6dbc Introducing StartableByRPC and SchedulableFlow annotations, needed by flows started via RPC and schedulable flows respectively.
CordaPluginRegistry.requiredFlows is no longer needed as a result.
2017-05-11 14:55:40 +01:00
Ross Nicoll
e4a0bc6e11 Move party classes into identity package
Move AbstractParty, AnonymousParty and Party into a new net.corda.core.identity package,
as they're not really cryptography tools, and in preparation for further code coming in
for identity.

Optimize imports on many files to clean up the resulting refactor.
2017-05-11 11:25:59 +01:00
Chris Rankin
9a5775698b Try to copy the CorDapp if we fail to create a symlink, e.g. on Win10. (#659) 2017-05-10 10:31:34 +01:00
Andras Slemmer
de88ad4f40 RPC muxing, multithreading, RPC driver, performance tests 2017-05-05 17:10:52 +01:00
Ross Nicoll
25dbac0f07 Change party to hold an X.500 name
Change the legal name of parties to be an X500 name. This ensures that we aren't converting between
common names and X500 names in various places, eliminating substantial scope for error in the conversion
process. As a result, all node names must now be full X500 names, which has impact on most configurations.
2017-05-05 16:13:29 +01:00
Ross Nicoll
b64e7f51f6 Enforce X.500 distinguished names in configuration 2017-05-05 16:13:29 +01:00
Katarzyna Streich
c062d48e6e Explorer x500names (#631)
Format party names in explorer, so they look nice after X500 name changes.
2017-05-05 14:00:55 +01:00
Chris Rankin
0309426cb9 Include log4j2.xml into application jars only. This allows applications to use their own log4j2.xml files, if required. (#635) 2017-05-05 13:12:36 +01:00
Ross Nicoll
e85ed639bb Clean up X500 names in Corda simulation
Clean up X500 names in Corda simulation, and ensure they're consistent with the standard test names.
This includes using the locations present in those test names, which requires updates to the node
config test.
2017-05-03 15:55:19 +01:00
Ross Nicoll
d65d63e4f6 Interim patch introducing X500Names
This is an intermediary step to introducing X500Names in all Party instances, which adds:

* Party constructor which accepts X500Name and then converts it to string.
* startNode() function which takes in X500Name instead of String
* Numerous legal name fixes to use full distinguished names
2017-05-03 10:46:03 +01:00
Chris Rankin
af36e0f731 Basic clean-up for demos, load-test and examples (#590)
* Fix RPC usage by marking unused Observables.
* Update Client RPC tutorial documentation to mention the importance of "notUsed" observables.
2017-04-26 11:01:09 +01:00
Matthew Nesbit
7e3b9a8934 Fix duplicate content root problems in IntelliJ 2017-04-26 10:37:16 +02:00
Mike Hearn
b6fa7095e3 DemoBench: symlink or copy apps into the plugins folder for the Explorer, as a temp deserialisation hack. 2017-04-25 19:43:26 +02:00
Mike Hearn
b4e7944a18 DemoBench: address review comments 2017-04-25 14:13:20 +02:00
Mike Hearn
238d4e29e2 Webserver: Redirect / to the first static web path.
DemoBench: Misc usability improvements:

- Pre-fill details for some fictional banks when Add Node is pushed.
- Make services a checkbox list rather than one where you have to know how to use the keyboard to do multi-select.
- Make web server launch button spin until server is launched to show activity.
- Suppress an exception that spams the log due to inability to load all the states. It'll get fixed as part of the vault API and serialisation work.
2017-04-25 14:13:20 +02:00
Chris Rankin
35f6de9c50 Ignore any unsubscribe exception when closing DemoBench tab. (#579)
E.g. the node may already have exited and closed the RPC session.
2017-04-25 10:41:32 +01:00
Chris Rankin
ab8bfec76f DemoBench now subscribes to updates for transaction and vault RPCs. (#571)
* Subscribe to updates for transaction and vault RPCs.
* Ensure we unsubscribe our observables at the end.
* Use Rx scheduler that can observe on FX application thread.
2017-04-24 17:59:51 +01:00
Shams Asari
b5e022f350 Introducing Platform Version and its use by the NMS for min version requirements for the network 2017-04-24 15:31:10 +01:00
Ross Nicoll
684d1089f0 Introduce full legal names for test parties
Use full names for test parties, ahead of complete X.500 name support.
2017-04-24 15:18:21 +01:00
Mike Hearn
2de5c0b218 DemoBench: open web page automatically once web server has started. 2017-04-24 15:52:22 +02:00
Mike Hearn
e139df7891 DemoBench: make launch web server button wider. 2017-04-24 15:52:22 +02:00
Mike Hearn
d3ed178e82 DemoBench: upgrade to latest TornadoFX to get combobox width fix, and launch web browser once web server has started. 2017-04-24 15:52:22 +02:00
Mike Hearn
691b622cf0 DemoBench: address review comments and fix refresh bug 2017-04-24 15:52:22 +02:00
Mike Hearn
2c6163ecb9 DemoBench: layout fixes and more visual tweaks 2017-04-24 15:52:22 +02:00
Mike Hearn
3f7f05a0d9 DemoBench: better autocomplete and flags for city list 2017-04-24 15:52:22 +02:00
Mike Hearn
a90b2ba839 DemoBench: UI improvements, part uno 2017-04-24 15:52:22 +02:00
Andrzej Cichocki
160d13b6f7 Prohibit Java deserialisation in the Corda process (#566) 2017-04-21 16:26:35 +01:00
Andrius Dagys
6f9b70520c Load test: add a notarisation test. Each node issues a dummy state and sends it for notarisation.
Note that this only works with a non-validating notary.

Fixed transaction generation
2017-04-21 10:19:07 +01:00
Andrius Dagys
026ac6884a Load test: set min cash issue amount to 1 2017-04-21 10:19:07 +01:00
Chris Rankin
d2d7cbc9ec CORDA-299: Remove progress Observable from FlowHandle, unless explicitly requested. (#513)
* Remove progress Observable from FlowHandle, unless explicitly requested.
* Refactor FlowHandle creation into FlowStateMachine.
* Prevent server-side queue subscription for dummy Observable.
* Refactor so that RPC client does not receive any unused progress Observables. This is the simplest way of ensuring we have no dangling "hot" Observables when the RPC client closes.
* Test flow has correct handle.
* Resolve some compiler warnings.
* Document how starting a flow does not involve progress tracking by default.
* Update changelog and release notes for RPC API.
* Rename new RPC API to startTrackedFlow().
* Remove optimisation because of its affect on the client-side.
* Update documentation.
2017-04-19 20:11:51 +01:00
Chris Rankin
941bc9be5b Rename installed application to "Corda DemoBench". (#547)
* CORDA-368: Install DemoBench as "Corda DemoBench".
* CORDA-368: Fix RPM packaging.
* CORDA-368: Update changelog and release notes for DemoBench's new installation name.
2017-04-19 10:39:32 +01: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
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
4d6d4c167e Minor: auto-format of module: tools, verifier 2017-04-11 15:53:05 +02:00
Shams Asari
c17fe29a62 Converted FullNodeConfiguration into a data class and added ability to parse Configs into data classes 2017-04-07 17:54:03 +01:00
Chris Rankin
a9463ebf45 Tidy up a few rough edges for DemoBench. (#507)
* Install DemoBench as a systemwide application.
* This application's correct full name is "Corda DemoBench".
* Tidy up imports.
* Cordapps -> CorDapps
* Ensure application name is "Corda DemoBench" on MacOSX.
2017-04-05 13:13:59 +01:00
Chris Rankin
4829524244 Avoid errors if Corda / Explorer cannot be found at runtime. (#501)
* Avoid NPE if corda.jar cannot be found.
* Log an error if Node Explorer or WebServer fail to start.
* Display an error dialog if we cannot find corda.jar at start-up.
* Use official notUsed() function for unwanted Observables.
* Fix unit tests.
* Rename function to readErrorLines().
2017-04-04 17:25:37 +01:00
Chris Rankin
352da7e4c7 Add 'finance' module to Corda WebServer, for plugins to use. (#489)
* Add 'finance' module to Corda WebServer, for plugins to use.
* Fix wording of error message.
2017-04-03 17:06:30 +01:00
Shams Asari
e0c548d4fa Cleaned up code causing build warnings 2017-04-03 13:52:51 +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
Patrick Kuo
d8370a41b5 Reduce occurrence of flow exception in explorer demo (#467)
* changed event generator to reduce flow exception due to wrongly generated event
2017-03-31 14:19:02 +01:00
Chris Rankin
341e1acf2a Test webserver configuration too. (#485) 2017-03-31 13:51:30 +01:00
Clinton
fcdcb0bdcf Merge pull request #469 from corda/clint-reducebuildsize
Webserver no longer depends on node.
2017-03-31 11:54:13 +01:00
Chris Rankin
035857e992 Test configuring DB port number. (#475) 2017-03-31 11:12:47 +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
Clinton Alexander
da88a43e40 Moved webserver to root project. 2017-03-30 17:34:32 +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
Clinton Alexander
d4e0ab52fe Moved the webserver from being a subproject of node to a subproject of client. 2017-03-30 14:43:18 +01:00
Chris Rankin
ade9a7dba8 Filter zero bytes from CRaSH input stream. (#460)
* Work around JavaFX injecting 0 bytes into JediTerm's STDIN stream.

* Add (disabled) unit tests for running JediTerm in both Swing and JavaFX.

* Remove tests for running JediTerm under Swing and JavaFX.
2017-03-30 11:04:51 +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
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