corda/docs/build/html/node-explorer.html

431 lines
20 KiB
HTML

<!-- If you edit this, then please make the same changes to layout_for_doc_website.html, as that is used for the web
doc site generation which we put analytics tracking on to identify any potential problem pages -->
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Node Explorer &mdash; R3 Corda latest documentation</title>
<link rel="stylesheet" href="_static/css/custom.css" type="text/css" />
<link rel="top" title="R3 Corda latest documentation" href="index.html"/>
<link rel="next" title="Network permissioning" href="permissioning.html"/>
<link rel="prev" title="Brief introduction to the node services" href="node-services.html"/>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="index.html" class="icon icon-home"> R3 Corda
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<br>
API reference: <a href="api/kotlin/corda/index.html">Kotlin</a>/ <a href="api/javadoc/index.html">JavaDoc</a>
<br>
<a href="https://discourse.corda.net">Discourse Forums</a>
<br>
<a href="http://slack.corda.net">Slack</a>
<br>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">Getting started</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="inthebox.html">What&#8217;s included?</a></li>
<li class="toctree-l1"><a class="reference internal" href="getting-set-up.html">Getting set up</a></li>
<li class="toctree-l1"><a class="reference internal" href="getting-set-up-fault-finding.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="running-the-demos.html">Running the demos</a></li>
<li class="toctree-l1"><a class="reference internal" href="CLI-vs-IDE.html">CLI vs IDE</a></li>
</ul>
<p class="caption"><span class="caption-text">Key concepts</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="data-model.html">Data model</a></li>
<li class="toctree-l1"><a class="reference internal" href="transaction-data-types.html">Data types</a></li>
<li class="toctree-l1"><a class="reference internal" href="merkle-trees.html">Transaction tear-offs</a></li>
<li class="toctree-l1"><a class="reference internal" href="consensus.html">Consensus model</a></li>
<li class="toctree-l1"><a class="reference internal" href="clauses.html">Clauses</a></li>
</ul>
<p class="caption"><span class="caption-text">CorDapps</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html">CorDapp basics</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-cordapp.html">The CorDapp template</a></li>
</ul>
<p class="caption"><span class="caption-text">The Corda node</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="clientrpc.html">Client RPC</a></li>
<li class="toctree-l1"><a class="reference internal" href="messaging.html">Networking and messaging</a></li>
<li class="toctree-l1"><a class="reference internal" href="persistence.html">Persistence</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-administration.html">Node administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-configuration-file.html">Node configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-plugins.html">The Corda plugin framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-services.html">Brief introduction to the node services</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Node Explorer</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#running-the-ui">Running the UI</a></li>
<li class="toctree-l2"><a class="reference internal" href="#running-demo-nodes">Running demo nodes</a></li>
<li class="toctree-l2"><a class="reference internal" href="#interface">Interface</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="permissioning.html">Network permissioning</a></li>
</ul>
<p class="caption"><span class="caption-text">Tutorials</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="tutorial-contract.html">Writing a contract</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-contract-clauses.html">Writing a contract using clauses</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-test-dsl.html">Writing a contract test</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-integration-testing.html">Integration testing</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-clientrpc-api.html">Client RPC API tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-building-transactions.html">Building transactions</a></li>
<li class="toctree-l1"><a class="reference internal" href="flow-state-machines.html">Writing flows</a></li>
<li class="toctree-l1"><a class="reference internal" href="flow-testing.html">Writing flow tests</a></li>
<li class="toctree-l1"><a class="reference internal" href="running-a-notary.html">Running a notary service</a></li>
<li class="toctree-l1"><a class="reference internal" href="using-a-notary.html">Using a notary service</a></li>
<li class="toctree-l1"><a class="reference internal" href="oracles.html">Writing oracle services</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-attachments.html">Using attachments</a></li>
<li class="toctree-l1"><a class="reference internal" href="event-scheduling.html">Event scheduling</a></li>
</ul>
<p class="caption"><span class="caption-text">Other</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="network-simulator.html">Network Simulator</a></li>
</ul>
<p class="caption"><span class="caption-text">Component library</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="contract-catalogue.html">Contract catalogue</a></li>
<li class="toctree-l1"><a class="reference internal" href="contract-irs.html">Interest rate swaps</a></li>
</ul>
<p class="caption"><span class="caption-text">Appendix</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="loadtesting.html">Load testing</a></li>
<li class="toctree-l1"><a class="reference internal" href="setting-up-a-corda-network.html">What is a corda network?</a></li>
<li class="toctree-l1"><a class="reference internal" href="secure-coding-guidelines.html">Secure coding guidelines</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-process.html">Release process</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="codestyle.html">Code style guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="building-the-docs.html">Building the documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="publishing-corda.html">Publishing Corda</a></li>
<li class="toctree-l1"><a class="reference internal" href="azure-vm.html">Working with the Corda Demo on Azure Marketplace</a></li>
</ul>
<p class="caption"><span class="caption-text">Glossary</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">R3 Corda</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li>Node Explorer</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/node-explorer.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="node-explorer">
<h1>Node Explorer<a class="headerlink" href="#node-explorer" title="Permalink to this headline"></a></h1>
<p>The node explorer provides views into a node&#8217;s vault and transaction data using Corda&#8217;s RPC framework.
The user can execute cash transaction commands to issue and move cash to other parties on the network or exit cash (eg. remove from the ledger)</p>
<div class="section" id="running-the-ui">
<h2>Running the UI<a class="headerlink" href="#running-the-ui" title="Permalink to this headline"></a></h2>
<p><strong>Windows</strong>:</p>
<div class="highlight-kotlin"><div class="highlight"><pre><span></span><span class="n">gradlew</span><span class="p">.</span><span class="n">bat</span> <span class="n">tools</span><span class="p">:</span><span class="n">explorer</span><span class="p">:</span><span class="n">run</span>
</pre></div>
</div>
<p><strong>Other</strong>:</p>
<div class="highlight-kotlin"><div class="highlight"><pre><span></span><span class="p">./</span><span class="n">gradlew</span> <span class="n">tools</span><span class="p">:</span><span class="n">explorer</span><span class="p">:</span><span class="n">run</span>
</pre></div>
</div>
</div>
<div class="section" id="running-demo-nodes">
<h2>Running demo nodes<a class="headerlink" href="#running-demo-nodes" title="Permalink to this headline"></a></h2>
<p>A demonstration Corda network topology is configured with 5 nodes playing the following roles:</p>
<ol class="arabic simple">
<li>Notary</li>
<li>Issuer nodes, representing two fictional central banks (UK Bank Plc issuer of GBP and USA Bank Corp issuer of USD)</li>
<li>Participant nodes, representing two users (Alice and Bob)</li>
</ol>
<p>When connected to an <em>Issuer</em> node, a user can execute cash transaction commands to issue and move cash to itself or other
parties on the network or to exit cash (for itself only).</p>
<p>When connected to a <em>Participant</em> node a user can only execute cash transaction commands to move cash to other parties on the network.</p>
<p>The Demo Nodes can be started in one of two modes:</p>
<ol class="arabic">
<li><p class="first">Normal</p>
<p>Fresh clean environment empty of transactions.
Firstly, launch an Explorer instance to login to one of the Issuer nodes and issue some cash to the other participants (Bob and Alice).
Then launch another Explorer instance to login to a participant node and start making payments (eg. move cash).
You will only be able to exit (eg. redeem from the ledger) cash as an issuer node.</p>
</li>
</ol>
<p><strong>Windows</strong>:</p>
<div class="highlight-kotlin"><div class="highlight"><pre><span></span><span class="n">gradlew</span><span class="p">.</span><span class="n">bat</span> <span class="n">tools</span><span class="p">:</span><span class="n">explorer</span><span class="p">:</span><span class="n">runDemoNodes</span>
</pre></div>
</div>
<p><strong>Other</strong>:</p>
<div class="highlight-kotlin"><div class="highlight"><pre><span></span><span class="p">./</span><span class="n">gradlew</span> <span class="n">tools</span><span class="p">:</span><span class="n">explorer</span><span class="p">:</span><span class="n">runDemoNodes</span>
</pre></div>
</div>
<ol class="arabic" start="2">
<li><p class="first">Simulation</p>
<p>In this mode Nodes will automatically commence executing commands as part of a random generation process.
Issuer nodes will randomly issue, move and exit cash.
Participant nodes will randomly generate spends (eg. move cash to other nodes, including issuers)</p>
</li>
</ol>
<p><strong>Windows</strong>:</p>
<div class="highlight-kotlin"><div class="highlight"><pre><span></span><span class="n">gradlew</span><span class="p">.</span><span class="n">bat</span> <span class="n">tools</span><span class="p">:</span><span class="n">explorer</span><span class="p">:</span><span class="n">runSimulationNodes</span>
</pre></div>
</div>
<p><strong>Other</strong>:</p>
<div class="highlight-kotlin"><div class="highlight"><pre><span></span><span class="p">./</span><span class="n">gradlew</span> <span class="n">tools</span><span class="p">:</span><span class="n">explorer</span><span class="p">:</span><span class="n">runSimulationNodes</span>
</pre></div>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p>5 Corda nodes will be created on the following port on localhost by default.</p>
<ul class="last simple">
<li>Notary -&gt; 20002</li>
<li>Alice -&gt; 20004</li>
<li>Bob -&gt; 20006</li>
<li>UK Bank Plc -&gt; 20008 (<em>Issuer node</em>)</li>
<li>USA Bank Corp -&gt; 20010 (<em>Issuer node</em>)</li>
</ul>
</div>
<p>Explorer login credentials to the Issuer nodes are defaulted to <code class="docutils literal"><span class="pre">manager</span></code> and <code class="docutils literal"><span class="pre">test</span></code>.
Explorer login credentials to the Participants nodes are defaulted to <code class="docutils literal"><span class="pre">user1</span></code> and <code class="docutils literal"><span class="pre">test</span></code>.
Please note you are not allowed to connect to the notary.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Alternatively, you may start the demo nodes from within IntelliJ using either of the run configurations
<code class="docutils literal"><span class="pre">Explorer</span> <span class="pre">-</span> <span class="pre">demo</span> <span class="pre">nodes</span></code> or <code class="docutils literal"><span class="pre">Explorer</span> <span class="pre">-</span> <span class="pre">demo</span> <span class="pre">nodes</span> <span class="pre">(simulation)</span></code></p>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Use the Explorer in conjunction with the Trader Demo and Bank of Corda samples to use other <em>Issuer</em> nodes.</p>
</div>
</div>
<div class="section" id="interface">
<h2>Interface<a class="headerlink" href="#interface" title="Permalink to this headline"></a></h2>
<dl class="docutils">
<dt>Login</dt>
<dd>User can login to any Corda node using the explorer. Alternatively, <code class="docutils literal"><span class="pre">gradlew</span> <span class="pre">explorer:runDemoNodes</span></code> can be used to start up demo nodes for testing.
Corda node address, username and password are required for login, the address is defaulted to localhost:0 if leave blank.
Username and password can be configured via the <code class="docutils literal"><span class="pre">rpcUsers</span></code> field in node&#8217;s configuration file.</dd>
</dl>
<a class="reference internal image-reference" href="_images/login.png"><img alt="_images/login.png" class="align-center" src="_images/login.png" style="width: 520.0px; height: 599.0px;" /></a>
<dl class="docutils">
<dt>Dashboard</dt>
<dd>The dashboard shows the top level state of node and vault.
Currently, it shows your cash balance and the numbers of transaction executed.
The dashboard is intended to house widgets from different CordApps and provide useful information to system admin at a glance.</dd>
</dl>
<img alt="_images/dashboard.png" src="_images/dashboard.png" />
<dl class="docutils">
<dt>Cash</dt>
<dd>The cash view shows all currencies you currently own in a tree table format, it is grouped by issuer -&gt; currency.
Individual cash transactions can be viewed by clicking on the table row. The user can also use the search field to narrow down the scope.</dd>
</dl>
<img alt="_images/vault.png" src="_images/vault.png" />
<dl class="docutils">
<dt>New Transactions</dt>
<dd><p class="first">This is where you can create new cash transactions.
The user can choose from three transaction types (issue, pay and exit) and any party visible on the network.</p>
<p class="last">General nodes can only execute pay commands to any other party on the network.</p>
</dd>
</dl>
<img alt="_images/newTransactionCash.png" src="_images/newTransactionCash.png" />
<dl class="docutils">
<dt>Issuer Nodes</dt>
<dd>Issuer nodes can execute issue (to itself or to any other party), pay and exit transactions.
The result of the transaction will be visible in the transaction screen when executed.</dd>
</dl>
<img alt="_images/newTransactionIssuer.png" src="_images/newTransactionIssuer.png" />
<dl class="docutils">
<dt>Transactions</dt>
<dd>The transaction view contains all transactions handled by the node in a table view. It shows basic information on the table e.g. Transaction ID,
command type, USD equivalence value etc. User can expand the row by double clicking to view the inputs,
outputs and the signatures details for that transaction.</dd>
</dl>
<img alt="_images/transactionView.png" src="_images/transactionView.png" />
<dl class="docutils">
<dt>Network</dt>
<dd>The network view shows the network information on the world map. Currently only the user&#8217;s node is rendered on the map.
This will be extended to other peers in a future release.
The map provides an intuitive way of visualizing the Corda network and the participants.</dd>
</dl>
<img alt="_images/network.png" src="_images/network.png" />
<dl class="docutils">
<dt>Settings</dt>
<dd>User can configure the client preference in this view.</dd>
</dl>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Although the reporting currency is configurable, FX conversion won&#8217;t be applied to the values as we don&#8217;t have an FX service yet.</p>
</div>
<img alt="_images/settings.png" src="_images/settings.png" />
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="permissioning.html" class="btn btn-neutral float-right" title="Network permissioning" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="node-services.html" class="btn btn-neutral" title="Brief introduction to the node services" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2016, R3 Limited.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'latest',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
</body>
</html>