Commit Graph

280 Commits

Author SHA1 Message Date
Andras Slemmer
00b439802b node-driver: Write node.conf explicitly 2016-08-10 14:35:23 +01:00
Andras Slemmer
1b98c32579 Merged in node-driver (pull request #253)
Node driver
2016-08-10 14:21:16 +01:00
Ross Nicoll
cf40e0db70 Add WalletMonitorService 2016-08-09 18:24:14 +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
Andras Slemmer
f20322136f Revert "Merged in node-driver (pull request #253)"
This reverts commit af893e0af5, reversing
changes made to 7357597501.
2016-08-09 16:19:18 +01:00
Andras Slemmer
9df7a0faf0 node-driver: Fix compile error 2016-08-09 15:38:33 +01:00
Andras Slemmer
5b2c687c64 node-driver: Hacky fix of startup race condition 2016-08-09 15:27:27 +01:00
Andras Slemmer
9e3220671c node: stop() ClientFactory and ServerLocator when shutting down and ArtemisMessagingClient 2016-08-09 15:27:27 +01:00
Andras Slemmer
d0385c420e node-driver: Remove parameter and DriverHandle, expose waitForAllNodesToFinish to dsl 2016-08-09 15:27:27 +01:00
Andras Slemmer
c9527a2cdd node-driver: Only stop() artemis if it started fine 2016-08-09 15:27:27 +01:00
Andras Slemmer
20fc200771 node: Fix checking of lateinited networkMapNodeInfo 2016-08-09 15:27:27 +01:00
Andras Slemmer
df4413ab68 node: Add extra Driver checks for node shutdown, extend try/finally scope of cleanup 2016-08-09 15:27:27 +01:00
Andras Slemmer
2e6de61ad0 node: Fix compiler error due to rebase 2016-08-09 15:27:27 +01:00
Andras Slemmer
a5e8c86928 node: Increase poll timeout in driver 2016-08-09 15:27:27 +01:00
Andras Slemmer
feecc36661 node: Address PR comments, better resource releasing, add kdoc 2016-08-09 15:27:27 +01:00
Andras Slemmer
9d071809ef node: Expose port allocation in Driver 2016-08-09 15:27:27 +01:00
Andras Slemmer
e7677c91ce node: Add DriverDSL(Exposed/Internal)Interface, add generic driver method to allow extension 2016-08-09 15:27:27 +01:00
Andras Slemmer
773d53b4c8 node: Load config from disk in Driver, further cleanup 2016-08-09 15:27:27 +01:00
Andras Slemmer
303858c3e4 node: Use proper logging in Driver 2016-08-09 15:27:27 +01:00
Andras Slemmer
35da6b5388 node: Add port allocation strategies to driver dsl, add jvm debug port 2016-08-09 15:27:27 +01:00
Andras Slemmer
8cf635cf74 node: Expose ArtemisMessagingService.Address 2016-08-09 15:27:27 +01:00
Andras Slemmer
3bc62fdb95 node: Add driver dsl test, expose some needed functions 2016-08-09 15:27:27 +01:00
Andras Slemmer
5f5a5e683d node: Add quasarPath parameter to driver dsl (should be replaced once we can do without the external quasar.jar) 2016-08-09 15:27:27 +01:00
Andras Slemmer
a317a5bfd2 node: Expose some Driver functions to allow extension, some cleanup 2016-08-09 15:27:27 +01:00
Andras Slemmer
e42d8c2e8f node: Add driver DSL for starting up nodes 2016-08-09 15:27:27 +01:00
Mike Hearn
87047c8996 Minor: fix various inspector warnings and delete some dead code. 2016-08-09 11:55:40 +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
Matthew Nesbit
6b23800f02 Incorporate Clintons review comments 2016-08-08 11:54:41 +01:00
Matthew Nesbit
3dc8a95d69 Tackle comments from code review and fix bad merge on version 2016-08-05 16:42:55 +01:00
Matthew Nesbit
d3309c1171 Allow setting of out of process ArtmeisMQ broker on Node via config file 2016-08-05 15:58:02 +01:00
Matthew Nesbit
d76d271830 Fixup after rebase to split of server and client artemis components. 2016-08-05 14:52:31 +01:00
Matthew Nesbit
6b844c0e41 Gradle task to create a build/standalone folder suitable to demonstrate the capsule.io all in one jar 2016-08-05 14:52:29 +01:00
Andrius Dagys
d1f2958e6d Node: Add API doc for a newly introduced constructor parameter 2016-08-05 14:41:57 +01:00
Andrius Dagys
8d3a3197b9 Split up ArtemisMessagingService into ArtemisMessagingClient & ArtemisMessagingServer. If a Node is given a messagingServerAddress, it will only run a client and attempt to connect to the server at the provided address. By default, it will run both client & server locally 2016-08-05 14:02:32 +01:00
Andras Slemmer
027853c3a8 node: Started refactoring ArtemisMessagingService into ArtemisServerService and ArtemisClientService 2016-08-04 15:32:48 +01: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
35c4fcadcf node: Use toBase58String/toPublicKey in JsonSupport 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
ba05b90b8f Testing: change fillWithTestCash to issue cash under the DUMMY_CASH_ISSUER identity and adjust code that uses it. Introduce some code that'll prove useful later in WalletWithCashTest.
This change reduces the  testing confusion that can occur when cash is issued by one of the parties in a transaction rather than e.g. a neutral third party like a central bank.
2016-08-04 12:52:01 +02:00
Ross Nicoll
fc804ec746 Add NotifyTxProtocol
Add a protocol for notifying remote nodes of a transaction that may interest them
(typically this means involves them).
2016-08-03 17:10:26 +01:00
Clinton Alexander
b1c1b7f4b4 Review changes - merged two observables into one. 2016-08-03 16:49:37 +01:00
Clinton Alexander
9ef1bf0355 Identity service now updates with the network map. 2016-08-02 17:08:46 +01:00
Mike Hearn
987c374b98 Minor: slightly better error message when trying to send to an unknown party. 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
97ad07be89 Fix progress rendering after the switch to log4j, as ANSIProgressRenderer had assumed JDK logging.
Also, start using colours and a more compact logging format in the default log4j config.
2016-08-01 13:07:48 +02: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
Matthew Nesbit
8c77ae7c84 Add comment to explain why AbstractNode is marked as SingletonSerializeAsToken 2016-07-28 16:54:40 +01:00
Matthew Nesbit
a462bb1d6a Incorporate comments from PR 2016-07-28 16:30:53 +01:00
Matthew Nesbit
601b2faf5f Incorporate comments from PR 2016-07-28 16:22:35 +01:00
Matthew Nesbit
c57f265cce Fixup plugins to include static content property after rebase inclusive of that work 2016-07-28 13:55:06 +01:00
Matthew Nesbit
10f68b22f9 Minor fix after rebase 2016-07-28 13:39:16 +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
Ross Nicoll
ec726da7d0 Merged in rnicoll-warnings (pull request #246)
Correct warnings
2016-07-28 13:03:55 +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
188fc29436 Cleaned up build.gradle files. 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
Ross Nicoll
aaaf6ea4f6 Correct warnings 2016-07-27 17:11:46 +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
Ross Nicoll
8bdeda63ae Merged in rnicoll-checkpoint-generic (pull request #241)
Rework checkpoint storage to include the FiberRequest
2016-07-27 15:20:40 +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
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
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
Matthew Nesbit
0542f7c509 Refactor APIServer to use the same whitelist controlled protocol gateway as the scheduler. 2016-07-25 13:46:40 +01:00
Clinton Alexander
67defe19cc Small refactor of initWebServer to improve readability. 2016-07-25 10:36:37 +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
Ross Nicoll
2f04d876ae Move FiberRequest out to a top level class
Move FiberRequest out to a top level class, both because it is expanding as functionality is added,
and to enable alternative state machine implementations to share it.
2016-07-24 09:30:16 +01:00
Andrius Dagys
e7ff5b8f6f Typo fix 2016-07-22 17:31:03 +01:00
Ross Nicoll
31ee8ab60b Rework checkpoint storage to include the FiberRequest
Rework checkpoint storage to include the FiberRequest, so that different requests can be supported.
2016-07-22 16:40:15 +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
Mike Hearn
119813a36d Minor: document the SMM.changes observable. 2016-07-22 15:50:21 +02:00
Ross Nicoll
2c139ae40c Merged in rnicoll-state-machine-id (pull request #234)
Add Fiber ID to state machine change events
2016-07-20 13:23:02 +01:00
Clinton Alexander
40a4623c51 Improved error handling when exceptions occur during suspend. 2016-07-20 11:50:23 +01:00
Ross Nicoll
f72d8ed9fb Add Fiber ID to state machine change events
Where state machine change events are to be serialized for relay to external systems, serializing the entire
protocol is excessive. Instead being able to identify changes based on the ID of the fiber is a lot simpler
for these use-cases.
2016-07-19 14:58:54 +01:00
Ross Nicoll
c92d51a0b6 Correct processing of unhandled messages
Unhandled messages in the in memory messaging network can disrupt runNetwork(), as they
result in getNextQueue() returning null, irrespective of whether there is further work
which could be done. This modifies the flow to loop through the remaining transfers on
the queue before giving up, rather than stopping after the first.
2016-07-19 14:19:57 +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
Matthew Nesbit
9d18234383 Consistently use an sl4j logger with timestamp, rather than console println within the node. Note that the current protocol events published via the ProgressTracker are sent to the console without a timestamp. 2016-07-13 11:28:52 +01:00
Mike Hearn
ead19c619a Merged in mike-cp-issuance-fix (pull request #224)
Disentangle the concept of CP issuer vs underlying redeemable asset issuer in the CP contract.
2016-07-13 11:13:23 +02:00
Ross Nicoll
254592dc54 Move protocols into correct package 2016-07-12 18:42:00 +01:00
Mike Hearn
f6789c93dd Disentangle the concept of CP issuer vs underlying redeemable asset issuer in the CP contract.
This confusion was introduced by a previous refactoring.
2016-07-12 16:01:50 +02:00
Matthew Nesbit
dba2b980a5 Remove TODO as the usage of CheckpointStorage is only through ServiceHubInternal into the StateMachineManager. We don't restrict access to internal for now as this causes too much other change. 2016-07-12 13:43:43 +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
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
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
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
Clinton Alexander
208205e7f4 Fixed minor merge conflict. 2016-07-08 16:41:23 +01:00