corda/docs/build/html/getting-set-up.html
2017-01-31 13:02:43 +00:00

388 lines
20 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- 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>Getting set up &mdash; R3 Corda latest documentation</title>
<link rel="stylesheet" href="_static/css/custom.css" type="text/css" />
<link rel="index" title="Index"
href="genindex.html"/>
<link rel="search" title="Search" href="search.html"/>
<link rel="top" title="R3 Corda latest documentation" href="index.html"/>
<link rel="next" title="Troubleshooting" href="getting-set-up-fault-finding.html"/>
<link rel="prev" title="Whats included?" href="inthebox.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 class="current">
<li class="toctree-l1"><a class="reference internal" href="inthebox.html">What&#8217;s included?</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Getting set up</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#software-requirements">Software requirements</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#jvm">JVM</a></li>
<li class="toctree-l3"><a class="reference internal" href="#kotlin">Kotlin</a></li>
<li class="toctree-l3"><a class="reference internal" href="#ide">IDE</a></li>
<li class="toctree-l3"><a class="reference internal" href="#git">Git</a></li>
<li class="toctree-l3"><a class="reference internal" href="#gradle">Gradle</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#corda-source-code">Corda source code</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#opening-corda-cordapps-in-idea">Opening Corda/CorDapps in IDEA</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#next-steps">Next steps</a></li>
</ul>
</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="key-concepts.html">Overview</a></li>
<li class="toctree-l1"><a class="reference internal" href="key-concepts-ecosystem.html">Corda ecosystem</a></li>
<li class="toctree-l1"><a class="reference internal" href="key-concepts-data-model.html">Data model</a></li>
<li class="toctree-l1"><a class="reference internal" href="key-concepts-core-types.html">Core types</a></li>
<li class="toctree-l1"><a class="reference internal" href="key-concepts-financial-model.html">Financial model</a></li>
<li class="toctree-l1"><a class="reference internal" href="key-concepts-flow-framework.html">Flow framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="key-concepts-consensus-notaries.html">Consensus and notaries</a></li>
<li class="toctree-l1"><a class="reference internal" href="key-concepts-vault.html">Vault</a></li>
<li class="toctree-l1"><a class="reference internal" href="key-concepts-security-model.html">Security model</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>
<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"><a class="reference internal" href="node-explorer.html">Node Explorer</a></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>
<li class="toctree-l1"><a class="reference internal" href="clauses.html">Clauses</a></li>
<li class="toctree-l1"><a class="reference internal" href="merkle-trees.html">Transaction tear-offs</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="further-notes-on-kotlin.html">Further notes on Kotlin</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>Getting set up</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/getting-set-up.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="getting-set-up">
<h1>Getting set up<a class="headerlink" href="#getting-set-up" title="Permalink to this headline"></a></h1>
<div class="section" id="software-requirements">
<h2>Software requirements<a class="headerlink" href="#software-requirements" title="Permalink to this headline"></a></h2>
<p>Corda uses industry-standard tools to make set-up as simple as possible. Following the software recommendations below will
minimize the number of errors you encounter, and make it easier for others to provide support. However, if you do use other tools,
we&#8217;re interested to hear about any issues that arise.</p>
<div class="section" id="jvm">
<h3>JVM<a class="headerlink" href="#jvm" title="Permalink to this headline"></a></h3>
<p>Corda is written in Kotlin and runs in a JVM. We develop against Oracle JDK 8, and other JVM implementations are not actively
supported. Oracle JDK 8 can be obtained directly from
<a class="reference external" href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Oracle</a>. Installation instructions are
available for <a class="reference external" href="http://docs.oracle.com/javase/8/docs/technotes/guides/install/windows_jdk_install.html#CHDEBCCJ">Windows</a>,
<a class="reference external" href="http://docs.oracle.com/javase/8/docs/technotes/guides/install/linux_jdk.html#BJFGGEFG">Linux</a> and
<a class="reference external" href="http://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html#CHDBADCG">OS X</a>.</p>
<p>Please ensure that you keep your Oracle JDK installation updated to the latest version while working with Corda.
Even earlier versions of JDK 8 versions can cause cryptic errors.</p>
<p>If you do choose to use OpenJDK instead of Oracle&#8217;s JDK, you will also need to install OpenJFX.</p>
<p>Additional troubleshooting information can be found <a class="reference external" href="https://docs.corda.net/getting-set-up-fault-finding.html#java-issues">here</a>.</p>
</div>
<div class="section" id="kotlin">
<h3>Kotlin<a class="headerlink" href="#kotlin" title="Permalink to this headline"></a></h3>
<p>Applications on Corda (CorDapps) can be written in any JVM-targeting language. However, Corda itself and most of the samples
are written in Kotlin. If you&#8217;re unfamiliar with Kotlin, there is an official <a class="reference external" href="https://kotlinlang.org/docs/tutorials/">getting started guide</a>.
See also our <a class="reference internal" href="further-notes-on-kotlin.html"><span class="doc">Further notes on Kotlin</span></a>.</p>
</div>
<div class="section" id="ide">
<h3>IDE<a class="headerlink" href="#ide" title="Permalink to this headline"></a></h3>
<p>We strongly recommend the use of IntelliJ IDEA as an IDE, primarily due to the strength of its Kotlin integration. The free Community
Edition can be downloaded from <a class="reference external" href="https://www.jetbrains.com/idea/download/">JetBrains</a>.</p>
<p>Please make sure that you&#8217;re running the latest version of IDEA, as older versions have been known to have problems integrating with Gradle,
the build tool used by Corda.</p>
<p>You&#8217;ll also want to install the Kotlin IDEA plugin by following the instructions
<a class="reference external" href="https://kotlinlang.org/docs/tutorials/getting-started.html">here</a>.</p>
<p>Additional troubleshooting information can be found <a class="reference external" href="https://docs.corda.net/getting-set-up-fault-finding.html#idea-issues">here</a>.</p>
</div>
<div class="section" id="git">
<h3>Git<a class="headerlink" href="#git" title="Permalink to this headline"></a></h3>
<p>We use git to version-control Corda. Instructions on installing git can be found
<a class="reference external" href="https://git-scm.com/book/en/v2/Getting-Started-Installing-Git">here</a>.</p>
<p>Following these instructions will give you access to git via the command line. It can also be useful to control git via IDEA. Instructions
for doing so can be found on the <a class="reference external" href="https://www.jetbrains.com/help/idea/2016.2/using-git-integration.html">JetBrains website</a>.</p>
</div>
<div class="section" id="gradle">
<h3>Gradle<a class="headerlink" href="#gradle" title="Permalink to this headline"></a></h3>
<p>We use Gradle as the build tool for Corda. However, you do not need to install Gradle itself, as a wrapper is provided.</p>
<p>The wrapper can be run from the command line by using <code class="docutils literal"><span class="pre">./gradlew</span> <span class="pre">[taskName]</span></code> on OS X/Linux, or <code class="docutils literal"><span class="pre">gradlew.bat</span> <span class="pre">[taskName]</span></code> on Windows.</p>
</div>
</div>
<div class="section" id="corda-source-code">
<h2>Corda source code<a class="headerlink" href="#corda-source-code" title="Permalink to this headline"></a></h2>
<p>The Corda platform source code is available here:</p>
<blockquote>
<div><a class="reference external" href="https://github.com/corda/corda.git">https://github.com/corda/corda.git</a></div></blockquote>
<p>and a basic CorDapp that you can use as the basis for your own CorDapps is available here:</p>
<blockquote>
<div><a class="reference external" href="https://github.com/corda/cordapp-template.git">https://github.com/corda/cordapp-template.git</a></div></blockquote>
<p>You can clone both of these repos to your local machine by running the command <code class="docutils literal"><span class="pre">git</span> <span class="pre">clone</span> <span class="pre">[repo</span> <span class="pre">URL]</span></code>.</p>
<p>By default, both repos will be on the <code class="docutils literal"><span class="pre">master</span></code> branch. However, this is an unstable development branch. You should check
out the latest milestone release (currently Milestone 7) instead by running <code class="docutils literal"><span class="pre">git</span> <span class="pre">checkout</span> <span class="pre">release-M7</span></code>.</p>
<div class="section" id="opening-corda-cordapps-in-idea">
<h3>Opening Corda/CorDapps in IDEA<a class="headerlink" href="#opening-corda-cordapps-in-idea" title="Permalink to this headline"></a></h3>
<p>When opening a Corda project for the first time from the IDEA splash screen, please click &#8220;Open&#8221; rather than &#8220;Import Project&#8221;,
and then import the Gradle project by clicking &#8220;Import Gradle project&#8221; in the popup bubble on the lower right-hand side of the screen.
If you instead pick &#8220;Import Project&#8221; on the splash screen, a bug in IDEA will cause Corda&#8217;s pre-packaged run configurations to be erased.</p>
<p>If you see this warning too late, that&#8217;s not a problem - just use <code class="docutils literal"><span class="pre">git</span> <span class="pre">checkout</span> <span class="pre">.idea/runConfiguration</span></code> or the version control tab in
IDEA to undelete the files.</p>
<p>IDEA&#8217;s build of the project may need to be resynced from time to time. This can be done from within IDEA by going to &#8220;View&#8221; -&gt; &#8220;Tool Windows&#8221; -&gt; &#8220;Gradle&#8221;
and clicking &#8220;Refresh all Gradle projects&#8221;. Whenever prompted about Gradle, accept the defaults suggested by IDEA.</p>
</div>
</div>
<div class="section" id="next-steps">
<h2>Next steps<a class="headerlink" href="#next-steps" title="Permalink to this headline"></a></h2>
<p>The best way to check that everything is working fine is by <a class="reference internal" href="running-the-demos.html"><span class="doc">Running the demos</span></a>.</p>
<p>Once you have these demos running, you may be interested in writing your own CorDapps, in which case you should refer to
<a class="reference internal" href="tutorial-cordapp.html"><span class="doc">The CorDapp template</span></a>.</p>
<p>If you encounter any issues, please see the <a class="reference internal" href="getting-set-up-fault-finding.html"><span class="doc">Troubleshooting</span></a> page, or get in touch with us on the
<a class="reference external" href="https://discourse.corda.net/">forums</a> or via <a class="reference external" href="http://slack.corda.net/">slack</a>.</p>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="getting-set-up-fault-finding.html" class="btn btn-neutral float-right" title="Troubleshooting" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="inthebox.html" class="btn btn-neutral" title="Whats included?" 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>