corda/docs/build/html/getting-set-up.html

366 lines
18 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="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="#a-jvm">A JVM</a></li>
<li class="toctree-l2"><a class="reference internal" href="#intellij">IntelliJ</a></li>
<li class="toctree-l2"><a class="reference internal" href="#kotlin">Kotlin</a></li>
<li class="toctree-l2"><a class="reference internal" href="#version-control-via-git">Version control via Git</a></li>
<li class="toctree-l2"><a class="reference internal" href="#gradle">Gradle</a></li>
<li class="toctree-l2"><a class="reference internal" href="#corda-source-code">Corda source code</a></li>
<li class="toctree-l2"><a class="reference internal" href="#troubleshooting">Troubleshooting</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="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>
<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>
</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>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>
<p>We have tried to make access to Corda as relatively simple as possible, using industry standard established tools.
Although it is possible to replace any of the recommendations below, we will find it a lot easier to support your efforts
if you follow our guidelines. Saying that, we are also interested in problems that arise due to different configurations.</p>
<div class="section" id="a-jvm">
<h2>A JVM<a class="headerlink" href="#a-jvm" title="Permalink to this headline"></a></h2>
<p>Corda runs in a JVM and is written predominantly in Kotlin with some example use cases demonstrated in Java that we have
incorporated to demonstrate that Kotlin and Java can work seamlessly together. We recommend the most recent production
version of Java 8. The JDK can be obtained <a class="reference external" href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">from Oracle</a>.
Other implementations of the JVM are not actively supported, but as mentioned, we are interested in finding out any issues you
do have with them.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">If you are using a JVM implementation other than Oracle&#8217;s you may get errors similar to <code class="docutils literal"><span class="pre">Unresolved</span> <span class="pre">reference:</span> <span class="pre">javafx</span></code>.
This means JavaFX is not bundled with the JVM and you will need to install it separately (e.g. OpenJFX is needed
with OpenJDK).</p>
</div>
</div>
<div class="section" id="intellij">
<h2>IntelliJ<a class="headerlink" href="#intellij" title="Permalink to this headline"></a></h2>
<p>We strongly recommend the use of IntelliJ&#8217;s Development Environment known as IDEA. Download it for free from
<a class="reference external" href="https://www.jetbrains.com/idea/download/">JetBrains</a>. The primary reason we recommend this particular IDE is that it integrates
very well with our choice of language for Corda, &#8220;Kotlin&#8221;, as JetBrains also support the development of Kotlin.</p>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">When opening the Corda project for the first time from the IntelliJ splash screen, please use &#8220;Open&#8221;
and then agree to import the Gradle project from the popup bubble. Don&#8217;t pick &#8220;Import&#8221; on the splash screen,
because a bug in IntelliJ will cause the pre-packaged run configurations to be erased. If you see this warning
too late, it&#8217;s no 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 IntelliJ
to undelete the files.</p>
</div>
</div>
<div class="section" id="kotlin">
<h2>Kotlin<a class="headerlink" href="#kotlin" title="Permalink to this headline"></a></h2>
<p>Kotlin is available as a downloadable plugin to IntelliJ. Refer to IntelliJ&#8217;s instructions on
<a class="reference external" href="https://kotlinlang.org/docs/tutorials/getting-started.html">getting Started with Kotlin and IntelliJ</a>. Additionally,
if you would like to start getting to grips with the Kotlin language, then we strongly recommend you work through some
of the tutorials (known as &#8220;koans&#8221;) as well. Also see 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="version-control-via-git">
<h2>Version control via Git<a class="headerlink" href="#version-control-via-git" title="Permalink to this headline"></a></h2>
<p>We use git to version control Corda. The authoritative place to obtain git is from the main <a class="reference external" href="https://git-scm.com/downloads">git website</a>
but it may be the case that your operating system provides git with a supported utility (e.g. for Apple, git is provided along
with XCode - their free development environment). If this is the case, we would recommend you obtain git via that
supported route.</p>
<p>You will need the command line package installed which you can then use natively (via the command line) or via IntelliJ
(in which case you may need to configure IntelliJ to recognise where git has been installed on your system). IntelliJ and
git configuration are quite seamless although the first time you use it, you will have to configure IntelliJ the location
of your git command installation. More details regarding this 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">
<h2>Gradle<a class="headerlink" href="#gradle" title="Permalink to this headline"></a></h2>
<p>Gradle is our primary means of building Corda and managing dependencies. IntelliJ has its own view of this and occasionally
may need to be resynced from time to time. This can be done within IntelliJ by pressing the &#8220;gradle refresh&#8221; icon located
on the gradle tab (generally found on the right hand side), or by following the gradle commands specific for the task you
are performing (details expounded later). Whenever prompted about gradle, accept the defaults suggested by IntelliJ.</p>
</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>You can check out the Corda platform source code from this repository:</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 template app that you can use as a basis for experimenting with app development from:</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 catch up with the latest code by selecting &#8220;VCS -&gt; Update Project&#8221; in the IntelliJ menu.</p>
</div>
<div class="section" id="troubleshooting">
<h2>Troubleshooting<a class="headerlink" href="#troubleshooting" title="Permalink to this headline"></a></h2>
<p>See <a class="reference internal" href="getting-set-up-fault-finding.html"><span class="doc">Troubleshooting</span></a>, or get in touch with us either 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>