corda/docs/build/html/roadmap.html
2015-12-15 14:27:06 +01:00

239 lines
7.3 KiB
HTML

<!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>Roadmap &mdash; R3 Prototyping 0.1 documentation</title>
<link rel="stylesheet" href="_static/css/custom.css" type="text/css" />
<link rel="top" title="R3 Prototyping 0.1 documentation" href="index.html"/>
<link rel="prev" title="Using the visualiser" href="visualiser.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 Prototyping
</a>
<div class="version">
0.1
</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>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<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="overview.html">Overview</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="tutorial.html">Tutorial</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="protocol-state-machines.html">Protocol state machines</a></li>
<li class="toctree-l1"><a class="reference internal" href="visualiser.html">Using the visualiser</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="">Roadmap</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 Prototyping</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>Roadmap</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/roadmap.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="roadmap">
<h1>Roadmap<a class="headerlink" href="#roadmap" title="Permalink to this headline"></a></h1>
<p>The canonical place to learn about pending tasks is the <a class="reference external" href="https://r3-cev.atlassian.net/">R3 JIRA</a> site. This
page gives some examples of tasks that we wish to explore in future milestones as part of proving (or disproving)
our core thesis</p>
<p>Data distribution and management:</p>
<ul class="simple">
<li>Introduce a pluggable network messaging backend with a mock implementation for testing, and an Apache Kafka based
implementation for bringing up first networking capability. Using Kafka as a message routing/storage layer is not
necessarily the final approach or suitable for P2P WAN messaging, but it should be a good next step for prototyping
and may even be a useful for internal deployments.</li>
<li>Flesh out the core code enough to have a server that downloads and verifies transactions as they are uploaded to the
cluster. At this stage all transactions are assumed to be public to the network (this will change later). Some basic
logging/JMX/monitoring dashboard should be present to see what the node is doing.</li>
<li>Experimentation with block-free conflict/double spend resolution using a voting pool of <em>observers</em> with lazy consensus.
Logic for rolling back losing transaction subgraphs when a conflict is resolved, reporting these events to observer
APIs and so on.</li>
<li>Support a pluggable storage layer for recording seen transactions and their validity states.</li>
</ul>
<p>Contracts API:</p>
<ul class="simple">
<li>Upgrades to the composability of contracts: demonstrate how states can require the presence of other states as a way
to mix in things like multi-signature requirements.</li>
<li>Demonstrate how states can be separated into two parts, the minimum necessary for conflict resolution (e.g. owner keys)
and a separated part that contains data useful for auditing and building confidence in the validity of a transaction
(e.g. amounts).</li>
<li>Explorations of improved time handling, and how best to express temporal logic in the contract API/DSL.</li>
</ul>
<p>JVM adaptations:</p>
<ul class="simple">
<li>Implement a sandbox and packaging system for contract logic. Contracts should be distributable through the network
layer.</li>
<li>Experiment with modifications to HotSpot to allow for safely killing threads (i.e. fixing the issues that make
Thread.stop() unsafe to use), and to measure and enforce runtime limits to handle runaway code.</li>
</ul>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="visualiser.html" class="btn btn-neutral" title="Using the visualiser" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2015, R3 CEV.
</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:'0.1',
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>