corda/tools/explorer/README.md

102 lines
4.0 KiB
Markdown
Raw Normal View History

2016-11-23 09:57:28 +00:00
# Node Explorer
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-06 16:16:47 +00:00
The node explorer provides views of the node's vault and transaction data using Corda's RPC framework.
2016-11-23 09:57:28 +00:00
The user can execute cash transaction commands to issue and move cash to other parties on the network or exit cash using the user interface.
2016-11-23 09:57:28 +00:00
## Running the UI
2016-11-23 09:57:28 +00:00
**Windows:**
gradlew.bat tools:explorer:run
2016-11-23 09:57:28 +00:00
**Other:**
./gradlew tools:explorer:run
2016-11-23 09:57:28 +00:00
## Running Demo Nodes
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-06 16:16:47 +00:00
A demonstration Corda network topology is configured with 5 nodes playing the following roles:
1. Notary
2. Issuer nodes (representing two fictional central banks - UK Bank Plc issuer of GBP and USA Bank Corp issuer of USD)
3. Participant nodes (representing two users - Alice and Bob)
The Issuer nodes have the ability to issue, move and exit cash amounts.
The Participant nodes are only able to spend cash (eg. move cash).
2016-11-23 09:57:28 +00:00
**Windows:**
gradlew.bat tools:explorer:runDemoNodes
2016-11-23 09:57:28 +00:00
**Other:**
./gradlew tools:explorer:runDemoNodes
2016-11-23 09:57:28 +00:00
**These Corda nodes will be created on the following port on localhost.**
* Notary -> 20005 (Does not accept logins)
* UK Bank Plc -> 20011 (*Issuer node*)
* USA Bank Corp -> 20008 (*Issuer node*)
* Alice -> 20017
* Bob -> 20014
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-06 16:16:47 +00:00
2017-03-20 16:25:45 +00:00
Explorer login credentials to the Issuer nodes are defaulted to ``manager`` and ``test``.
Explorer login credentials to the Participant nodes are defaulted to ``user1`` and ``test``.
2017-03-20 16:25:45 +00:00
Please note you are not allowed to login to the notary.
## Running Simulation Nodes
Building on the demonstration Corda network topology described above, simulation mode performs continuous
issue, move and exit cash operations across all participant nodes.
**Windows:**
gradlew.bat tools:explorer:runSimulationNodes
**Other:**
./gradlew tools:explorer:runSimulationNodes
## Running Flow Triage scenario
Once again, building on the demonstration Corda network topology described above, this scenario mode triggers
an exception within a flow which can then be visualized using the "Flow Triage" panel within the Explorer.
The "Flow Triage" panel will be enhanced in the future to enable operators to take corrective actions upon flow failures
(eg. retry, terminate, amend and replay)
**Windows:**
gradlew.bat tools:explorer:runFlowTriageNodes
**Other:**
./gradlew tools:explorer:runFlowTriageNodes
## Business Network reference implementation
An additional "IOU" panel is now visible in the main Explorer dashboard to demonstrate the new Business Networks concept using a sample IOU product.
Business Networks are introduced in order to segregate Corda Nodes that do not need to transact with each other or indeed even know of each others existence.
Whenever an IOU transaction is entered, membership checks are performed to ensure that participants are included in the same
Business Network.
Upon startup both "Alice" and "Bob" are configured to be part of the same Business Network and therefore can transact with each other.
The transactions panel been also extended to be able to display details of the IOU transactions.
Use the following Business Network configuration file to define what participants are included within its membership:
`samples\business-network-demo\build\resources\main\net\corda\sample\businessnetwork\membership\internal\AliceBobMembershipList.csv`
could be modified (no restart necessary) and then IOU transaction will no longer be possible between "Alice" and "Bob".
Please note Business Networks functionality only applies to the same IOU CorDapp, Cash payments CorDapp will allow transactions between
"Alice" and "Bob" at all times.
2016-11-23 09:57:28 +00:00
## TODOs:
- Shows more useful information in the dashboard.
- Improve Network View, display other nodes in the world map and show transactions between them.
- Add a new view showing node's state machines.
- Link transaction input to its originated transaction to make it easier to trace back.
- Shows Node information (Configuration, properties etc.) in Settings view.
- Support other contract types.
More information can be found in the [Project website](https://corda.net) and [Documentation](https://docs.corda.net).