<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dev Blog &#8211; Ripple</title>
	<atom:link href="https://ripple.com/category/dev-blog/feed/" rel="self" type="application/rss+xml" />
	<link>https://ripple.com</link>
	<description>Ripple is the open-source payments protocol for free and instant exchange of any form of money or value.</description>
	<lastBuildDate>Fri, 18 Jan 2019 23:52:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.9.8</generator>
	<item>
		<title>Statement on the “Biased Nonce Sense” Paper</title>
		<link>https://ripple.com/dev-blog/statement-on-the-biased-nonce-sense-paper/</link>
		<pubDate>Tue, 15 Jan 2019 23:25:30 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=17578</guid>
		<description><![CDATA[<p>In the cryptography industry, it is well known that using repeated or insufficiently random &#8220;nonces&#8221; (also called &#8220;k&#8221; values) in ECDSA digital signatures carries security risks. A new research paper authored by Joachim Breitner and Nadia Heninger discloses a more serious attack than was previously known on signatures with imperfect nonces. The vulnerability comes from &#8230; <a href="https://ripple.com/dev-blog/statement-on-the-biased-nonce-sense-paper/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/statement-on-the-biased-nonce-sense-paper/">Statement on the “Biased Nonce Sense” Paper</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>In the cryptography industry, it is well known that using repeated or insufficiently random &#8220;nonces&#8221; (also called &#8220;k&#8221; values) in ECDSA digital signatures carries security risks. A new <a href="https://eprint.iacr.org/2019/023.pdf">research paper</a> authored by Joachim Breitner and Nadia Heninger discloses a more serious attack than was previously known on signatures with imperfect nonces.</p>
<p>The vulnerability comes from defects in software that signs transactions that are subsequently submitted to systems that use secp256k1 signatures &#8212; including Bitcoin, Ethereum, XRP Ledger and dozens of other distributed ledger technologies. This vulnerability is not present in the core software that operates these blockchains / distributed ledgers.</p>
<p>For several years, the widely agreed upon industry recommendation has been to use deterministic nonces as described in <a href="https://tools.ietf.org/html/rfc6979">RFC6979</a> when generating signatures for any of these systems. Those who use exclusively deterministic nonces (or use Ed25519 keys) are not vulnerable to this attack. Signing software contained in <code>rippled</code> and ripple-lib packages published by Ripple from August 2015 and later always use deterministic nonces.</p>
<h2 id="faq">FAQ</h2>
<ul>
<li><strong>Q: Is this an issue with the XRP Ledger?</strong></li>
<li>
<p><strong>A:</strong> No. It’s an issue with improperly made ECDSA signatures. The vulnerability comes from defects in signing software that does not properly use unbiased (random or deterministic but apparently random) nonces.</p>
</li>
<li>
<p><strong>Q: What systems are affected?</strong></p>
</li>
<li>
<p><strong>A:</strong> At least any systems that use secp256k1 signatures and support private key reuse. This includes Bitcoin, Ethereum, XRP Ledger, and many other blockchain systems.</p>
</li>
<li>
<p><strong>Q: What should users do?</strong></p>
</li>
<li>
<p><strong>A:</strong> It is recommended that users utilize either Ed25519 keys (which are unaffected) or software that uses deterministic nonces in its signatures. No changes to the XRP Ledger software are required. You can proactively rotate the keys associated with an XRP Ledger address by <a href="https://developers.ripple.com/assign-a-regular-key-pair.html">assigning a regular key pair</a> and then, optionally, disabling the master key. (If you are worried your master key may be compromised, you should disable it.)</p>
</li>
<li>
<p><strong>Q: Do I need to be worried about the security of my XRP Ledger accounts?</strong></p>
</li>
<li><strong>A:</strong> Follow this flowchart:<br />
    <img alt="If you have an XRP Ledger account, you have signed transactions from that account, you do not know whether your signatures all used deterministic nonces, _and_ you have not changed your key after any signatures that might have used weak nonces, you may be affected. Otherwise, you are not affected with regards to the XRP Ledger. Versions of rippled and ripple-lib from August 2015 and later always use deterministic nonces." src="https://cdn.ripple.com/wp-content/uploads/2019/01/biased-nonce-sense-flowchart.png"></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/statement-on-the-biased-nonce-sense-paper/">Statement on the “Biased Nonce Sense” Paper</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Introducing XRP Ledger (rippled) version 1.1.2</title>
		<link>https://ripple.com/dev-blog/introducing-xrp-ledger-rippled-version-1-1-2/</link>
		<pubDate>Wed, 12 Dec 2018 00:08:13 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=17500</guid>
		<description><![CDATA[<p>XRP Ledger (rippled) version 1.1.2 is now available. The XRP Ledger version 1.1.2 release includes a fix for a technical issue in the consensus &#8220;preferred ledger by branch&#8221; code, which could cause a validator to fail to settle on a single preferred branch of unconfirmed ledger history. While this is not entirely unexpected and the &#8230; <a href="https://ripple.com/dev-blog/introducing-xrp-ledger-rippled-version-1-1-2/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/introducing-xrp-ledger-rippled-version-1-1-2/">Introducing XRP Ledger (rippled) version 1.1.2</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><strong>XRP Ledger</strong> (<code>rippled</code>) version 1.1.2 is now available.</p>
<p>The XRP Ledger version 1.1.2 release includes a fix for a technical issue in the consensus &#8220;preferred ledger by branch&#8221; code, which could cause a validator to fail to settle on a single preferred branch of unconfirmed ledger history.  While this is not entirely unexpected and the code is designed to handle it, this issue exposed a corner case where the stringent safety guarantees of the consensus algorithm, as outlined in the recent <a href="https://arxiv.org/abs/1802.07242">Analysis of the XRP Ledger Consensus Protocol</a> paper, make it difficult for the entire network to efficiently recover from this condition.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a XRP Ledger validator server,</strong> then you should upgrade to XRP Ledger version 1.1.2 as soon as possible.</p>
<h3 id="impact-of-not-upgrading">Impact of Not Upgrading</h3>
<p>If you are not running release 1.1.2 or greater, then your validator server can potentially fail to settle on a single preferred ledger branch during consensus and resort to issuing partial validations, until it can resync with the network.</p>
<h3 id="upgrading">Upgrading</h3>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://developers.ripple.com/install-rippled.html">Installing rippled</a>.</p>
<p>The SHA-256 for the rpm is: <code>989a679bef72e827f204b394abd3d385f1baae6ad7a94eaf9b759a032bcd0f7e</code></p>
<p>The SHA-256 for the source rpm is: <code>091b60dcf38aea4f9ec252d7b1b72d95ca4f45b3a831fbe97ce8f806f2907cae</code></p>
<p>For other platforms, please compile version 1.1.2 from source.</p>
<ul>
<li><a href="https://developers.ripple.com/build-run-rippled-ubuntu.html">Build and Run <code>rippled</code> on Ubuntu Linux</a></li>
<li><a href="https://developers.ripple.com/build-run-rippled-macos.html">Build and run <code>rippled</code> on macOS</a></li>
<li>See <a href="https://github.com/ripple/rippled/tree/master/Builds">https://github.com/ripple/rippled/tree/master/Builds</a> for instructions by platform.</li>
</ul>
<p>The first log entry should be the change setting the version:</p>
<pre><code class="text">commit 4f3a76dec00c0c7ea28e78e625c68499debbbbf3
Author: Nik Bougalis &lt;nikb@bougalis.net&gt;
Date:   Thu Nov 29 21:49:10 2018 -0800
    Set version to 1.1.2
</code></pre>
<h2 id="network-update">Network Update</h2>
<p>Ripple plans to deploy version 1.1.2 to all XRP Ledger servers under its operational control, including private clusters, on Tuesday, 2018-12-11 at 22:00:00 UTC.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://developers.ripple.com/">XRP Ledger Dev Portal</a>, including detailed example API calls and web tools for API testing: <a href="https://developers.ripple.com/">https://developers.ripple.com/</a></p>
<p>Other resources:</p>
<ul>
<li>
<p><a href="https://forum.ripple.com/">The Ripple Forum</a></p>
</li>
<li>
<p>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></p>
</li>
<li>
<p><a href="http://www.xrpchat.com/">XRP Chat Forum</a></p>
</li>
</ul>
<h2 id="other-information">Other Information</h2>
<h3 id="bug-bounties-and-responsible-disclosures">Bug Bounties and Responsible Disclosures</h3>
<p>On behalf of the XRP Community, Ripple welcomes reviews of the <strong>XRP Ledger</strong> open source codebase and urge reviewers to responsibly disclose any issues that they may find. For more on Ripple&#8217;s Bug Bounty program, please visit <a href="https://ripple.com/bug-bounty/">https://ripple.com/bug-bounty/</a>.</p>
<h3 id="boost-compatibility">Boost Compatibility</h3>
<p>When compiling XRP Ledger from source, you must use a compatible version of the Boost library. <strong>As of XRP Ledger version 1.1.2, Boost 1.67.0 is required for all platforms.</strong></p>
<h2 id="112-change-log">1.1.2 Change Log</h2>
<h3 id="bug-fixes">Bug Fixes</h3>
<ul>
<li>
<p>Improve preferred ledger calculation (<a href="https://github.com/ripple/rippled/pull/2797/commits/bd2a38f5844ce824c02cce1ed97e9cf0cd04c019">#2797</a>)</p>
</li>
<li>
<p>Properly bypass connection limits for cluster peers (<a href="https://github.com/ripple/rippled/pull/2797/commits/61f443e3bbf3bf1f6e13f3ef25bb5fc60fe85078">#2795</a>)</p>
</li>
</ul>
<h2 id="contributions">Contributions</h2>
<p><strong>We welcome external contributions to the XRP Ledger codebase. Please submit a pull request with your proposed changes on the GitHub project page at <a href="https://github.com/ripple/rippled">https://github.com/ripple/rippled</a>.</strong></p>
<p>On behalf of the XRP Community, Ripple would like to thank those who have contributed to the development of the XRP Ledger (<code>rippled</code>) open source code, whether they did so by writing code, running the software, reporting issues, discovering bugs or offering suggestions for improvements.</p>
<p>The following is the list of people who made code contributions, large and small, to rippled prior to the release of 1.1.2:</p>
<p>Aishraj Dahal, Alex Chung, Alex Dupre, Andrey Fedorov, Arthur Britto, Bob Way, Brad Chase, Brandon Wilson, Bryce Lynch, Casey Bodley, Christian Ramseier, crazyquark, David Grogan, David Schwartz, Donovan Hide, Edward Hennis, Elliot Lee, Eric Lombrozo, Evan Hubinger, Frank Cash, Howard Hinnant, Iroskam, Jack Bond-Preston, jatchili, Jcar, Jed McCaleb, Jeff Trull, Joe Loser, Johanna Griffin, Josh Juran, Justin Lynn, Keaton Okkonen, Lieefu Way, Luke Cyca, Mark Travis, Markus Teufelberger, Miguel Portilla, Mike Ellery, MJK, Nicholas Dudfield, Nikolaos D. Bougalis, Niraj Pant, Patrick Dehne, Roberto Catini, Rome Reginelli, Scott Determan, Scott Schurr, S. Matthew English, Stefan Thomas, The Gitter Badger, Ties Jan Hefting, Tim Lewkow, Tom Ritchford, Torrie Fischer, Vahe Hovhannisyan, Vinnie Falco, Warren Paul Anderson, Will, wltsmrz, Wolfgang Spraul and Yana Novikova.</p>
<p>As XRP Ledger progresses through the 1.0 series, we look forward to more external contributions and are excited to see the broader XRP Ledger community grow and thrive.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/introducing-xrp-ledger-rippled-version-1-1-2/">Introducing XRP Ledger (rippled) version 1.1.2</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Introducing History Sharding</title>
		<link>https://ripple.com/dev-blog/introducing-history-sharding/</link>
		<pubDate>Wed, 31 Oct 2018 22:28:37 +0000</pubDate>
		<dc:creator><![CDATA[Jennifer Hasegawa]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=17335</guid>
		<description><![CDATA[<p>As rippled servers operate, they continually witness data appended onto an ever-growing blockchain. This data becomes the history that the network agrees upon and that constitutes everything about the XRP Ledger. As with most blockchains, it is imperative that XRP Ledger historical data remain readily available to participating servers. Therefore, every rippled server shares the &#8230; <a href="https://ripple.com/dev-blog/introducing-history-sharding/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/introducing-history-sharding/">Introducing History Sharding</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>As <code>rippled</code> servers operate, they continually witness data appended onto an ever-growing blockchain. This data becomes the history that the network agrees upon and that constitutes everything about the XRP Ledger.</p>
<p>As with most blockchains, it is imperative that XRP Ledger historical data remain readily available to participating servers. Therefore, every <code>rippled</code> server shares the responsibility of storing some history. But what if keeping the full history of the XRP Ledger starts to exceed the storage facility of most participants? For example, as of this writing, the space required to store full history of the XRP Ledger is over 8 terabytes, a hefty flash sum.</p>
<p>The <a href="https://developers.ripple.com/history-sharding.html">history sharding</a> feature, enabled in <code>rippled</code> version 0.90.0, addresses this issue by distributing history into segments called shards. A shard contains all of the data for a range of ledgers. Using the history sharding feature, individual <code>rippled</code> servers can contribute to storing historical data without needing to store the entire history.</p>
<p>A shard store does not replace a ledger store, but implements a reliable path toward distributed ledger history across the XRP Ledger Network. The history of all ledgers is shared by servers agreeing to keep shards. This makes it possible for servers to confirm that they have all the data they agreed to maintain, and produce proof trees or ledger deltas.</p>
<p>Because servers that are configured with history sharding randomly select the shards that they store, the full history of all closed ledgers is stored in a normal distribution curve, increasing the probability that the XRP Ledger Network evenly maintains the history.</p>
<h2 id="shard-store-validation">Shard Store Validation</h2>
<p>Beginning with <code>rippled</code> version 0.90.0, you can use the <a href="https://developers.ripple.com/commandline-usage.html#daemon-mode-options"><code>--validateShards</code></a> command to check that shard store data is valid and consistent with network history. For example:</p>
<pre><code>./rippled --validateShards</code></pre>
<p>This operation verifies that all objects stored for every ledger stored in each shard are valid and consistent with the network. Run this command only when you start the server and note that it may take a while to complete.</p>
<h2 id="node-store-to-shard-store">Node Store to Shard Store</h2>
<p>Beginning with <code>rippled</code> version 1.0.0, you can use the <a href="https://developers.ripple.com/commandline-usage.html#daemon-mode-options"><code>--nodetoshard</code></a> command to import the data from an existing ledger store into a shard store. For example:</p>
<pre><code>./rippled --nodetoshard</code></pre>
<p>This command enables you to create shards based on the history you already have. The command creates shards from complete ledger ranges in the ledger store.</p>
<p>The command creates a copy of the data, so your server must have the additional disk space required by the shard maximum disk space setting (<a href="https://developers.ripple.com/history-sharding.html#shard-store-configuration"><code>max_size_gb</code></a>) in the <code>rippled.cfg</code> configuration file.</p>
<h2 id="downloadable-shard-archives">Downloadable Shard Archives</h2>
<p>Beginning with <code>rippled</code> version 1.1.0, you can use the <code>download_shard</code> API method to download and import shard archives from an HTTPS web server. <!-- --> For example:</p>
<pre><code>{
   "command":"download_shard",
   "shards":[
      {
         "index":1,
         "url":"https://www.domain.com/1.tar.lz4"
      }
   ]
}</code></pre>
<p>A shard archive is a <a href="https://en.wikipedia.org/wiki/Tar_(computing)">tar</a> of a complete shard directory compressed with LZ4. Downloaded archives are checked to be valid and consistent with network history before being imported.</p>
<p>For more information, see <a href="https://developers.ripple.com/history-sharding.html">History Sharding</a>.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/introducing-history-sharding/">Introducing History Sharding</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Updates Coming to Data API</title>
		<link>https://ripple.com/dev-blog/updates-coming-to-data-api/</link>
		<pubDate>Tue, 23 Oct 2018 22:32:41 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=17269</guid>
		<description><![CDATA[<p>The Data API, which provides data to XRP Charts and third-party tools, is scheduled to update to version 2.4.0 in approximately two weeks, on 2018-11-07. This version improves the way the Data API imports and summarizes data on XRP Ledger validators. Improvements The Data API v2.4.0 changes provide the following benefits: Adds real-time tracking of &#8230; <a href="https://ripple.com/dev-blog/updates-coming-to-data-api/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/updates-coming-to-data-api/">Updates Coming to Data API</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The <a href="https://developers.ripple.com/data-api.html">Data API</a>, which provides data to <a href="https://xrpcharts.ripple.com/">XRP Charts</a> and third-party tools, is scheduled to update to <strong>version 2.4.0</strong> in approximately two weeks, on <strong>2018-11-07</strong>. This version improves the way the Data API imports and summarizes data on XRP Ledger validators.</p>
<h2 id="improvements">Improvements</h2>
<p>The Data API v2.4.0 changes provide the following benefits:</p>
<ul>
<li>Adds real-time tracking of validator agreement.</li>
<li>Indicates when a validator is included in the network&#8217;s recommended UNL.</li>
<li>Reports validator agreement in 1-hour and 24-hour rolling windows, plus (non-rolling) daily summaries.</li>
<li>Tracks whether validators follow the production network, the TestNet, or other ledger history chains.</li>
</ul>
<p>See the &#8220;Action Required&#8221; section below for a summary of which methods these changes apply to.</p>
<h2 id="action-required">Action Required</h2>
<p>This release contains the following breaking changes:</p>
<ul>
<li><strong>Removed methods.</strong> The following methods are removed in v2.4.0 and will no longer be available after the release on <strong>2018-11-07</strong>:
<ul>
<li><strong>Get Validations</strong> (<code>/v2/network/validations</code>)</li>
<li><strong>Get Validator Validations</strong> (<code>/v2/network/validators/{pubkey}/validations</code>)</li>
</ul>
</li>
<li><strong>Format Changes.</strong> The request and response formats of the following methods have changed.
<ul>
<li><strong><a href="https://developers.ripple.com/data-api.html#get-validator">Get Validator</a></strong> (<code>/v2/network/validators/{pubkey}</code>)</li>
<li><strong><a href="https://developers.ripple.com/data-api.html#get-validators">Get Validators</a></strong> (<code>/v2/network/validators</code>)</li>
<li><strong><a href="https://developers.ripple.com/data-api.html#get-daily-validator-reports">Get Daily Validator Reports</a></strong> (<code>/v2/network/validator_reports</code>)</li>
<li><strong><a href="https://developers.ripple.com/data-api.html#get-single-validator-reports">Get Single Validator Daily Reports</a></strong> (<code>/v2/network/validators/{pubkey}/validator_reports</code>)</li>
</ul>
</li>
</ul>
<p>If you use any of the above API methods, you may need to make changes to use the updated API.</p>
<h3 id="preview-on-staging">Preview on Staging</h3>
<p>You can try out the new methods by using <code>http://data-staging.ripple.com</code> as your base URL.</p>
<p>The <a href="https://developers.ripple.com/data-api.html">API Reference documentation</a> will be updated with the new formats soon.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/updates-coming-to-data-api/">Updates Coming to Data API</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled Version 1.1.1</title>
		<link>https://ripple.com/dev-blog/rippled-version-1-1-1/</link>
		<pubDate>Tue, 23 Oct 2018 20:38:39 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=17266</guid>
		<description><![CDATA[<p>Ripple has released rippled version 1.1.1, which improves handling of validator list sites. These changes improve retrieval of Ripple&#8217;s recommended UNL for servers in restrictive network environments, and prevent incorrect behavior in cases where a server is unable to fetch a validator list update before the previous list expires. Action Required If you operate a &#8230; <a href="https://ripple.com/dev-blog/rippled-version-1-1-1/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-1-1-1/">rippled Version 1.1.1</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple has released <code>rippled</code> version 1.1.1, which improves handling of validator list sites. These changes improve retrieval of Ripple&#8217;s recommended UNL for servers in restrictive network environments, and prevent incorrect behavior in cases where a server is unable to fetch a validator list update before the previous list expires.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server</strong>, then you should upgrade to <code>rippled</code> version 1.1.1 as soon as possible.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<ul>
<li><strong>If you operate a <code>rippled</code> server</strong>, but do not upgrade to version 1.1.1, then your server may behave incorrectly if it is unable to fetch a new validator list before its current list expires. (If your network configuration causes <code>rippled</code> to encounter HTTP redirects when fetching the validator list, this can prevent <code>rippled</code> 1.1.0 and lower from correctly downloading the updated list in a timely manner.)</li>
</ul>
<h2 id="upgrading">Upgrading</h2>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://developers.ripple.com/update-rippled.html">Updating <code>rippled</code></a>.</p>
<p>The SHA-256 for the RPM is: <code>a833fbaf988d85c985f80ad4dfd46a391cce7e884fba62b2f9b1b87aa41c3cfa</code></p>
<p>The SHA-256 for the source RPM is: <code>a88b538fc3ee0bb5cefe3e96622faebecebcc91e5c530f74283d49c9cfff41d4</code></p>
<p>For other platforms, please compile v1.1.1 from source. See the <a href="https://github.com/ripple/rippled/tree/develop/Builds"><code>rippled</code> source tree</a> for instructions by platform. For instructions building <code>rippled</code> from source on Ubuntu Linux, see <a href="https://developers.ripple.com/install-rippled.html#installation-on-ubuntu-with-alien">Install <code>rippled</code> on Ubuntu</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<pre><code class="hljs sql"><span class="hljs-keyword">commit</span> <span class="hljs-number">72e6005</span>f562a8f0818bc94803d222ac9345e1e40
Author: seelabs &lt;scott.determan@yahoo.com&gt;
<span class="hljs-built_in">Date</span>:   Fri <span class="hljs-keyword">Oct</span> <span class="hljs-number">19</span> <span class="hljs-number">13</span>:<span class="hljs-number">12</span>:<span class="hljs-number">40</span> <span class="hljs-number">2018</span> <span class="hljs-number">-0400</span>

    <span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">1.1</span><span class="hljs-number">.1</span>
</code></pre>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team plans to deploy version 1.1.1 to all <code>rippled</code> servers under its operational control, including private clusters, starting at 2:00 PM PDT on Tuesday, 2018-10-23. The deployment is expected to complete within 5 hours. The network should continue to operate during deployment and no outage is expected.</p>
<p><strong>Bug Bounties and Responsible Disclosures</strong></p>
<p>Ripple welcomes reviews of the <code>rippled</code> codebase and urges reviewers to responsibly disclose any issues that they may find. For more on Ripple&#8217;s Bug Bounty program, please visit <a href="https://ripple.com/bug-bounty/">https://ripple.com/bug-bounty/</a>.</p>
<p><strong>Boost Compatibility</strong></p>
<p>When compiling <code>rippled</code> from source, you must use a compatible version of the Boost library. <strong>For version 1.1.1, Boost 1.67.0 is required for all platforms.</strong></p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://developers.ripple.com/">XRP Ledger Developer Portal</a>, including detailed reference information, tutorials, and web tools.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<h2 id="111-change-log">1.1.1 Change Log</h2>
<h3 id="bug-fixes">Bug Fixes</h3>
<ul>
<li>
<p>Follow the <code>Location:</code> HTTP header when fetching a validator list results in a redirect status code such as <strong>301 Moved Permanently</strong>, <strong>302 Found</strong>, <strong>307 Temporary Redirect</strong>, or <strong>308 Permanent Redirect</strong>. (RIPD-1669)</p>
</li>
<li>
<p>Improve behavior of <code>rippled</code> servers when their latest available validator list is past its expiration (RIPD-1661):</p>
<ul>
<li>Report the problem with an ERROR-level log message.</li>
<li>Stop sending validation messages for new ledgers until a non-expired validator list is available.</li>
<li>Report the validator list as <code>expired</code> in the <a href="https://developers.ripple.com/server_info.html">server_info method</a> and <a href="https://developers.ripple.com/server_state.html">server_state method</a>.</li>
</ul>
</li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-1-1-1/">rippled Version 1.1.1</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>DepositPreauth is Now Available</title>
		<link>https://ripple.com/dev-blog/depositpreauth-is-now-available/</link>
		<pubDate>Tue, 09 Oct 2018 22:50:32 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=17191</guid>
		<description><![CDATA[<p>The DepositPreauth and fix1515 amendments, added in rippled v1.1.0, became enabled on the XRP Ledger today, 2018-10-09. Action Required If you operate a rippled server, you should upgrade to version 1.1.0 (or higher) immediately. For instructions on upgrading rippled on supported platforms, see Updating rippled on supported platforms. Impact of Not Upgrading If you operate &#8230; <a href="https://ripple.com/dev-blog/depositpreauth-is-now-available/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/depositpreauth-is-now-available/">DepositPreauth is Now Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The <a href="https://xrpcharts.ripple.com/#/transactions/AD27403CB840AE67CADDB084BC54249D7BD1B403885819B39CCF723DC671F927">DepositPreauth</a> and <a href="https://xrpcharts.ripple.com/#/transactions/6DF60D9EC8AF3C39B173840F4D1C57F8A8AB51E7C6571483B4A5F1AA0A9AAEBF">fix1515</a> amendments, <a href="https://ripple.com/dev-blog/introducing-xrp-ledger-rippled-version-1-1-0/">added in <code>rippled</code> v1.1.0</a>, became enabled on the XRP Ledger today, 2018-10-09.</p>
<h2 id="action-required">Action Required</h2>
<ul>
<li>If you operate a <code>rippled</code> server, you should upgrade to version 1.1.0 (or higher) immediately.</li>
</ul>
<p>For instructions on upgrading <code>rippled</code> on supported platforms, see <a href="https://developers.ripple.com/update-rippled.html">Updating <code>rippled</code> on supported platforms</a>.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server on a version older than 1.1.0, then your server is now amendment blocked, meaning that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
<li>Could rely on potentially invalid data</li>
</ul>
<h2 id="depositpreauth-summary">DepositPreauth Summary</h2>
<p>The DepositPreauth amendment provides users of <a href="https://developers.ripple.com/depositauth.html">deposit authorization</a> with a way to preauthorize specific senders so those senders are allowed to send payments directly.</p>
<p>The amendment adds:</p>
<ul>
<li>A new transaction type, DepositPreauth, for adding or removing preauthorization.</li>
<li>A DepositPreauth ledger object type for tracking preauthorizations from one account to another.</li>
<li>A JSON-RPC command, <code>deposit_authorized</code>, to query whether an account is authorized to send payments directly to another.</li>
</ul>
<p>This amendment also changes the behavior of cross-currency Payments from an account to itself when that account requires deposit authorization. Without this amendment, those payments always fail with the code tecNO_PERMISSION. With this amendment, those payments succeed as they would with Deposit Authorization disabled.</p>
<h2 id="fix1515-summary">fix1515 Summary</h2>
<p>The fix1515 amendment changes how Payment transactions consume offers to remove a minor difference in how payment processing and offer processing consume liquidity.</p>
<p>Without the amendment, payment processing gives up on using a particular path if the transaction would consume over 2000 offers from the same order book at the same exchange rate. In this case, the payment does not use the liquidity from those offers, and does not consider that order book&#8217;s remaining liquidity when attempting to complete the payment.</p>
<p>With this amendment, if any transaction processes over 1000 offers at the same exchange rate, the transaction consumes the liquidity from the first 1000 offers, then does not consider that order book&#8217;s remaining liquidity when attempting to complete the payment.</p>
<p>In both cases, transaction processing can still complete by using liquidity from other paths or exchange rates.</p>
<h2 id="learn-more">Learn More</h2>
<p>Related documentation is available in the <a href="https://developers.ripple.com/">XRP Ledger Dev Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/depositpreauth-is-now-available/">DepositPreauth is Now Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Introducing XRP Ledger (rippled) version 1.1.0</title>
		<link>https://ripple.com/dev-blog/introducing-xrp-ledger-rippled-version-1-1-0/</link>
		<pubDate>Tue, 18 Sep 2018 00:17:41 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=17021</guid>
		<description><![CDATA[<p>Ripple is pleased to announce the release of XRP Ledger (rippled) version 1.1.0. The XRP Ledger version 1.1.0 release includes the DepositPreAuth Amendment, which, combined with the previously released DepositAuth Amendment, allows users to pre-authorize incoming transactions to accounts, by whitelisting sender addresses. XRP Ledger version 1.1.0 release also includes incremental improvements to several previously &#8230; <a href="https://ripple.com/dev-blog/introducing-xrp-ledger-rippled-version-1-1-0/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/introducing-xrp-ledger-rippled-version-1-1-0/">Introducing XRP Ledger (rippled) version 1.1.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple is pleased to announce the release of <strong>XRP Ledger (<code>rippled</code>) version 1.1.0.</strong></p>
<p>The XRP Ledger version 1.1.0 release includes the <a href="https://developers.ripple.com/known-amendments.html#depositpreauth">DepositPreAuth</a> Amendment, which, combined with the previously released <a href="https://developers.ripple.com/known-amendments.html#depositauth">DepositAuth</a> Amendment, allows users to pre-authorize incoming transactions to accounts, by whitelisting sender addresses. XRP Ledger version 1.1.0 release also includes incremental improvements to several previously released features (<a href="https://developers.ripple.com/known-amendments.html#fix1515">fix1515</a> Amendment), deprecates support for the sign and sign_for commands from the rippled API and improves invariant checking for enhanced security.</p>
<p>Ripple recommends that all server operators upgrade to XRP Ledger version 1.1.0 by Thursday, 2018-09-27, to ensure service continuity.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a XRP Ledger server, you should upgrade to XRP Ledger version 1.1.0 by Thursday, 2018-09-27, to ensure service continuity.</strong></p>
<h3 id="impact-of-not-upgrading">Impact of Not Upgrading</h3>
<p>Ripple expects the <strong>DepositPreAuth</strong> or <strong>fix1515</strong> amendments to become enabled on or after Thursday, 2018-09-27. When this happens, if you are not running release 1.1.0 or greater, your server will become <a href="https://ripple.com/build/amendments/#amendment-blocked">amendment blocked</a>, meaning that it:</p>
<ul>
<li>
<p>Cannot determine the validity of a ledger;</p>
</li>
<li>
<p>Cannot be able to submit or process transactions;</p>
</li>
<li>
<p>Cannot participate in the consensus process;</p>
</li>
<li>
<p>Cannot vote on future amendments; and</p>
</li>
<li>
<p>Could rely on potentially invalid data.</p>
</li>
</ul>
<p>If the <strong>DepositPreAuth</strong> and <strong>fix1515</strong> Amendments do not become enabled, then your XRP Ledger server will not become Amendment blocked and should continue to operate.</p>
<h3 id="upgrading">Upgrading</h3>
<p>For instructions on updating the XRP Ledger server on supported platforms, see here: <a href="https://developers.ripple.com/update-rippled.html">Updating <code>rippled</code> on Supported Platforms</a>.</p>
<ul>
<li>
<p>The SHA-256 for the RPM is: <code>ec50f3cec7dcbea8aaa2eb9d97c3c1fc02d44ce62203557b4cd213cf1b0fe4b5</code></p>
</li>
<li>
<p>The SHA-256 for the source RPM is: <code>936844990e70615183681c41884ea96804ee4130d6f9ec32242fb3a16120824f</code></p>
</li>
<li>
<p>The SHA-256 for the debug-info RPM is: <code>c8b9c642f3c501255f670da6cbc3f454e48b645aa15db5ec2a56afc6b8099ea2</code></p>
</li>
</ul>
<p>For other platforms, please compile version 1.1.0 from source. See <a href="https://github.com/ripple/rippled/tree/master/Builds"><code>rippled</code> build instructions by platform</a>, or <a href="https://ripple.com/build/build-run-rippled-ubuntu/">Build and Run <code>rippled</code> on Ubuntu Linux</a> for further instructions.</p>
<p>The first log entry should be the change setting the version:</p>
<div class="code_sample" id="code_autoid_1" style="position: relative;">
<pre><code class="hljs sql" title="Double-click to expand/collapse"><span class="hljs-keyword">commit</span> <span class="hljs-number">3e22</span>a1e9e8f2de450eded6ca4c2db6411e329b2a
Author: Nik Bougalis &lt;nikb@bougalis.net&gt;
<span class="hljs-built_in">Date</span>:   Wed Sep <span class="hljs-number">5</span> <span class="hljs-number">18</span>:<span class="hljs-number">34</span>:<span class="hljs-number">43</span> <span class="hljs-number">2018</span> <span class="hljs-number">-0700</span>

    <span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">1.1</span><span class="hljs-number">.0</span>
</code></pre>
</div>
<h2 id="network-update">Network Update</h2>
<p>The Ripple technical operations has deployed version 1.1.0 to all XRP Ledger servers under its operational control, including private clusters, as of Thursday, 2018-09-13.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the XRP Ledger Dev Portal, including detailed example API calls and web tools for API testing: <a href="https://developers.ripple.com/">https://developers.ripple.com/</a></p>
<p>Other resources:</p>
<ul>
<li>The Ripple Forum: <a href="https://forum.ripple.com/">https://forum.ripple.com/</a></li>
<li>The Ripple Dev Blog: <a href="https://ripple.com/category/dev-blog/">https://ripple.com/category/dev-blog/</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li>XRP Chat: <a href="http://www.xrpchat.com/">http://www.xrpchat.com/</a></li>
</ul>
<h2 id="other-information">Other Information</h2>
<h3 id="bug-bounties-and-responsible-disclosures">Bug Bounties and Responsible Disclosures</h3>
<p>On behalf of the XRP Community, Ripple would like to thank Guido Vranken, for responsibly disclosing several issues related to some of the encoder / decoder logic in rippled. As always, Ripple welcomes reviews of the <strong>XRP Ledger</strong> open source codebase and urge reviewers to responsibly disclose any issues that they may find. For more on Ripple&#8217;s Bug Bounty program, please visit<a href="https://ripple.com/bug-bounty/"> https://ripple.com/</a><a href="https://ripple.com/bug-bounty/">bug-bounty</a><a href="https://ripple.com/bug-bounty/">/</a>.</p>
<h3 id="boost-compatibility">Boost Compatibility</h3>
<p>When compiling XRP Ledger from source, you must use a compatible version of the Boost library. <strong>As of XRP Ledger version 1.1.0, Boost 1.67.0 is required for all platforms.</strong></p>
<p>1.1.0 Change Log</p>
<ul>
<li>
<p>Add DepositPreAuth ledger type and transaction (<a href="https://github.com/ripple/rippled/pull/2513">#2513</a>)  </p>
</li>
<li>
<p>Increase fault tolerance and raise validation quorum to 80%, which fixes issue <a href="https://github.com/ripple/rippled/issues/2604">2604</a> (<a href="https://github.com/ripple/rippled/pull/2613">#2613</a>)</p>
</li>
<li>
<p>Support ipv6 for peer and RPC comms (<a href="https://github.com/ripple/rippled/pull/2321">#2321</a>)</p>
</li>
<li>
<p>Refactor ledger replay logic (<a href="https://github.com/ripple/rippled/pull/2477">#2477</a>)</p>
</li>
<li>
<p>Improve Invariant Checking (<a href="https://github.com/ripple/rippled/pull/2532/commits/2ac1c2b433b8825b9a6f203f1ee65a126e20620c">#2532</a>)</p>
</li>
<li>
<p>Expand SQLite potential storage capacity (<a href="https://github.com/ripple/rippled/pull/2650/commits/04745b11a888cea412f410d0036a0db23574d61c">#2650</a>)</p>
</li>
<li>
<p>Replace UptimeTimer with UptimeClock (<a href="https://github.com/ripple/rippled/pull/2532/commits/7d163a45dcd2c5cca0fc45eb8775f169575995c1">#2532</a>)</p>
</li>
<li>
<p>Don’t read Amount field if it is not present (<a href="https://github.com/ripple/rippled/pull/2566/commits/34d3f93868b87f33fdf76a5b6c8b376956346a16">#2566</a>)</p>
</li>
<li>
<p>Remove Transactor:: mFeeDue member variable (<a href="https://github.com/ripple/rippled/pull/2586/commits/5b733fb4857ff1076d2e106afeb9931fca198d51">#2586</a>)</p>
</li>
<li>
<p>Remove conditional check for using Boost.Process (<a href="https://github.com/ripple/rippled/pull/2586/commits/06d0ff6e5281ca237d358e953fe8069d16a6926a">#2586</a>)</p>
</li>
<li>
<p>Improve charge handling in NoRippleCheckLimits test (<a href="https://github.com/ripple/rippled/pull/2629/commits/49bcdda41881f6cac140879a236be6ac1a7a734d">#2629</a>)</p>
</li>
<li>
<p>Migrate more code into the chrono type system (<a href="https://github.com/ripple/rippled/pull/2629/commits/d257d1b2c9e0a50f6cef2d1fc977573944408723">#2629</a>)</p>
</li>
<li>
<p>Supply ConsensusTimer with milliseconds for finer precision (<a href="https://github.com/ripple/rippled/pull/2629/commits/d98c4992dd82090bb6d4f7593768624f6e109b32">#2629</a>)</p>
</li>
<li>
<p>Refactor / modernize Cmake (<a href="https://github.com/ripple/rippled/pull/2629/commits/37d9544ef722730d34899754654b71e84d9f7851">#2629</a>)</p>
</li>
<li>
<p>Add delimiter when appending to cmake_cxx_flags (<a href="https://github.com/ripple/rippled/pull/2650/commits/4aa0bc37c0fdfb871f5929e7bd544f787db412af">#2650</a>)</p>
</li>
<li>
<p>Remove using namespace declarations at namespace scope in headers (<a href="https://github.com/ripple/rippled/pull/2650/commits/2901577be73fc2e6f2fd71d693258660c2f5f724">#2650</a>)</p>
</li>
</ul>
<h3 id="bug-fixes">Bug Fixes</h3>
<ul>
<li>
<p>Deprecate the ‘sign’ and ‘sign_for’ APIs (<a href="https://github.com/ripple/rippled/pull/2657">#2657</a>)</p>
</li>
<li>
<p>Use liquidity from strands that consume too many offers, which will be enabled on <a href="https://developers.ripple.com/known-amendments.html#fix1515">fix1515</a> Amendment (<a href="https://github.com/ripple/rippled/pull/2546">#2546</a>)</p>
</li>
<li>
<p>Fix a corner case when decoding base64 (<a href="https://github.com/ripple/rippled/pull/2605/commits/0439dcfa7a5215cc74a8e254a28eadace6a524b7">#2605</a>)</p>
</li>
<li>
<p>Trim space in Endpoint::from_string (<a href="https://github.com/ripple/rippled/pull/2593">#2593</a>)</p>
</li>
<li>
<p>Correctly suppress sent messages (<a href="https://github.com/ripple/rippled/pull/2564">#2564</a>)</p>
</li>
<li>
<p>Detect when a unit test child process crashes (<a href="https://github.com/ripple/rippled/pull/2415">#2415</a>)</p>
</li>
<li>
<p>Add missing virtual destructors (<a href="https://github.com/ripple/rippled/pull/2532/commits/717f874767f2a431294244c0b532b00e508705ca">#2532</a>)</p>
</li>
<li>
<p>Improve JSON exception handling (<a href="https://github.com/ripple/rippled/pull/2605/commits/00df097e5f2f533b81038b2c350bb2d896febd2e">#2605</a>)</p>
</li>
<li>
<p>Handle WebSocket construction exceptions (<a href="https://github.com/ripple/rippled/pull/2629/commits/d89ff1b63d6792a25af872746013387001ebb72b">#2629</a>)</p>
</li>
</ul>
<h2 id="contributions">Contributions</h2>
<p>We welcome external contributions to the XRP Ledger codebase. Please submit a pull request with your proposed changes on the GitHub project page at <a href="https://github.com/ripple/rippled">https://github.com/ripple/rippled</a>.</p>
<p>On behalf of the XRP Community, Ripple would like to thank those who have contributed to the development of the XRP Ledger (rippled) open source code, whether they did so by writing code, running the software, reporting issues, discovering bugs or offering suggestions for improvements.</p>
<p>The following is the list of people who made code contributions, large and small, to XRP Ledger prior to the release of 1.1.0:</p>
<p>Aishraj Dahal, Alex Chung, Alex Dupre, Andrey Fedorov, Arthur Britto, Bob Way, Brad Chase, Brandon Wilson, Bryce Lynch, Casey Bodley, Christian Ramseier, crazyquark, David Grogan, David Schwartz, Donovan Hide, Edward Hennis, Elliot Lee, Eric Lombrozo, Evan Hubinger, Frank Cash, Howard Hinnant, Jack Bond-Preston, jatchili, Jcar, Jed McCaleb, Jeff Trull, Joe Loser, Johanna Griffin, Josh Juran, Justin Lynn, Keaton Okkonen, Lieefu Way, Luke Cyca, Mark Travis, Markus Teufelberger, Miguel Portilla, Mike Ellery, MJK, Nicholas Dudfield, Nikolaos D. Bougalis, Niraj Pant, Patrick Dehne, Roberto Catini, Rome Reginelli, Scott Determan, Scott Schurr, S. Matthew English, Stefan Thomas, The Gitter Badger, Ties Jan Hefting, Tim Lewkow, Tom Ritchford, Torrie Fischer, Vahe Hovhannisyan, Vinnie Falco, Warren Paul Anderson, Will, wltsmrz, Wolfgang Spraul and Yana Novikova.</p>
<p>As XRP Ledger moves to the 1.0 series, we look forward to more external contributions and are excited to see the broader XRP Ledger community grow and thrive.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/introducing-xrp-ledger-rippled-version-1-1-0/">Introducing XRP Ledger (rippled) version 1.1.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>ripple-lib version 1.0.0</title>
		<link>https://ripple.com/dev-blog/ripple-lib-version-1-0-0/</link>
		<pubDate>Mon, 10 Sep 2018 22:13:18 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=16990</guid>
		<description><![CDATA[<p>We are pleased to announce the release of ripple-lib version 1.0.0! ripple-lib is a high-level JavaScript interface to the XRP Ledger. This version features a range of changes and improvements that make the library more capable and flexible. It includes new methods for accessing rippled APIs, including subscriptions. When using this version with rippled for &#8230; <a href="https://ripple.com/dev-blog/ripple-lib-version-1-0-0/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ripple-lib-version-1-0-0/">ripple-lib version 1.0.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>We are pleased to announce the release of <strong><a href="https://github.com/ripple/ripple-lib/releases/tag/1.0.0">ripple-lib version 1.0.0</a></strong>!</p>
<p>ripple-lib is a high-level JavaScript interface to the XRP Ledger. This version features a range of changes and improvements that make the library more capable and flexible. It includes new methods for accessing <code>rippled</code> APIs, including subscriptions.</p>
<p>When using this version with <code>rippled</code> for online functionality, we recommend using <code>rippled</code> version 1.0.1 or later.</p>
<p>Below is a summary of the changes since ripple-lib version 0.22.0 (the previous non-beta version).</p>
<h2 id="release-notes">Release Notes</h2>
<h3 id="new-features">New Features</h3>
<ul>
<li><a href="https://github.com/ripple/ripple-lib/blob/09541dae86bc859bf5928ac65b2645dfaaf7f8b1/docs/index.md#rippled-apis">Add <code>request()</code>, <code>hasNextPage()</code>, and <code>requestNextPage()</code> for accessing <code>rippled</code> APIs</a>.</li>
<li>Add <code>prepareTransaction()</code> for preparing raw <code>txJSON</code>.</li>
<li>XRP amounts can be specified in drops. Also, <code>xrpToDrops()</code> and <code>dropsToXrp()</code> are available to make conversions.</li>
<li><code>getTransaction()</code> responses can include a new <code>channelChanges</code> property that describes the details of a payment channel.</li>
</ul>
<h3 id="data-validation-and-errors">Data Validation and Errors</h3>
<ul>
<li><a href="https://github.com/ripple/ripple-lib/blob/develop/HISTORY.md#100-beta1-2018-05-24">Amounts in drops and XRP are checked for validity</a>.</li>
<li><a href="https://github.com/ripple/ripple-lib/blob/develop/HISTORY.md#100-beta2-2018-06-08">A maximum fee is now imposed</a>. Exceeding it causes a <code>ValidationError</code> to be thrown.</li>
<li>Errors are improved and more data validation was added.</li>
<li>Bug fix: <code>getPaths</code> now filters paths correctly and works correctly when the destination currency is XRP.</li>
</ul>
<h3 id="breaking-changes">Breaking Changes</h3>
<p>The following changes were introduced in 1.0.0.</p>
<ul>
<li><code>getTransaction()</code> and <code>getTransactions()</code>
<ul>
<li>The <code>specification.destination.amount</code> field has been removed from the parsed transaction response.</li>
<li>To determine the amount that a transaction delivered, use <code>outcome.deliveredAmount</code>.</li>
<li>If you require the provisional requested <code>Amount</code> from the original transaction:
<ul>
<li>Use <code>getTransaction()</code>&#8216;s <code>includeRawTransaction</code> option, or</li>
<li>Use <code>getTransactions()</code>&#8216;s <code>includeRawTransactions</code> option, or</li>
<li>Use the <code>rippled</code> APIs directly with <code>request()</code>. For example, call the API methods <code>tx</code>, <code>account_tx</code>, etc.</li>
</ul>
</li>
</ul>
</li>
<li><code>getLedger()</code> response object
<ul>
<li>The <code>rawTransactions</code> field has been removed (for consistency with <code>getTransaction()</code> and <code>getTransactions()</code>).</li>
<li>Instead, within each transaction, use the new <code>rawTransaction</code> JSON string.</li>
<li>The <code>metaData</code> field has been renamed to <code>meta</code> for consistency with <code>rippled</code>&#8216;s <code>tx</code> method.</li>
<li><code>ledger_index</code> has been added to each raw transaction.</li>
</ul>
</li>
</ul>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p><a href="https://developers.ripple.com/rippleapi-reference.html">ripple-lib Documentation</a> is available in the XRP Ledger Dev Portal.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://github.com/ripple/ripple-lib/blob/develop/HISTORY.md">Full Release History</a></li>
<li><a href="https://github.com/ripple/ripple-lib/issues">GitHub Issues</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat Forum</a></li>
</ul>
<h2 id="other-information">Other Information</h2>
<h3 id="bug-bounties-and-responsible-disclosures">Bug Bounties and Responsible Disclosures</h3>
<p>We welcome reviews of the codebase and urge reviewers to responsibly disclose any issues that they may find. For more on Ripple&#8217;s Bug Bounty program, please visit <a href="https://ripple.com/bug-bounty/">https://ripple.com/bug-bounty/</a>.</p>
<h3 id="acknowledgements">Acknowledgements</h3>
<p>On behalf of the XRP Community, we would like the thank those who have contributed to the development of the ripple-lib open source code, whether they did so by writing code, using the library, reporting issues, discovering bugs or offering suggestions for improvements.</p>
<h3 id="contributors">Contributors</h3>
<p>The following is the list of people who made code contributions, large and small, to ripple-lib prior to the release of 1.0.0:</p>
<p>Abraham Tom, Adrian Hope-Bailie, Alan Cohen, Alex Choi, amougel, Andreas Brekken, Andrey Fedorov, Arthur Britto, Ben Sharafian, Bo Chen, Brad Chase, Brandon Wilson, Brian Clifton, Cheng Wei, Chris Clark, Chris Yuen, cryptcoin-junkey, Daniel Davis, Dan Quirk, Daren Tuzi, darkmemo, David Schwartz, Edward Hennis, Elliot Lee, Evan Schwartz, Ewald Moitzi, Filip Andersson, Franziska Hinkelmann, Fred K. Schott, FrRichard, Geert Weening, Hovhannes Kuloghlyan, Ivan Tivonenko, jatchili, Jed McCaleb, Jks Liu, Justin Lynn, lid, Liucw, Luke Burns, Madeline Shortt, Manish Jethani, Matthew Fettig, Mehul Kar, Michael Elsdörfer, Moe Adham, Mo Morsi, Nicholas Dudfield, Nicolás López Jullian, Niraj Pant, professorhantzen, Reed Rosenbluth, ripplerm, Rome Reginelli, Ryan Young, sentientwaffle, Stefan Thomas, Steven Zeiler, Vahe Hovhannisyan, Vinnie Falco, Waldir Pimenta, wltsmrz and Yeechan Lu.</p>
<p>We look forward to more external contributions and are excited to see the broader XRP Ledger community grow and thrive.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ripple-lib-version-1-0-0/">ripple-lib version 1.0.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>fix1571 is Now Available</title>
		<link>https://ripple.com/dev-blog/fix1571-now-available/</link>
		<pubDate>Wed, 20 Jun 2018 21:04:56 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=16760</guid>
		<description><![CDATA[<p>As previously announced, the fix1571 amendment became enabled on the XRP Ledger on 2018-06-19. Furthermore, the fix1623 amendment is expected to become enabled on 2018-06-20, followed by the fix1543 amendment on 2018-06-21. Action Required If you operate a rippled server, you should upgrade to version 1.0.1 (or higher) immediately. For instructions on upgrading rippled on &#8230; <a href="https://ripple.com/dev-blog/fix1571-now-available/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/fix1571-now-available/">fix1571 is Now Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>As previously announced, the fix1571 amendment <a href="https://xrpcharts.ripple.com/#/transactions/920AA493E57D991414B614FB3C1D1E2F863211B48129D09BC8CB74C9813C38FC">became enabled on the XRP Ledger</a> on 2018-06-19. Furthermore, the fix1623 amendment is expected to become enabled on 2018-06-20, followed by the fix1543 amendment on 2018-06-21.</p>
<h2 id="action-required">Action Required</h2>
<ul>
<li>If you operate a <code>rippled</code> server, you should upgrade to <a href="https://ripple.com/dev-blog/rippled-version-1-0-1/">version 1.0.1</a> (or higher) immediately.</li>
</ul>
<p>For instructions on upgrading <code>rippled</code> on supported platforms, see <a href="https://developers.ripple.com/update-rippled.html">Updating <code>rippled</code> on supported platforms</a>.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server on a version older than 1.0.0, then your server is now amendment blocked, meaning that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
<li>Could rely on potentially invalid data</li>
</ul>
<h2 id="fix1571-summary">fix1571 Summary</h2>
<p>Changes Escrow to fix the following issues:</p>
<ul>
<li>Changes the <a href="https://developers.ripple.com/escrowcreate.html">EscrowCreate transaction</a> to require the <code>Condition</code> or <code>FinishAfter</code> field (or both). Escrows with neither <code>Condition</code> nor <code>FinishAfter</code> that were created before this amendment can be finished by anyone at any time before their <code>CancelAfter</code> time.</li>
<li>Fixes a flaw that incorrectly prevents time-based Escrows from being finished in some circumstances.</li>
</ul>
<h2 id="learn-more">Learn More</h2>
<p>Related documentation is available in the <a href="https://developers.ripple.com/">XRP Ledger Dev Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/fix1571-now-available/">fix1571 is Now Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled Version 1.0.1</title>
		<link>https://ripple.com/dev-blog/rippled-version-1-0-1/</link>
		<pubDate>Thu, 14 Jun 2018 23:56:17 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=16748</guid>
		<description><![CDATA[<p>Ripple has released rippled version 1.0.1, which includes fixes for issues identified by Ripple engineers and reported by external security researchers. These issues, when exploited, could cause a rippled instance to restart or, in some circumstances, stop executing. While these issues can result in a denial of service attack, none affect the integrity of the &#8230; <a href="https://ripple.com/dev-blog/rippled-version-1-0-1/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-1-0-1/">rippled Version 1.0.1</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple has released <code>rippled</code> version 1.0.1, which includes fixes for issues identified by Ripple engineers and reported by external security researchers. These issues, when exploited, could cause a <code>rippled</code> instance to restart or, in some circumstances, stop executing.</p>
<p>While these issues can result in a denial of service attack, none affect the integrity of the XRP Ledger and no user funds, including XRP, are at risk.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server</strong>, then you should upgrade to <code>rippled</code> version 1.0.1 as soon as possible.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<ul>
<li><strong>If you operate a <code>rippled</code> server</strong>, but do not upgrade to version 1.0.1 as soon as possible, then your server may experience restarts or outages.</li>
</ul>
<h2 id="upgrading">Upgrading</h2>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://developers.ripple.com/update-rippled.html">Updating <code>rippled</code></a>.</p>
<p>The SHA-256 for the RPM is: <code>4bfa27b0e1e1979f2bc042edb9dd11ae4119dac6be087813dadcc67572877189</code></p>
<p>The SHA-256 for the source RPM is: <code>60279abc65476b0a96ddedcd23338ce1c6fb5481ab94fe8b8c856448044e3ebe</code></p>
<p>For other platforms, please compile v1.0.1 from source. See the <a href="https://github.com/ripple/rippled/tree/develop/Builds"><code>rippled</code> source tree</a> for instructions by platform. For instructions building <code>rippled</code> from source on Ubuntu Linux, see <a href="https://developers.ripple.com/install-rippled.html#installation-on-ubuntu-with-alien">Install <code>rippled</code> on Ubuntu</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<div class="code_sample" id="code_autoid_1" style="position: relative;">
<pre><code class="hljs sql" ><span class="hljs-keyword">commit</span> <span class="hljs-number">8429</span>dd67e60ba360da591bfa905b58a35638fda1
Author: Nik Bougalis &lt;nikb@bougalis.net&gt;
<span class="hljs-built_in">Date</span>:   Mon Jun <span class="hljs-number">4</span> <span class="hljs-number">16</span>:<span class="hljs-number">36</span>:<span class="hljs-number">22</span> <span class="hljs-number">2018</span> <span class="hljs-number">-0700</span>

      <span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">1.0</span><span class="hljs-number">.1</span>
</code></pre>
</div>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team plans to deploy version 1.0.1 to all <code>rippled</code> servers under its operational control, including private clusters, starting at 3:00 PM PST on Thursday, 2018-06-14. The deployment is expected to complete within 5 hours. The network should continue to operate during deployment and no outage is expected.</p>
<h2 id="other-information">Other Information</h2>
<p><strong>Acknowledgements</strong></p>
<p>Ripple thanks Guido Vranken for discovering and responsibly disclosing an off-by-one error in the base64 decoder logic when handling malformed input.</p>
<p><strong>Bug Bounties and Responsible Disclosures</strong></p>
<p>Ripple welcomes reviews of the <code>rippled</code> codebase and urges reviewers to responsibly disclose any issues that they may find. For more on Ripple&#8217;s Bug Bounty program, please visit <a href="https://ripple.com/bug-bounty/">https://ripple.com/bug-bounty/</a>.</p>
<p><strong>Boost Compatibility</strong></p>
<p>When compiling <code>rippled</code> from source, you must use a compatible version of the Boost library. Ripple recommends Boost 1.64.0 for all platforms.</p>
<p>Other compatible versions differ by platform. Boost 1.58.0 is compatible on Linux but not on Windows. On macOS, Boost 1.58.0 is not compatible with the Clang compiler version 4.0+.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://developers.ripple.com/index.html">XRP Ledger Developer Portal</a>, including detailed reference information, tutorials, and web tools.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<h2 id="upcoming-features">Upcoming Features</h2>
<p>The previously <a href="https://ripple.com/dev-blog/rippled-version-1-0-0/">introduced</a> <a href="https://developers.ripple.com/known-amendments.html#fix1543">fix1543</a>, <a href="https://developers.ripple.com/known-amendments.html#fix1571">fix1571</a> and <a href="https://developers.ripple.com/known-amendments.html#fix1623">fix1623</a> Amendments in XRP Ledger version 1.0.0 are now open for voting. Ripple expects these amendments to become enabled on Tuesday, 2018-06-19.</p>
<p>An upcoming version of <code>rippled</code> will switch to using the <strong>Boost.Beast</strong> library instead of the <strong>Beast</strong> library from the <code>rippled</code> source code. As part of this change, the minimum supported version of Boost will change to be a version incorporating Boost.Beast.</p>
<p>Ripple does not expect to enable the <strong>SHAMapV2</strong>, <strong>Tickets</strong>, or <strong>OwnerPaysFee</strong> Amendments before the next release of <code>rippled</code>. These Amendments have been disabled in the source code so <code>rippled</code> version 1.0.1 will not show them as available. Ripple plans to re-introduce some or all of these amendments in a future version of <code>rippled</code>.</p>
<h2 id="101-change-log">1.0.1 Change Log</h2>
<h3 id="bug-fixes">Bug Fixes</h3>
<ul>
<li>
<p>Improve JSON exception handling</p>
</li>
<li>
<p>Fix a corner case when decoding base64: Under some corner cases, the base64 decoder would not allocate enough memory, which could result in spurious errors.</p>
</li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-1-0-1/">rippled Version 1.0.1</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>fix1543, fix1571 &#038; fix1623 Amendments Open for Voting</title>
		<link>https://ripple.com/dev-blog/fix1543-fix1571-fix1623-amendments-open-voting/</link>
		<pubDate>Fri, 08 Jun 2018 22:43:57 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=16724</guid>
		<description><![CDATA[<p>Previously introduced in rippled version 1.0.0, the fix1543, fix1571 and fix1623 amendments are now open for voting. The fix1543 amendment enforces reserved flag ranges on escrow, payment channel, and ticket transactions. The fix1571 amendment changes the EscrowCreate transaction to require the Condition or FinishAfter field (or both) and also fixes a flaw that incorrectly prevents &#8230; <a href="https://ripple.com/dev-blog/fix1543-fix1571-fix1623-amendments-open-voting/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/fix1543-fix1571-fix1623-amendments-open-voting/">fix1543, fix1571 &#038; fix1623 Amendments Open for Voting</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Previously <a href="https://ripple.com/dev-blog/rippled-version-1-0-0/">introduced in <code>rippled</code> version 1.0.0</a>, the <a href="https://developers.ripple.com/known-amendments.html#fix1543">fix1543</a>, <a href="https://developers.ripple.com/known-amendments.html#fix1571">fix1571</a> and <a href="https://developers.ripple.com/known-amendments.html#fix1623">fix1623</a> amendments are now open for voting.</p>
<ul>
<li>The <code>fix1543</code> amendment enforces reserved flag ranges on escrow, payment channel, and ticket transactions.</li>
<li>The <code>fix1571</code> amendment changes the EscrowCreate transaction to require the Condition or FinishAfter field (or both) and also fixes a flaw that incorrectly prevents time-based Escrows from being finished in some circumstances.</li>
<li>The <code>fix1623</code> amendment adds delivered amount metadata to CheckCash transactions that cash a check for a flexible amount.</li>
</ul>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server</strong>, then you should upgrade to version 1.0.0 by Tuesday, 2018-06-19 00:00:00 UTC, for service continuity.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server but don’t upgrade to version 1.0.0 by Tuesday, 2018-06-19, when the <a href="https://developers.ripple.com/known-amendments.html#fix1543">fix1543</a>, <a href="https://developers.ripple.com/known-amendments.html#fix1571">fix1571</a> and <a href="https://developers.ripple.com/known-amendments.html#fix1623">fix1623</a> amendments are expected to become enabled on the network, then your server will become <a href="https://developers.ripple.com/amendments.html#amendment-blocked">amendment blocked</a>, meaning that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
<li>Could rely on potentially invalid data</li>
</ul>
<p>If the <a href="https://developers.ripple.com/known-amendments.html#fix1543">fix1543</a>, <a href="https://developers.ripple.com/known-amendments.html#fix1571">fix1571</a> and <a href="https://developers.ripple.com/known-amendments.html#fix1623">fix1623</a> amendments do not become enabled, then your server will not become amendment blocked and should continue to operate.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://developers.ripple.com/">XRP Ledger Dev Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>To continue receiving updates about the <code>rippled</code> server, please subscribe to the Ripple Server Google Group: <a href="https://groups.google.com/forum/#!forum/ripple-server">https://groups.google.com/forum/#!forum/ripple-server</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/fix1543-fix1571-fix1623-amendments-open-voting/">fix1543, fix1571 &#038; fix1623 Amendments Open for Voting</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled version 1.0.0</title>
		<link>https://ripple.com/dev-blog/rippled-version-1-0-0/</link>
		<pubDate>Thu, 31 May 2018 19:45:35 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Young]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=16644</guid>
		<description><![CDATA[<p>Today, after almost 6 years of hard work, Ripple is very pleased to announce the release of rippled version 1.0.0. The rippled v1.0.0 release includes incremental improvements to several previously released features. v1.0.0 also symbolizes the growing maturity of the software and the increased stability of the decentralized, growing network of nodes that are running &#8230; <a href="https://ripple.com/dev-blog/rippled-version-1-0-0/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-1-0-0/">rippled version 1.0.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Today, after almost 6 years of hard work, Ripple is very pleased to announce the release of <code>rippled</code> version 1.0.0.</p>
<p>The <code>rippled</code> v1.0.0 release includes incremental improvements to several previously released features. v1.0.0 also symbolizes the growing maturity of the software and the increased stability of the decentralized, growing network of nodes that are running the software all around the world. Moving forward, <code>rippled</code> will continue to use <a href="https://semver.org/">semantic versioning</a> (MAJOR.MINOR.PATCH), to help organize and track future releases.</p>
<p>Ripple recommends that all server operators upgrade to <code>rippled</code> v1.0.0 by Thursday, 2018-06-14, for service continuity.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server</strong>, you should upgrade to <code>rippled</code> version 1.0.0 by Thursday, 2018-06-14, for service continuity.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<ul>
<li>
<p><strong>If you operate a <code>rippled</code> server</strong>, but do not upgrade to version 1.0.0 by Thursday, 2018-06-14&#8211;when <strong><a href="https://developers.ripple.com/known-amendments.html#fix1543">fix1543</a></strong>, <strong><a href="https://developers.ripple.com/known-amendments.html#fix1571">fix1571</a></strong> and <strong><a href="https://developers.ripple.com/known-amendments.html#fix1623">fix1623</a></strong> are expected to be enabled via Amendment——then your <code>rippled</code> server will become amendment blocked. A server that is amendment blocked:</p>
</li>
<li>
<p>Cannot determine the validity of a ledger</p>
</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
<li>Cannot rely on potentially invalid data</li>
</ul>
<p>If the <strong>fix1543</strong>, <strong>fix1571</strong> and <strong>fix1623</strong> Amendments are not enabled, then your <code>rippled</code> server will not become amendment blocked and should continue to operate.</p>
<h2 id="upgrading">Upgrading</h2>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://developers.ripple.com/update-rippled.html">Updating <code>rippled</code></a>.</p>
<p>The SHA-256 for the RPM is: <code>100376fbbfdf540264097c333a76b562c742fa5800c65f3c555d16347e23cda3</code></p>
<p>The SHA-256 for the source RPM is: <code>10f472979785db537c4d28bc5a9c71c642cfeac306557368e588d72797439eda</code></p>
<p>For other platforms, please compile v1.0.0 from source. See the <a href="https://github.com/ripple/rippled/tree/develop/Builds"><code>rippled</code> source tree</a> for instructions by platform. For instructions building <code>rippled</code> from source on Ubuntu Linux, see <a href="https://developers.ripple.com/install-rippled.html#installation-on-ubuntu-with-alien">Install <code>rippled</code> on Ubuntu</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<pre><code>commit f31ca2860fb5f045b618aa05d1e76c7e2e9494ec
Author: Nikolaos D. Bougalis &lt;nikb@bougalis.net&gt;
Date:   Fri May 11 10:29:41 2018 -0700
Set version to 1.0.0
</code></pre>
<h2 id="network-update">Network Update</h2>
<p>The Ripple technical operations team has deployed version 1.0.0 to all <code>rippled</code> servers under its operational control, including private clusters.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://developers.ripple.com/index.html">XRP Ledger Developer Portal</a>, including detailed reference information, tutorials, and web tools.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<h2 id="other-information">Other Information</h2>
<p><strong>Bug Bounties and Responsible Disclosures</strong></p>
<p>Ripple welcomes reviews of the <code>rippled</code> codebase and urges reviewers to responsibly disclose any issues that they may find. For more on Ripple&#8217;s Bug Bounty program, please visit <a href="https://ripple.com/bug-bounty/">https://ripple.com/bug-bounty/</a>.</p>
<p><strong>Boost Compatibility</strong></p>
<p>When compiling <code>rippled</code> from source, you must use a compatible version of the Boost library. Ripple recommends Boost v1.64.0 for all platforms.</p>
<p>For compatibility with other Boost versions, see the following table.</p>
<table>
<thead>
<tr>
<th align="center">Boost Version</th>
<th align="center">Compatible Platforms</th>
<th align="center">Incompatible Platforms</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">1.67.0</td>
<td align="center">Experimental on all platforms</td>
<td align="center">None</td>
</tr>
<tr>
<td align="center">1.64.0</td>
<td align="center">All platforms</td>
<td align="center">None</td>
</tr>
<tr>
<td align="center">1.58.0.</td>
<td align="center">Linux, macOS (with Clang compiler version 4.0+)</td>
<td align="center">Windows</td>
</tr>
</tbody>
</table>
<h2 id="100-change-log">1.0.0 Change Log</h2>
<ul>
<li>
<p>Improve history sharding to now use the shard store to satisfy ledger requests  </p>
</li>
<li>
<p>Change permessage-deflate and compress defaults <a href="https://github.com/ripple/rippled/pull/2372">(#2372)</a></p>
</li>
<li>
<p>Update validations on UNL change <a href="https://github.com/ripple/rippled/pull/2393">(#2393)</a></p>
</li>
</ul>
<h3 id="bug-fixes">Bug Fixes</h3>
<ul>
<li>
<p>Clarify Escrow Semantics <a href="https://github.com/ripple/rippled/pull/2419">(#2419)</a></p>
</li>
<li>
<p>Add check, escrow, and pay_chan to ledger_entry <a href="https://github.com/ripple/rippled/pull/2455">(#2455)</a></p>
</li>
</ul>
<h3 id="rippled-retrospective"><code>rippled</code> Retrospective</h3>
<h4 id="what-is-rippled">What is <code>rippled</code>?</h4>
<p><code>rippled</code> is the C++ reference implementation of the decentralized XRP Ledger. It is open source and permissively licensed under the ISC.</p>
<h4 id="what-is-the-xrp-ledger">What is the XRP Ledger?</h4>
<p>The <strong>XRP Ledger</strong> is a public decentralized cryptographic ledger powered by a global network of peer-to-peer servers. The XRP Ledger is the root ledger of XRP, a digital asset designed to bridge global currencies for payments. As a software company, Ripple contributes to the open source development of the XRP Ledger, in support of the Internet of Value: a world in which money moves the way information does today.</p>
<p>For more information, see <a href="https://developers.ripple.com/xrp-ledger-overview.html">XRP Ledger Overview</a>.</p>
<h4 id="consensus">Consensus</h4>
<p>Among the key benefits of the XRP Ledger is a fast and efficient consensus algorithm, which can settle transactions in 4 to 5 seconds, while processing at a throughput of up to 1,500 transactions per second.</p>
<p>The consensus algorithm is <a href="https://developers.ripple.com/xrp-ledger-overview.html#censorship-resistant-transaction-processing">censorship-resistant</a>. Because no single party decides which transactions succeed or fail, no one can &#8220;roll back&#8221; a transaction after it completes and no one has control over the consensus algorithm. Instead, individual server operators can select a list of validators that they choose to trust not to collude in an attempt to defraud the rest of the network.</p>
<p>For more information on how the XRP Ledger&#8217;s consensus algorithm works, see <a href="https://developers.ripple.com/consensus.html">Consensus</a>. For background on why the XRP Ledger uses this consensus algorithm, see <a href="https://developers.ripple.com/consensus-principles-and-rules.html">Consensus Principles and Rules</a>.</p>
<h4 id="protocol-amendments">Protocol Amendments</h4>
<p>The XRP Ledger has integrated support for <a href="https://developers.ripple.com/amendments.html">amendments</a>, which allow for the introduction of new features to the decentralized XRP Ledger network without causing disruptions. Amendments work by utilizing the core consensus process of the network to approve any changes by showing continuous support before those changes go into effect.</p>
<h4 id="cryptography">Cryptography</h4>
<p>The XRP Ledger relies on industry-standard digital signature systems like ECDSA using the <a href="http://www.secg.org/sec2-v2.pdf">secp256k1 standard curve</a> (which is also used by Bitcoin). The XRP Ledger also supports modern, efficient algorithms like <a href="https://ed25519.cr.yp.to/">Ed25519</a>. The extensible nature of the XRP Ledger&#8217;s software makes it possible to add and disable algorithms as the state of the art in cryptography advances.</p>
<p>For more information, see:</p>
<ul>
<li><a href="https://developers.ripple.com/cryptographic-keys.html">Cryptographic Keys</a> </li>
<li><a href="https://developers.ripple.com/multi-signing.html">Multi-signing</a></li>
</ul>
<h4 id="advanced-features">Advanced Features</h4>
<p>In addition to multi-signing, the XRP Ledger supports other advanced features, such as:</p>
<ul>
<li><a href="https://developers.ripple.com/escrow.html">Escrow</a></li>
<li><a href="https://developers.ripple.com/checks.html">Checks</a></li>
<li><a href="https://developers.ripple.com/depositauth.html">Deposit Authorization</a> </li>
<li><a href="https://developers.ripple.com/payment-channels.html">Payment Channels</a> </li>
<li><a href="https://tools.ietf.org/html/draft-thomas-crypto-conditions-04">Crypto-Conditions</a></li>
</ul>
<p>These features make it possible to implement cutting-edge financial applications or interact with the <a href="https://interledger.org/">Interledger Protocol</a>. This toolbox of advanced features comes with a wide range safety checks that validate all transactions against a list of invariant constraints.</p>
<h4 id="decentralized-exchange">Decentralized Exchange</h4>
<p>The XRP Ledger also has a fully-functional accounting system for publicly tracking and trading obligations denominated in any way users want, along with a decentralized exchange built into the ledger. The XRP Ledger can settle long, cross-currency <a href="https://developers.ripple.com/paths.html">payment paths</a> and <a href="https://developers.ripple.com/decentralized-exchange.html">exchanges</a> of multiple currencies in atomic transactions, bridging gaps of trust with XRP.</p>
<p>For more information on how the decentralized exchange works, see:</p>
<ul>
<li><a href="https://developers.ripple.com/xrp-ledger-overview.html#on-ledger-decentralized-exchange">On-Ledger Decentralized Exchange</a></li>
<li><a href="https://developers.ripple.com/decentralized-exchange.html">Decentralized Exchange</a> </li>
<li><a href="https://developers.ripple.com/offers.html">Offers</a></li>
<li><a href="https://developers.ripple.com/become-an-xrp-ledger-gateway.html">Become an XRP Ledger Gateway</a></li>
</ul>
<h4 id="acknowledgements">Acknowledgements</h4>
<p>On behalf of the XRP Community, Ripple would like the thank those who have contributed to the development of the XRP Ledger (rippled) open source code, whether they did so by writing code, running the software, reporting issues, discovering bugs or offering suggestions for improvements.</p>
<h4 id="contributors">Contributors</h4>
<p>The following is the list of people who made code contributions, large and small, to XRP Ledger prior to the release of 1.0.0:</p>
<p>Aishraj Dahal, Alex Chung, Alex Dupre, Andrey Fedorov, Arthur Britto, Bob Way, Brad Chase, Brandon Wilson, Bryce Lynch, Casey Bodley, Christian Ramseier, crazyquark, David Grogan, David Schwartz, Donovan Hide, Edward Hennis, Elliot Lee, Eric Lombrozo, Evan Hubinger, Frank Cash, Howard Hinnant, Jack Bond-Preston, jatchili, Jcar, Jed McCaleb, Jeff Trull, Jennifer Hasegawa, Joe Loser, Johanna Griffin, Josh Juran, Justin Lynn, Keaton Okkonen, Lieefu Way, Luke Cyca, Mark Travis, Markus Teufelberger, Miguel Portilla, Mike Ellery, MJK, Nicholas Dudfield, Nikolaos D. Bougalis, Niraj Pant, Patrick Dehne, Roberto Catini, Rome Reginelli, Scott Determan, Scott Schurr, S. Matthew English, Stefan Thomas, The Gitter Badger, Ties Jan Hefting, Tim Lewkow, Tom Ritchford, Torrie Fischer, Vahe Hovhannisyan, Vinnie Falco, Warren Paul Anderson, Will, wltsmrz, Wolfgang Spraul and Yana Novikova.</p>
<p>As <code>rippled</code> moves to the 1.x series, we look forward to more external contributions and are excited to see the broader XRP Ledger community grow and thrive.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-1-0-0/">rippled version 1.0.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>The DepositAuth and fix1513 Amendments are Now Available</title>
		<link>https://ripple.com/dev-blog/depositauth-fix1513-amendments-now-available/</link>
		<pubDate>Mon, 09 Apr 2018 20:25:26 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=16449</guid>
		<description><![CDATA[<p>The DepositAuth &#38; fix1513 Amendments became available on the XRP Ledger in ledger sequence number 37,753,345 (2018-04-06T01:44:42Z). The DepositAuth Amendment lets an account strictly reject any incoming money from transactions sent by other accounts. The fix1513 Amendment fixes an issue where calculation switchovers were not implemented in the fee escalation queue. Action Required If you &#8230; <a href="https://ripple.com/dev-blog/depositauth-fix1513-amendments-now-available/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/depositauth-fix1513-amendments-now-available/">The DepositAuth and fix1513 Amendments are Now Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The <a href="https://ripple.com/build/deposit-authorization/">DepositAuth</a> &amp; fix1513 Amendments became available on the XRP Ledger in ledger sequence number 37,753,345 <a href="https://xrpcharts.ripple.com/#/transactions/902C51270B918B40CD23A622E18D48B4ABB86F0FF4E84D72D9E1907BF3BD4B25">(2018-04-06T01:44:42Z)</a>.</p>
<ul>
<li>The DepositAuth Amendment lets an account strictly reject any incoming money from transactions sent by other accounts.</li>
<li>The fix1513 Amendment fixes an issue where calculation switchovers were not implemented in the fee escalation queue.</li>
</ul>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server</strong>, then you should upgrade to <code>rippled</code> version 0.90.1 immediately for service continuity.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p><strong>If you operate a <code>rippled</code> server older than version 0.90.0</strong>, your server is amendment blocked. A server that is amendment blocked:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
<li>Could rely on potentially invalid data</li>
</ul>
<p>If you are using <code>rippled</code> version 0.90.0, your server is not amendment blocked but you should upgrade to <a href="https://ripple.com/dev-blog/rippled-version-0-90-1/"><code>rippled</code> version <strong>0.90.1</strong></a> or higher to get important security fixes. <code>rippled</code> version 0.90.0 may stop or restart unexpectedly.</p>
<p>For instructions on updating rippled on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating rippled on supported platforms</a>.</p>
<p>For other platforms, please compile version 0.90.1 from source. See <a href="https://github.com/ripple/rippled/tree/develop/Builds">the <code>rippled</code> GitHub repo</a> for instructions by platform. For instructions building <code>rippled</code> from source on Ubuntu Linux, see <a href="https://ripple.com/build/build-run-rippled-ubuntu/">Build and Run <code>rippled</code> on Ubuntu</a>.</p>
<h2 id="upcoming-features">Upcoming Features</h2>
<p>The <a href="https://ripple.com/dev-blog/rippled-version-0-90-0/">previously announced</a> Checks amendment has lost the support of a majority of trusted validators and is not expected to become enabled in the immediate future.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>To continue receiving updates about the <code>rippled</code> server, please subscribe to the Ripple Server Google Group: <a href="https://groups.google.com/forum/#!forum/ripple-server">https://groups.google.com/forum/#!forum/ripple-server</a></p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/depositauth-fix1513-amendments-now-available/">The DepositAuth and fix1513 Amendments are Now Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled version 0.90.1</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-90-1/</link>
		<pubDate>Fri, 23 Mar 2018 00:39:30 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=16370</guid>
		<description><![CDATA[<p>Ripple has released rippled version 0.90.1, which includes fixes for issues reported by external security researchers. These issues, when exploited, could cause a rippled instance to restart or, in some circumstances, stop executing. While these issues can result in a denial of service attack, none affect the integrity of the XRP Ledger and no user &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-90-1/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-90-1/">rippled version 0.90.1</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple has released <code>rippled</code> version 0.90.1, which includes fixes for issues reported by external security researchers. These issues, when exploited, could cause a <code>rippled</code> instance to restart or, in some circumstances, stop executing.</p>
<p>While these issues can result in a denial of service attack, none affect the integrity of the XRP Ledger and no user funds, including XRP, are at risk.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server, then you should upgrade to <code>rippled</code> version 0.90.1 as soon as possible.</strong></p>
<h3 id="impact-of-not-upgrading">Impact of Not Upgrading</h3>
<p>If you operate a <code>rippled</code> server but do not upgrade to version 0.90.1, your server may experience restarts or outages.</p>
<h3 id="upgrading">Upgrading</h3>
<p>For instructions on updating <code>rippled</code> on supported platforms, see here: <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating rippled</a></p>
<p>The SHA-256 for the rpm is: a22aff93d3de98ac3e1d775612e75e0e81aa7e6c18187db01efed485f854bab0</p>
<p>The SHA-256 for the source rpm is: abaaaba2039c8cd93218fd6a23c79b32bfb6eba92a465b7f9c0716b37fb45795</p>
<p>For other platforms, please compile version 0.90.1 from source. See <a href="https://github.com/ripple/rippled/tree/master/Builds">rippled Builds</a> for instructions by platform. For instructions building <code>rippled</code> from source on Ubuntu Linux, see <a href="https://ripple.com/build/build-run-rippled-ubuntu/">Build and Run <code>rippled</code> on Ubuntu</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<div class="code_sample" id="code_autoid_1" style="position: relative;">
<pre><code class="hljs sql"><span class="hljs-keyword">commit</span> <span class="hljs-number">067</span>dbf299c297a8361e83e2ceaf7b0822ff9a3f5
Author: Nikolaos D. Bougalis &lt;nikb@bougalis.net&gt;
<span class="hljs-built_in">Date</span>:   Tue Mar <span class="hljs-number">6</span> <span class="hljs-number">16</span>:<span class="hljs-number">38</span>:<span class="hljs-number">02</span> <span class="hljs-number">2018</span> <span class="hljs-number">-0800</span>
    <span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">0.90</span><span class="hljs-number">.1</span>
</code></pre>
</div>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team plans to deploy version 0.90.1 to all <code>rippled</code> servers under its operational control, including private clusters, starting at 5:00 PM PST on Thursday, 2018-03-22. The deployment is expected to complete within 4 hours. The network should continue to operate during deployment and no outage is expected.</p>
<h2 id="other-information">Other Information</h2>
<h3 id="acknowledgements">Acknowledgements</h3>
<p>Ripple thanks Guido Vranken for responsibly disclosing a potential out-of-bounds memory access in the base58 encoder/decoder, a vulnerability in the parsing code handling nested serialized objects and a codepath where untrusted public input involving public keys was used without first being properly validated. These issues could be exploited to mount a denial of service attack.</p>
<h3 id="bug-bounties-and-responsible-disclosures">Bug Bounties and Responsible Disclosures</h3>
<p>We welcome reviews of the <code>rippled</code> codebase and urge reviewers to responsibly disclose any issues that they may find. For more on Ripple&#8217;s Bug Bounty program, please visit <a href="https://ripple.com/bug-bounty/">https://ripple.com/bug-bounty/</a>.</p>
<h3 id="boost-compatibility">Boost Compatibility</h3>
<p>When compiling <code>rippled</code> from source, you must use a compatible version of the Boost library. Ripple recommends Boost 1.64.0 for all platforms.</p>
<p>Other compatible versions differ by platform. Boost 1.58.0 is compatible on Linux but not on Windows. On macOS, Boost 1.58.0 is not compatible with the Clang compiler version 4.0+. On all platforms, Boost 1.66.0 compatibility in <code>rippled</code> 0.90.1 is experimental.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li>
<p>The Ripple Forum: <a href="https://forum.ripple.com/">https://forum.ripple.com/</a></p>
</li>
<li>
<p>The Ripple Dev Blog: <a href="https://ripple.com/category/dev-blog/">https://ripple.com/category/dev-blog/</a></p>
</li>
<li>
<p>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></p>
</li>
<li>
<p>XRP Chat: <a href="http://www.xrpchat.com/">http://www.xrpchat.com/</a></p>
</li>
</ul>
<h3 id="upcoming-features">Upcoming Features</h3>
<p>The previously announced DepositAuth, Checks and fix1513 amendments are now open for voting on the XRP Ledger. The DepositAuth Amendment lets an account strictly reject any incoming money from transactions sent by other accounts. The Checks Amendment allows users to create a deferred payment that can be cancelled or cashed by its intended recipient. The fix1513 amendment fixes a minor bug in rounding calculations. Ripple expects the <strong>DepositAuth</strong>, <strong>Checks</strong>, and <strong>fix1513</strong> amendments to be enabled on Thursday, 2018-04-05.</p>
<p>The <a href="https://ripple.com/dev-blog/rippled-version-0-70-0/">previously announced</a> <strong>FlowCross</strong> Amendment will be enabled on a future date (TBA).</p>
<p>Compiling <code>rippled</code> with scons is deprecated. Starting in <code>rippled</code> version 1.0, the only supported build will be using CMake.</p>
<p>An upcoming version of <code>rippled</code> will switch to using the Boost.Beast library instead of the Beast library from the <code>rippled</code> source code. As part of this change, the minimum supported version of Boost will change to be a version incorporating Boost.Beast.</p>
<p>Ripple does not expect to enable the <strong>SHAMapV2</strong>, <strong>Tickets</strong>, or <strong>OwnerPaysFee</strong> amendments before the next release of rippled. These amendments have been disabled in the source code so <code>rippled</code> 0.90.1 will not show them as available. Ripple plans to re-introduce some or all of these amendments in a future version of rippled.</p>
<h2 id="0901-change-log">0.90.1 Change Log</h2>
<h3 id="bug-fixes">Bug Fixes</h3>
<ul>
<li>
<p>Address issues identified by external review</p>
<ul>
<li>
<p>Verify serialized public keys more strictly before using them (RIPD-1617, RIPD-1619, RIPD-1621)</p>
</li>
<li>
<p>Eliminate a potential out-of-bounds memory access in the base58 encoding/decoder logic. (RIPD-1618)</p>
</li>
<li>
<p>Avoid invoking undefined behavior in memcpy (RIPD-1616)</p>
</li>
</ul>
</li>
<li>
<p>Limit STVar recursion during deserialization (RIPD-1603)</p>
</li>
<li>
<p>Use lock when creating a peer shard rangeset</p>
</li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-90-1/">rippled version 0.90.1</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled Version 0.90.0</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-90-0/</link>
		<pubDate>Wed, 21 Feb 2018 11:33:10 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=16213</guid>
		<description><![CDATA[<p>rippled Version 0.90.0 Ripple has released rippled version 0.90.0, which introduces several enhancements that improve the reliability, scalability and security of the XRP Ledger. Ripple recommends that all server operators upgrade to version 0.90.0 by Thursday, 2018-03-15, for service continuity. Highlights of this release include: The DepositAuth Amendment, which lets an account strictly reject any &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-90-0/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-90-0/">rippled Version 0.90.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<h1 id="rippled-version-0900">rippled Version 0.90.0</h1>
<p>Ripple has released <code>rippled</code> version 0.90.0, which introduces several enhancements that improve the reliability, scalability and security of the XRP Ledger. Ripple recommends that all server operators upgrade to version 0.90.0 by Thursday, 2018-03-15, for service continuity.</p>
<p>Highlights of this release include:</p>
<ul>
<li>The <strong>DepositAuth</strong> Amendment, which lets an account strictly reject any incoming money from transactions sent by other accounts.</li>
<li>The <strong>Checks</strong> Amendment, which allows users to create a deferred payment that can be canceled or cashed by its intended recipient.</li>
<li><strong>History Sharding</strong>, which allows <code>rippled</code> servers to distribute historical ledger data if they agree to dedicate storage for segments of ledger history.</li>
<li><strong>Preferred Ledger by Branch</strong>, which improves how a <code>rippled</code> server decides which ledger it should base future ledgers on when there are multiple candidates.</li>
</ul>
<p>Ripple expects the <code>DepositAuth</code> and <code>Checks</code> amendments to be enabled on Thursday, 2018-03-15.</p>
<h2 id="action-required">Action Required</h2>
<p>If you operate a <code>rippled</code> server, you should upgrade to <code>rippled</code> version 0.90.0 by Thursday, 2018-03-15, for service continuity.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p><strong>If you operate a <code>rippled</code> server</strong>, but do not upgrade to <code>rippled</code> version 0.90.0 by <strong>Thursday, 2018-03-15</strong>, when DepositAuth and Checks are expected to be enabled via Amendment, then your rippled server will become <a href="https://ripple.com/build/amendments/#amendment-blocked">amendment blocked</a>, meaning that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
<li>Could rely on potentially invalid data</li>
</ul>
<p>If the <strong>DepositAuth</strong> and <strong>Checks</strong> Amendments do not get approved, then your <code>rippled</code> server will not become Amendment blocked and should continue to operate.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The SHA-256 for the RPM is: <code>7d6c6d9908289edbf38660f0ab2a233b159ac7abfe502ae774bf9af579270613</code></p>
<p>The SHA-256 for the source RPM is: <code>faf0d669a38b7f97acd2d4b95b48a8c50a9859a6235be2ed289d10c6c5f96a1f</code></p>
<p>For other platforms, please compile version 0.90.0 from source. See the <a href="https://github.com/ripple/rippled/tree/develop/Builds"><code>rippled</code> source tree</a> for instructions by platform. For instructions building <code>rippled</code> from source on Ubuntu Linux, see <a href="https://ripple.com/build/build-run-rippled-ubuntu/">Build and Run <code>rippled</code> on Ubuntu</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<div class="code_sample" id="code_autoid_1" style="position: relative;">
<pre><code class="hljs sql" title="Double-click to expand/collapse"><span class="hljs-keyword">commit</span> <span class="hljs-number">6230204e425</span>f6aef6ec1c0def0bdd1257e1c4c7f
Author: Nikolaos D. Bougalis &lt;nikb@bougalis.net&gt;
<span class="hljs-built_in">Date</span>:   Tue Feb <span class="hljs-number">20</span> <span class="hljs-number">14</span>:<span class="hljs-number">12</span>:<span class="hljs-number">03</span> <span class="hljs-number">2018</span> <span class="hljs-number">-0800</span>

    <span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">0.90</span><span class="hljs-number">.0</span>
</code></pre>
</div>
<h2 id="action-recommended-configure-history-shards">Action Recommended: Configure History Shards</h2>
<p>If you operate a <code>rippled</code> server and want to start storing history shards, you must add a <code>[shard_db]</code> stanza to your <code>rippled</code> configuration file. The following settings are required to configure your server. The <strong>type</strong> field determines the database backend for the shard store. Ripple recommends using NuDB because it uses less memory and fewer file descriptors than RocksDB. The <strong>path</strong> field determines the location to store the database and the <strong>max_size_gb</strong> field limits the maximum disk space the shard store can occupy.</p>
<p>Example snippet:</p>
<div class="code_sample" id="code_autoid_2" style="position: relative;">
<pre><code class="hljs ini"><span class="hljs-section">[shard_db]</span>
<span class="hljs-attr">type</span>=NuDB
<span class="hljs-attr">path</span>=/var/lib/rippled/db/shards/nudb
<span class="hljs-attr">max_size_gb</span>=<span class="hljs-number">100</span>
</code></pre>
</div>
<p>Ripple recommends storing history shards only on non-validator servers to reduce overhead for validators.</p>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team plans to deploy version 0.90.0 to all <code>rippled</code> servers under its operational control, including private clusters, starting at 2:00 PM PST on Wednesday, <strong>2018-02-21</strong>. The deployment is expected to complete within 4 hours. The network should continue to operate during deployment and no outage is expected.</p>
<h2 id="other-information">Other Information</h2>
<h3 id="acknowledgements">Acknowledgements</h3>
<p>Ripple thanks Guido Vranken for responsibly disclosing a potential vulnerability in the parsing code handling nested JSON objects. The issue could be exploited under some circumstances to mount a denial of service attack. It was addressed with pull request <a href="https://github.com/ripple/rippled/pull/2326">#2326</a>.</p>
<h3 id="bug-bounties-and-responsible-disclosures">Bug Bounties and Responsible Disclosures</h3>
<p>We welcome reviews of the <code>rippled</code> codebase and urge reviewers to responsibly disclose any issues that they may find. For more on Ripple&#8217;s Bug Bounty program, please visit <a href="https://ripple.com/bug-bounty/">https://ripple.com/bug-bounty/</a>.</p>
<h3 id="boost-compatibility">Boost Compatibility</h3>
<p>When compiling <code>rippled</code> from source, you must use a compatible version of the Boost library. Ripple recommends Boost 1.64.0 for all platforms.</p>
<p>Other compatible versions differ by platform. Boost 1.58.0 is compatible on Linux but not on Windows. On macOS, Boost 1.58.0 is not compatible with the Clang compiler version 4.0+. On all platforms, Boost 1.66.0 compatibility in rippled 0.90.0 is experimental.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<h2 id="full-release-notes">Full Release Notes</h2>
<h3 id="depositauth">DepositAuth</h3>
<p>The DepositAuth Amendment allows enterprise account holders to comply with strict regulations that require due diligence before receiving money from any source. When an account enables this flag, payment transactions fail if the account is the destination, regardless of whether the payment would have delivered XRP or an issued currency.</p>
<p>If an Escrow has a Destination with the DepositAuth flag set, then the corresponding EscrowFinish transaction can succeed only if that transaction is signed by the Destination. Similar rules apply to Payment Channels.</p>
<p>As an exception, accounts with DepositAuth enabled can receive XRP payment transactions for small amounts of XRP (equal or less than the minimum account reserve) if their current XRP balance is below the account reserve.</p>
<p>For more information, see <a href="https://ripple.com/build/deposit-authorization/">https://ripple.com/build/deposit-authorization/</a></p>
<h3 id="checks">Checks</h3>
<p>The Checks Amendment works similarly to personal paper checks and introduces a new ledger object type (<a href="https://ripple.com/build/ledger-format/#check">Check</a>), a new transaction result code (<a href="https://ripple.com/build/transactions/#tec-codes">tecEXPIRED</a>) and three new transaction types (<a href="https://ripple.com/build/transactions/#checkcreate">CheckCreate</a>, <a href="https://ripple.com/build/transactions/#checkcash">CheckCash</a>, <a href="https://ripple.com/build/transactions/#checkcancel">CheckCancel</a>) to the XRP Ledger.</p>
<p>The sender signs a CheckCreate transaction to create a Check for a specific maximum amount and specifies a destination account to receive the funds. Later, the destination account can sign a CheckCash transaction to cash the Check and receive up to the specified amount. The actual movement of money only occurs when the Check is cashed, so cashing the Check may fail depending on the sender&#8217;s current balance and the available liquidity. An account with the DepositAuth flag set can receive funds using a CheckCash transaction.</p>
<p>If cashing the Check fails, the Check object remains in the ledger so it may be successfully cashed later. The sender or the receiver can sign a CheckCancel transaction to cancel a Check at any time before it is cashed. A Check can also have an expiration time, after which it cannot be cashed, and anyone can cancel it. tecEXPIRED occurs when trying to create a Check whose expiration time is in the past.</p>
<h3 id="history-sharding">History Sharding</h3>
<p>History Sharding allows <code>rippled</code> servers to distribute historical ledger data if they agree to keep particular ranges of historical ledgers. This makes it very easy for servers to confirm that they have all the data that they&#8217;re supposed to have. Further, History Sharding makes it simpler to produce proof trees or ledger deltas and challenge servers to demonstrate they actually hold the data they claim to have.</p>
<p>For more information, see <a href="https://ripple.com/build/history-sharding/">https://ripple.com/build/history-sharding/</a></p>
<h3 id="preferred-ledger-by-branch">Preferred Ledger by Branch</h3>
<p>Preferred Ledger by Branch improves how a <code>rippled</code> server decides which ledger it should be working on during consensus. In previous versions, a <code>rippled</code> server always checks that it is working on what it believes is the most supported ledger, but does not using the common ancestry of validated ledgers as part of that decision. Determining the best working ledger is important during rare cases of network or server instability and improves a <code>rippled</code> server&#8217;s ability to re-converge with the rest of the network.</p>
<p>Preferred Ledger by Branch leverages the ancestry information of branches to account for common support across validated ledgers and their ancestors, since a validation for some ledger is also a validation for all its ancestors. To find the preferred ledger, a <code>rippled</code> server starts at the most recent validated ledger and selects the child ledger with most support based on recent validations, but only selects it if an alternate sibling ledger does not possibly have more support. This process is then repeated starting from the newly chosen ledger until no better ledger exists. Preferred Ledger by Branch is designed to be conservative, only switching when the server sees enough peer validations to know another branch won&#8217;t become preferred.</p>
<h2 id="upcoming-features">Upcoming Features</h2>
<p>The <a href="https://ripple.com/dev-blog/rippled-version-0-70-0/">previously announced</a> <strong>FlowCross</strong> Amendment will be enabled on a future date (TBA).</p>
<p>Compiling <code>rippled</code> with scons is deprecated. Starting in rippled version 1.0, the only supported build will be using CMake.</p>
<p>An upcoming version of <code>rippled</code> will switch to using the Boost.Beast library instead of the Beast library from the <code>rippled</code> source code. As part of this change, the minimum supported version of Boost will change to be a version incorporating Boost.Beast.</p>
<p>Ripple does not expect to enable the <strong>SHAMapV2</strong>, <strong>Tickets</strong>, or <strong>OwnerPaysFee</strong> amendments before the next release of <code>rippled</code>. These amendments have been disabled in the source code so <code>rippled</code> 0.90.0 will not show them as available. Ripple plans to re-introduce some or all of these amendments in a future version of <code>rippled</code>.</p>
<h2 id="0900-change-log">0.90.0 Change Log</h2>
<ul>
<li>Add support for Deposit Authorization account root flag (<a href="https://github.com/ripple/rippled/pull/2239">#2239</a>)</li>
<li>Implement history shards (<a href="https://github.com/ripple/rippled/pull/2258">#2258</a>)</li>
<li>Preferred ledger by branch (<a href="https://github.com/ripple/rippled/pull/2300">#2300</a>)</li>
<li>Tune for higher transaction processing (<a href="https://github.com/ripple/rippled/pull/2294">#2294</a>)</li>
<li>Redesign Consensus Simulation Framework (<a href="https://github.com/ripple/rippled/pull/2209">#2209</a>)</li>
<li>Optimize queries for account_tx to work around SQLite query planner (<a href="https://github.com/ripple/rippled/pull/2312">#2312</a>)</li>
<li>Allow Journal to be copied/moved (<a href="https://github.com/ripple/rippled/pull/2292">#2292</a>)</li>
<li>Cleanly report invalid [server] settings (<a href="https://github.com/ripple/rippled/pull/2305">#2305</a>)</li>
<li>Improve log scrubbing (<a href="https://github.com/ripple/rippled/pull/2358">#2358</a>)</li>
<li>Update rippled-example.cfg (<a href="https://github.com/ripple/rippled/pull/2307">#2307</a>)</li>
<li>Force json commands to be objects (<a href="https://github.com/ripple/rippled/pull/2319">#2319</a>)</li>
<li>Fix cmake clang build for sanitizers (<a href="https://github.com/ripple/rippled/pull/2325">#2325</a>)</li>
<li>Allow account_objects RPC to filter by “check” (<a href="https://github.com/ripple/rippled/pull/2356">#2356</a>)</li>
<li>Limit nesting of json commands (<a href="https://github.com/ripple/rippled/pull/2326">#2326</a>)</li>
<li>Update Visual Studio build instructions (<a href="https://github.com/ripple/rippled/pull/2355">#2355</a>)</li>
<li>Unit test that sign_for returns a correct hash (<a href="https://github.com/ripple/rippled/pull/2333">#2333</a>)</li>
<li>Force boost static linking for MacOS builds (<a href="https://github.com/ripple/rippled/pull/2334">#2334</a>)</li>
<li>Update MacOS build instructions (<a href="https://github.com/ripple/rippled/pull/2342">#2342</a>)</li>
<li>Add dev docs generation to Jenkins (<a href="https://github.com/ripple/rippled/pull/2343">#2343</a>)</li>
<li>Poll if process is still alive in Test.py (<a href="https://github.com/ripple/rippled/pull/2290">#2290</a>)</li>
<li>Remove unused beast::currentTimeMillis() (<a href="https://github.com/ripple/rippled/pull/2345">#2345</a>)</li>
</ul>
<h3 id="bug-fixes">Bug Fixes</h3>
<ul>
<li>Improve error message on mistyped command (<a href="https://github.com/ripple/rippled/pull/2283">#2283</a>)</li>
<li>Add missing includes (<a href="https://github.com/ripple/rippled/pull/2368">#2368</a>)</li>
<li>Link boost statically only when requested (<a href="https://github.com/ripple/rippled/pull/2291">#2291</a>)</li>
<li>Unit test logging fixes (<a href="https://github.com/ripple/rippled/pull/2293">#2293</a>)</li>
<li>Fix Jenkins pipeline for branches (<a href="https://github.com/ripple/rippled/pull/2289">#2289</a>)</li>
<li>Avoid AppVeyor stack overflow (<a href="https://github.com/ripple/rippled/pull/2344">#2344</a>)</li>
<li>Reduce noise in log (<a href="https://github.com/ripple/rippled/pull/2352">#2352</a>)</li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-90-0/">rippled Version 0.90.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>REMINDER: rippled Version 0.81.0 Validator Key Replacement</title>
		<link>https://ripple.com/dev-blog/reminder-rippled-version-0-81-0-validator-key-replacement/</link>
		<pubDate>Wed, 17 Jan 2018 20:52:17 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Young]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[Ripple validators]]></category>
		<category><![CDATA[Rippled]]></category>
		<category><![CDATA[validators]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=15826</guid>
		<description><![CDATA[<p>On Thursday, January 18, 2018, as described in the 0.81.0 release notes, the current validator keys on all five Ripple-operated rippled validator servers will be replaced. If you have been using the previous recommended default configuration and do not reconfigure your rippled server to the new recommended default configuration before that time, then your rippled &#8230; <a href="https://ripple.com/dev-blog/reminder-rippled-version-0-81-0-validator-key-replacement/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/reminder-rippled-version-0-81-0-validator-key-replacement/">REMINDER: rippled Version 0.81.0 Validator Key Replacement</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="content no-1st-head">
<p>On Thursday, January 18, 2018, as described in the <a href="https://github.com/ripple/rippled/blob/develop/RELEASENOTES.md">0.81.0 release notes</a>, the current validator keys on all five Ripple-operated <code>rippled</code> validator servers will be replaced. <strong>If you have been using the previous recommended default configuration</strong> and do not reconfigure your <code>rippled</code> server to the new recommended default configuration before that time, then your <code>rippled</code> server will stop seeing validated ledgers.</p>
<p>Ripple strongly recommends upgrading to <code>rippled</code> version 0.81.0 immediately.</p>
<h2 id="action-required">Action Required</h2>
<p>If you operate a <code>rippled</code> server, then you should upgrade to 0.81.0 immediately.</p>
<p>Ripple recommends that you:</p>
<ul>
<li>Edit your <code>rippled.cfg</code> to remove the <code>[validators]</code> section, if one is present</li>
<li>Add a <code>[validators_file]</code> section, if one is not present, and add the name of your <code>validators.txt</code> file.</li>
<li>Replace the contents of any existing <code>validators.txt</code> file with the <a href="https://github.com/ripple/rippled/blob/4e8c8deeaac83d18eb62c95b7425d96e11847a41/doc/validators-example.txt#L51-L55">version included with this release</a>. If you are upgrading to <code>rippled</code> version 0.81.0 <a href="https://ripple.com/build/rippled-setup/#updating-rippled">using the <code>rippled</code> RPM package</a>, then your default <code>validators.txt</code> file may automatically be updated, in which case you will not need to modify the file. The <code>validators.txt</code> file is usually in the same directory as your <code>rippled.cfg</code> file.</li>
<li>After starting your <code>rippled</code> server, confirm that it is configured to use the new defaults by executing:
<pre><code>/opt/ripple/bin/rippled validators
</code></pre>
</li>
</ul>
<p>The result should include the following:</p>
<pre><code>    "local_static_keys" : [],
    "publisher_lists" : [
        {
            "available" : true,
            "expiration" : "2018-Jan-23 00:00:00",
            "list" : [
                "nHB1FqfBpNg7UTpiqEUkKcAiWqC2PFuoGY7FPWtCcXAxSkhpqDkm",
                "nHUpwrafS45zmi6eT72XS5ijpkW5JwfL5mLdPhEibrqUvtRcMAjU",
                "nHUBGitjsiaiMJBWKYsJBHU2shmYt9m29hRqoh8AS5bSAjXoHmdd",
                "nHUXh1ELizQ5QLLqtNaVEbbbfMdq3wMkh14aJo5xi83xzzaatWWP",
                "nHUgoJvpqXZMZwxh8ZoFseFJEVF8ryup9r2mFYchX7ftMdNn3jLT"
                ],
            "pubkey_publisher" : "ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734",
            "seq" : 2,
            "version" : 1
        }
    ],
</code></pre>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<ul>
<li><strong>If you operate a <code>rippled</code> server</strong>, but do not upgrade to <code>rippled</code> version 0.81.0, then your <code>rippled</code> server may periodically drop transactions and fall out of sync with the network.</li>
<li>On Thursday, January 18, 2018, as described in the 0.81.0 release notes, the current validator keys on all five Ripple-operated <code>rippled</code> validator servers will be replaced. <strong>If you have been using the recommended default configuration </strong>and do not reconfigure your <code>rippled</code> server before that time, then your <code>rippled</code> server will stop seeing validated ledgers.</li>
</ul>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The sha256 for the RPM is: 75acdf54e472875bff609fa2d1cc59524e4d8f8e885751b50aaeb85938ab3609</p>
<p>The sha256 for the source RPM is: fbc95f6168d015190b93b81f97c20979886fa2f6663e4dd15157409075db46e9</p>
<p>For other platforms, please <a href="https://github.com/ripple/rippled/tree/master/Builds">compile version 0.81.0 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<pre><code>commit 4e8c8deeaac83d18eb62c95b7425d96e11847a41

Author: Nikolaos D. Bougalis &lt;nikb@bougalis.net&gt;

Date:   Wed Jan 3 14:43:42 2018 -0800

    Set version to 0.81.0
</code></pre>
<h2 id="0810-change-log">0.81.0 Change Log</h2>
<ul>
<li>New hosted validator configuration</li>
</ul>
<h2 id="bug-fixes">Bug Fixes</h2>
<ul>
<li>Optimize queries for <code>account_tx</code> to work around SQLite query planner (<a href="https://github.com/ripple/rippled/pull/2312">#2312</a>)</li>
</ul>
<h2 id="network-update">Network Update</h2>
<p>The Ripple technical operations team deployed <code>rippled</code> version 0.81.0 to all <code>rippled</code> validator servers under its operational control, on Tuesday, 2018-01-09.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
</div>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/reminder-rippled-version-0-81-0-validator-key-replacement/">REMINDER: rippled Version 0.81.0 Validator Key Replacement</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Boost 1.66 Not Supported for rippled 0.81.0</title>
		<link>https://ripple.com/dev-blog/boost-1-66-not-supported-rippled-0-81-0/</link>
		<pubDate>Sat, 13 Jan 2018 00:54:08 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[beast]]></category>
		<category><![CDATA[boost]]></category>
		<category><![CDATA[compiling]]></category>
		<category><![CDATA[Rippled]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=15818</guid>
		<description><![CDATA[<p>A warning to developers: rippled versions 0.81.0 and earlier do not compile with the recently-released Boost library version 1.66.0. To compile rippled yourself, Ripple recommends using Boost version 1.65.1. The minimum supported version of Boost is 1.58.0, which is included in the official repositories of Ubuntu 16.04 Xenial. Compiler Errors If you try to compile &#8230; <a href="https://ripple.com/dev-blog/boost-1-66-not-supported-rippled-0-81-0/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/boost-1-66-not-supported-rippled-0-81-0/">Boost 1.66 Not Supported for rippled 0.81.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>A warning to developers: <code>rippled</code> versions 0.81.0 and earlier do not compile with the recently-released Boost library version 1.66.0. To compile <code>rippled</code> yourself, Ripple recommends using <strong>Boost version 1.65.1</strong>. The minimum supported version of Boost is 1.58.0, which is included in the official repositories of Ubuntu 16.04 Xenial.</p>
<h2 id="compiler-errors">Compiler Errors</h2>
<p>If you try to compile <code>rippled</code> version 0.81.0 with Boost version 1.66.0 or higher, you get compiler errors such as the following:</p>
<div class="code_sample" id="code_autoid_1" style="position: relative;">
<pre><code class="hljs python" title="Double-click to expand/collapse">In file included <span class="hljs-keyword">from</span> src/beast/include/beast/core/detail/type_traits.hpp:<span class="hljs-number">13</span>:<span class="hljs-number">0</span>,
                 <span class="hljs-keyword">from</span> src/beast/include/beast/core/impl/static_string.ipp:<span class="hljs-number">12</span>,
                 <span class="hljs-keyword">from</span> src/beast/include/beast/core/static_string.hpp:<span class="hljs-number">1106</span>,
                 <span class="hljs-keyword">from</span> src/beast/include/beast/core/string_param.hpp:<span class="hljs-number">13</span>,
                 <span class="hljs-keyword">from</span> src/beast/include/beast/http/fields.hpp:<span class="hljs-number">12</span>,
                 <span class="hljs-keyword">from</span> src/beast/include/beast/http/message.hpp:<span class="hljs-number">12</span>,
                 <span class="hljs-keyword">from</span> src/ripple/server/Handoff.h:<span class="hljs-number">24</span>,
                 <span class="hljs-keyword">from</span> src/ripple/overlay/Overlay.h:<span class="hljs-number">26</span>,
                 <span class="hljs-keyword">from</span> src/ripple/app/consensus/RCLConsensus.cpp:<span class="hljs-number">39</span>,
                 <span class="hljs-keyword">from</span> src/ripple/unity/app_consensus.cpp:<span class="hljs-number">21</span>:
/usr/include/boost/asio/io_service.hpp:<span class="hljs-number">27</span>:<span class="hljs-number">20</span>: error: conflicting declaration
 ‘typedef <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">boost</span>:</span>:asio::io_context boost::asio::io_service’
 typedef io_context io_service;
</code></pre>
</div>
<p>If you encounter this issue, please downgrade to Boost version 1.65.1.</p>
<h2 id="background">Background</h2>
<p>Boost 1.66.0 <a href="http://www.boost.org/doc/libs/1_66_0/libs/beast/doc/html/beast/introduction.html">introduces the <code>Boost.Beast</code> library for HTTP and WebSocket connections</a>. The Beast library was built by <a href="https://github.com/vinniefalco">prolific coder and Ripple alum Vinnie Falco</a> as an add-on to the <code>Boost.Asio</code> library, for use in <code>rippled</code> and other C++ software. Because Beast made its start in the <code>rippled</code> code base, the version already included in <code>rippled</code> conflicts with the version included as part of the Boost library in versions 1.66.0 and higher.</p>
<h2 id="future-work">Future Work</h2>
<p>Ripple expects to make <code>rippled</code> compatible with Boost 1.66.0 and higher in a future release. At that time, <code>rippled</code> will no longer be compatible with Boost version 1.65.x and lower. Stay tuned to <code>rippled</code> release announcements for updates on this transition.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/boost-1-66-not-supported-rippled-0-81-0/">Boost 1.66 Not Supported for rippled 0.81.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled Version 0.81.0</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-81-0/</link>
		<pubDate>Tue, 09 Jan 2018 04:21:02 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[release announcement]]></category>
		<category><![CDATA[Rippled]]></category>
		<category><![CDATA[XRP]]></category>
		<category><![CDATA[xrp ledger]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=15790</guid>
		<description><![CDATA[<p>Ripple has released rippled version 0.81.0, which introduces changes that improve the scalability of the XRP Ledger and transitions the recommended validator configuration to a new hosted site, as described in Ripple&#8217;s Decentralization Strategy Update post. Ripple strongly recommends upgrading to rippled version 0.81.0 immediately. Action Required If you operate a rippled server, then you &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-81-0/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-81-0/">rippled Version 0.81.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple has released <code>rippled</code> version 0.81.0, which introduces changes that improve the scalability of the XRP Ledger and transitions the recommended validator configuration to a new hosted site, as described in <a href="https://ripple.com/dev-blog/decentralization-strategy-update/">Ripple&#8217;s Decentralization Strategy Update</a> post.</p>
<p>Ripple strongly recommends upgrading to <code>rippled</code> version 0.81.0 immediately.</p>
<h2 id="action-required">Action Required</h2>
<p>If you operate a <code>rippled</code> server, then you should upgrade to <code>rippled</code> version 0.81.0 immediately.</p>
<p>Ripple recommends that you:</p>
<ul>
<li>Edit your <code>rippled.cfg</code> to remove the <code>[validators]</code> section, if one is present.</li>
<li>Replace the contents of any existing <code>validators.txt</code> file with the <a href="https://github.com/ripple/rippled/blob/4e8c8deeaac83d18eb62c95b7425d96e11847a41/doc/validators-example.txt#L51-L55">version included with this release</a>. If you are upgrading to <code>rippled</code> version 0.81.0 <a href="https://ripple.com/build/rippled-setup/#updating-rippled">using the rippled RPM package</a>, then your default <code>validators.txt</code> file may automatically be updated, in which case you will not need to modify the file. The <code>validators.txt</code> file is usually in the same directory as your <code>rippled.cfg</code> file.</li>
<li>After starting your <code>rippled</code> server, confirm that it is configured to use the new defaults by executing:</li>
</ul>
<p><code>/opt/ripple/bin/rippled validators</code></p>
<p>The result should include the following:</p>
<div class="code_sample" id="code_autoid_1" style="position: relative;">
<pre><code class="hljs php" title="Double-click to expand/collapse">  <span class="hljs-string">"local_static_keys"</span> : [],
        <span class="hljs-string">"publisher_lists"</span> : [
           {
              <span class="hljs-string">"available"</span> : <span class="hljs-keyword">true</span>,
              <span class="hljs-string">"expiration"</span> : <span class="hljs-string">"2018-Jan-23 00:00:00"</span>,
              <span class="hljs-string">"list"</span> : [
                  <span class="hljs-string">"nHB1FqfBpNg7UTpiqEUkKcAiWqC2PFuoGY7FPWtCcXAxSkhpqDkm"</span>,
                  <span class="hljs-string">"nHUpwrafS45zmi6eT72XS5ijpkW5JwfL5mLdPhEibrqUvtRcMAjU"</span>,
                  <span class="hljs-string">"nHUBGitjsiaiMJBWKYsJBHU2shmYt9m29hRqoh8AS5bSAjXoHmdd"</span>,
                  <span class="hljs-string">"nHUXh1ELizQ5QLLqtNaVEbbbfMdq3wMkh14aJo5xi83xzzaatWWP"</span>,
                  <span class="hljs-string">"nHUgoJvpqXZMZwxh8ZoFseFJEVF8ryup9r2mFYchX7ftMdNn3jLT"</span>
              ],
              <span class="hljs-string">"pubkey_publisher"</span> : <span class="hljs-string">"ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734"</span>,
              <span class="hljs-string">"seq"</span> : <span class="hljs-number">2</span>,
              <span class="hljs-string">"version"</span> : <span class="hljs-number">1</span>
           }
        ],
</code></pre>
</div>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<ul>
<li>
<p><strong>If you operate a <code>rippled</code> server</strong>, but do not upgrade to <code>rippled</code> version 0.81.0, then your <code>rippled</code> server may periodically drop transactions and fall out of sync with the network.</p>
</li>
<li>
<p>On Tuesday January 16, 2018, the current validator keys on all five Ripple-operated <code>rippled</code> validator servers will be replaced. <strong>If you have been using the recommended default configuration</strong> and do not reconfigure your <code>rippled</code> server before that time, then your <code>rippled</code> server will stop seeing validated ledgers.</p>
</li>
</ul>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The sha256 for the rpm is: 75acdf54e472875bff609fa2d1cc59524e4d8f8e885751b50aaeb85938ab3609</p>
<p>The sha256 for the source rpm is: fbc95f6168d015190b93b81f97c20979886fa2f6663e4dd15157409075db46e9</p>
<p>For other platforms, please <a href="https://github.com/ripple/rippled/tree/master/Builds">compile version 0.81.0 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<div class="code_sample" id="code_autoid_2" style="position: relative;">
<pre><code class="hljs sql" title="Double-click to expand/collapse">    <span class="hljs-keyword">commit</span> <span class="hljs-number">4e8</span>c8deeaac83d18eb62c95b7425d96e11847a41
    Author: Nikolaos D. Bougalis &lt;nikb@bougalis.net&gt;
    <span class="hljs-built_in">Date</span>:   Wed Jan <span class="hljs-number">3</span> <span class="hljs-number">14</span>:<span class="hljs-number">43</span>:<span class="hljs-number">42</span> <span class="hljs-number">2018</span> <span class="hljs-number">-0800</span>

        <span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">0.81</span><span class="hljs-number">.0</span>
</code></pre>
</div>
<h2 id="network-update">Network Update</h2>
<p>The Ripple technical operations team will deploy <code>rippled</code> version 0.81.0 to all <code>rippled</code> servers under its operational control, Tuesday, 01/09/2018.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<h2 id="0810-change-log">0.81.0 Change Log</h2>
<ul>
<li>New hosted validator configuration</li>
</ul>
<h2 id="bug-fixes">Bug Fixes</h2>
<ul>
<li>Filter SQL results in lieu of a search clause <a href="https://github.com/ripple/rippled/pull/2312">(#2312)</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-81-0/">rippled Version 0.81.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>An Explanation of Ripple’s XRP Escrow</title>
		<link>https://ripple.com/dev-blog/explanation-ripples-xrp-escrow/</link>
		<pubDate>Sat, 16 Dec 2017 01:01:57 +0000</pubDate>
		<dc:creator><![CDATA[David Schwartz]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=15651</guid>
		<description><![CDATA[<p>To provide additional predictability to the XRP supply, Ripple has locked 55 billion XRP (55% of the total possible supply) into a series of escrows. These escrows are on the ledger itself and the ledger mechanics, enforced by consensus, control the release of the XRP. The escrow consists of independent on ledger escrows that release &#8230; <a href="https://ripple.com/dev-blog/explanation-ripples-xrp-escrow/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/explanation-ripples-xrp-escrow/">An Explanation of Ripple’s XRP Escrow</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>To provide additional predictability to the XRP supply, Ripple has locked 55 billion XRP (55% of the total possible supply) into a series of escrows. These escrows are on the ledger itself and the ledger mechanics, enforced by consensus, control the release of the XRP.</p>
<p>The escrow consists of independent on ledger escrows that release a total of one billion XRP each month over the next 55 months. This provides an upper limit on the amount of new XRP that can be brought into circulation. The amount of XRP actually released into circulation will likely be much less than this. Any additional XRP leftover each month will be placed into a new escrow to release in the first month in which no escrow currently releases.</p>
<p>During the process of moving Ripple’s XRP into escrow, we also changed our account security model. The XRP Ledger supports a native multisign scheme and Ripple secured the accounts the escrows release into using this scheme.</p>
<p>The multisignature scheme has numerous advantages over the schemes other ledgers use. For example, the signers or quorum can be changed without changing the receiving address. Individual signers can rotate their own credentials without disturbing the funds on the ledger.</p>
<p><strong>Ledger Mechanics</strong></p>
<p>The XRP Ledger’s escrow system is designed to handle two use cases. The one that gives it its name is its ability to lock funds on the ledger subject to release to one of two accounts depending on whether a particular condition occurs by a particular time. This supports Interledger transactions or cross-ledger atomic swaps.</p>
<p>The escrow system consists of three types of transactions and one type of ledger entry. Escrows are created with an “EscrowCreate” transaction. This creates the “Escrow” ledger entry. An escrow can then be either cancelled or finished with an “EscrowCancel” or an “EscrowFinish” transaction.</p>
<p>If an escrow is successfully finished, it delivers the XRP held to its destination account. If the escrow is cancelled, it delivers the XRP back to the source account. A ledger can have a date before which it cannot be cancelled, a date before which it cannot be finished, and a condition which must be satisfied to permit it to be finished.</p>
<p>An escrow as a time lock several different ways, but the simplest one is to create an escrow that cannot be cancelled, cannot be finished before a particular date, and requires no additional condition to finish. For simplicity, the destination account can be set to be identical to the source account.</p>
<p>On the ledger, an “Escrow” entry has a source account, a destination account, and an XRP amount. It is considered owned by the account that created it and increases the required XRP reserve for that account until it is completed or cancelled. Escrow entries can optionally have a cryptocondition that must be satisfied to finish the escrow, a date before which it cannot be cancelled, and a date before which it cannot be completed.</p>
<p>Escrows can also have source and destination tags. Source and destination tags on the XRP Ledger provide a uniform and reliable way to support hosted accounts where an agent (such as an exchange) performs a transaction on behalf of its customer. The destination tag informs the recipient of which customer to credit. The source tag permits a payment to be refunded and the refund to be credited to the proper customer. This permits exchanges (or hosted wallet providers) to perform and receive escrowed payments on behalf of their customers.</p>
<p>While the escrow is currently being used to provide more predictability to the XRP supply, Ripple expects that escrow will increasingly be used for higher-value, on-ledger and cross-ledger atomic payments using the Interledger Protocol. The XRP Ledger also provides payment channels for lower-value, off-ledger payments and micropayments.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/explanation-ripples-xrp-escrow/">An Explanation of Ripple’s XRP Escrow</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled Version 0.80.2</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-80-2/</link>
		<pubDate>Fri, 15 Dec 2017 20:34:32 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=15649</guid>
		<description><![CDATA[<p>Ripple has released rippled version 0.80.2, which improves the transaction dispatch logic of rippled, allows for more transactions to be in flight at any one time and reduces the overall resource usage of rippled. The improved transaction dispatch logic ensures that a transaction is dispatched at most once every 10 seconds, even if it received &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-80-2/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-80-2/">rippled Version 0.80.2</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple has released <code>rippled</code> version 0.80.2, which improves the transaction dispatch logic of <code>rippled</code>, allows for more transactions to be in flight at any one time and reduces the overall resource usage of <code>rippled</code>. The improved transaction dispatch logic ensures that a transaction is dispatched at most once every 10 seconds, even if it received from multiple peers during that interval.</p>
<p>The fix should also improve load accounting on peer links, reducing the number of extraneous server-server connection drops caused by redundant transaction dispatching.</p>
<p>Ripple strongly recommends upgrading to <code>rippled</code> version 0.80.2 immediately.</p>
<h2 id="action-required">Action Required</h2>
<p>If you operate a <code>rippled</code> server, then you should upgrade to 0.80.2 immediately.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<ul>
<li><strong>If you operate a <code>rippled</code> server</strong>, but do not upgrade to rippled version 0.80.2, then your <code>rippled</code> server will use more resources than necessary and may periodically drop transactions and fall out of sync with the network.</li>
</ul>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The SHA-256 for the RPM is: <code>a0f431a55a241770d7496b240e4d2c638f2cadd4126ee621c5ed980b8174223c</code></p>
<p>The SHA-256 for the source RPM is: <code>d25bda2c384c67e48fe6c29250c07039d33c6ed5d280ad19fc246469213fe251</code></p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.80.2 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<div class="code_sample" id="code_autoid_1" style="position: relative;">
<pre><code class="hljs sql" title="Double-click to expand/collapse"><span class="hljs-keyword">commit</span> d2fc4e3569d79d3cade78533f673f642a8d26845
Author: Nikolaos D. Bougalis &lt;nikb@bougalis.net&gt;
<span class="hljs-built_in">Date</span>:   Thu <span class="hljs-built_in">Dec</span> <span class="hljs-number">14</span> <span class="hljs-number">15</span>:<span class="hljs-number">30</span>:<span class="hljs-number">20</span> <span class="hljs-number">2017</span> <span class="hljs-number">-0800</span>

    <span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">0.80</span><span class="hljs-number">.2</span>
</code></pre>
</div>
<h2 id="network-update">Network Update</h2>
<p>The Ripple technical operations team will deploy <code>rippled</code> version 0.80.2 to all production <code>rippled</code> servers under its operational control, on Friday, 12/15/2017.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<h2 id="0802-change-log">0.80.2 Change Log</h2>
<ul>
<li>Tune for higher transaction rate processing <a href="https://github.com/ripple/rippled/pull/2294">(#2294)</a></li>
<li>Control transaction dispatch rate <a href="https://github.com/ripple/rippled/pull/2297">(#2297)</a></li>
</ul>
<h2 id="0801-change-log">0.80.1 Change Log</h2>
<p>The <a href="https://github.com/ripple/rippled/releases/tag/0.80.1">previously-released <code>rippled</code> version 0.80.1</a> also included the following fixes and improvements:</p>
<p><strong>New and Updated Features</strong></p>
<ul>
<li>Allow including validator manifests in published list (<a href="https://github.com/ripple/rippled/issues/2278">#2278</a>)</li>
<li>Add validator list RPC commands (<a href="https://github.com/ripple/rippled/issues/2242">#2242</a>)</li>
<li>Support <a href="https://en.wikipedia.org/wiki/Server_Name_Indication">SNI</a> when querying published list sites and use Windows system root certificates (<a href="https://github.com/ripple/rippled/issues/2275">#2275</a>)</li>
<li>Grow TxQ expected size quickly, shrink slowly (<a href="https://github.com/ripple/rippled/issues/2235">#2235</a>)</li>
</ul>
<p><strong>Bug Fixes</strong></p>
<ul>
<li>Make consensus quorum unreachable if validator list expires (<a href="https://github.com/ripple/rippled/issues/2240">#2240</a>)</li>
<li>Properly use ledger hash to break ties when determing working ledger for consensus (<a href="https://github.com/ripple/rippled/issues/2257">#2257</a>)</li>
<li>Explictly use std::deque for missing node handler in SHAMap code (<a href="https://github.com/ripple/rippled/issues/2252">#2252</a>)</li>
<li>Verify validator token manifest matches private key (<a href="https://github.com/ripple/rippled/issues/2268">#2268</a>)</li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-80-2/">rippled Version 0.80.2</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled Version 0.80.0</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-80-0/</link>
		<pubDate>Mon, 23 Oct 2017 21:01:08 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[releases]]></category>
		<category><![CDATA[Rippled]]></category>
		<category><![CDATA[xrp ledger]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=15357</guid>
		<description><![CDATA[<p>Ripple has released rippled version 0.80.0, which introduces several enhancements that improve the reliability, scalability and security of the XRP Ledger. Ripple recommends that all rippled server operators upgrade to version 0.80.0 by Tuesday, 2017-11-07, for service continuity. Highlights of this release include: The SortedDirectories amendment sorts the entries in DirectoryNode ledger objects. It also &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-80-0/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-80-0/">rippled Version 0.80.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple has released <code>rippled</code> version 0.80.0, which introduces several enhancements that improve the reliability, scalability and security of the XRP Ledger. Ripple recommends that all <code>rippled</code> server operators upgrade to version 0.80.0 by Tuesday, 2017-11-07, for service continuity.</p>
<p>Highlights of this release include:</p>
<ul>
<li>The <strong>SortedDirectories</strong> amendment sorts the entries in <a href="https://ripple.com/build/ledger-format/#directorynode"><code>DirectoryNode</code> ledger objects</a>. It also corrects a technical flaw that could, in some edge cases, prevent an empty intermediate page from being deleted.</li>
</ul>
<p>Ripple expects the <strong>SortedDirectories</strong> amendment to be enabled on Tuesday, 2017-11-07.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server</strong>, then you should upgrade to version 0.80.0 by Tuesday, 2017-11-07, for service continuity.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server but do not upgrade to version 0.80.0 by Tuesday, 2017-11-07, when the <strong>SortedDirectories</strong> Amendment is expected to be activated, then your server will become <a href="https://ripple.com/build/amendments/#amendment-blocked">amendment blocked</a>, meaning that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
<li>Could rely on potentially invalid data</li>
</ul>
<p>If the <strong>SortedDirectories</strong> amendment does not get approved, then your <code>rippled</code> server will not become amendment blocked and should continue to operate.</p>
<h2 id="action-recommended">Action Recommended</h2>
<p><strong>If you operate a <code>rippled</code> server that uses RocksDB as its data store</strong>, then we recommend removing the RocksDB <code>file_size_mb</code> parameter from your <code>rippled.cfg</code> config file.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The sha256 for the rpm is: 0f67e8fdc9c555921534b6944ca418df007cee0705ab9e2fc5423963848b2935</p>
<p>The sha256 for the source rpm is: 9c6f5074e1ec3ce6ced27c0da243bb7ed19a32a8bedf2d68809ec37845f42c1b</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.80.0 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<div class="code_sample" id="code_autoid_1" style="position: relative;">
<pre><code class="hljs sql" title="Double-click to expand/collapse"><span class="hljs-keyword">commit</span> cafe18c59279e7de447f25a0e00d0562d6441c7a
Author: Nik Bougalis &lt;nikb@bougalis.net&gt;
<span class="hljs-built_in">Date</span>:   Thu <span class="hljs-keyword">Oct</span> <span class="hljs-number">19</span> <span class="hljs-number">14</span>:<span class="hljs-number">37</span>:<span class="hljs-number">27</span> <span class="hljs-number">2017</span> <span class="hljs-number">-0700</span>

    <span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">0.80</span><span class="hljs-number">.0</span>
</code></pre>
<p><input class="code_toggler" value="Expand" type="button"></div>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team plans to deploy version 0.80.0 to all <code>rippled</code> servers under its operational control, including private clusters, starting at 2:00 PM PST on Tuesday, 2017-10-24. The deployment is expected to complete within 4 hours. The network should continue to operate during deployment and no outage is expected.</p>
<p>At that time, <code>rippled</code> validators under Ripple’s operational control will begin voting for the <strong>SortedDirectories</strong> amendment.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<h2 id="full-release-notes">Full Release Notes</h2>
<h3 id="sorteddirectories">SortedDirectories</h3>
<p>The <strong>SortedDirectories</strong> amendment addresses two distinct issues: First, it corrects a technical flaw that could, in some edge cases, prevent an empty intermediate page from being deleted. Second, it sorts directory entries within a page (other than order book page entries, which remain strictly FIFO). This makes insert operations deterministic, instead of pseudo-random and reliant on temporal ordering. Lastly, it removes the ability to perform a &#8220;soft delete&#8221; where the page number of the item to delete need not be known if the item is in the first 20 pages, and enforces a maximum limit to the number of pages that a directory can span.</p>
<h2 id="upcoming-features">Upcoming Features</h2>
<p>The <a href="https://ripple.com/dev-blog/rippled-version-0-70-0/">previously announced</a> FlowCross Amendment will be enabled on a future date (TBA).</p>
<p>We do not have an update on the <a href="https://ripple.com/dev-blog/rippled-version-0-33-0-released/">previously announced</a> changes to the hash tree structure that <code>rippled</code> uses to represent a ledger, called <a href="https://ripple.com/build/amendments/#shamapv2">SHAMapV2</a>. At the time of activation, this amendment will require brief scheduled allowable unavailability while the changes to the hash tree structure are computed by the network. We will keep the community updated as we progress towards this date (TBA).</p>
<p>You can <a href="https://ripple.com/build/rippled-setup/#updating-rippled">update to the new version</a> on Red Hat Enterprise Linux 7 or CentOS 7 using yum. For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile the new version from source</a>.</p>
<h2 id="0800-change-log">0.80.0 Change Log</h2>
<ul>
<li>Improve directory insertion and deletion <a href="https://github.com/ripple/rippled/pull/2165">(#2165)</a></li>
<li>Move consensus thread safety logic from the generic implementation in Consensus into the RCL adapted version RCLConsensus <a href="https://github.com/ripple/rippled/pull/2106">(#2106)</a></li>
<li>Refactor Validations class into a generic version that can be adapted <a href="https://github.com/ripple/rippled/pull/2084">(#2084)</a></li>
<li>Make minimum quorum Byzantine fault tolerant <a href="https://github.com/ripple/rippled/pull/2093">(#2093)</a></li>
<li>Make amendment blocked state thread-safe and simplify a constructor <a href="https://github.com/ripple/rippled/pull/2207/commits/be1f734845ac763ce51d61507c9ba6cf18fc3cfb">(#2027)</a></li>
<li>Use ledger hash to break ties <a href="https://github.com/ripple/rippled/pull/2169">(#2169)</a></li>
<li>Refactor RangeSet <a href="https://github.com/ripple/rippled/pull/2113">(#2113)</a></li>
<li>Improvements to validation quorum calculation</li>
</ul>
<h2 id="bug-fixes">Bug Fixes</h2>
<ul>
<li>Check and modify amendment blocked status with each new ledger <a href="https://github.com/ripple/rippled/pull/2137">(#2137)</a></li>
<li>Track escrow in recipient&#8217;s owner directory <a href="https://github.com/ripple/rippled/pull/2212">(#2212)</a></li>
<li>Ensure consensus close times generate identical ledgers <a href="https://github.com/ripple/rippled/pull/2221">(#2221)</a></li>
<li>Recover open ledger transactions to the queue <a href="https://github.com/ripple/rippled/pull/2232/commits/62127d725d801641bfaa61dee7d88c95e48820c5">(#2232)</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-80-0/">rippled Version 0.80.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Decentralization Strategy Update</title>
		<link>https://ripple.com/dev-blog/decentralization-strategy-update/</link>
		<pubDate>Tue, 17 Oct 2017 19:59:19 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=15293</guid>
		<description><![CDATA[<p>As Ripple progresses towards further decentralizing the XRP Ledger, we want to make server operators and members of the XRP Ledger community aware of a few upcoming changes to help ensure the reliability and stability of the network as it transitions to a distributed architecture with fully decentralized validators. Background The XRP Ledger (formerly called &#8230; <a href="https://ripple.com/dev-blog/decentralization-strategy-update/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/decentralization-strategy-update/">Decentralization Strategy Update</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>As Ripple progresses towards further decentralizing the XRP Ledger, we want to make server operators and members of the XRP Ledger community aware of a few upcoming changes to help ensure the reliability and stability of the network as it transitions to a distributed architecture with fully decentralized validators.</p>
<h2 id="background">Background</h2>
<p>The XRP Ledger (formerly called the Ripple Consensus Ledger) was created in 2012, as a trust-based alternative to the proof-of-work consensus mechanism originated by Bitcoin. So far, most of that trust has relied upon validators owned and controlled by Ripple, the company leading development of the XRP Ledger.</p>
<p>Ripple chose deliberately to be the most trusted validator operator in the network during the initial stages of development of the XRP Ledger. This decision involved trade-offs to prioritize security and scalability ahead of decentralization.</p>
<p>Since inception, the XRP Ledger has closed over 33 million ledgers, processed over 600 million transactions amounting to more than $15 billion in transaction volume, with no major issues or network forks.</p>
<p>At present, the XRP Ledger can natively scale to 1,500 transactions per second. With Payment Channels, XRP can theoretically scale to tens of thousands of transactions per second—throughput levels comparable to VISA.  </p>
<p>With the security, stability, and throughput of the XRP Ledger thoroughly proven, Ripple feels that now is the time for a crucial next step in decentralization, while continuing to improve all aspects of the XRP Ledger software.</p>
<h2 id="strategy">Strategy</h2>
<p>To meet the growing needs of customers, and further increase resiliency and stability of the XRP Ledger, Ripple is in a great position to fully execute on its <a href="https://ripple.com/insights/how-we-are-further-decentralizing-the-ripple-consensus-ledger-rcl-to-bolster-robustness-for-enterprise-use/">decentralization strategy</a>, which has been an ongoing process since 2012.</p>
<p>Phase one includes the diversification of validators by identity, location, hardware and software, in an effort to further mitigate the risk of a single point of failure. At the time of the announcement, 25 validator nodes were running with 5 trusted validators owned and managed by Ripple. Currently, <a href="https://xrpcharts.ripple.com/#/validators">over 70 validator nodes</a> are running globally. During this phase Ripple will be adding 16 more trusted validators, in preparation for phase two.</p>
<p>During the second phase, for every two of the most reliable, reputable, stable, secure and attested validators added to the recommended list of trusted nodes, one validator node currently controlled by Ripple will be removed, until no entity operates a majority of recommended trusted nodes on the XRP Ledger.</p>
<p>The validator operators on this recommended list of trusted nodes believe in the long term vision of XRP and want to participate in the consensus process, which involves voting on proposed amendments, modifying fees and validating transactions.</p>
<h2 id="changes">Changes</h2>
<p>Before Ripple can progress to phase two, a few changes have to be made to ensure a safe transition.</p>
<p>With the upcoming 0.81.0 release, Ripple will transition its recommended validator list to a new hosted site. This involves a change in the default <code>rippled</code> configuration file. The <code>[validators]</code> field with its static list of trusted validators will be replaced with <code>[validator_list_keys]</code> and <code>[validator_list_sites]</code> fields containing the key Ripple will use to sign its newly recommended validator list as well as the URLs where the dynamic list can be found. <em>(Editor&#8217;s note: a previous version of this article incorrectly stated that the transition will take place in version 0.80.0.)</em></p>
<p>These changes will allow new validators to be safely added to the recommended validator list for phase two without requiring every <code>rippled</code> operator to manually update their configuration with each new addition.</p>
<p>It is important to note that, for operators who already use the recommended validator list, no further trust in Ripple is required during phase 1, despite the significant increase of validators under Ripple’s operational control. The validator list currently recommended by Ripple contains 5 validators operated by Ripple, and at the end of phase 1, the list will contain 16 such validators.</p>
<p>During phases 1 and 2, Ripple strongly recommends that operators use only the default Ripple-provided validator list. Consistent with this recommendation, the next scheduled release of <code>rippled</code>, version 0.81.0, will ship with a default configuration file using that list by default.</p>
<p>During phase 2, Ripple will begin decommissioning one validator under its operational control for every two third-party validators that demonstrate a strong reputation for stability, security and reliability. Ripple will also be working with other entities to establish independent providers of validator lists.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Ripple remains committed to decentralizing the XRP Ledger and divesting itself of operational control. This multi-phase approach does that, but is intentionally conservative and has been devised with a single goal in mind: to ensure the reliability and stability of the network during the transition period to a fully decentralized and distributed architecture.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/decentralization-strategy-update/">Decentralization Strategy Update</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>The Most (Demonstrably) Scalable Blockchain</title>
		<link>https://ripple.com/dev-blog/demonstrably-scalable-blockchain/</link>
		<pubDate>Mon, 02 Oct 2017 18:12:53 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=15157</guid>
		<description><![CDATA[<p>Blockchain technology is set to fundamentally transform the way the world moves value, but to do so, it must first meet a number of challenges. In previous posts on this blog, we have highlighted our engineering practices and how they help us built robust and secure software—an important consideration for these new systems. The ability &#8230; <a href="https://ripple.com/dev-blog/demonstrably-scalable-blockchain/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/demonstrably-scalable-blockchain/">The Most (Demonstrably) Scalable Blockchain</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Blockchain technology is set to fundamentally transform the way the world moves value, but to do so, it must first meet a number of challenges.</p>
<p>In previous posts on this blog, we have highlighted our engineering practices and how they help us built robust and secure software—an important consideration for these new systems.</p>
<p>The ability to handle volume is equally important, and today, we are sharing some more details about that aspect of our process. In <a href="http://highscalability.com/blog/2017/10/2/ripple-the-most-demonstrably-scalable-blockchain.html">a feature article about the XRP Ledger on High Scalability</a>—the premiere news source about scalable, high performance Internet applications—we are proud to talk about our development and benchmarking practices and to discuss the data-driven changes we made to increase transaction throughput by a factor of 10 since we began performance testing.</p>
<p>The XRP Ledger has been designed from the ground up with scalability in mind and the underlying architecture has only been improved over time. As our data shows, the XRP Ledger is now capable of sustaining a throughput of <strong>1,500 transactions per second</strong> on commodity hardware.</p>
<p>We hope that this will be the first article in a series highlighting our continued efforts to scale the performance of the XRP Ledger to meet not only the demands of the present, but of the future as we help the Internet of Value take shape.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/demonstrably-scalable-blockchain/">The Most (Demonstrably) Scalable Blockchain</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled Version 0.70.2</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-70-2/</link>
		<pubDate>Fri, 22 Sep 2017 00:05:06 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[release notes]]></category>
		<category><![CDATA[Rippled]]></category>
		<category><![CDATA[xrp ledger]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=15138</guid>
		<description><![CDATA[<p>The rippled team has released rippled version 0.70.2, which corrects an emergent behavior that resulted in high transaction costs and fewer transactions in validated ledgers over the past few days. The problematic behavior involved large numbers of transactions being stuck in different rippled instances&#8217; open ledgers without being consistently relayed to validators. The large number &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-70-2/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-70-2/">rippled Version 0.70.2</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The <code>rippled</code> team has released <code>rippled</code> version 0.70.2, which corrects an emergent behavior that resulted in high transaction costs and fewer transactions in validated ledgers over the past few days. The problematic behavior involved large numbers of transactions being stuck in different <code>rippled</code> instances&#8217; open ledgers without being consistently relayed to validators. The large number of &#8220;stuck&#8221; transactions filled the transaction queue and caused a dramatic increase in the open ledger cost.</p>
<p>There are no new features in the 0.70.2 release.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server, then you should upgrade to 0.70.2 immediately.</strong></p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server, but do not upgrade to <code>rippled</code> version 0.70.2, then your <code>rippled</code> server could see inconsistent transaction relaying as well as transactions getting stuck in the open ledger without being passed on to validators. In this case, your server may report very high transaction costs and brimming transaction queues.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The SHA-256 for the RPM is: b41f3d75bb0fcf67dcd3cd14fbf1a7029ce28442b6dcd19fff7df330c35ee3e7</p>
<p>The SHA-256 for the source RPM is: 8cae27e639ef57987238c7800127288857c6caa61d15342faf781749ce9ee7ff</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.70.2 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<div class="code_sample" id="code_autoid_1" style="position: relative;">
<pre><code class="hljs sql" title="Double-click to expand/collapse"><span class="hljs-keyword">commit</span> cd2d52acdcb4c58cbb5ca3f9a025a826c65f99aa
Author: Edward Hennis &lt;ed@ripple.com&gt;
<span class="hljs-built_in">Date</span>:   Tue Sep <span class="hljs-number">19</span> <span class="hljs-number">14</span>:<span class="hljs-number">26</span>:<span class="hljs-number">06</span> <span class="hljs-number">2017</span> <span class="hljs-number">-0400</span>

    <span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">0.70</span><span class="hljs-number">.2</span>
</code></pre>
</div>
<h2 id="0702-change-log">0.70.2 Change Log</h2>
<h2 id="bug-fixes">Bug Fixes</h2>
<ul>
<li>Recover old open ledger transactions to the queue <a href="https://github.com/ripple/rippled/pull/2231">(#2231)</a></li>
</ul>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team plans to deploy version 0.70.2 to all <code>rippled</code> servers under its operational control, including private clusters, starting at 4:00 PM PT on Thursday, 2017-09-21. The deployment is expected to complete within 4 hours. The network should continue to operate during deployment and no outage is expected.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-70-2/">rippled Version 0.70.2</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Protecting the Ledger: Invariant Checking</title>
		<link>https://ripple.com/dev-blog/protecting-ledger-invariant-checking/</link>
		<pubDate>Wed, 19 Jul 2017 15:43:12 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[invariant checking]]></category>
		<category><![CDATA[rcl]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[stability]]></category>
		<category><![CDATA[xrp ledger]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=14755</guid>
		<description><![CDATA[<p>By Nik Bougalis, Engineering Manager At Ripple, we have been developing next-generation financial infrastructure with an eye towards making value move as fast and as efficiently as information does today. But we are also keenly aware of the need for value to also move securely and reliably, so we place heavy emphasis on writing solid, &#8230; <a href="https://ripple.com/dev-blog/protecting-ledger-invariant-checking/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/protecting-ledger-invariant-checking/">Protecting the Ledger: Invariant Checking</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><em>By Nik Bougalis, Engineering Manager</em></p>
<p>At Ripple, we have been developing next-generation financial infrastructure with an eye towards making value move as fast and as efficiently as information does today.</p>
<p>But we are also keenly aware of the need for value to also move securely and reliably, so we place heavy emphasis on writing solid, secure and robust code. Our singular focus on code quality is the reason that the Ripple network experienced no service outages through 2016 or, so far, in 2017.</p>
<p>With the release of rippled 0.70.0, and as part of our long-standing and enduring commitment to a reliable and error-free XRP Ledger, we are going further than before. We are adding code that runs automatically and in real time after each transaction completes, and examines the changes it made for correctness before the results are committed to the ledger.</p>
<p>This is the idea behind the <a href="https://xrpcharts.ripple.com/#/transactions/17593B03F7D3283966F3C0ACAF4984F26E9D884C9A202097DAED0523908E76C6">recently activated</a> <a href="https://ripple.com/build/amendments/#enforceinvariants">EnforceInvariants amendment</a>, which will make it possible to verify that key properties of the system are not violated. The new checks—which we believe will never trigger—help protect the integrity of the XRP Ledger from bugs yet to be discovered, or even created.</p>
<p>What’s more, the process is transparent and public: problematic transactions are marked with a <strong>tecINVARIANT_FAILED</strong> result code and are included in the ledger. This broad exposure, coupled with Ripple’s powerful ability to step through the execution of past transactions, makes it possible to quickly identify and fix any logic flaws in the code.</p>
<p>One key property of the invariant checking functions is that they are simple: each check only does one thing and is easy to read and understand. This means that it is trivial to verify the correctness of the implementation by inspection—an important consideration in any security critical code.</p>
<p>Our existing software development and quality assurance process places heavy emphasis on correctness and security. Over the past five years, we&#8217;ve honed this process to cover the entire software development lifecycle. Some of the systems we&#8217;ve put in place include:</p>
<ul>
<li>Extensive unit tests, with tests as a requirement to merge any new code</li>
<li>Regular use of tools to objectively assess the quality of the codebase</li>
<li>A rigorous and public review process by Ripple’s world-class team of developers and third-party contributors</li>
<li>Regular security audits by subject matter experts from the crypto, fintech and C++ communities.</li>
</ul>
<p>The new invariant checking sits atop and enhances our existing process by extending real-time protection to the XRP Ledger to help ensure its long-term health and security.</p>
<p>As we continue to improve the XRP Ledger by adding new features and by further improving performance, we will also work to refine our process to help ensure that the financial infrastructure of the future will not only be fast, but also robust and secure.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/protecting-ledger-invariant-checking/">Protecting the Ledger: Invariant Checking</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled version 0.70.1</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-70-1/</link>
		<pubDate>Mon, 10 Jul 2017 22:21:58 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=14708</guid>
		<description><![CDATA[<p>UPDATE 7-12-2017: This announcement now contains corrected SHA-256 values for the RPM and source RPM. The rippled team has released rippled version 0.70.1, which corrects a technical flaw in the newly refactored consensus code that could, in rare cases, cause a node to get stuck in consensus due to stale votes from a peer. Ripple &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-70-1/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-70-1/">rippled version 0.70.1</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><strong>UPDATE 7-12-2017:</strong> This announcement now contains corrected SHA-256 values for the <code>RPM</code> and source <code>RPM</code>.</p>
<p>The <code>rippled</code> team has released <code>rippled</code> version 0.70.1, which corrects a technical flaw in the newly <a href="https://github.com/ripple/rippled/commit/00c60d408a887d8a986db81afbb5ead121e8310c#diff-dab2766c14d0ef8e760dc5e353fa7b9dR1389">refactored</a> consensus code that could, in rare cases, cause a node to get stuck in consensus due to stale votes from a peer. <strong>Ripple requires upgrading to <code>rippled</code> version 0.70.1 immediately.</strong></p>
<p>There are no new features in the 0.70.1 release.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server, then you should upgrade to 0.70.1 immediately.</strong></p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<ul>
<li>If you operate a <code>rippled</code> validator server, but do not upgrade to <code>rippled</code> version 0.70.1, then your <code>rippled</code> validator server could experience increased loss of synchronization with the network.</li>
</ul>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The SHA-256 for the <code>RPM</code> is: <code>23c8ec08d1ca8c8ce6c0602617c7e41b7f2fd249a1417a79a286a3faa5be08eb</code></p>
<p>The SHA-256 for the source <code>RPM</code> is: <code>3522546989024e783cfa933218a28ee878dcc3f334749e7456cb04a9cd07d8fc</code></p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.70.1 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<div id="code_autoid_1" class="code_sample" style="position: relative;">
<pre><code class="hljs sql">  <span class="hljs-keyword">commit</span> <span class="hljs-number">3bfd9de6779994e5bbbba864791429e2f7360947</span>
  Author: Nik Bougalis &lt;nikb@bougalis.net&gt;
  <span class="hljs-built_in">Date</span>:   Wed Jun <span class="hljs-number">28</span> <span class="hljs-number">07</span>:<span class="hljs-number">15</span>:<span class="hljs-number">07</span> <span class="hljs-number">2017</span> <span class="hljs-number">-0700</span>

        <span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">0.70</span><span class="hljs-number">.1</span>
</code></pre>
<p><em>(Note: a previous version of this announcement incorrectly reported the version-setting commit ID as 5044f2354cbf39c52f6ff910fdff368b9801ef67.)</em></p>
</div>
<h2 id="0701-change-log">0.70.1 Change Log</h2>
<ul>
<li>Allow compiling against OpenSSL 1.1.0, which allows compiling under the latest version of Fedora. <a href="https://github.com/ripple/rippled/pull/2151">(#2151)</a></li>
</ul>
<h2 id="bug-fixes">Bug Fixes</h2>
<ul>
<li>Log invariant check messages at &#8220;fatal&#8221; level <a href="https://github.com/ripple/rippled/pull/2154">(#2154)</a></li>
<li>Fix the consensus code to update all disputed transactions after a node changes a position <a href="https://github.com/ripple/rippled/pull/2156">(#2156)</a></li>
</ul>
<h2 id="network-update">Network Update</h2>
<p>The Ripple technical operations team deployed <code>rippled</code> version 0.70.1 to all <code>rippled</code> servers under its operational control, including private clusters, on Sunday, 2017-07-09.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: support@ripple.com</li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-70-1/">rippled version 0.70.1</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled Version 0.70.0</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-70-0/</link>
		<pubDate>Fri, 16 Jun 2017 01:03:52 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Young]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[consensus]]></category>
		<category><![CDATA[rcl]]></category>
		<category><![CDATA[Rippled]]></category>
		<category><![CDATA[XRP]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=14575</guid>
		<description><![CDATA[<p>Ripple has released rippled version 0.70.0, which introduces several enhancements that improve the reliability, scalability and security of the Ripple Consensus Ledger. Ripple recommends that all rippled server operators upgrade to version 0.70.0 by Thursday, 2017-06-29, for service continuity. Highlights of this release include: The FlowCross Amendment, which streamlines offer crossing and autobrigding logic by &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-70-0/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-70-0/">rippled Version 0.70.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple has released <code>rippled</code> version 0.70.0, which introduces several enhancements that improve the reliability, scalability and security of the Ripple Consensus Ledger. Ripple recommends that all <code>rippled</code> server operators upgrade to version 0.70.0 by Thursday, 2017-06-29, for service continuity.</p>
<p>Highlights of this release include:</p>
<ul>
<li>The <a href="https://ripple.com/build/amendments/#flowcross"><strong>FlowCross</strong> Amendment</a>, which streamlines offer crossing and autobrigding logic by leveraging the new “Flow” payment engine in <code>rippled</code>.</li>
<li>The <a href="https://ripple.com/build/amendments/#enforceinvariants"><strong>EnforceInvariants</strong> Amendment</a>, which safeguards the integrity of RCL by introducing code that executes after every transaction and ensures that the execution did not violate key protocol rules.</li>
<li><a href="https://ripple.com/build/amendments/#fix1373"><strong>fix1373</strong></a>, which addresses an issue that would cause payments with certain path specifications to not be properly parsed.</li>
</ul>
<p>Ripple expects the <strong>EnforceInvariants</strong> and <strong>fix1373</strong> Amendments to be enabled on Thursday, 2017-06-29. The <strong>FlowCross</strong> Amendment will be enabled on a future date (TBA).</p>
<h2 id="operational-note">Operational Note</h2>
<p>The algorithm that determines how many threads <code>rippled</code> uses has been changed with this release. The new logic creates more threads, allowing the server to better leverage multi-core processing units. As a result of the increase in thread count, operators may find that their <code>rippled</code> instances may now utilize more memory than in the past.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server</strong>, then you should upgrade to version 0.70.0 by Thursday, 2017-06-29, for service continuity.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server but do not upgrade to version 0.70.0 by Thursday, 2017-06-29, when <strong>EnforceInvariants</strong> and <strong>fix1373</strong> are expected to be activated via Amendment, then your server will become <a href="https://ripple.com/build/amendments/#amendment-blocked">amendment blocked</a>, meaning that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
<li>Could rely on potentially invalid data</li>
</ul>
<p>If the <strong>EnforceInvariants</strong> and <strong>fix1373</strong> Amendments do not get approved, then your server will not become amendment blocked and should continue to operate.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The SHA56 for the RPM is: 5a617bce531f39c044de535b6bda2a59371829dfc1079b67876b68c9a9748834</p>
<p>The SHA256 for the source RPM is: c51212ae374f69ddc10f967409a750834f06195cb384b2af04e4fa0c3fb81a24</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.70.0 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<pre><code>    commit 7b0d48281049c3fec7fafcb7ce5cea045367ae1f
    Author: Nik Bougalis &lt;nikb@bougalis.net&gt;
    Date:   Thu Jun 15 07:34:17 2017 -0700

          Set version to 0.70.0
</code></pre>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team plans to deploy version 0.70.0 to all <code>rippled</code> servers under its operational control, including private clusters, starting at 2:00 PM PST on Thursday, 2017-06-15. The deployment is expected to complete within 4 hours. The network should continue to operate during deployment and no outage is expected.</p>
<p>At that time, <code>rippled</code> validators under Ripple’s operational control will begin voting for the <strong>EnforceInvariants</strong> and <strong>fix1737</strong> Amendments.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<h2 id="full-release-notes">Full Release Notes</h2>
<h3 id="flowcross">FlowCross</h3>
<p>Currently, the offer crossing code in <code>rippled</code> is independent of the payment flow code in <code>rippled</code>. The introduction of the <strong>FlowCross</strong> Amendment ensures that the same logic that drives payments also drives offer crossing. This change streamlines the code base, improves test coverage and is expected to result in some marginal performance benefits in offer crossing. For more information, see <a href="https://ripple.com/build/amendments/#flowcross">FlowCross</a>.</p>
<h3 id="enforceinvariants">EnforceInvariants</h3>
<p>The introduction of the <strong>EnforceInvariants</strong> Amendment supplements existing safeguards of RCL integrity. Once the amendment activates, the servers will execute specialized code to check key system invariants after the execution of each transaction. If a transaction fails any of the checks, it will be considered as invalid. For more information, see <a href="https://ripple.com/build/amendments/#enforceinvariants">EnforceInvariants</a>.</p>
<h3 id="fix1373-amendment">fix1373 Amendment</h3>
<p>Version 0.70.0 also introduces the fix1373 Amendment to fix a minor bug in pathfinding that causes strand creation to fail. Specifically, the issue was related to paths that contain path elements where all the path elements types are set (account, currency and issuer). The fix1373 Amendment corrects the issue that caused some strand creation to fail. For more information, see <a href="https://ripple.com/build/amendments/#fix1373">fix1373</a>.</p>
<p>These features underline Ripple’s continued support to improving RCL by making it more stable, secure and efficient for settlement of global payments.</p>
<h2 id="upcoming-features">Upcoming Features</h2>
<p>We do not have an update on the <a href="https://ripple.com/dev-blog/rippled-version-0-33-0-released/">previously announced</a> changes to the hash tree structure that <code>rippled</code> uses to represent a ledger, called <a href="https://ripple.com/build/amendments/#shamapv2">SHAMapV2</a>. At the time of activation, this amendment will require brief scheduled allowable unavailability while the changes to the hash tree structure are computed by the network. We will keep the community updated as we progress towards this date (TBA).</p>
<p>You can <a href="https://ripple.com/build/rippled-setup/#updating-rippled">update to the new version</a> on Red Hat Enterprise Linux 7 or CentOS 7 using <code>yum</code>. For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile the new version from source</a>.</p>
<h2 id="0700-change-log">0.70.0 Change Log</h2>
<ul>
<li>Implement and test invariant checks for transactions <a href="https://github.com/ripple/rippled/pull/2054">(#2054)</a></li>
<li>TxQ: Functionality to dump all queued transactions <a href="https://github.com/ripple/rippled/pull/2020">(#2020)</a></li>
<li>Consensus refactor for simulation/cleanup <a href="https://github.com/ripple/rippled/pull/2040">(#2040)</a></li>
<li>Payment flow() code should support offer crossing <a href="https://github.com/ripple/rippled/pull/1884">(#1884)</a></li>
<li>Make Config init extensible via lambda <a href="https://github.com/ripple/rippled/pull/1993">(#1993)</a></li>
<li>Improve Consensus Documentation <a href="https://github.com/ripple/rippled/pull/2064">(#2064)</a></li>
<li>Refactor Dependencies &amp; Unit Test Consensus <a href="https://github.com/ripple/rippled/pull/1941">(#1941)</a></li>
<li>Feature RPC test <a href="https://github.com/ripple/rippled/pull/1988">(#1988)</a></li>
<li>Add unit Tests for handlers/TxHistory.cpp <a href="https://github.com/ripple/rippled/pull/2062">(#2062)</a></li>
<li>Add unit tests for handlers/AccountCurrenciesHandler.cpp <a href="https://github.com/ripple/rippled/pull/2085">(#2085)</a></li>
<li>Add unit test for handlers/Peers.cpp <a href="https://github.com/ripple/rippled/pull/2060">(#2060)</a></li>
<li>Improve logging for Transaction affects no accounts warning <a href="https://github.com/ripple/rippled/pull/2043">(#2043)</a></li>
<li>Increase logging in PeerImpl fail <a href="https://github.com/ripple/rippled/pull/2043">(#2043)</a></li>
<li>Allow filtering of ledger objects by type in RPC <a href="https://github.com/ripple/rippled/pull/2066">(#2066)</a></li>
<li>Cleanup, refactor, and improve GetMissingNodes <a href="https://github.com/ripple/rippled/pull/1979">(#1979)</a></li>
<li>Add helper to modify Env configs <a href="https://github.com/ripple/rippled/pull/2003">(#2003)</a></li>
<li>Add timer start param to Application <a href="https://github.com/ripple/rippled/pull/2024">(#2024)</a></li>
<li>Improve log warnings <a href="https://github.com/ripple/rippled/pull/2043">(#2043)</a></li>
<li>Prevent low likelihood Database job queue crash <a href="https://github.com/ripple/rippled/pull/2052">(#2052)</a></li>
<li>Remove ledger and manifest Python tools <a href="https://github.com/ripple/rippled/pull/2057">(#2057)</a></li>
</ul>
<h2 id="bug-fixes">Bug Fixes</h2>
<ul>
<li>Fix displayed warning when generating brain wallets <a href="https://github.com/ripple/rippled/pull/2121">(#2121)</a></li>
<li>Cmake build does not append &#8216;+DEBUG&#8217; to the version info for non-unity builds <a href="https://github.com/ripple/rippled/pull/1264">(#1264)</a></li>
<li>Crossing tiny offers can misbehave on RCL <a href="https://github.com/ripple/rippled/pull/1884">(#1884)</a></li>
<li>asfRequireAuth flag not always obeyed <a href="https://github.com/ripple/rippled/pull/2092">(#2092)</a></li>
<li>Strand creating is incorrectly accepting invalid paths <a>(#)</a></li>
<li>JobQueue occasionally crashes on shutdown <a href="https://github.com/ripple/rippled/pull/2025">(#2025)</a></li>
<li>Prevent consensus from relaying/retrying rejected pseudo-transactions <a href="https://github.com/ripple/rippled/pull/2104">(#2104)</a></li>
<li>Improve pseudo-transaction handling <a href="https://github.com/ripple/rippled/pull/2104">(#2104)</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-70-0/">rippled Version 0.70.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled Version 0.60.3</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-60-3/</link>
		<pubDate>Fri, 12 May 2017 00:08:14 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Young]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=14366</guid>
		<description><![CDATA[<p>The rippled team has released rippled version 0.60.3, which helps to increase the stability of the overlay network under increased load. Ripple recommends server operators upgrade to rippled version 0.60.3 immediately. There are no new features in the 0.60.3 release. Action Recommended If you operate a rippled server and are experiencing connection instability or your &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-60-3/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-60-3/">rippled Version 0.60.3</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The <code>rippled</code> team has released <code>rippled</code> version 0.60.3, which helps to increase the stability of the overlay network under increased load. Ripple recommends server operators upgrade to <code>rippled</code> version 0.60.3 immediately. There are no new features in the 0.60.3 release.</p>
<h2 id="action-recommended">Action Recommended</h2>
<p><strong>If you operate a rippled server and are experiencing connection instability or your server has difficulty maintaining sync with the Ripple network during periods of increased load</strong>, then you should upgrade to <code>rippled</code> version 0.60.3 immediately.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p><strong>If you operate a rippled server</strong>, but don’t upgrade to <code>rippled</code> version 0.60.3, then your server may experience dropped connections to other servers more frequently.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The sha256 for the RPM is: 3e9c8b421ea0ae6da7ae65524be60408f32ef2bd0bcfea1e1c9fb54eec5fc809</p>
<p>The sha256 for the source RPM is: 9848185e35a21ef41fcea334f8ad224c49e243f64b38dd9311ab898b97ab6c0a</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.60.3 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<pre><code>    commit 208028a1420cc187a6b5b9e97846e8cafd54f39f
    Author: Nik Bougalis &lt;nikb@bougalis.net&gt;
    Date:   Tue May 9 13:37:49 2017 -0700

      Set version to 0.60.3
</code></pre>
<h2 id="change-log">Change Log</h2>
<p>Server overlay improvements <a href="https://github.com/ripple/rippled/pull/2110">(#2110)</a></p>
<h2 id="network-update">Network Update</h2>
<p>The Ripple technical operations team plans to deploy <code>rippled</code> version 0.60.3 to all <code>rippled</code> servers under its operational control, including private clusters and hubs, starting at 4:00 PM PDT on Thursday, 2017-05-11. The deployment is expected to complete within 4 hours. The network should continue to operate during deployment and no outage is expected.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: support@ripple.com</li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-60-3/">rippled Version 0.60.3</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled RPM version 0.60.2-2</title>
		<link>https://ripple.com/dev-blog/rippled-rpm-version-0-60-2-2/</link>
		<pubDate>Thu, 04 May 2017 03:05:43 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[Rippled]]></category>
		<category><![CDATA[rpm]]></category>
		<category><![CDATA[validator]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=14337</guid>
		<description><![CDATA[<p>Ripple has released a new rippled 0.60.2-2 RPM that contains an update to the validator-keys key generation and management tool. The latest version of validator-keys allows validator operators to sign data with their validator key. There are no changes to rippled with this version. Action Required If you operate a rippled validator server that was &#8230; <a href="https://ripple.com/dev-blog/rippled-rpm-version-0-60-2-2/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-rpm-version-0-60-2-2/">rippled RPM version 0.60.2-2</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple has released a new <code>rippled</code> 0.60.2-2 RPM that contains an update to the <a href="https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md#validator-keys">validator-keys</a> key generation and management tool. The latest version of validator-keys allows validator operators to <a href="https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md#signing">sign data with their validator key</a>.</p>
<p>There are no changes to <code>rippled</code> with this version.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> validator server that was set up using validator-keys and would like to sign data with your validator key</strong>, then you should update to the <code>rippled</code> 0.60.2-2 RPM.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p><strong>If you operate a <code>rippled</code> server but you don’t update to the <code>rippled</code> 0.60.2-2 RPM</strong>, then your <code>rippled</code> instance will continue to operate normally. </p>
<p><strong>If you operate a <code>rippled</code> validator server that was set up using validator-keys but don’t update to the <code>rippled</code> 0.60.2-2 RPM</strong>, then you will be unable to sign data using your validator key.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The sha256 for the RPM is: 74e2541c1c6c06bd34d102229890bb11811701d73d99e4cfb4882d430131c067</p>
<p>The sha256 for the source RPM is: aab7f247b5cf9d3a20d4720aef2c51532bb83ee91fafe584e4fdfac77171537b</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.60.2-2 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<div class="code_sample" id="code_autoid_1" style="position: relative;">
<pre><code class="hljs sql" title="Double-click to expand/collapse">  <span class="hljs-keyword">commit</span> <span class="hljs-number">7</span>cd4d7889779e6418270c8af89386194efbef24b
  Author: seelabs &lt;scott.determan@yahoo.com&gt;
  <span class="hljs-built_in">Date</span>:   Thu Mar <span class="hljs-number">30</span> <span class="hljs-number">14</span>:<span class="hljs-number">25</span>:<span class="hljs-number">41</span> <span class="hljs-number">2017</span> <span class="hljs-number">-0400</span>

      <span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">0.60</span><span class="hljs-number">.2</span>
</code></pre>
</div>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: support@ripple.com</li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-rpm-version-0-60-2-2/">rippled RPM version 0.60.2-2</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled Version 0.60.2</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-60-2/</link>
		<pubDate>Thu, 30 Mar 2017 23:36:02 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Young]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=14120</guid>
		<description><![CDATA[<p>The rippled team has released rippled version 0.60.2, which further strengthens handling of cases associated with a previously patched exploit, in which NoRipple flags were being bypassed by using offers. Ripple requires upgrading to rippled version 0.60.2 immediately. There are no new features in the 0.60.2 release. Note: This does not affect XRP transactions. Ripple &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-60-2/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-60-2/">rippled Version 0.60.2</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The <code>rippled</code> team has released <code>rippled</code> version 0.60.2, which further strengthens handling of cases associated with a <a href="https://ripple.com/dev-blog/rippled-version-0-50-3/">previously patched exploit</a>, in which <code>NoRipple</code> flags were being bypassed by using offers. Ripple requires upgrading to <code>rippled</code> version 0.60.2 immediately. There are no new features in the 0.60.2 release.</p>
<p><strong>Note</strong>: This does not affect XRP transactions.</p>
<p>Ripple will be following up with a postmortem, explaining the previosuly patched exploit, the timeline of events and the actions taken in more detail at a later date.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a rippled server</strong>, then you must upgrade to 0.60.2 immediately.</p>
<p><strong>If you are an individual user</strong>, then you should have the <code>NoRipple</code> flag enabled by default and set the trust line limit to zero on gateways that you do not trust.</p>
<p><strong>If you are an individual user</strong>, and you do not have the <code>NoRipple</code> flag enabled, and you discover a negative balance owed to an unknown account, then you should <a href="https://ripple.com/build/freeze/#individual-freeze">freeze</a> that individual trust line.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p><strong>If you operate a rippled server</strong>, but do not upgrade to <code>rippled</code> version 0.60.2, then your server may lose sync with Ripple operated validators more frequently.</p>
<p><strong>If you operate a rippled validating server</strong>, but do not upgrade to <code>rippled</code> version 0.60.2, which prevents <code>NoRipple</code> flags from being bypassed by using offers, then your server will validate some transactions in a payment path that bypass the blocking effect of the <code>NoRipple</code> flag using offers.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The sha256 for the RPM is: 3dc7412bda8986188164f0ff70ff80c351b17521e6943a876d5d3268fa07289d</p>
<p>The sha256 for the source RPM is: f189ba1a8ae2201da47008ff50d027dcf719c7001c9b350b6759db279cbb48c8</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.60.2 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<pre><code>    commit 7cd4d7889779e6418270c8af89386194efbef24b
    Author: seelabs &lt;scott.determan@yahoo.com&gt;
    Date:   Thu Mar 30 14:25:41 2017 -0400

        Set version to 0.60.2
</code></pre>
<h2 id="bug-fixes">Bug Fixes</h2>
<p>Prevent the ability to bypass <code>NoRipple</code> flags using offers <a href="https://github.com/ripple/rippled/commit/4ff40d4954dfaa237c8b708c2126cb39566776da">(#7cd4d78)</a></p>
<h2 id="network-update">Network Update</h2>
<p>The Ripple technical operations team plans to deploy <code>rippled</code> version 0.60.2 to all <code>rippled</code> servers under its operational control, including private clusters, starting at 2:00 PM PDT on Thursday, 2017-03-30. The deployment is expected to complete within 4 hours. The network should continue to operate during deployment and no outage is expected.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: support@ripple.com</li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-60-2/">rippled Version 0.60.2</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled Version 0.60.1</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-60-1/</link>
		<pubDate>Thu, 30 Mar 2017 01:17:49 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Young]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=14095</guid>
		<description><![CDATA[<p>The rippled team has released rippled version 0.60.1, which corrects a technical flaw that resulted from using 32-bit space identifiers instead of the protocol-defined 16-bit values for Escrow and Payment Channel ledger entries. rippled version 0.60.1 also fixes a problem where the WebSocket timeout timer would not be cancelled when certain errors occurred during subscription &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-60-1/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-60-1/">rippled Version 0.60.1</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The <code>rippled</code> team has released <code>rippled</code> version 0.60.1, which corrects a technical flaw that resulted from using 32-bit space identifiers instead of the protocol-defined 16-bit values for Escrow and Payment Channel ledger entries. <code>rippled</code> version 0.60.1 also fixes a problem where the WebSocket timeout timer would not be cancelled when certain errors occurred during subscription streams. <strong>Ripple requires upgrading to <code>rippled</code> version 0.60.1 immediately.</strong></p>
<p>Ripple expects the <a href="https://ripple.com/build/amendments/#escrow"><code>Escrow</code></a> and <a href="https://ripple.com/build/amendments/#paychan"><code>PayChan</code></a> amendments to be enabled via <a href="https://ripple.com/dev-blog/escrow-paychan-fix1368-will-available-3-days/">amendment vote</a> around 11:26 PM PDT on Thursday, 2017-03-30. There are no new features in the 0.60.1 release.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server, then you must upgrade to 0.60.1 immediately.</strong></p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<ul>
<li>If you operate a <code>rippled</code> server, but do not upgrade to <code>rippled</code> version 0.60.1, then your <code>rippled</code> server will lose sync when processing Payment Channel or Escrow transactions. The <code>Escrow</code> and <code>PayChan</code> amendments are expected to be enabled via amendment vote around 11:26 PM PDT on Thursday, 2017-03-30.</li>
<li>If you operate a <code>rippled</code> server, but do not upgrade to version 0.60.1, then client websocket connections to your <code>rippled</code> server may continue to disconnect during subscription streams.</li>
</ul>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The sha256 for the RPM is: 6714050e9d1d232e8250be434fe6a61c44f78e41adc3c2b5f49df490ee5312ef</p>
<p>The sha256 for the source RPM is: 5bba13e93fed160a3405315e4128e891b2bc1e439ee5f7b429294003c618f0e1</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.60.1 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<pre><code>    commit 0d4fe469c6b0ba47645b53930e74248ff789fe75
    Author: seelabs &lt;scott.determan@yahoo.com&gt;
    Date:   Wed Mar 29 15:41:43 2017 -0400

          Set version to 0.60.1
</code></pre>
<h2 id="bug-fixes">Bug Fixes</h2>
<p>Fix a flaw that resulted from using 32-bit space identifiers instead of the protocol-defined 16-bit values <a href="https://github.com/ripple/rippled/pull/2071">(#2071)</a></p>
<p>Fix a problem where the WebSocket timeout timer would not be cancelled when certain errors occurred during subscription streams <a href="https://github.com/ripple/rippled/pull/2067">(#2067)</a></p>
<h2 id="network-update">Network Update</h2>
<p>The Ripple technical operations team plans to deploy <code>rippled</code> version 0.60.1 to all <code>rippled</code> servers under its operational control, including private clusters, starting at 11:00 AM PDT on Thursday, 2017-03-30. The deployment is expected to complete within 4 hours. The network should continue to operate during deployment and no outage is expected.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: support@ripple.com</li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-60-1/">rippled Version 0.60.1</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Escrow, PayChan, and fix1368 Will Be Available in 3 Days</title>
		<link>https://ripple.com/dev-blog/escrow-paychan-fix1368-will-available-3-days/</link>
		<pubDate>Mon, 27 Mar 2017 21:30:58 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=14066</guid>
		<description><![CDATA[<p>A majority of rippled validators voted to enable the Escrow, PayChan, and fix1368 Amendments, which are scheduled to become enabled on the network on Thursday, 2017-03-30. Escrow (previously called SusPay), designed for low volume, high value transactions, permits users to cryptographically escrow XRP on RCL with an expiration date using a hashlock crypto-condition. PayChan, designed &#8230; <a href="https://ripple.com/dev-blog/escrow-paychan-fix1368-will-available-3-days/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/escrow-paychan-fix1368-will-available-3-days/">Escrow, PayChan, and fix1368 Will Be Available in 3 Days</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>A majority of <code>rippled</code> validators voted to enable the <a href="https://ripple.com/build/amendments/#escrow">Escrow</a>, <a href="https://ripple.com/build/amendments/#paychan">PayChan</a>, and <a href="https://ripple.com/build/amendments/#fix1368">fix1368</a> Amendments, which are scheduled to become enabled on the network on Thursday, 2017-03-30.</p>
<ul>
<li>
<p><strong>Escrow</strong> (previously called SusPay), designed for low volume, high value transactions, permits users to cryptographically escrow XRP on RCL with an expiration date using a <a href="https://interledgerjs.github.io/five-bells-condition/jsdoc/">hashlock crypto-condition</a>.</p>
</li>
<li>
<p><strong>PayChan</strong>, designed for high volume, low value transactions, flowing in a single direction. The scalability of these transactions is not limited by the Ripple Consensus ledger, and they do not incur the risks typically associated with delayed settlement.</p>
</li>
<li>
<p><strong>fix1368</strong> fixes a minor bug in transaction processing that causes some payments to fail when they should be valid.</p>
</li>
</ul>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server</strong>, then you should upgrade to version 0.60.0 by Thursday, 2017-03-30, for service continuity.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server but don’t upgrade to version 0.60.0 by Thursday, 2017-03-30, when <strong>Escrow, PayChan &amp; fix1368</strong> are expected to be activated via Amendment, then your server will become <a href="https://ripple.com/build/amendments/#amendment-blocked">amendment blocked</a>, meaning that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
<li>Could rely on potentially invalid data</li>
</ul>
<p>If the <strong>Escrow, PayChan &amp; fix1368</strong> amendments do not get approved, then your server will not become amendment blocked and should continue to operate.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/escrow-paychan-fix1368-will-available-3-days/">Escrow, PayChan, and fix1368 Will Be Available in 3 Days</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled Version 0.60.0</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-60-0/</link>
		<pubDate>Fri, 17 Mar 2017 22:33:13 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=14056</guid>
		<description><![CDATA[<p>Ripple has released rippled version 0.60.0, which introduces several enhancements that improve the reliability and scalability of the Ripple Consensus Ledger (RCL), including Interledger Protocol compatibility for ledger interoperability. Ripple recommends that all server operators upgrade to version 0.60.0 by Thursday, 2017-03-30, for service continuity. Highlights of this release include: Escrow (previously called SusPay), which &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-60-0/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-60-0/">rippled Version 0.60.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple has released <code>rippled</code> version 0.60.0, which introduces several enhancements that improve the reliability and scalability of the Ripple Consensus Ledger (RCL), including <a href="https://interledger.org/overview.html">Interledger Protocol</a> compatibility for ledger interoperability. Ripple recommends that all server operators upgrade to version 0.60.0 by Thursday, 2017-03-30, for service continuity.</p>
<p>Highlights of this release include:</p>
<ul>
<li>
<p><strong>Escrow</strong> (previously called SusPay), which permits users to cryptographically escrow XRP on RCL with an expiration date using a <a href="https://interledgerjs.github.io/five-bells-condition/jsdoc/">hashlock crypto-condition</a>.</p>
</li>
<li>
<p><strong><a href="https://github.com/ripple/rippled/pull/1842">Dynamic UNL Lite</a></strong>, which allows <code>rippled</code> to automatically adjust which validators it trusts based on recommended lists from trusted publishers.</p>
</li>
</ul>
<p>Ripple expects Escrow, the <a href="https://ripple.com/dev-blog/rippled-version-0-33-0-released/">previously announced <strong>Payment Channels</strong></a>, and the new <a href="#fix1368-amendment"><strong>fix1368</strong> amendment</a> to be enabled via Amendments called <a href="https://ripple.com/build/amendments/#escrow">Escrow</a>, <a href="https://ripple.com/build/amendments/#paychan">PayChan</a>, and <code>fix1368</code>, respectively, on Thursday, 2017-03-30.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server</strong>, then you should upgrade to version 0.60.0 by Thursday, 2017-03-30, for service continuity.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server but don’t upgrade to version 0.60.0 by Thursday, 2017-03-30, when Escrow and PayChan are expected to be activated via Amendment, then your server will become <a href="https://ripple.com/build/amendments/#amendment-blocked">amendment blocked</a>, meaning that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
<li>Could rely on potentially invalid data</li>
</ul>
<p>If the <strong>Escrow</strong> and <strong>PayChan</strong> amendments do not get approved, then your server will not become amendment blocked and should continue to operate.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The sha256 for the rpm is: 4d2acb2a40e2d18ba1737098efdca54caa823a403ce9562c83e2dd2c9e959588</p>
<p>The sha256 for the source rpm is: 3437a0202e762801869f31bf798417ebdb3717e16c4381dc0e9b02fe75d23024</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.60.0 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<div class="code_sample" id="code_autoid_1" style="position: relative;">
<pre><code class="hljs sql" title="Double-click to expand/collapse">    <span class="hljs-keyword">commit</span> <span class="hljs-number">0</span>df1b09a731ba0feaa5d60046e1c7dd415f5f7ed
    Author: Nik Bougalis &lt;nikb@bougalis.net&gt;
    <span class="hljs-built_in">Date</span>:   Thu Mar <span class="hljs-number">16</span> <span class="hljs-number">13</span>:<span class="hljs-number">33</span>:<span class="hljs-number">29</span> <span class="hljs-number">2017</span> <span class="hljs-number">-0700</span>

        <span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">0.60</span><span class="hljs-number">.0</span>
</code></pre>
<p><input class="code_toggler" value="Expand" type="button"></div>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team plans to deploy version 0.60.0 to all <code>rippled</code> servers under its operational control, including private clusters, starting at 7:00 PM PST on Thursday, 2017-03-16. The deployment is expected to complete within 4 hours. The network should continue to operate during deployment and no outage is expected.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<h2 id="full-release-notes">Full Release Notes</h2>
<h3 id="escrow">Escrow</h3>
<p>The rippled version 0.60.0 release includes Escrow, (previously called SusPay), which introduces a new ledger node type and several new transaction types to the Ripple network. Escrow permits users to cryptographically escrow XRP on RCL with an expiration date using a <a href="https://tools.ietf.org/html/draft-thomas-crypto-conditions-02">crypto-condition</a> called <a href="https://interledgerjs.github.io/five-bells-condition/jsdoc/#create-a-preimage-sha-256-condition-hashlock">preimage-sha-256</a>, commonly referred to as a hashlock. An XRP Escrow transaction on RCL can be used together with Interledger, to allow a payment to be routed without having to trust third-party intermediaries. We believe this will open a range of possibilities and use cases for XRP, particularly when sending high value, low volume payments cross-border.</p>
<h3 id="payment-channels">Payment Channels</h3>
<p>The amendment for Payment Channels was originally introduced in version 0.33.0, but is now ready for Payment Channels to be enabled on the production Ripple Consensus Ledger. XRP <a href="https://ripple.com/build/amendments/#paychan">Payment Channels</a> are intended for high volume, low value payments. They provide a method for scalable, intermittent, off-ledger settlement flowing in a single direction. For bidirectional payment channels, an XRP Payment Channel can be used in each direction. The recipient can claim any unpaid balance at any time before the channel closes. The owner can top off the channel as needed and must wait out a delay to close the channel to give the recipient a chance to supply any claims. The total amount paid increases monotonically as newer claims are issued.</p>
<h3 id="dynamic-unl-lite">Dynamic UNL Lite</h3>
<p>At the core of RCL is the <a href="https://ripple.com/build/ripple-ledger-consensus-process/">consensus process</a>. Through the consensus process, validating nodes agree on a specific subset of the candidate transactions to be considered for the next ledger. Consensus is an iterative process in which nodes relay proposals, or sets of candidate transactions. Nodes communicate and update proposals until a supermajority of peers agree on the same set of candidate transactions.</p>
<p>During consensus, each node evaluates proposals from a specific set of peers, called chosen validators. Chosen validators represent a subset of the network which, when taken collectively, is “trusted” not to collude in an attempt to defraud the node evaluating the proposals. This definition of “trust” does not require that each individual chosen validator is trusted. Rather, validators are chosen based on the expectation they will not collude in a coordinated effort to falsify data relayed to the network.</p>
<p>The <code>rippled</code> version 0.60.0 release introduces new <a href="https://github.com/ripple/rippled/pull/1842">Dynamic UNL</a> configuration options, which allow <code>rippled</code> to update its set of trusted validators without reconfiguring and restarting. Instead of specifying a static list of trusted validators in the config or validators file, you can configure a trusted publisher key and a URI where the publisher serves signed lists of validators. <code>rippled</code> will regularly query the configured URIs for the latest recommended list of validators from the trusted publishers. Configuring the validation quorum is no longer required, as <code>rippled</code> will automatically update its quorum based on its current trusted validator set.</p>
<p>Dynamic UNL Lite is a progressive step towards fully automated dynamic UNLs, to which each client of the Ripple network determines its UNL through policies, rather than trusting a pre-provided list of validators.</p>
<h3 id="fix1368-amendment">fix1368 Amendment</h3>
<p>Version 0.60.0 also introduces the <a href="https://github.com/ripple/rippled/pull/1936">fix1368 Amendment</a> to fix a minor bug in transaction processing that causes some payments to fail when they should be valid. Specifically, during payment processing, some payment steps that are expected to produce a certain amount of currency may produce a microscopically different amount, due to a loss of precision related to floating-point number representation. When this occurs, those payments fail because they cannot deliver the exact amount intended. The fix1368 amendment corrects transaction processing so payments can no longer fail in this manner.</p>
<p>These features underline Ripple’s continued support to improving RCL by making it more stable, distributed and scalable for settlement of global payments.</p>
<h2 id="upcoming-features">Upcoming Features</h2>
<p>We do not have an update on the <a href="https://ripple.com/dev-blog/rippled-version-0-33-0-released/">previously announced</a> changes to the hash tree structure that <code>rippled</code> uses to represent a ledger, called <a href="https://ripple.com/build/amendments/#shamapv2">SHAMapV2</a>. At the time of activation, this amendment will require brief scheduled allowable unavailability while the changes to the hash tree structure are computed by the network. We will keep the community updated as we progress towards this date (TBA).</p>
<p>You can <a href="https://ripple.com/build/rippled-setup/#updating-rippled">update to the new version</a> on Red Hat Enterprise Linux 7 or CentOS 7 using yum. For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile the new version from source</a>.</p>
<h2 id="0600-change-log">0.60.0 Change Log</h2>
<ul>
<li>Add Escrow support <a href="https://github.com/ripple/rippled/pull/2039/commits/cfde591ac9deb683b9d1be8f8d4c7a14d9598507">(#2039)</a></li>
<li>Dynamize trusted validator list and quorum <a href="https://github.com/ripple/rippled/pull/1842">(#1842)</a></li>
<li>Simplify fee handling during transaction submission <a href="https://github.com/ripple/rippled/commit/8345475bc37a4d6bddf1e47dc06f22ef9396bbd8">(#1992)</a></li>
<li>Publish server stream when fee changes <a href="https://github.com/ripple/rippled/pull/2016">(#2016)</a></li>
<li>Replace manifest with validator token <a href="https://github.com/ripple/rippled/pull/1975">(#1975)</a></li>
<li>Add validator key revocations <a href="https://github.com/ripple/rippled/pull/2019">(#2019)</a></li>
<li>Add SecretKey comparison operator <a href="https://github.com/ripple/rippled/pull/2004/commits/a00e684bf2a088bb432b9f7c4c859ee98c730817">(#2004)</a></li>
<li>Reduce LEDGER_MIN_CONSENSUS <a href="https://github.com/ripple/rippled/pull/2013">(#2013)</a></li>
<li>Update libsecp256k1 and Beast B30 <a href="https://github.com/ripple/rippled/pull/1983">(#1983)</a></li>
<li>Make Config extensible via lambda <a href="https://github.com/ripple/rippled/pull/1993">(#1993)</a></li>
<li>WebSocket permessage-deflate integration <a href="https://github.com/ripple/rippled/pull/1995">(#1995)</a></li>
<li>Do not close socket on a foreign thread <a href="https://github.com/ripple/rippled/pull/2014">(#2014)</a></li>
<li>Update build scripts to support latest boost and ubuntu distros <a href="https://github.com/ripple/rippled/pull/1997">(#1997)</a></li>
<li>Handle protoc targets in scons ninja build <a href="https://github.com/ripple/rippled/pull/2022">(#2022)</a></li>
<li>Specify syntax version for ripple.proto file <a href="https://github.com/ripple/rippled/pull/2007">(#2007)</a></li>
<li>Eliminate protocol header dependency <a href="https://github.com/ripple/rippled/pull/1962">(#1962)</a></li>
<li>Use gnu gold or clang lld linkers if available <a href="https://github.com/ripple/rippled/pull/2031">(#2031)</a></li>
<li>Add tests for lookupLedger <a href="https://github.com/ripple/rippled/pull/1989">(#1989)</a></li>
<li>Add unit test for get_counts RPC method <a href="https://github.com/ripple/rippled/pull/2011">(#2011)</a></li>
<li>Add test for transaction_entry request <a href="https://github.com/ripple/rippled/pull/2017">(#2017)</a></li>
<li>Unit tests of RPC &#8220;sign&#8221; <a href="https://github.com/ripple/rippled/pull/2010">(#2010)</a></li>
<li>Add failure only unit test reporter <a href="https://github.com/ripple/rippled/pull/2018">(#2018)</a></li>
</ul>
<h2 id="bug-fixes">Bug Fixes</h2>
<ul>
<li>Enforce rippling constraints during payments <a href="https://github.com/ripple/rippled/pull/2049">(#2049)</a></li>
<li>Fix limiting step re-execute bug <a href="https://github.com/ripple/rippled/pull/1936">(#1936)</a></li>
<li>Make &#8220;wss&#8221; work the same as &#8220;wss2&#8221; <a href="https://github.com/ripple/rippled/pull/2033">(#2033)</a></li>
<li>Check for malformed public key on payment channel <a href="https://github.com/ripple/rippled/pull/2027">(#2027)</a></li>
<li>Config test uses unique directories for each test <a href="https://github.com/ripple/rippled/pull/1984">(#1984)</a></li>
<li>Send a websocket ping before timing out in server <a href="https://github.com/ripple/rippled/pull/2035">(#2035)</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-60-0/">rippled Version 0.60.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Gateway Bulletin: Setting Trust Line Quality with SendMax</title>
		<link>https://ripple.com/dev-blog/gateway-bulletin-setting-trust-line-quality-sendmax/</link>
		<pubDate>Thu, 16 Mar 2017 16:20:27 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=14042</guid>
		<description><![CDATA[<p>Summary When you build an automated system to send payments into the Ripple Consensus Ledger (RCL) for your customers, you must make sure that it constructs payments carefully. Malicious actors are constantly trying to find flaws in a system implementation that pays them more money than it should. Once such flaw was revealed recently, related &#8230; <a href="https://ripple.com/dev-blog/gateway-bulletin-setting-trust-line-quality-sendmax/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/gateway-bulletin-setting-trust-line-quality-sendmax/">Gateway Bulletin: Setting Trust Line Quality with SendMax</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<h2 id="summary">Summary</h2>
<p>When you build an automated system to send payments into the Ripple Consensus Ledger (RCL) for your customers, you must make sure that it constructs payments carefully. Malicious actors are constantly trying to find flaws in a system implementation that pays them more money than it should.</p>
<p>Once such flaw was <a href="https://forum.ripple.com/viewtopic.php?f=1&amp;t=18210">revealed</a> recently, related to setting <a href="https://wiki.ripple.com/Trust_line_quality">trust line quality</a>, which affects gateways that use a <code>SendMax</code> value greater than the amount they deliver. This setup could result in a destination account receiving slightly higher (typically less than 1% higher) than the expected amount from the gateway&#8217;s account.</p>
<p>Note: This system implementation flaw does not affect XRP balances.</p>
<h2 id="action-recommended">Action Recommended</h2>
<p>The <a href="https://ripple.com/build/gateway-guide/#sending-payments-to-customers">recommended setup</a> is to use either of the following rules:</p>
<ul>
<li>Setting the <code>SendMax</code> value equal to the Amount * (1 + transfer rate); or</li>
<li>Setting the <code>SendMax</code> value as low as possible and only leaving space for slippage to buffer the transaction from failing</li>
</ul>
<p>A malicious user can make trust line quality changes in the ledger between when you prepare a transaction and when it is validated in the ledger. To ensure that these changes cannot cause a transaction to cost you more than you expected, it is vital to set the <code>SendMax</code> no higher than the maximum amount you are willing to send.</p>
<p>To reduce the chance of sending a transaction that fails, add the following checks to any transaction that delivers issued currency on a trust line:</p>
<ul>
<li>Does the trust line exist?</li>
<li>Is the trust line’s limit sufficient?</li>
<li>Are optional <a href="https://ripple.com/build/rippleapi/#trustline">incoming balances</a> on this trust line valued at the appropriate ratio?</li>
<li>Did the user freeze the trust line?</li>
</ul>
<h2 id="learn-ask-questions-and-discuss">Learn, Ask Questions, and Discuss</h2>
<p>To experiment with the Ripple Consensus Ledger technology without using real money, try out the <a href="https://ripple.com/build/ripple-test-net/">Ripple Test Net</a>. </p>
<h3 id="other-resources">Other resources:</h3>
<ul>
<li>The Ripple Forum: <a href="https://forum.ripple.com/">https://forum.ripple.com/</a></li>
<li>The Ripple Dev Blog: <a href="https://ripple.com/category/dev-blog/">https://ripple.com/category/dev-blog/</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li>XRP Chat: <a href="http://www.xrpchat.com">http://www.xrpchat.com</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/gateway-bulletin-setting-trust-line-quality-sendmax/">Gateway Bulletin: Setting Trust Line Quality with SendMax</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled version 0.50.3</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-50-3/</link>
		<pubDate>Tue, 14 Mar 2017 16:37:21 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[hotfix]]></category>
		<category><![CDATA[rcl]]></category>
		<category><![CDATA[release announcement]]></category>
		<category><![CDATA[Rippled]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=14035</guid>
		<description><![CDATA[<p>The rippled team has released version 0.50.3, which patches a reported exploit that would allow a combination of trust lines and order books in a payment path to bypass the blocking effect of the NoRipple flag. Ripple recommends that all rippled server operators immediately upgrade to version 0.50.3, which contains a patch that fixes the &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-50-3/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-50-3/">rippled version 0.50.3</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The <code>rippled</code> team has released version 0.50.3, which patches a reported exploit that would allow a combination of trust lines and order books in a payment path to bypass the blocking effect of the <code>NoRipple</code> flag. Ripple recommends that all <code>rippled</code> server operators immediately upgrade to version 0.50.3, which contains a patch that fixes the exploit. There are no new or updated features in the 0.50.3 release.</p>
<p>Ripple will be following up with a postmortem, explaining the exploit, the timeline of events and the actions taken in more detail at a later date.</p>
<h2 id="action-recommended">Action Recommended</h2>
<p><strong>If you operate a <code>rippled</code> server</strong>, then you should upgrade to version 0.50.3 immediately.</p>
<p><strong>If you operate a gateway</strong>, then you should:<br />
1. Make sure your issuing account has not set the <code>NoRipple</code> flag on any trust lines<br />
2. Your issuing account should have a zero limit on all trust lines<br />
3. Make sure the <code>DefaultRipple</code> flag is set on your issuing account<br />
4. Upgrade to <code>rippled</code> version 0.50.3 immediately</p>
<p><strong>If you are an individual user</strong>, then you should have the <code>NoRipple</code> flag enabled by default and set the trust line limit to zero on gateways that you do not trust.</p>
<p><strong>If you are an individual user, and you do not have the <code>NoRipple</code> flag enabled</strong>, and you discover a negative balance owed to an unknown account, then you should freeze that individual trust line.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server, but don’t upgrade to <code>rippled</code> version 0.50.3, then your server may lose sync with Ripple operated validators more frequently.</p>
<p>If you operate a <code>rippled</code> validating server, but don’t upgrade to <code>rippled</code> version 0.50.3, which includes a patch for the reported exploit, then your server will validate some transactions in a payment path that bypass the blocking effect of the <code>NoRipple</code> flag.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The sha256 for the rpm is: 2ee3e7e2912b5df9e3f8f88c5f6adfa60afbb37ef08afe50f6147795c5c2abaf</p>
<p>The sha256 for the source rpm is: ada6f9ae8b8136569d28f03a43fef0f828e2c69857c81f230d17cf9f832cce0f</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.50.3 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<div class="code_sample" id="code_autoid_1" style="position: relative;">
<pre><code class="hljs sql" title="Double-click to expand/collapse">    <span class="hljs-keyword">commit</span> <span class="hljs-number">82</span>de944b30afef7fb6220424b62a79156e93b321
    Author: Nik Bougalis &lt;nikb@bougalis.net&gt;
    <span class="hljs-built_in">Date</span>:   Mon Mar <span class="hljs-number">13</span> <span class="hljs-number">15</span>:<span class="hljs-number">49</span>:<span class="hljs-number">21</span> <span class="hljs-number">2017</span> <span class="hljs-number">-0700</span>

    <span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">0.50</span><span class="hljs-number">.3</span>
</code></pre>
<p><input class="code_toggler" value="Expand" type="button"></div>
<h2 id="bug-fixes">Bug Fixes</h2>
<p>Patch a reported exploit that would allow a combination of trust lines and order books in a payment path to bypass the blocking effect of the <code>NoRipple</code> flag <a href="https://github.com/ripple/rippled/pull/2050/commits/0b187a6a4eb503c91efca997aae32c4c9b45f115">(#2050)</a></p>
<h2 id="network-update">Network Update</h2>
<p>Ripple engineers have deployed the fix to all <code>rippled</code> validating servers under Ripple’s operational control and will not be updating client-facing <code>rippled</code> servers to 0.50.3 at this time. <em>(Editor&#8217;s note: an earlier version of this post incorrectly stated that the fix was configuration-based. The fix was to update Ripple&#8217;s validating servers to 0.50.3.)</em></p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-50-3/">rippled version 0.50.3</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Ripple Consensus Ledger Can Sustain 1000 Transactions per Second</title>
		<link>https://ripple.com/dev-blog/ripple-consensus-ledger-can-sustain-1000-transactions-per-second/</link>
		<pubDate>Tue, 28 Feb 2017 19:00:44 +0000</pubDate>
		<dc:creator><![CDATA[Warren Anderson]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[rcl]]></category>
		<category><![CDATA[XRP]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=13946</guid>
		<description><![CDATA[<p>Ripple is proud to publicly announce that the RCL is able to sustain nearly 1000 transactions per second.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ripple-consensus-ledger-can-sustain-1000-transactions-per-second/">Ripple Consensus Ledger Can Sustain 1000 Transactions per Second</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>2016 was an <a href="https://ripple.com/insights/ripple-2016-year-review/">important year for Ripple</a>. Banks were added to our <a href="http://www.ibtimes.co.uk/seven-banks-kick-off-ripples-blockchain-network-including-santander-ubs-unicredit-90-more-1566894">growing network</a>, we completed a successful <a href="https://ripple.com/insights/ripple-raises-55-million-in-series-b-funding/">Series B investment round</a> and formed the <a href="https://ripple.com/insights/announcing-ripples-global-payments-steering-group/">Global Payments Steering Group</a>. Underlying all those milestones was the Ripple Consensus Ledger (RCL), which runs 24 hours a day, 7 days a week and recently celebrated its 4th birthday on February 17, 2017. In 2016 alone, RCL closed over 8 million ledgers, processing more than 225 million transactions and handling more than $1 Billion dollars in payment volume throughout the year.</p>
<p>Today, for the first time, Ripple is proud to publicly announce that in recent internal benchmark testing, across 16 geographically distributed validators, the RCL is able to sustain nearly 1000 transactions per second.</p>
<p>For even higher throughput transactions, we recently introduced <a href="https://ripple.com/dev-blog/rippled-version-0-33-0-released/">XRP payment channels</a>, which allow for zero-latency XRP payments. Although payment channels achieve practically infinite scalability by decoupling payment from settlement, they do so without incurring the risk typically associated with delayed settlement.</p>
<p>Throughout 2016, the network received upgrades that seamlessly enabled new functionality and significantly improved performance. Fast ledger close times have been the hallmark of RCL since its inception and those were further improved last year. Ledgers now close, on average, every 3.5 seconds &#8211; a full 20% faster than they did a year ago.</p>
<p>The new <a href="https://ripple.com/build/transaction-cost/">fee escalation code </a>was introduced to constantly monitor network load and adjust (in near real-time) the cost of executing transactions, which makes it more difficult to overload the network and further helps to ensure the long-term health and stability of RCL.</p>
<p>Stability, however, goes beyond improving performance and adding new features. At Ripple we place heavy emphasis on writing code that is secure, solid and robust. This singular focus on code quality has helped the Ripple network achieve availability and reliability well beyond industry standards with no outages.</p>
<p>With 2017 now well under way, we remain hard at work, focused on adding exciting new features to the RCL and further improving the performance, stability and quality of the <a href="https://github.com/ripple/rippled">rippled</a> open source codebase. Most importantly, we remain more committed than ever to the simple goal of making XRP the world’s reserve digital currency.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ripple-consensus-ledger-can-sustain-1000-transactions-per-second/">Ripple Consensus Ledger Can Sustain 1000 Transactions per Second</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>TickSize is Now Available</title>
		<link>https://ripple.com/dev-blog/ticksize-now-available/</link>
		<pubDate>Wed, 22 Feb 2017 18:54:50 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[amendments]]></category>
		<category><![CDATA[rcl]]></category>
		<category><![CDATA[ticksize]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=13925</guid>
		<description><![CDATA[<p>As predicted previously, the TickSize amendment became available on the Ripple Consensus Ledger yesterday afternoon (PST) in ledger 27841793 (2017-02-21T23:02:52Z). The amendment changes the way RCL offers are ranked in order books, so that currency issuers can configure how many significant digits are taken into account when ranking offers by exchange rate. Action Required If &#8230; <a href="https://ripple.com/dev-blog/ticksize-now-available/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ticksize-now-available/">TickSize is Now Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>As <a href="https://ripple.com/dev-blog/ticksize-will-available-3-days/">predicted previously</a>, the TickSize amendment became available on the Ripple Consensus Ledger yesterday afternoon (PST) in ledger 27841793 (<a href="https://charts.ripple.com/#/transactions/A12430E470BE5C846759EAE3C442FF03374D5D73ECE5815CF4906894B769565E">2017-02-21T23:02:52Z</a>).</p>
<p>The amendment changes the way RCL offers are ranked in order books, so that currency issuers can configure how many significant digits are taken into account when ranking offers by exchange rate.</p>
<h2 id="action-required">Action Required</h2>
<ol>
<li>
<p><strong>If you operate a <code>rippled</code> server and accept secure client connections</strong>, then you should upgrade to version 0.50.2 immediately. If you operate a <code>rippled</code> server but do not accept secure client connections, then you should upgrade to version 0.50.0 or higher immediately.</p>
</li>
<li>
<p><strong>If you issue currency on the RCL</strong>, then please review <a href="https://ripple.com/build/transactions/#offer-preference">documentation</a> for the TickSize amendment to determine what tick size is appropriate for your issuing asset. If you take no action, your issued currency can still be traded using the default tick size of 15 significant digits, but Ripple strongly recommends setting a tick size between four and eight digits to provide faster price discovery and to decrease churn in the RCL order books for your currency. Ripple also recommends publishing your tick size policy to users.</p>
</li>
<li>
<p><strong>If you trade on the RCL</strong> and have algorithmic trading bots, then please review <a href="https://ripple.com/build/transactions/#offer-preference">documentation</a> for the TickSize amendment to update your trading system to check the tick size for a given issuer.</p>
</li>
<li>
<p><strong>If you have backend software</strong> which constructs and submits transactions related to the issuing of assets on the Ripple Consensus Ledger, then please review <a href="https://ripple.com/build/transactions/#offer-preference">documentation</a> for the TickSize amendment to adapt your software for correct usage.</p>
</li>
</ol>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server but don’t upgrade to version 0.50.0 or higher, immediately, then your server will become <a href="https://ripple.com/build/amendments/#amendment-blocked">amendment blocked</a>, meaning that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
</ul>
<h2 id="learn-more">Learn More</h2>
<p>For more information, see the following documentation:</p>
<ul>
<li><a href="https://ripple.com/dev-blog/ticksize-amendment-open-voting/">TickSize Voting Announcement</a> &#8211; Introduction to TickSize and recommendations for how to use it.</li>
<li><a href="https://ripple.com/build/transactions/#offer-preference">Offer Preference</a> &#8211; How offers are ranked with and without TickSize.</li>
<li><a href="https://ripple.com/build/transactions/#accountset">AccountSet transaction</a> &#8211; How to configure a TickSize.</li>
</ul>
<p>To continue receiving updates about the rippled server, please subscribe to the Ripple Server Google Group: <a href="https://groups.google.com/forum/#!forum/ripple-server">https://groups.google.com/forum/#!forum/ripple-server</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ticksize-now-available/">TickSize is Now Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>TickSize Will Be Available in 3 Days</title>
		<link>https://ripple.com/dev-blog/ticksize-will-available-3-days/</link>
		<pubDate>Sat, 18 Feb 2017 22:58:41 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=13861</guid>
		<description><![CDATA[<p>This notice is for all validator operators, and may be useful for gateways that intend to use tick sizes. A majority of trusted validators voted to enable the TickSize amendment, which is scheduled to become active on the protocol on Tuesday, 2017-02-21. The amendment changes the way RCL offers are ranked in order books, so &#8230; <a href="https://ripple.com/dev-blog/ticksize-will-available-3-days/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ticksize-will-available-3-days/">TickSize Will Be Available in 3 Days</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>This notice is for all validator operators, and may be useful for gateways that intend to use tick sizes.</p>
<p>A majority of trusted validators <a href="https://ripple.com/dev-blog/ticksize-amendment-open-voting/">voted to enable the TickSize amendment</a>, which is scheduled to become active on the protocol on Tuesday, 2017-02-21. The amendment changes the way RCL offers are ranked in order books, so that currency issuers can configure how many significant digits are taken into account when ranking offers by exchange rate.</p>
<p>For a detailed look into the TickSize feature, see the <a href="https://ripple.com/dev-blog/ticksize-amendment-open-voting/">original TickSize announcement</a>.</p>
<h2 id="action-required">Action Required</h2>
<ol>
<li>
<p><strong>If you operate a <code>rippled</code> server and accept secure client connections</strong>, then you should upgrade to <code>rippled</code> version 0.50.2 immediately. If you operate a <code>rippled</code> server but do not accept secure client connections, then you should upgrade to version 0.50.0 by Tuesday, 2017-02-21, for service continuity.</p>
</li>
<li>
<p><strong>If you are a gateway issuer</strong>, then please review <a href="https://ripple.com/build/transactions/#offer-preference">documentation</a> for the TickSize amendment to determine what tick size is appropriate for your issuing asset.</p>
</li>
<li>
<p><strong>If you are a market maker</strong> and have algorithmic trading bots, then please review <a href="https://ripple.com/build/transactions/#offer-preference">documentation</a> for the TickSize amendment to update your trading system to check the tick size for a given issuer.</p>
</li>
<li>
<p><strong>If you have backend software</strong>, which constructs and submits transactions related to the issuing of assets on the Ripple network, then please review <a href="https://ripple.com/build/transactions/#offer-preference">documentation</a> for the TickSize amendment to adapt it for correct usage.</p>
</li>
</ol>
<h2 id="learn-more">Learn More</h2>
<p>For more information, see the following articles in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>:</p>
<ul>
<li><a href="https://ripple.com/build/transactions/#offer-preference">Offer Preference</a> &#8211; How offers are ranked with and without TickSize.</li>
<li><a href="https://ripple.com/build/transactions/#accountset">AccountSet transaction</a> &#8211; How to configure a TickSize.</li>
</ul>
<p>To continue receiving updates about the rippled server, please subscribe to the Ripple Server Google Group: <a href="https://groups.google.com/forum/#!forum/ripple-server">https://groups.google.com/forum/#!forum/ripple-server</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ticksize-will-available-3-days/">TickSize Will Be Available in 3 Days</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>TickSize Will Be Available in 7 Days</title>
		<link>https://ripple.com/dev-blog/ticksize-will-available-7-days/</link>
		<pubDate>Tue, 14 Feb 2017 22:58:32 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=13858</guid>
		<description><![CDATA[<p>This notice is for all validator operators, and may be useful for gateways that intend to use tick sizes. A majority of trusted validators voted to enable the TickSize amendment, which is scheduled to become active on the protocol on Tuesday, 2017-02-21. The amendment changes the way RCL offers are ranked in order books, so &#8230; <a href="https://ripple.com/dev-blog/ticksize-will-available-7-days/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ticksize-will-available-7-days/">TickSize Will Be Available in 7 Days</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>This notice is for all validator operators, and may be useful for gateways that intend to use tick sizes.</p>
<p>A majority of trusted validators <a href="https://ripple.com/dev-blog/ticksize-amendment-open-voting/">voted to enable the TickSize amendment</a>, which is scheduled to become active on the protocol on Tuesday, 2017-02-21. The amendment changes the way RCL offers are ranked in order books, so that currency issuers can configure how many significant digits are taken into account when ranking offers by exchange rate.</p>
<p>For a detailed look into the TickSize feature, see the <a href="https://ripple.com/dev-blog/ticksize-amendment-open-voting/">original TickSize announcement</a>.</p>
<h2 id="action-required">Action Required</h2>
<ol>
<li>
<p><strong>If you operate a <code>rippled</code> server and accept secure client connections</strong>, then you should upgrade to <code>rippled</code> version 0.50.2 immediately. If you operate a <code>rippled</code> server but do not accept secure client connections, then you should upgrade to version 0.50.0 by Tuesday, 2017-02-21, for service continuity.</p>
</li>
<li>
<p><strong>If you are a gateway issuer</strong>, then please review <a href="https://ripple.com/build/transactions/#offer-preference">documentation</a> for the TickSize amendment to determine what tick size is appropriate for your issuing asset.</p>
</li>
<li>
<p><strong>If you are a market maker</strong> and have algorithmic trading bots, then please review <a href="https://ripple.com/build/transactions/#offer-preference">documentation</a> for the TickSize amendment to update your trading system to check the tick size for a given issuer.</p>
</li>
<li>
<p><strong>If you have backend software</strong>, which constructs and submits transactions related to the issuing of assets on the Ripple network, then please review <a href="https://ripple.com/build/transactions/#offer-preference">documentation</a> for the TickSize amendment to adapt it for correct usage.</p>
</li>
</ol>
<h2 id="learn-more">Learn More</h2>
<p>For more information, see the following articles in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>:</p>
<ul>
<li><a href="https://ripple.com/build/transactions/#offer-preference">Offer Preference</a> &#8211; How offers are ranked with and without TickSize.</li>
<li><a href="https://ripple.com/build/transactions/#accountset">AccountSet transaction</a> &#8211; How to configure a TickSize.</li>
</ul>
<p>To continue receiving updates about the rippled server, please subscribe to the Ripple Server Google Group: <a href="https://groups.google.com/forum/#!forum/ripple-server">https://groups.google.com/forum/#!forum/ripple-server</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ticksize-will-available-7-days/">TickSize Will Be Available in 7 Days</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>The TickSize Amendment is Open for Voting</title>
		<link>https://ripple.com/dev-blog/ticksize-amendment-open-voting/</link>
		<pubDate>Fri, 10 Feb 2017 22:11:26 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Young]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=13854</guid>
		<description><![CDATA[<p>Previously introduced in rippled version 0.50.0, the TickSize amendment to the Ripple Consensus Ledger is now open for voting. The amendment changes the way offers are ranked in the RCL&#8217;s order books, so that currency issuers can configure how many significant digits are taken into account when ranking offers by exchange rate. Ripple expects several &#8230; <a href="https://ripple.com/dev-blog/ticksize-amendment-open-voting/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ticksize-amendment-open-voting/">The TickSize Amendment is Open for Voting</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Previously <a href="https://ripple.com/dev-blog/rippled-0-50-0/">introduced</a> in <code>rippled</code> version 0.50.0, the <a href="https://ripple.com/build/amendments/#ticksize">TickSize amendment</a> to the Ripple Consensus Ledger is now open for voting. The amendment changes the way offers are ranked in the RCL&#8217;s order books, so that currency issuers can configure how many significant digits are taken into account when ranking offers by exchange rate.</p>
<p>Ripple expects several benefits to result from adoption of the TickSize amendment, including faster price discovery and deeper liquidity, as well as a reduction in transaction spam and ledger churn on the RCL.</p>
<p>The introduction of TickSize demonstrates Ripple’s continued commitment to supporting the RCL as a unique distributed ledger technology for settlement of global payments.</p>
<h2 id="action-required">Action Required</h2>
<ol>
<li>
<p><strong>If you operate a <code>rippled</code> server and accept secure client connections</strong>, then you should upgrade to 0.50.2 immediately. If you operate a rippled server, but do not accept secure client connections then you should upgrade to version 0.50.0 by Tuesday, 2017-02-21, for service continuity.</p>
</li>
<li>
<p><strong>If you run a gateway that issues currency on the RCL</strong>, then please review <a href="https://ripple.com/build/transactions/#offer-preference">documentation</a> for the TickSize amendment to determine what tick size is appropriate for your issuing asset.</p>
</li>
<li>
<p><strong>If you trade on the RCL</strong> and have algorithmic trading bots, then please review <a href="https://ripple.com/build/transactions/#offer-preference">documentation</a> for the TickSize amendment to update your trading system to check the tick size for a given issuer.</p>
</li>
<li>
<p><strong>If you have backend software</strong>, which constructs and submits transactions related to the issuing of assets on the Ripple network, then please review <a href="https://ripple.com/build/transactions/#offer-preference">documentation</a> for the TickSize amendment to adapt it for correct usage.</p>
</li>
</ol>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server but don’t upgrade to version 0.50.0 (or higher) by Tuesday, 2017-02-21, when <strong>TickSize</strong> is expected to be activated via Amendment, then your server will become amendment blocked, meaning that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
<li>Could rely on potentially invalid data</li>
</ul>
<p>If the <strong>TickSize</strong> amendment is vetoed or does not pass, then your server will not become amendment blocked and should continue to operate.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<h2 id="ticksize-amendment-overview">TickSize Amendment Overview</h2>
<p>Ripple has added a new feature (called “TickSize”) to the Ripple Consensus Ledger (RCL). This feature is expected to significantly improve the performance of currency markets on RCL. Gateways (those who issue assets on the RCL) and currency traders will need to be aware of these changes as they may affect their operations.</p>
<p>Currently, the RCL tracks offers to trade one currency for another with fifteen digits of price precision. This high precision has been shown to cause some poor behavior in these currency markets resulting in transaction congestion and poor liquidity.</p>
<p>The tick size change permits the price granularity to be selectively reduced. Gateways must to enable this feature for their assets. Those who trade on RCL’s internal markets must be aware of the change in behavior.</p>
<h3 id="the-problem-ticksize-addresses">The problem TickSize addresses</h3>
<p>The Ripple Consensus Ledger maintains internal order books between pairs of assets. These internal order books are used to permit cross-currency payments and to settle offers to trade assets against each other. Internally, the RCL tracks an offer’s price (that is, the rate at which the exchange takes place) with 15 digits of precision. Offers with a better price are consumed first, and offers at the same price are consumed in the order in which they were placed.</p>
<p>Because the precision is so high, an offer can be placed at a microscopically better price and that offer will get priority over all existing offers at a lower price. This means that there is effectively no seniority advantage to leaving an offer on the books or stacking offers near the current exchange rate.</p>
<p>A significant fraction of the RCL’s transactions are rapid sequences of the creation and deletion of offers. When a trader operating through a programmatic trading platform believes an existing price is too low, the trader places an offer at a higher price. But they will not make the price too high because that reduces their margin. Other traders react by topping their offer. This acts like an auction.</p>
<p>With RCL’s microscopic tick sizes, this acts like an auction in which you can top the existing bid by a microscopic amount. As you might expect, this results in a lot of bids. Worse, it also results in slow price discovery: while these trading bots are each topping the other by a microscopic amount, the order book price remains below the true price until the order placement stabilizes. In practice, order placement never stabilizes and the flux is constant.</p>
<h3 id="the-ticksize-solution">The TickSize solution</h3>
<p>The TickSize feature permits assets issued on the RCL to configure their tick sizes. With a tick size of three, offer prices are tracked with three digits of precision. That would mean that a trader who wanted priority over an offer to charge 1.07 dollars per Euro would have to charge no more than 1.06 dollars per Euro or a trader who wanted priority over an offer to sell bitcoins at $915 each would have to charge $914 each or less.</p>
<p>This immediately makes price discovery much faster. Without the tick size, you might see a long string of offers with prices gradually going down from 1.08 to 1.07. And a payment processed at that time would get a rate worse than the fair rate.</p>
<p>The TickSize feature also protects the time priority of larger orders by securing their position at the front of what may become a large queue at a specific price point;  this effectively prevents front running by microscopically better price improvements.  When volatility of a market becomes low versus the tick size, the economic impact of this can be significant.  To the same effect, enforcing a TickSize also gives traders a larger theoretical edge versus fair value of the same asset trading on other exchanges.  </p>
<p>The most important long run impact of a fixed TickSize is to encourage traders to stack orders at several depths in the market in advance, with the hope of being filled when the market moves; this incentivizes traders to take inventory risk and therefore increases displayed liquidity in order books.</p>
<p>In addition, if there are very small changes in the fair exchange rate, as there always are, these won’t require restructuring of the order book. Until the price variance exceeds the price increment, there is no reason for an offer to change its price and removing an existing offer would mean losing its seniority, giving priority to others who placed their offers first.</p>
<h3 id="the-mechanics-of-ticksize">The mechanics of TickSize</h3>
<p>The TickSize amendment adds an account property also called “TickSize”. An account can set its tick size by sending an “AccountSet” transaction with a “TickSize” property. The value of the “TickSize” property should be a decimal value between 3 and 10. To clear the tick size, set the “TickSize” to zero. The configured size applies to all assets issued by the account.</p>
<p>To determine an account’s configured tick size, you can use any method to get the account root (such as “account_info”). If the account has a configured tick size, there will be a “TickSize” attribute in the response.</p>
<p>XRP does not have a tick size. Until configured by their issuers, issued assets use the default effective tick size of 15. If an offer is placed between two assets that do not have a tick size, no tick size is enforced. If an offer is placed between two assets that have a tick size, the smaller tick size (fewer digits of precision) controls.</p>
<p>When an attempt to create an offer is made and there is a tick size, the tick size is enforced when the offer is placed into the order book. If the offer is a buy, the amount to buy is unchanged. If the offer is a sell, the amount to sell is unchanged. The tick size is enforced by adjusting the unlocked size of the offer in the offer placer’s favor towards the nearest tick size in the offer price.</p>
<p>RCL internally tracks an offer’s price as the ratio of the input currency amount to the output currency amount. The price is the ratio of the input to the output or how much currency must be paid to get one unit of currency out. Offers with lower prices from the point of view of the taker are consumed first. The rounding is performed on this price.</p>
<p>So, for example, if the offer at the tip of an order book were one to give 100 USD for 20 CNY, that would be internally tracked as having a price of 0.2 &#8212; the 20 in divided by the 100 out. If the effective tick size for this order book was 4, this offer could be topped by an offer with a price of 0.1999 or less (the largest number less than 0.2 using four significant digits). So an offer to give 100.05 USD for 20 Yuan (or one to give 100 USD for 19.99 Yuan) would be needed to take the tip of the order book from the existing offer.</p>
<p>The tick size is expressed as the number of digits of precision kept in the price on the books. For example, if the tick size is four, the next tick after 102.3 is 102.4, the next tick after 1.023 is 1.024, and the next tick size after 10,230 is 10,240.</p>
<p>It is important to remember that it is the price (the ratio of input to output) that is rounded. Offers can still be placed for arbitrarily large or small amounts of currency and payments can still consume arbitrarily small pieces out of offers.</p>
<h3 id="ticksize-for-traders">TickSize for traders</h3>
<p>Traders, particularly algorithmic traders, will need to be aware of how the tick size feature affects the behavior of currency markets on the RCL. We expect that gateways that opt to enable tick sizes on their assets will provide traders with reasonable notice, but traders will need to be on the lookout for those notices until the issuer of every asset they care about has published their intended policy.</p>
<p>Traders will want to adjust their strategies to leave their offers on the books if the pricing is off by less than the tick size. They will want to avoid trying to top another offer by less than the tick size as this will not put their order at the tip of the order book.</p>
<p>New strategies involving stacking offers near the current price should be possible. If the price moves in that direction, these offers will have a seniority advantage over newly-placed offers.</p>
<h3 id="ticksize-for-gateways">TickSize for gateways</h3>
<p>Gateways, those who issue assets on the RCL, will need to draft and publish a tick size policy. Even if a gateway opts not to set a tick size, they should still announce this intention and the amount of notice they plan to give should they ever decide to set a tick size. This will help eliminate uncertainty.</p>
<p>Ripple recommends that gateways set reasonable tick sizes in pretty much all cases. This will provide better price discovery for their assets as well as improving the RCL&#8217;s performance for everyone by reducing transaction spam.</p>
<p>Tick sizes of between four and eight digits are reasonable. Four digits will provide rapid price discovery, but poor granularity. Seven digits will provide reasonable price discovery while preserving high granularity. If you do not select a tick size, you effectively have a tick size of 15. In almost all cases, five and six are reasonable, safe choices that should provide a good balance of granularity and rapid price discovery.</p>
<h2 id="upcoming-features">Upcoming Features</h2>
<p>The <a href="https://ripple.com/dev-blog/rippled-version-0-40-0-released/">previously announced</a> Suspended Payments amendment, which introduces new transaction types to the Ripple protocol that will permit users to cryptographically escrow XRP on the RCL, will be re-introduced as an amendment simply called <em>Escrow</em>, in the next release scheduled for March.</p>
<p>Also, we expect additional support for <a href="https://tools.ietf.org/html/draft-thomas-crypto-conditions-02">crypto-conditions</a>, which are signature-like structures that can be used with suspended payments to support ILP integration, to be included in the next rippled release scheduled for March.</p>
<p>Lastly, we do not have an update on the <a href="https://ripple.com/dev-blog/rippled-version-0-33-0-released/">previously announced</a> changes to the hash tree structure that <code>rippled</code> uses to represent a ledger, called <a href="https://ripple.com/build/amendments/#shamapv2">SHAMapV2</a>. At the time of activation, this amendment will require brief scheduled allowable unavailability while the changes to the hash tree structure are computed by the network. We will keep the community updated as we progress towards this date (TBA).</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ticksize-amendment-open-voting/">The TickSize Amendment is Open for Voting</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled version 0.50.2</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-50-2/</link>
		<pubDate>Tue, 31 Jan 2017 02:33:42 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=13826</guid>
		<description><![CDATA[<p>The rippled team has released 0.50.2, which adjusts the default TLS cipher list and corrects a flaw that would not allow an SSL handshake to properly complete if the port was configured using the wss keyword. Ripple recommends upgrading to 0.50.2 only if server operators are running rippled servers that accept client connections over TLS. &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-50-2/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-50-2/">rippled version 0.50.2</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The <code>rippled</code> team has released 0.50.2, which adjusts the default TLS cipher list and corrects a flaw that would not allow an SSL handshake to properly complete if the port was configured using the wss keyword. Ripple recommends upgrading to 0.50.2 only if server operators are running <code>rippled</code> servers that accept client connections over TLS. There are no new or updated features in the 0.50.2 release.</p>
<h2 id="action-recommended">Action Recommended</h2>
<p><strong>If you operate a <code>rippled</code> server and accept secure client connections, then you should upgrade to 0.50.2 immediately.</strong></p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server and accept secure client connections, but don’t upgrade to version 0.50.2, then your server may be unable to negotiate SSL connections.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The md5sum for the rpm is: 05cf675685158aabfc3ff6af7b1549d8</p>
<p>The md5sum for the source rpm is: 0a8c93d67e1c27726ee57693177e7745</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.50.2 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<div class="code_sample" id="code_autoid_1" style="position: relative;">
<pre><code class="hljs sql" title="Double-click to expand/collapse"><span class="hljs-keyword">commit</span> d8a5f5b0946e2a155a1af8455512488a5f758955
Author: Nik Bougalis &lt;nikb@bougalis.net&gt;
<span class="hljs-built_in">Date</span>:   Mon Jan <span class="hljs-number">30</span> <span class="hljs-number">15</span>:<span class="hljs-number">45</span>:<span class="hljs-number">35</span> <span class="hljs-number">2017</span> <span class="hljs-number">-0800</span>

    <span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">0.50</span><span class="hljs-number">.2</span>
</code></pre>
</div>
<h2 id="bug-fixes">Bug Fixes</h2>
<p>Adjust the default cipher list and correct a flaw that would not allow an SSL handshake to properly complete if the port was configured using the wss keyword. <a href="https://github.com/ripple/rippled/pull/1985/commits/708fc6cd6f3c75d08fa409f6815ed915854438a5">(#1985)</a></p>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team has deployed a configuration-based fix to all client-facing <code>rippled</code> servers under its operational control and will not be updating to 0.50.2 at this time.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: support@ripple.com</li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-50-2/">rippled version 0.50.2</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled 0.50.0</title>
		<link>https://ripple.com/dev-blog/rippled-0-50-0/</link>
		<pubDate>Fri, 27 Jan 2017 18:19:55 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=13807</guid>
		<description><![CDATA[<p>Ripple has released rippled version 0.50.0, which introduces several enhancements that improve the reliability and scalability of the Ripple Consensus Ledger (RCL). Ripple recommends that all server operators upgrade to version 0.50.0 by Tuesday, 2017-02-21, for service continuity. Highlights of this release include: TickSize, which allows gateways to set a &#8220;tick size&#8221; for assets they &#8230; <a href="https://ripple.com/dev-blog/rippled-0-50-0/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-0-50-0/">rippled 0.50.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple has released <code>rippled</code> version 0.50.0, which introduces several enhancements that improve the reliability and scalability of the Ripple Consensus Ledger (RCL). Ripple recommends that all server operators upgrade to version 0.50.0 by Tuesday, 2017-02-21, for service continuity.</p>
<p>Highlights of this release include:</p>
<ul>
<li><strong>TickSize</strong>, which allows gateways to set a &#8220;tick size&#8221; for assets they issue to help promote faster price discovery and deeper liquidity, as well as reduce transaction spam and ledger churn on RCL. Ripple expects <strong>TickSize</strong> to be enabled via an <a href="https://ripple.com/build/amendments/#ticksize">Amendment named “TickSize”</a> on Tuesday, 2017-02-21. See below for details.</li>
</ul>
<h2 id="action-required">Action Required</h2>
<p><strong>1. If you operate a <code>rippled</code> server, then you should upgrade to version 0.50.0 by Tuesday, 2017-02-21, for service continuity.</strong></p>
<p><strong>2. If you are a gateway issuer, then please review forthcoming documentation for the TickSize amendment to determine what tick size is appropriate for your issuing asset.</strong></p>
<p><strong>3. If you are a market maker and have algorithmic trading bots, then please review forthcoming documentation for the TickSize amendment to update your trading system to check the tick size for a given issuer.</strong></p>
<p><strong>4. If you have backend software which constructs and submits transactions related to the issuing of assets on the Ripple network, then please review forthcoming documentation for the TickSize amendment to adapt it for correct usage.</strong></p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server but don’t upgrade to version 0.50.0 by Tuesday, 2017-02-21, when <strong>TickSize</strong> is expected to be activated via Amendment, then your server will become amendment blocked, meaning that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
<li>Could rely on potentially invalid data</li>
</ul>
<p>If the <strong>TickSize</strong> amendment is vetoed or does not pass, then your server will not become amendment blocked and should continue to operate.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The md5sum for the rpm is: 82eb29f7e464e44eb24e3c891a021041</p>
<p>The md5sum for the source rpm is: 7bf25c86f018daf82c5d5f8ab621153a</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.50.0 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<div class="code_sample" id="code_autoid_1" style="position: relative;">
<pre><code class="hljs sql">  <span class="hljs-keyword">commit</span> <span class="hljs-number">77999579</span>b535373872d8cce7ddc8b12cdcc39d84
  Author: Nik Bougalis &lt;nikb@bougalis.net&gt;
  <span class="hljs-built_in">Date</span>:   Thu Jan <span class="hljs-number">26</span> <span class="hljs-number">13</span>:<span class="hljs-number">26</span>:<span class="hljs-number">03</span> <span class="hljs-number">2017</span> <span class="hljs-number">-0800</span>

      <span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">0.50</span><span class="hljs-number">.0</span>
</code></pre>
</div>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team plans to deploy version 0.50.0 to all <code>rippled</code> servers under its operational control, including private clusters, starting at 11:00 AM PDT on Friday, 2017-01-27. The deployment is expected to complete within 4 hours. The network should continue to operate during deployment and no outage is expected.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: support@ripple.com</li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<h2 id="full-release-notes">Full Release Notes</h2>
<p>The <code>rippled</code> 0.50.0 release includes <strong>TickSize</strong>, which allows gateways to set a &#8220;tick size&#8221; for assets they issue to to help promote faster price discovery and deeper liquidity, as well as reduce transaction spam and ledger churn on RCL. Ripple expects TickSize to be enabled via an Amendment called <strong>TickSize</strong> on Tuesday, 2017-02-21. This feature underlines Ripple’s continued support to improving RCL and making it even better suited for settlement of global payments.</p>
<p>You can <a href="https://ripple.com/build/rippled-setup/#updating-rippled">update to the new version</a> on Red Hat Enterprise Linux 7 or CentOS 7 using yum. For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile the new version from source</a>.</p>
<p><strong>New and Updated Features</strong></p>
<p><strong>Problem &amp; Solution</strong></p>
<p>Currently, offers on RCL can differ by as little as one part in a quadrillion. This means that there is essentially no value to placing an offer early, as an offer placed later at a microscopically better price gets priority over it. The <strong>TickSize</strong> Amendment solves this problem by introducing a minimum tick size that a price must move for an offer to be considered to be at a better price. The tick size is controlled by the issuers of the assets involved.</p>
<p>When you place a buy offer, the amount of currency you will buy is respected. When you place a sell offer, the amount of currency you will sell is respected. If a tick size is in force, the other side of the offer will be rounded (in your favor) such that the ratio is rounded to the tick size before the offer is placed on the books.</p>
<p><strong>TickSize</strong> does not affect the size of an offer. A trader can still trade microscopic amounts of an asset. It just affects the prices (ratio of in to out) at which offers can be placed on the books. For asset pairs with XRP, the tick size imposed, if any, is the tick size of the issuer of the non-XRP asset. For asset pairs without XRP, the tick size imposed, if any, is the smaller of the two issuer&#8217;s configured tick sizes.</p>
<p>The tick size is imposed by rounding the offer quality down to the nearest tick and recomputing the non-critical side of the offer. For a buy, the amount offered is rounded down. For a sell, the amount charged is rounded up.</p>
<p><strong>Effects of TickSize Change</strong></p>
<p>This change lets issuers quantize the exchange rates of offers to use a specified number of significant digits. Gateways must enable a TickSize on their account for this feature to benefit them. A single AccountSet transaction may set a &#8220;TickSize&#8221; parameter. Legal values are 0 and 3-15 inclusive. Zero removes the setting. 3-15 allow that many decimal digits of precision in the pricing of offers for assets issued by this account. It will still be possible to place an offer to buy or sell any amount of an asset and the offer will still keep that amount as exactly as it does now. If an offer involves two assets that each have a tick size, the smaller number of significant figures (larger ticks) controls.</p>
<p><strong>Benefits of TickSize Change</strong></p>
<p>The primary expected benefits of the TickSize amendment is the reduction of bots fighting over the tip of the order book, which means:</p>
<ul>
<li>Quicker price discovery</li>
<li>Traders can&#8217;t be outbid by a microscopic amount</li>
<li>More offers left on the books</li>
<li>A reduction in offer creation and cancellation spam</li>
</ul>
<p>We also expect larger tick sizes to benefit market makers in the following ways:</p>
<ul>
<li>They increase the delta between the fair market value and the trade price, ultimately reducing spreads</li>
<li>They prevent market makers from consuming each other&#8217;s offers due to slight changes in perceived fair market value, which promotes liquidity</li>
<li>They promote faster price discovery since traders have to adjust their prices in financially distinct increments</li>
<li>They reduce transaction spam by reducing fighting over the tip of the order book and reducing the need to change offers due to slight price changes</li>
<li>They reduce ledger churn and metadata sizes by reducing the number of indexes each order book must have</li>
<li>They allow the order book as presented to traders to better reflect the actual book since these presentations are inevitably aggregated into ticks</li>
</ul>
<p><strong>Hardened TLS configuration</strong></p>
<p>This release updates the default TLS configuration for <code>rippled</code>. The new release supports only 2048-bit DH parameters and defines a new default set of modern ciphers to use, removing support for ciphers and hash functions that are no longer considered secure.</p>
<p>Server administrators who wish to have different settings can configure custom global and per-port cipher suites in the configuration file using the ssl_ciphers directive.</p>
<h2 id="0500-change-log">0.50.0 Change Log</h2>
<ul>
<li>Remove websocketpp support <a href="https://github.com/ripple/rippled/pull/1910">(#1910)</a></li>
<li>Increase OpenSSL requirements &amp; harden default TLS cipher suites <a href="https://github.com/ripple/rippled/pull/1913">(#1913)</a></li>
<li>Move test support sources out of ripple directory <a href="https://github.com/ripple/rippled/pull/1916">(#1916)</a></li>
<li>Enhance ledger header RPC commands <a href="https://github.com/ripple/rippled/pull/1918">(#1918)</a></li>
<li>Add support for tick sizes <a href="https://github.com/ripple/rippled/pull/1922">(#1922)</a></li>
<li>Port discrepancy-test.coffee to c++ <a href="https://github.com/ripple/rippled/pull/1930">(#1930)</a></li>
<li>Remove redundant call to clearNeedNetworkLedger <a href="https://github.com/ripple/rippled/pull/1931">(#1931)</a></li>
<li>Port freeze-test.coffee to C++ unit test. <a href="https://github.com/ripple/rippled/pull/1934">(#1934)</a></li>
<li>Fix CMake docs target to work if BOOST_ROOT is not set <a href="https://github.com/ripple/rippled/pull/1937">(#1937)</a></li>
<li>Improve setup for account_tx paging test <a href="https://github.com/ripple/rippled/pull/1942">(#1942)</a></li>
<li>Eliminate npm tests <a href="https://github.com/ripple/rippled/pull/1943">(#1943)</a></li>
<li>Port uniport js test to cpp <a href="https://github.com/ripple/rippled/pull/1944">(#1944)</a></li>
<li>Enable amendments in genesis ledger <a href="https://github.com/ripple/rippled/pull/1944">(#1944)</a></li>
<li>Trim ledger data in Discrepancy_test <a href="https://github.com/ripple/rippled/pull/1948">(#1948)</a></li>
<li>Add &#8220;current_ledger&#8221; field to &#8220;fee&#8221; result <a href="https://github.com/ripple/rippled/pull/1949">(#1949)</a></li>
<li>Cleanup unit test support code <a href="https://github.com/ripple/rippled/pull/1953">(#1953)</a></li>
<li>Add ledger save / load tests <a href="https://github.com/ripple/rippled/pull/1955">(#1955)</a></li>
<li>Remove unused websocket files <a href="https://github.com/ripple/rippled/pull/1957">(#1957)</a></li>
<li>Update RPC handler role/usage <a href="https://github.com/ripple/rippled/pull/1966">(#1966)</a></li>
</ul>
<p><strong>Bug Fixes</strong></p>
<ul>
<li>Validator&#8217;s manifest not forwarded beyond directly connected peers <a href="https://github.com/ripple/rippled/pull/1919">(#1919)</a></li>
</ul>
<h2 id="upcoming-features">Upcoming Features</h2>
<p>We expect the <a href="https://ripple.com/dev-blog/rippled-version-0-40-0-released/">previously</a> announced Suspended Payments feature, which introduces new transaction types to the Ripple protocol that will permit users to cryptographically escrow XRP on RCL, to be enabled via the <a href="https://ripple.com/build/amendments/#suspay">“SusPay”</a> Amendment on Tuesday, 2017-02-21.</p>
<p>Also, we expect support for <a href="https://tools.ietf.org/html/draft-thomas-crypto-conditions-02">crypto-conditions</a>, which are signature-like structures that can be used with suspended payments to support ILP integration, to be included in the next <code>rippled</code> release scheduled for March.</p>
<p>Lastly, we do not have an update on the <a href="https://ripple.com/dev-blog/rippled-version-0-33-0-released/">previously announced</a> changes to the hash tree structure that <code>rippled</code> uses to represent a ledger, called <a href="https://ripple.com/build/amendments/#shamapv2">SHAMapV2</a>. At the time of activation, this amendment will require brief scheduled allowable unavailability while the changes to the hash tree structure are computed by the network. We will keep the community updated as we progress towards this date (TBA).</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-0-50-0/">rippled 0.50.0</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Load Testing Data API</title>
		<link>https://ripple.com/dev-blog/load-testing-data-api/</link>
		<pubDate>Wed, 18 Jan 2017 21:00:12 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[data api]]></category>
		<category><![CDATA[historical data]]></category>
		<category><![CDATA[load test]]></category>
		<category><![CDATA[rcl]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=13751</guid>
		<description><![CDATA[<p>The Ripple Data team will be running load balancing tests on Ripple Data API starting Wednesday, 2017-01-18, at 2pm PST, which will last approximately 15 minutes. The Ripple Data API is an open and free resource that provides access to information about changes in the Ripple Consensus Ledger, including transaction history and processed analytical data. &#8230; <a href="https://ripple.com/dev-blog/load-testing-data-api/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/load-testing-data-api/">Load Testing Data API</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The Ripple Data team will be running load balancing tests on Ripple Data API starting Wednesday, 2017-01-18, at 2pm PST, which will last approximately 15 minutes. The Ripple Data API is an open and free resource that provides access to information about changes in the Ripple Consensus Ledger, including transaction history and processed analytical data.</p>
<h2 id="action-recommended">Action Recommended</h2>
<p><strong>If you operate software or services that rely on the Ripple Data API, then we recommend that you alert end users with the relevant information provided in this post.</strong></p>
<h2 id="impact-of-tests">Impact of Tests</h2>
<p>If you operate software or services that rely on the Ripple Data API, then you may experience a brief outage and / or inconsistent data, including transaction history and processed analytical data, for a period of approximately 15 mins.</p>
<p>For more information regarding the Ripple Data API, please see <a href="https://ripple.com/build/data-api-v2/">Ripple Data API Documentation</a>.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: support@ripple.com</li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/load-testing-data-api/">Load Testing Data API</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Response to China CERT Report</title>
		<link>https://ripple.com/dev-blog/response-china-cert-report/</link>
		<pubDate>Fri, 13 Jan 2017 00:28:27 +0000</pubDate>
		<dc:creator><![CDATA[David Schwartz]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[China CERT]]></category>
		<category><![CDATA[Rippled]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=13702</guid>
		<description><![CDATA[<p>Ripple recognizes the importance of security researchers, and we take any reports of security vulnerabilities very seriously.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/response-china-cert-report/">Response to China CERT Report</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><span style="font-weight: 400;">As a leader in open-source, distributed financial technology, Ripple recognizes the importance of security researchers and we always encourage responsible disclosure of potential security vulnerabilities via our </span><a href="https://ripple.com/bug-bounty/"><span style="font-weight: 400;">bug bounty program</span></a><span style="font-weight: 400;">. Ripple also employs regular external security audits and, as a matter of practice, the maintainers of the Ripple Consensus Ledger (RCL) technology (rippled) routinely use static and dynamic analysis tools on the C++ codebase (most recently version 0.50.0-b1).</span></p>
<p><span style="font-weight: 400;">The results of the last internal static analyzer run determined that the defect rate of rippled was below the threshold that is typical for open source projects. To date, there have been no critical vulnerabilities discovered through static and dynamic analysis of the rippled C++ codebase, and the issues that have been found have been false-positives. In addition to using automated scanning tools, manual reviews of the code by multiple engineers have failed to identify a single vulnerability and the minor issues that have been discovered have long been fixed. </span></p>
<p>Further, a recent independent security audit conducted by the NCC Group, a global security risk mitigation firm, revealed no serious security vulnerabilities, and found rippled “to be well-written and designed” before adding that it was clear that Ripple “has taken time to carefully consider the implementation.”</p>
<p><span style="font-weight: 400;">In a recent </span><a href="http://if.cert.org.cn/res/web_file/bug_analyze_report.pdf"><span style="font-weight: 400;">blockchain security report</span></a><span style="font-weight: 400;">, China CERT claimed that software related to Ripple’s open-sourced, distributed ledger technology has “230 high-risk security vulnerabilities.” Unfortunately, since the researchers behind the report did not demonstrate responsible disclosure by contacting Ripple prior to publication, we do not know what testing methodology or techniques were used nor which code repositories were tested. As a result, we were forced to investigate the claims being made after the fact, with no guidance from the security researchers and very little context.</span></p>
<p><span style="font-weight: 400;">From what we can determine, the methodology appears to have been strictly limited to automated analysis tools run over a mixture of both security critical code and code that has no security implications whatsoever. The quantitative results were determined by the number of possible vulnerabilities identified by the tool and the possible severity of actual vulnerabilities in that class. (</span><i><span style="font-weight: 400;">for example, any code that might have a buffer overflow would be identified as high risk, because if there actually is a buffer overflow issue and the code is actually security relevant, that could cause a significant compromise</span></i><span style="font-weight: 400;">).</span></p>
<p><span style="font-weight: 400;">Automated analysis tools typically have extremely high false positive rates of about 99%. When projects that already use this same methodology are tested in this way, the false positive rate nears 100% since all actual vulnerabilities that could be found in this way already have been found.</span></p>
<p><span style="font-weight: 400;">Again, Ripple recognizes the importance of security researchers, and we take any reports of security vulnerabilities very seriously. At this time, we do not feel confident in the accuracy of the CERT report. Furthermore, based on the way in which the report was published, we question the legitimacy of the reporting body. We are confident in our processes and our codebase, and expressly state that this report identifies no actionable items and our review, in response to it, found none either.</span></p>
<p><span style="font-weight: 400;">We will continue to promptly and vigorously investigate all reports of security vulnerabilities, and urge anyone who thinks they have identified such a vulnerability to responsibly disclose it to us via our </span><a href="https://ripple.com/bug-bounty/"><span style="font-weight: 400;">bug bounty program</span></a><span style="font-weight: 400;">.</span></p>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/response-china-cert-report/">Response to China CERT Report</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled 0.40.1</title>
		<link>https://ripple.com/dev-blog/rippled-0-40-1/</link>
		<pubDate>Wed, 11 Jan 2017 22:32:19 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[minor release]]></category>
		<category><![CDATA[rcl]]></category>
		<category><![CDATA[release announcement]]></category>
		<category><![CDATA[Rippled]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=13693</guid>
		<description><![CDATA[<p>The rippled team has released version 0.40.1, which increases SQLite database limits in all rippled full-history servers. Ripple recommends upgrading to 0.40.1 only if server operators are running rippled servers with full-history of the ledger. There are no new or updated features in the 0.40.1 release. Action Recommended If you operate a rippled server and &#8230; <a href="https://ripple.com/dev-blog/rippled-0-40-1/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-0-40-1/">rippled 0.40.1</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The <code>rippled</code> team has released version 0.40.1, which increases SQLite database limits in all <code>rippled</code> full-history servers. Ripple recommends upgrading to 0.40.1 only if server operators are running <code>rippled</code> servers with full-history of the ledger. There are no new or updated features in the 0.40.1 release.</p>
<h2 id="action-recommended">Action Recommended</h2>
<p><strong>If you operate a <code>rippled</code> server and have full-history of the ledger, then you should upgrade to 0.40.1 immediately.</strong></p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server and have full-history of the ledger, but don’t upgrade to version 0.40.1, then your server may crash when restarted.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The md5sum for the rpm is: e876816f4ddb38bec28d158083020fa9</p>
<p>The md5sum for the source rpm is: 3ed1569bd0dbba5ff1d1ef1abfca7ed7</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.40.1 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<div class="code_sample" id="code_autoid_1" style="position: relative;">
<pre><code class="hljs sql" title="Double-click to expand/collapse">$ git log -1 upstream/master
<span class="hljs-keyword">commit</span> e91aacc9a3d2f332a93981270c3812e26189226e
Author: Nik Bougalis &lt;nikb@bougalis.net&gt;
<span class="hljs-built_in">Date</span>:   Thu Jan <span class="hljs-number">5</span> <span class="hljs-number">09</span>:<span class="hljs-number">38</span>:<span class="hljs-number">28</span> <span class="hljs-number">2017</span> <span class="hljs-number">-0800</span>

<span class="hljs-keyword">Set</span> <span class="hljs-keyword">version</span> <span class="hljs-keyword">to</span> <span class="hljs-number">0.40</span><span class="hljs-number">.1</span>
</code></pre>
</div>
<h2 id="bug-fixes">Bug Fixes</h2>
<p>Increase SQLite database limits to prevent full-history servers from crashing when restarting. <a href="https://github.com/ripple/rippled/commit/610e51a162a6ef06accf8733b3b35b492963a78b">(#1961)</a></p>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team has deployed version 0.40.1 to all full-history <code>rippled</code> servers under its operational control.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-0-40-1/">rippled 0.40.1</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled version 0.40.0 Released</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-40-0-released/</link>
		<pubDate>Tue, 20 Dec 2016 21:23:48 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Young]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[Rippled]]></category>

		<guid isPermaLink="false">http://ripple.com/?p=13628</guid>
		<description><![CDATA[<p>Ripple has released rippled version 0.40.0, which introduces several enhancements that improve the reliability and scalability of the Ripple Consensus Ledger (RCL). Ripple recommends that all server operators upgrade to version 0.40.0 by Tuesday, 2017-01-17, for service continuity. Highlights of this release include: Suspended Payments, a new transaction type on the Ripple network that functions &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-40-0-released/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-40-0-released/">rippled version 0.40.0 Released</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple has released <code>rippled</code> version 0.40.0, which introduces several enhancements that improve the reliability and scalability of the Ripple Consensus Ledger (RCL). Ripple recommends that all server operators upgrade to version 0.40.0 by Tuesday, 2017-01-17, for service continuity.</p>
<p>Highlights of this release include:</p>
<ul>
<li>Suspended Payments, a new transaction type on the Ripple network that functions similar to an escrow service, which permits users to cryptographically escrow XRP on RCL with an expiration date. Ripple expects Suspended Payments to be enabled via an <a href="https://ripple.com/build/amendments/#suspay">Amendment named “SusPay”</a> on Tuesday, 2017-01-17. See below for details.</li>
</ul>
<h2 id="action-required">Action Required</h2>
<p>If you operate a <code>rippled</code> server, then you should upgrade to version 0.40.0 by Tuesday, 2017-01-17, for service continuity.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server but don’t upgrade to version 0.40.0 by Tuesday, 2017-01-17, when SusPay is expected to be activated via Amendment, then your server will become <a href="https://ripple.com/build/amendments/#amendment-blocked">amendment blocked</a>, meaning that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
<li>Could rely on potentially invalid data</li>
</ul>
<p>If the SusPay amendment is vetoed or does not pass via majority vote, then your server will not become amendment blocked.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The md5sum for the rpm is: 27d0d142f29bcde7d240d91d44b5d7dc</p>
<p>The md5sum for the source rpm is: b3b5ab6897f3c08b492f383ef7763c21</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.40.0 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<pre><code>      commit 7fc780dd70faef819eace27a12de35dd1363c069
      Author: Nik Bougalis &lt;nikb@bougalis.net&gt;
      Date:   Tue Dec 20 09:20:17 2016 -0800

          Set version to 0.40.0
</code></pre>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team plans to deploy version 0.40.0 to a subset of rippled servers under its operational control configured with the new websocket implementation, starting at 2:00 PM PDT on Tuesday, 2016-12-20. The network will continue operating during deployment and no outage is expected.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<h2 id="full-release-notes">Full Release Notes</h2>
<p>The <code>rippled</code> 0.40.0 release includes Suspended Payments, a new transaction type on the Ripple network that functions similar to an escrow service, which permits users cryptographically escrow XRP on RCL with an expiration date. Ripple expects Suspended Payments to be enabled via an <a href="https://ripple.com/build/amendments/#suspay">Amendment named “SusPay”</a> on Tuesday, 2017-01-17.</p>
<p>You can <a href="https://ripple.com/build/rippled-setup/#updating-rippled">update to the new version</a> on Red Hat Enterprise Linux 7 or CentOS 7 using yum. For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile the new version from source</a>.</p>
<p><strong>New and Updated Features</strong></p>
<p>Previously, Ripple <a href="https://ripple.com/dev-blog/rippled-version-0-33-0-released/">announced</a> the introduction of Payment Channels during the release of rippled version 0.33.0, which permit scalable, off-ledger checkpoints of high volume, low value payments flowing in a single direction. This was the first step in a multi-phase effort to make RCL more scalable and to support <a href="https://interledger.org/interledger.pdf">Interledger Protocol</a> (ILP). Ripple expects Payment Channels to be enabled via an <a href="https://ripple.com/build/amendments/#paychan">Amendment called PayChan</a> on a future date to be determined.</p>
<p>In the second phase towards making RCL more scalable and compatible with ILP, Ripple is introducing Suspended Payments, a new transaction type on the Ripple network that functions similar to an escrow service, which permits users to cryptographically escrow XRP on RCL with an expiration date. Ripple expects Suspended Payments to be enabled via an <a href="https://ripple.com/build/amendments/#suspay">Amendment named “SusPay”</a> on Tuesday, 2017-01-17.</p>
<p>A Suspended Payment can be created, which deducts the funds from the sending account. It can then be either fulfilled or canceled. It can only be fulfilled if the fulfillment transaction makes it into a ledger with a CloseTime lower than the expiry date of the transaction. It can be canceled with a transaction that makes it into a ledger with a CloseTime greater than the expiry date of the transaction.</p>
<p>In the third phase towards making RCL more scalable and compatible with ILP, Ripple plans to introduce additional library support for <a href="https://tools.ietf.org/html/draft-thomas-crypto-conditions-01">crypto-conditions</a>, which are distributable event descriptions written in a standard format that describe how to recognize a fulfillment message without saying exactly what the fulfillment is. Fulfillments are cryptographically verifiable messages that prove an event occurred. If you transmit a fulfillment, then everyone who has the condition can agree that the condition has been met. Fulfillment requires the submission of a signature that matches the condition (message hash and public key). This format supports multiple algorithms, including different hash functions and cryptographic signing schemes. Crypto-conditions can be nested in multiple levels, with each level possibly having multiple signatures.</p>
<p>Lastly, we do not have an update on the <a href="https://ripple.com/dev-blog/rippled-version-0-33-0-released/">previously announced</a> changes to the hash tree structure that rippled uses to represent a ledger, called <a href="https://ripple.com/build/amendments/#shamapv2">SHAMapV2</a>. This will require brief scheduled allowable downtime while the changes to the hash tree structure are propagated by the network. We will keep the community updated as we progress towards this date (TBA).</p>
<ul>
<li>Consensus refactor <a href="https://github.com/ripple/rippled/pull/1874">(#1874)</a></li>
</ul>
<p><strong>Bug Fixes</strong></p>
<ul>
<li>Correct an issue in payment flow code that did not remove an unfunded offer <a href="https://github.com/ripple/rippled/pull/1860">(#1860)</a></li>
<li>Sign validator manifests with both ephemeral and master keys <a href="https://github.com/ripple/rippled/pull/1865">(#1865)</a></li>
<li>Correctly parse multi-buffer JSON messages <a href="https://github.com/ripple/rippled/pull/1862">(#1862)</a></li>
</ul>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-40-0-released/">rippled version 0.40.0 Released</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>The Flow Amendment is Now Available</title>
		<link>https://ripple.com/dev-blog/flow-amendment-now-available/</link>
		<pubDate>Mon, 24 Oct 2016 23:53:50 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[amendments]]></category>
		<category><![CDATA[flow]]></category>
		<category><![CDATA[rcl]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=13388</guid>
		<description><![CDATA[<p>The Flow Amendment became available on the Ripple Consensus Ledger in ledger 24,970,753 (2016-10-21T19:47:22Z). This amendment replaces the payment processing engine with a more robust and efficient rewrite called the Flow engine. The new payments engine adds no new features, but improves efficiency and robustness in payment handling. Action Required If you operate a rippled &#8230; <a href="https://ripple.com/dev-blog/flow-amendment-now-available/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/flow-amendment-now-available/">The Flow Amendment is Now Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The Flow Amendment became available on the Ripple Consensus Ledger in ledger 24,970,753 <a href="https://charts.ripple.com/#/transactions/C06CE3CABA3907389E4DD296C5F31C73B1548CC20BD7B83416C78CD7D4CD38FC">(2016-10-21T19:47:22Z)</a>.</p>
<p>This amendment replaces the payment processing engine with a more robust and efficient rewrite called the Flow engine. The new payments engine adds no new features, but improves efficiency and robustness in payment handling.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server, then you should upgrade to version 0.33.0 or later, immediately, for service continuity.</strong></p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server but don’t upgrade to version 0.33.0 or later, immediately, then your server will become <a href="https://ripple.com/build/amendments/#amendment-blocked">amendment blocked</a>, meaning that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
</ul>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.33.0 from source</a>.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/flow-amendment-now-available/">The Flow Amendment is Now Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>The Flow Amendment Will Be Available Soon</title>
		<link>https://ripple.com/dev-blog/flow-amendment-will-available-soon/</link>
		<pubDate>Mon, 17 Oct 2016 20:16:03 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Young]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=13314</guid>
		<description><![CDATA[<p>A majority of rippled validators voted to enable the Flow Amendment, which is scheduled to become active on the protocol on Thursday, 2016-10-20. This amendment replaces the payment processing engine with a more robust and efficient rewrite called the Flow engine. The new payments engine adds no new features, but improves efficiency and robustness in &#8230; <a href="https://ripple.com/dev-blog/flow-amendment-will-available-soon/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/flow-amendment-will-available-soon/">The Flow Amendment Will Be Available Soon</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>A majority of <code>rippled</code> validators voted to enable the <a href="https://ripple.com/build/amendments/#flow">Flow Amendment</a>, which is scheduled to become active on the protocol on Thursday, 2016-10-20. This amendment replaces the payment processing engine with a more robust and efficient rewrite called the Flow engine. The new payments engine adds no new features, but improves efficiency and robustness in payment handling.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server, then you should upgrade to version 0.33.0 or later by Thursday, 2016-10-20, for service continuity.</strong></p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server but don’t upgrade to version 0.33.0 or later by Thursday, 2016-10-20, when Flow is expected to be enabled via Amendment, then your server will become <a href="https://ripple.com/build/amendments/#amendment-blocked">amendment blocked</a>, meaning that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
</ul>
<p>If the Flow amendment is vetoed or does not pass, then your server will not become amendment blocked and should continue to operate.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.33.0-hf1 from source</a>.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/flow-amendment-will-available-soon/">The Flow Amendment Will Be Available Soon</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>The Flow Amendment is Open for Voting</title>
		<link>https://ripple.com/dev-blog/flow-amendment-open-voting/</link>
		<pubDate>Fri, 07 Oct 2016 20:02:34 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Young]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=13258</guid>
		<description><![CDATA[<p>Originally introduced in rippled version 0.32.1, but later vetoed after a flaw was discovered in the code while testing, the new Flow Amendment is now open for voting. This amendment replaces the payment processing engine with a more robust and efficient rewrite called the Flow engine. The new payments engine adds no new features, but &#8230; <a href="https://ripple.com/dev-blog/flow-amendment-open-voting/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/flow-amendment-open-voting/">The Flow Amendment is Open for Voting</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p id="the-flow-amendment-is-open-for-voting">Originally introduced in <code>rippled</code> <a href="https://ripple.com/dev-blog/rippled-version-0-32-1-released/">version 0.32.1</a>, but later <a href="https://ripple.com/dev-blog/flowv2-amendment-vetoed/">vetoed</a> after a flaw was discovered in the code while testing, the new <a href="https://ripple.com/build/amendments/#flow">Flow Amendment</a> is now open for voting. This amendment replaces the payment processing engine with a more robust and efficient rewrite called the Flow engine. The new payments engine adds no new features, but improves efficiency and robustness in payment handling.</p>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server, then you should upgrade to version 0.33.0 by Thursday, 2016-10-20, for service continuity.</strong></p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server but don’t upgrade to version 0.33.0 by Thursday, 2016-10-20, when Flow is expected to be enabled via Amendment, then your server will become <a href="https://ripple.com/build/amendments/#amendment-blocked">amendment blocked</a>, meaning that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
</ul>
<p>If the Flow amendment is vetoed or does not pass, then your server will not become amendment blocked and should continue to operate.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>For other platforms, <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.33.0-hf1 from source</a>.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/flow-amendment-open-voting/">The Flow Amendment is Open for Voting</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled version 0.33.0-hf1</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-33-0-hf1/</link>
		<pubDate>Thu, 06 Oct 2016 18:34:01 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Young]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=13244</guid>
		<description><![CDATA[<p>Ripple has released rippled version 0.33.0-hf1, which fixes a JSON parsing issue in all rippled servers. Ripple recommends upgrading to 0.33.0-hf1 only if server operators are experiencing a jsonInvalid error response to client requests. There are no new or updated features in the 0.33.0-hf1 release. Action Recommended If you operate a rippled server and are &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-33-0-hf1/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-33-0-hf1/">rippled version 0.33.0-hf1</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p id="rippled-version-0330-hf1">Ripple has released <code>rippled</code> version 0.33.0-hf1, which fixes a JSON parsing issue in all <code>rippled</code> servers. Ripple recommends upgrading to 0.33.0-hf1 only if server operators are experiencing a <code>jsonInvalid</code> error response to client requests. There are no new or updated features in the 0.33.0-hf1 release.</p>
<h2 id="action-recommended">Action Recommended</h2>
<p><strong>If you operate a <code>rippled</code> server and are experiencing a <code>jsonInvalid</code> error response to client requests, then you should upgrade to 0.33.0-hf1 immediately.</strong></p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server and are experiencing a <code>jsonInvalid</code> error response to client requests, but don’t upgrade to version 0.33.0-hf1, then your server will continue to experience failing client requests.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The md5sum for the rpm is: f181f1fc801e3387487d246f9a975517</p>
<p>The md5sum for the source rpm is: 7993f125ed05bfeeda4e091761021429</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.33.0-hf1 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<pre><code>      commit 98f878cf10a32e26021b6a6ed44990bccbbc92c2
      Author: Vinnie Falco &lt;vinnie.falco@gmail.com&gt;
      Date:   Sat Oct 1 12:12:34 2016 -0400

      Set version to 0.33.0-hf1
</code></pre>
<h2 id="bug-fixes">Bug Fixes</h2>
<p>Fix a JSON parsing issue that can fail to parse valid JSON requests when the data received by the server is broken up into more than one contiguous buffer. <a href="https://github.com/ripple/rippled/commit/69b47890e69cea46c403e6354742c3653f125c6f">(#1863)</a></p>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team has deployed version 0.33.0-hf1 to all client facing <code>rippled</code> servers under its operational control.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-33-0-hf1/">rippled version 0.33.0-hf1</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled version 0.33.0 Released</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-33-0-released/</link>
		<pubDate>Thu, 29 Sep 2016 21:34:57 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Young]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=13171</guid>
		<description><![CDATA[<p>Ripple has released rippled version 0.33.0, which introduces several new enhancements that improve the reliability and scalability of the Ripple Consensus Ledger (RCL). Ripple recommends that all server operators upgrade to version 0.33.0 by Wednesday, 2016-10-20, for service continuity. Highlights of this release include: An improved version of the payment code, which Ripple expects to &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-33-0-released/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-33-0-released/">rippled version 0.33.0 Released</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple has released <code>rippled</code> version 0.33.0, which introduces several new enhancements that improve the reliability and scalability of the Ripple Consensus Ledger (RCL). Ripple recommends that all server operators upgrade to version 0.33.0 by Wednesday, 2016-10-20, for service continuity.</p>
<p>Highlights of this release include:</p>
<ul>
<li>An improved version of the payment code, which Ripple expects to be available via an <a href="https://ripple.com/build/amendments/#flow">Amendment named &#8220;Flow&#8221;</a> on Wednesday, 2016-10-20. See below for details.</li>
<li>Payment Channels that permit scalable, off-ledger checkpoints for high volume, low value payments flowing in a single direction, which Ripple expects to be activated via an <a href="https://ripple.com/build/amendments/#paychan">Amendment named “PayChan”</a> on a future date TBA. See below for details.</li>
<li>SHAMapV2 changes the hash tree structure that rippled uses to represent a ledger, which Ripple expects to be activated via an <a href="https://ripple.com/build/amendments/#shamapv2">Amendment named SHAMapV2</a> on a future date TBA. See below for details.</li>
</ul>
<h2 id="action-required">Action Required</h2>
<p><strong>If you operate a <code>rippled</code> server, then you should upgrade to version 0.33.0 by Wednesday, 2016-10-20, for service continuity.</strong></p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>The Flow amendment is expected to be activated on Wednesday, 2016-10-20. If you operate a rippled server but don&#8217;t upgrade to version 0.33.0 by that time, then your server will become amendment blocked, which means that your server:</p>
<ul>
<li>Cannot determine the validity of a ledger</li>
<li>Cannot submit or process transactions</li>
<li>Does not participate in the consensus process</li>
<li>Does not vote on future amendments</li>
</ul>
<p>If the Flow amendment is vetoed or does not pass via majority vote, then your server will not become amendment blocked and should continue to operate.</p>
<p>For instructions on updating <code>rippled</code> on supported platforms, see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code> on supported platforms</a>.</p>
<p>The md5sum for the rpm is: 5ad8fa43e9acf645a76d0a383eb5600a</p>
<p>The md5sum for the source rpm is: 38fe8c022e2fe5086f71fb9623a18064</p>
<p>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile version 0.33.0 from source</a>.</p>
<p>The first log entry should be the change setting the version:</p>
<pre><code>  commit f05321d501002cd7b8e7fba3ef361834689b3c26
  Author: Nik Bougalis &lt;nikb@bougalis.net&gt;
  Date:   Thu Sep 29 09:25:46 2016 -0700

  Set version to 0.33.0
</code></pre>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team plans to deploy version 0.33.0 to all rippled servers under its operational control, including private clusters, starting at 2:00 PM PDT on Thursday, 2016-09-29. The deployment is expected to complete within 4 hours. The network should continue to operate during deployment and no outage is expected.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>, including detailed example API calls and web tools for API testing.</p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: support@ripple.com</li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<h2 id="full-release-notes">Full Release Notes</h2>
<p>The <code>rippled</code> 0.33.0 release includes:</p>
<ul>
<li>The <a href="https://ripple.com/build/amendments/#flow">&#8220;Flow&#8221;</a> amendment. Ripple expects this amendment to be on Wednesday, 2016-10-20.</li>
<li>XRP Payment Channels. Payment channels are a new structure in the ledger designed to support <a href="https://interledger.org/">Interledger Protocol</a> trust lines as balances get substantial. Ripple expects to be activated via Amendment on a future date (TBA) with the name <a href="https://ripple.com/build/amendments/#paychan">“PayChan”</a>.</li>
<li>Changes to the hash tree structure, which <code>rippled</code> uses hash trees to represent a ledger. Ripple expects these changes expect to be available via Amendment on a future date (TBA) with the name <a href="https://ripple.com/build/amendments/#shamapv2">SHAMapV2</a>.</li>
</ul>
<p>You can <a href="https://ripple.com/build/rippled-setup/#updating-rippled">update to the new version</a> on Red Hat Enterprise Linux 7 or CentOS 7 using yum. For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile the new version from source</a>.</p>
<p><strong>New and Updated Features</strong></p>
<p>A fixed version of the new payment processing engine, which Ripple initially <a href="https://ripple.com/dev-blog/rippled-version-0-32-1-released/">announced on Friday, 2016-07-29</a>, is expected to be available via Amendment on Wednesday, 2016-10-20 with the name <a href="https://ripple.com/build/amendments/#flow">&#8220;Flow&#8221;</a>. The new payments code adds no new features, but improves efficiency and robustness in payment handling.</p>
<p>Ripple will be introducing changes to the hash tree structure that rippled uses to represent a ledger. Ripple expects these changes to be activated via Amendment on a future date (TBA) with the name <a href="https://ripple.com/build/amendments/#shamapv2">SHAMapV2</a>. The new structure is more compact and efficient than the previous version. This affects how ledger hashes are calculated, but has no other user-facing consequences. The activation of the SHAMapV2 amendment will require brief scheduled allowable downtime, while the changes to the hash tree structure are propagated by the network. Ripple will keep the community updated as we progress towards this date (TBA).</p>
<p>In an effort to make RCL more scalable and to support <a href="https://interledger.org/">Interledger Protocol</a> (ILP) trust lines as balances get more substantial, Ripple is introducing XRP Payment Channels, a new structure in the ledger, which we expect to be available via Amendment on a future date (TBA) with the name <a href="https://ripple.com/build/amendments/#paychan">“PayChan”</a>.</p>
<p>XRP Payment Channels permit scalable, intermittent, off-ledger settlement of ILP trust lines for high volume, low value payments flowing in a single direction. For bidirectional channels, an XRP Payment Channel can be used in each direction. The recipient can claim any unpaid balance at any time. The owner can top off the channel as needed. The owner must wait out a delay to close the channel to give the recipient a chance to supply any claims. The total amount paid increases monotonically as newer claims are issued.</p>
<p>The initial concept behind payment channels was discussed as <a href="https://bitcointalk.org/index.php?topic=25786.0">early as 2011</a> and the first implementation was done by Mike Hearn <a href="https://bitcoinj.github.io/working-with-micropayments">in bitcoinj</a>. Recent work being done by <a href="https://en.bitcoin.it/wiki/Lightning_Network">Lightning Network</a> has showcased examples of the many use cases for payment channels. The introduction of XRP Payment Channels allows for a more efficient integration between RCL and ILP to further support enterprise use cases for high volume, low value payments.</p>
<ul>
<li>The account_info command can now return information about queued transactions &#8211; [RIPD-1205]</li>
<li>Automatically-provided sequence numbers now consider the transaction queue &#8211; [RIPD-1206]</li>
<li>The server_info and server_state commands now include the queue-related escalated fee factor in the load_factor field of the response &#8211; [RIPD-1207]</li>
<li>A transaction with a high transaction cost can now cause transactions from the same sender queued in front of it to get into the open ledger if the transaction costs are high enough on average across all such transactions. &#8211; [RIPD-1246]</li>
<li>Reorganization: Move LoadFeeTrack to app/tx and clean up functions &#8211; [RIPD-956]</li>
<li>Reorganization: unit test source files &#8211; [RIPD-1132]</li>
<li>Reorganization: NuDB stand-alone repository &#8211; [RIPD-1163]</li>
<li>Reorganization: Add BEAST_EXPECT to Beast &#8211; [RIPD-1243]</li>
<li>Reorganization: Beast 64-bit CMake/Bjam target on Windows &#8211; [RIPD-1262]</li>
</ul>
<p><strong>Bug Fixes</strong></p>
<p>Correct an issue with PaymentSandbox::balanceHook that can return the wrong issuer, which could cause the transfer fee to be incorrectly by-passed in rare circumstances. <a href="https://github.com/ripple/rippled/commit/cf8b6be494c3537f3d6eeeb0a23d5454402688b1">(#1827)</a></p>
<p>Correct an issue with the new websocket implementation, which could cause concurrent writes on a single websocket connection. This could result in sporadic crashes when the server was under high load. <a href="https://github.com/ripple/rippled/commit/e8a7ad47487aba3490bb63359ff17cfe584cd58c">(#1806)</a></p>
<p>Add HTTP status page for new websocket implementation. <a href="https://github.com/ripple/rippled/commit/b2499c8fa015ac0121b81dcf8f1a92d9e1fd6a4b">(#1855)</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-33-0-released/">rippled version 0.33.0 Released</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Ripple Test Network Ledger Will Be Reset</title>
		<link>https://ripple.com/dev-blog/ripple-test-network-ledger-will-reset/</link>
		<pubDate>Fri, 02 Sep 2016 00:01:18 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[rcl]]></category>
		<category><![CDATA[Rippled]]></category>
		<category><![CDATA[test net]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=12915</guid>
		<description><![CDATA[<p>Summary On 2016-09-02, Ripple will be resetting the test network ledger and balances. This means that all test net order books will be deleted and all account balances will be depleted. This will have absolutely no effect on the live, production Ripple Consensus Ledger (RCL). Action Required If you have projects built or scripts running &#8230; <a href="https://ripple.com/dev-blog/ripple-test-network-ledger-will-reset/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ripple-test-network-ledger-will-reset/">Ripple Test Network Ledger Will Be Reset</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<h2 id="summary">Summary</h2>
<p>On 2016-09-02, Ripple will be resetting the <a href="https://ripple.com/build/ripple-test-net/">test network</a> ledger and balances. This means that all test net order books will be deleted and all account balances will be depleted.</p>
<p>This will have absolutely no effect on the live, production Ripple Consensus Ledger (RCL).</p>
<h2 id="action-required">Action Required</h2>
<p>If you have projects built or scripts running on test net, then new order books will have to be created and new account balances will have to be topped up.</p>
<h2 id="background">Background</h2>
<p>Ripple operates the test network to ensure new features and fixes operate as planned before rolling them out to the live network. As a matter of policy, we have always stated publicly that the test net will be be reset on a regular basis, however in practice the ledger and balances have never been reset. As the Ripple network continues to grow, we view this as necessary.</p>
<h2 id="schedule">Schedule</h2>
<p>Moving forward, we will likely be resetting the test net ledger and balances on or around the first of every month.</p>
<p>We hope that this new planned schedule will also help the community plan their development projects and tests accordingly, although the test net may also be reset from time to time without notice.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, Ask Questions, and Discuss</h2>
<p>Please refer to the Test Net page for information on generating new test net credentials and connecting to test net servers: <a href="https://ripple.com/build/ripple-test-net/">https://ripple.com/build/ripple-test-net/</a></p>
<h3 id="other-resources">Other resources:</h3>
<ul>
<li>The Ripple Forum: <a href="https://forum.ripple.com/">https://forum.ripple.com/</a></li>
<li>The Ripple Dev Blog: <a href="https://ripple.com/category/dev-blog/">https://ripple.com/category/dev-blog/</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li>XRP Chat: <a href="http://www.xrpchat.com">http://www.xrpchat.com</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ripple-test-network-ledger-will-reset/">Ripple Test Network Ledger Will Be Reset</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>The FlowV2 Amendment Was Vetoed</title>
		<link>https://ripple.com/dev-blog/flowv2-amendment-vetoed/</link>
		<pubDate>Thu, 18 Aug 2016 22:49:42 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Young]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=12812</guid>
		<description><![CDATA[<p>Background Originally, the FlowV2 amendment was planned to replace rippled’s payment processing engine with a more robust and efficient implementation. It was previously expected to become active on Wednesday, 2016-08-24. FlowV2 Was Vetoed The rippled team found a flaw in FlowV2 while testing. As a result, the Ripple network has vetoed the new payment engine &#8230; <a href="https://ripple.com/dev-blog/flowv2-amendment-vetoed/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/flowv2-amendment-vetoed/">The FlowV2 Amendment Was Vetoed</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<h2 id="background">Background</h2>
<p><a href="https://ripple.com/dev-blog/rippled-version-0-32-1-released/">Originally</a>, the <a href="https://ripple.com/build/amendments/#flowv2">FlowV2 amendment</a> was planned to replace <code>rippled</code>’s payment processing engine with a more robust and efficient implementation. It was previously expected to become active on Wednesday, 2016-08-24.</p>
<h2 id="flowv2-was-vetoed">FlowV2 Was Vetoed</h2>
<p>The <code>rippled</code> team found a flaw in FlowV2 while testing. As a result, the Ripple network has <a href="https://ripple.com/build/amendments/#amendment-voting">vetoed</a> the new payment engine amendment.</p>
<p>A corrected version of the payment processing engine has been created and is now undergoing further testing. It is scheduled to be included in a future version of <code>rippled</code> as an amendment called <a href="https://github.com/seelabs/rippled/blob/6466629f935821583eeddadbd06fabd9ea0875d0/src/ripple/app/main/Amendments.cpp#L50-L51">Flow</a>.</p>
<p>This demonstrates the robustness of Ripple’s amendment process. The review period and governance code with vetoing work as intended.</p>
<h2 id="action-recommended">Action Recommended</h2>
<p>No action is currently required. However, Ripple recommends that validator operators also veto the FlowV2 amendment to ensure it does not regain a majority.</p>
<p>To veto the amendment, add the following, single line, under the <code>[veto_amendments]</code> stanza to the <code>rippled.cfg</code> file on validators:</p>
<pre><code>5CC22CFF2864B020BD79E0E1F048F63EF3594F95E650E43B3F837EF1DF5F4B26 FlowV2
</code></pre>
<h2 id="learn-ask-questions-and-discuss">Learn, Ask Questions, and Discuss</h2>
<p>Related documentation is available in the Ripple Developer Portal, including detailed example API calls and web tools for API testing: <a href="https://ripple.com/build/">https://ripple.com/build/</a></p>
<h3 id="other-resources">Other resources:</h3>
<ul>
<li>The Ripple Forum: <a href="https://forum.ripple.com/">https://forum.ripple.com/</a></li>
<li>The Ripple Dev Blog: <a href="https://ripple.com/category/dev-blog/">https://ripple.com/category/dev-blog/</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li>XRP Chat: <a href="http://www.xrpchat.com">http://www.xrpchat.com</a></li>
</ul>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/flowv2-amendment-vetoed/">The FlowV2 Amendment Was Vetoed</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>The FlowV2 Amendment Is Open For Voting</title>
		<link>https://ripple.com/dev-blog/flowv2-amendment-open-voting/</link>
		<pubDate>Wed, 10 Aug 2016 16:00:35 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Young]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[amendments]]></category>
		<category><![CDATA[rcl]]></category>
		<category><![CDATA[Rippled]]></category>
		<category><![CDATA[XRP]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=12689</guid>
		<description><![CDATA[<p>The FlowV2 Amendment is now open for voting. This amendment replaces the payment processing engine with a more robust and efficient rewrite called the FlowV2 engine. The new version of the payment processing engine is intended to follow the same rules as the old engine. However, the new engine occasionally produces different results due to &#8230; <a href="https://ripple.com/dev-blog/flowv2-amendment-open-voting/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/flowv2-amendment-open-voting/">The FlowV2 Amendment Is Open For Voting</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The <a href="https://ripple.com/build/amendments/#flowv2">FlowV2 Amendment</a> is now open for voting. This amendment replaces the payment processing engine with a more robust and efficient rewrite called the FlowV2 engine. The new version of the payment processing engine is intended to follow the same rules as the old engine. However, the new engine occasionally produces different results due to floating point rounding.</p>
<p>The FlowV2 Engine also makes it easier to improve and expand the payment engine with further Amendments. Ripple’s validators will vote in favor of the FlowV2 amendment. We expect the new feature to become active on Wednesday, 2016-08-24.</p>
<h2 id="actions-required">Actions Required</h2>
<p>If you operate a <code>rippled</code> server, you should upgrade to version 0.32.1 by Wednesday, 2016-08-24 for the best performance.</p>
<p><strong>Note:</strong> A previous version of this post incorrectly stated that backend software must be updated to construct transactions for the new payment processing engine. The process of creating and submitting transactions for the FlowV2 payment engine is the same as for the previous payment engine.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server but don’t upgrade to version 0.32.1 by Wednesday, 2016-08-24 (when FlowV2 is expected to become available via Amendment) then your server will become &#8220;amendment blocked&#8221; and unable to process transactions or evaluate the validity of ledgers.</p>
<p>For instruction on updating <code>rippled</code> on supported platforms, see: <a href="https://ripple.com/build/rippled-setup/#updating-rippled">https://ripple.com/build/rippled-setup/#updating-rippled</a></p>
<p>For other platforms, please compile version 0.32.1 from source. For details, see <a href="https://wiki.ripple.com/Rippled_build_instructions">https://wiki.ripple.com/Rippled_build_instructions</a></p>
<h2 id="learn-ask-questions-and-discuss">Learn, Ask Questions, and Discuss</h2>
<p>Related documentation is available in the Ripple Developer Portal, including detailed example API calls and web tools for API testing: <a href="https://ripple.com/build/">https://ripple.com/build/</a></p>
<h2 id="other-resources">Other Resources</h2>
<ul>
<li>The Ripple Forum: <a href="https://forum.ripple.com/">https://forum.ripple.com/</a></li>
<li>The Ripple Dev Blog: <a href="https://ripple.com/category/dev-blog/">https://ripple.com/category/dev-blog/</a></li>
<li>Ripple Technical Services: support@ripple.com</li>
<li>XRP Chat: <a href="http://www.xrpchat.com">http://www.xrpchat.com</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/flowv2-amendment-open-voting/">The FlowV2 Amendment Is Open For Voting</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled version 0.32.1 Released</title>
		<link>https://ripple.com/dev-blog/rippled-version-0-32-1-released/</link>
		<pubDate>Sat, 30 Jul 2016 03:38:52 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=12601</guid>
		<description><![CDATA[<p>Ripple is proud to announce the release of rippled version 0.32.1, which introduces several enhancements that improve the reliability and scalability of the Ripple Consensus Ledger. Ripple recommends that all server operators upgrade to version 0.32.1 by Wednesday, 2016-08-24, for the best performance. Highlights of this release include: A new, optional WebSocket implementation based on &#8230; <a href="https://ripple.com/dev-blog/rippled-version-0-32-1-released/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-32-1-released/">rippled version 0.32.1 Released</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple is proud to announce the release of <code>rippled</code> version 0.32.1, which introduces several enhancements that improve the reliability and scalability of the Ripple Consensus Ledger. Ripple recommends that all server operators upgrade to version 0.32.1 by Wednesday, 2016-08-24, for the best performance.</p>
<p>Highlights of this release include:</p>
<ul>
<li>A new, optional WebSocket implementation based on <a href="https://github.com/vinniefalco/Beast">Beast</a>. See below for details.</li>
<li>An improved version of the payment code, which we expect to be available via an <a href="https://ripple.com/build/amendments/#flowv2">Amendment named &#8220;FlowV2&#8221;</a> on Wednesday, 2016-08-24. See below for details.</li>
</ul>
<h2 id="actions-required">Actions Required</h2>
<ol>
<li>If you operate a <code>rippled</code> server, you should upgrade to version 0.32.1 by Wednesday, 2016-08-24, for the best performance.</li>
<li>If you have backend software which constructs and submits transactions to the Ripple network, you need to adapt it to correctly use the network’s new payment engine.</li>
</ol>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a rippled server but don’t upgrade to version 0.32.1 by Wednesday, 2016-08-24, when FlowV2 is expected to become available via Amendment, then your server might lose synchronization with the rest of the upgraded network for brief periods of time. That is, the local view of ledgers may be slightly behind the rest of the network. Any rippled server operator running versions prior to 0.32.1, will also become amendment blocked.</p>
<p>For instruction on updating rippled on supported platforms, please see here: <a href="https://ripple.com/build/rippled-setup/#updating-rippled">https://ripple.com/build/rippled-setup/#updating-rippled</a></p>
<p>The md5sum for the rpm is: 5dcdcef01f3cfc452b0b503eaaeb07bb<br />
The md5sum for the source rpm is: 3180fca1e83001307346f85628823a9c</p>
<p>For other platforms, please compile version 0.32.1 from source. See <a href="https://wiki.ripple.com/Rippled_build_instructions">https://wiki.ripple.com/Rippled_build_instructions</a> for details.</p>
<p>The first log entry should be the change setting the version:</p>
<pre><code>commit 1ff972fbd3b82f0f7062f05f64f1abd5e274a7bc
Author: Nik Bougalis &lt;nikb@bougalis.net&gt;
Date:   Fri Jul 29 12:52:26 2016 -0700

    Set version to 0.32.1
</code></pre>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team plans to deploy version 0.32.1 to all rippled servers under its operational control, including private clusters, starting at 1:00 PM PDT on Thursday, 2016-08-04. The deployment is expected to complete within 4 hours. The network will continue operating during deployment and no outage is expected.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Related documentation is available in the Ripple Developer Portal, including detailed example API calls and web tools for API testing: <a href="https://ripple.com/build/">https://ripple.com/build/</a></p>
<p>Other resources:</p>
<ul>
<li><a href="https://forum.ripple.com/">The Ripple Forum</a></li>
<li><a href="https://ripple.com/category/dev-blog/">The Ripple Dev Blog</a></li>
<li>Ripple Technical Services: support@ripple.com</li>
<li><a href="http://www.xrpchat.com/">XRP Chat</a></li>
</ul>
<h2 id="full-release-notes">Full Release Notes</h2>
<p>The <code>rippled</code> 0.32.1 release includes an improved version of the payment code, which we expect to be available via Amendment on Wednesday, 2016-08-24 with the name FlowV2, and a completely new implementation of the WebSocket protocol for serving clients.</p>
<p>You can <a href="https://ripple.com/build/rippled-setup/#updating-rippled">update to the new version</a> on Red Hat Enterprise Linux 7 or CentOS 7 using yum. For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile the new version from source</a>.</p>
<p><strong>New and Updated Features</strong></p>
<p>An improved version of the payment processing engine, which we expect to be available via Amendment on Wednesday, 2016-08-24 with the name “FlowV2”. The new payments code adds no new features, but improves efficiency and robustness in payment handling.</p>
<p>The FlowV2 code may occasionally produce slightly different results than the old payment processing engine due to the effects of floating point rounding. Once FlowV2 is enabled on the network then old servers without the FlowV2 amendment will lose sync more frequently because of these differences.</p>
<p><strong>Beast WebSocket</strong></p>
<p>A completely new implementation of the WebSocket protocol for serving clients is available as a configurable option for <code>rippled</code> administrators. To enable this new implementation, change the “protocol” field in <code>rippled.cfg</code> from “ws” to “ws2” (or from “wss” to “wss2” for Secure WebSockets), as illustrated in this example:</p>
<pre><code>[port_ws_public]
port = 5006
ip = 0.0.0.0
protocol = wss2
</code></pre>
<p>The new implementation paves the way for increased reliability and future performance when submitting commands over WebSocket. The behavior and syntax of commands should be identical to the previous implementation. Please report any issues to support@ripple.com. A future version of rippled will remove the old WebSocket implementation, and use only the new one.</p>
<p><strong>Bug fixes</strong></p>
<p>Fix a non-exploitable, intermittent crash in some client pathfinding requests (RIPD-1219)</p>
<p>Fix a non-exploitable crash caused by a race condition in the HTTP server. (RIPD-1251)</p>
<p>Fix bug that could cause a previously fee queued transaction to not be relayed after being in the open ledger for an extended time without being included in a validated ledger. Fix bug that would allow an account to have more than the allowed limit of transactions in the fee queue. Fix bug that could crash debug builds in rare cases when replacing a dropped transaction. (RIPD-1200)</p>
<p>Remove incompatible OS X switches in Test.py (RIPD-1250)</p>
<p>Autofilling a transaction fee (sign / submit) with the experimental <code>x-queue-okay</code> parameter will use the user’s maximum fee if the open ledger fee is higher, improving queue position, and giving the tx more chance to succeed. (RIPD-1194)</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-version-0-32-1-released/">rippled version 0.32.1 Released</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>TrustSetAuth is Now Available</title>
		<link>https://ripple.com/dev-blog/trustsetauth-now-available/</link>
		<pubDate>Wed, 20 Jul 2016 00:44:51 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Young]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=12540</guid>
		<description><![CDATA[<p>As predicted previously, TrustSetAuth became available on the Ripple Consensus Ledger this afternoon (PDT) in ledger 22,721,281 (2016-07-19T15:10). This amendment allows pre-authorization of accounting relationships (zero-balance trust lines) when using Authorized Accounts. Action Required To remain operational, all rippled instances running on a version earlier than 0.31.0 must be upgraded to rippled server version 0.32.0 &#8230; <a href="https://ripple.com/dev-blog/trustsetauth-now-available/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/trustsetauth-now-available/">TrustSetAuth is Now Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>As <a href="https://ripple.com/dev-blog/trustsetauth-will-soon-available/">predicted previously</a>, TrustSetAuth became available on the Ripple Consensus Ledger this afternoon (PDT) in ledger 22,721,281 (<a href="https://www.ripplecharts.com/#/transactions/0E589DE43C38AED63B64FF3DA87D349A038F1821212D370E403EB304C76D70DF">2016-07-19T15:10</a>).</p>
<p>This amendment allows pre-authorization of accounting relationships (zero-balance trust lines) when using Authorized Accounts.</p>
<h2 id="action-required">Action Required</h2>
<p>To remain operational, all <code>rippled</code> instances running on a version earlier than 0.31.0 must be <a href="https://ripple.com/build/rippled-setup/#updating-rippled">upgraded</a> to <code>rippled</code> server <strong><a href="https://ripple.com/dev-blog/rippled-0-32-0-released/">version 0.32.0</a></strong> immediately.</p>
<p>See <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code></a> for more information about upgrading <code>rippled</code>.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server on a version earlier than 0.31.0 but do not upgrade to version 0.32.0 immediately, then your server will not be able to synchronize with the rest of the upgraded network.</p>
<h2 id="why-is-the-trustsetauth-amendment-important">Why is the TrustSetAuth Amendment Important?</h2>
<p>With this amendment enabled, currency issuers can authorize other addresses to hold their issued currencies without waiting for the counterparty to take action. Without the amendment enabled, currency issuers cannot authorize other addresses to hold their issued currencies unless the currency holder first creates an accounting relationship with the currency issuer and sets a limit with a TrustSet transaction.</p>
<h2 id="learn-more">Learn More</h2>
<p>For more information, please see the TrustSetAuth documentation in the <a href="https://ripple.com/build/">Ripple Developer Portal</a>:</p>
<ul>
<li><a href="https://ripple.com/build/gateway-guide/#authorized-accounts">Authorized Accounts</a></li>
<li><a href="https://ripple.com/build/amendments/#trustsetauth">Amendments</a></li>
</ul>
<p>To continue receiving updates about the rippled server, please subscribe to the Ripple Server Google Group: <a href="https://groups.google.com/forum/#!forum/ripple-server">https://groups.google.com/forum/#!forum/ripple-server</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/trustsetauth-now-available/">TrustSetAuth is Now Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>TrustSetAuth Will Soon Be Available</title>
		<link>https://ripple.com/dev-blog/trustsetauth-will-soon-available/</link>
		<pubDate>Tue, 12 Jul 2016 23:31:41 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[amendments]]></category>
		<category><![CDATA[authorized accounts]]></category>
		<category><![CDATA[gateways]]></category>
		<category><![CDATA[rcl]]></category>
		<category><![CDATA[trustsetauth]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=12502</guid>
		<description><![CDATA[<p>This notice is for all validator operators, and may be useful for gateways that utilize the Authorized Accounts feature. A majority of trusted validators voted to enable the TrustSetAuth amendment, which is scheduled to become active on the protocol on Tuesday, 2016-07-19. This amendment allows pre-authorization of accounting relationships (zero-balance trust lines) when using Authorized &#8230; <a href="https://ripple.com/dev-blog/trustsetauth-will-soon-available/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/trustsetauth-will-soon-available/">TrustSetAuth Will Soon Be Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>This notice is for all validator operators, and may be useful for gateways that utilize the Authorized Accounts feature.</p>
<p>A majority of trusted validators voted to enable the TrustSetAuth amendment, which is scheduled to become active on the protocol on Tuesday, 2016-07-19. This amendment allows pre-authorization of accounting relationships (zero-balance trust lines) when using Authorized Accounts.</p>
<p>With this amendment enabled, currency issuers can authorize other addresses to hold their issued currencies without waiting for the other addresses to take action. Without the amendment, currency holders must first create the accounting relationship with the issuer by setting a limit with a TrustSet transaction.</p>
<h2 id="action-required">Action Required</h2>
<p>To remain operational, all <code>rippled</code> instances running on the version below 0.31.0 must be upgraded to <code>rippled</code> server <strong><a href="https://ripple.com/dev-blog/rippled-0-32-0-released/">version 0.32.0</a></strong> by Tuesday, 2016-07-19.</p>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server on a version below 0.31.0 but do not upgrade to <a href="https://ripple.com/dev-blog/rippled-0-32-0-released/">version 0.32.0</a> by Tuesday, 2016-07-19, then your server will not be able to synchronize with the rest of the upgraded network.</p>
<h2 id="learn-more">Learn More</h2>
<p>For more information, please see the documentation in the Ripple Developer Portal:</p>
<ul>
<li><a href="https://ripple.com/build/rippled-setup/#updating-rippled">Upgrading <code>rippled</code></a></li>
<li><a href="https://ripple.com/build/gateway-guide/#authorized-accounts">Authorized Accounts</a></li>
<li><a href="https://ripple.com/build/amendments/#trustsetauth">TrustSetAuth Amendment</a></li>
</ul>
<p>To continue receiving updates about the rippled server, please subscribe to the Ripple Server Google Group: <a href="https://groups.google.com/forum/#!forum/ripple-server">https://groups.google.com/forum/#!forum/ripple-server</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/trustsetauth-will-soon-available/">TrustSetAuth Will Soon Be Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>The TrustSetAuth Amendment Is Open For Voting</title>
		<link>https://ripple.com/dev-blog/trustsetauth-amendment-open-voting/</link>
		<pubDate>Tue, 05 Jul 2016 23:04:59 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[amendments]]></category>
		<category><![CDATA[authorized accounts]]></category>
		<category><![CDATA[rcl]]></category>
		<category><![CDATA[Rippled]]></category>
		<category><![CDATA[trustsetauth]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=12481</guid>
		<description><![CDATA[<p>This notice is for all validator operators, and may be relevant to gateways that utilize the Authorized Account feature. The new TrustSetAuth amendment is open for voting now. This amendment allows pre-authorization of accounting relationships (zero-balance trust lines) when using Authorized Accounts. With this amendment enabled, currency issuers can authorize other addresses to hold their &#8230; <a href="https://ripple.com/dev-blog/trustsetauth-amendment-open-voting/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/trustsetauth-amendment-open-voting/">The TrustSetAuth Amendment Is Open For Voting</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>This notice is for all validator operators, and may be relevant to gateways that utilize the Authorized Account feature.</p>
<p>The new <a href="https://ripple.com/build/amendments/#trustsetauth">TrustSetAuth amendment</a> is open for voting now. This amendment allows pre-authorization of accounting relationships (zero-balance trust lines) when using <a href="https://ripple.com/build/gateway-guide/#authorized-accounts">Authorized Accounts</a>. With this amendment enabled, currency issuers can authorize other addresses to hold their issued currencies without waiting for the other addresses to take action. Without the amendment, currency holders must first create the accounting relationship with the issuer by setting a limit with a <a href="https://ripple.com/build/transactions/#trustset">TrustSet transaction</a>.</p>
<p>Ripple&#8217;s validators will vote in favor of the TrustSetAuth amendment, and we expect the new feature to become active by 2016-07-19.</p>
<p>For more information, see the following articles in the Ripple Developer Center:</p>
<ul>
<li>Authorized Accounts: <a href="https://ripple.com/build/gateway-guide/#authorized-accounts">https://ripple.com/build/gateway-guide/#authorized-accounts</a></li>
<li>Amendments: <a href="https://ripple.com/build/amendments/">https://ripple.com/build/amendments/</a></li>
</ul>
<p>To continue receiving updates about the rippled server, please subscribe to the Ripple Server Google Group:</p>
<p><a href="https://groups.google.com/forum/#!forum/ripple-server">https://groups.google.com/forum/#!forum/ripple-server</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/trustsetauth-amendment-open-voting/">The TrustSetAuth Amendment Is Open For Voting</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Multi-Signing is Now Available</title>
		<link>https://ripple.com/dev-blog/multi-signing-now-available/</link>
		<pubDate>Tue, 28 Jun 2016 02:00:32 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=12434</guid>
		<description><![CDATA[<p>As predicted previously, multi-signing became available on the Ripple Consensus Ledger this afternoon in Pacific time (2016-06-27T11:34:41Z, to be exact). Multi-signing provides more flexibility for sending transactions from your Ripple address. You can use multi-signing alongside a master key pair or regular key pair, or you can disable your other keys and use multi-signing exclusively. &#8230; <a href="https://ripple.com/dev-blog/multi-signing-now-available/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/multi-signing-now-available/">Multi-Signing is Now Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>As <a href="https://ripple.com/dev-blog/multi-signing-will-soon-available/">predicted previously</a>, multi-signing became available on the Ripple Consensus Ledger this afternoon in Pacific time (<a href="https://www.ripplecharts.com/#/transactions/168F8B15F643395E59B9977FC99D6310E8708111C85659A9BAF8B9222EEAC5A7">2016-06-27T11:34:41Z</a>, to be exact).</p>
<p>Multi-signing provides more flexibility for sending transactions from your Ripple address. You can use multi-signing alongside a master key pair or regular key pair, or you can disable your other keys and use multi-signing exclusively. You can set and update a list of up to 8 signers, with customizable weights and quorum enabling many different use cases. The members of your signer list can be any Ripple addresses, whether they&#8217;re funded addresses in the ledger or not.</p>
<p>Institutional users, in particular, can use the greater security of requiring multiple keys stored in different places to protect high-value addresses and large XRP holdings. Makers and experimenters should find lots of potential applications relating to internet-of-things and smart contracts. Here are just a few ideas of ways you might set up multi-signing for an address:</p>
<ul>
<li><strong>N-factor Auth:</strong> Store 2 or more keys on different devices, and require all the devices to sign each transaction.</li>
<li><strong>M-of-N:</strong> Give keys to multiple people, and require a majority of signers to sign each transaction.</li>
<li><strong>Delegate a backup plan:</strong> Designate a team of people who can send transactions for you by working together, in case you&#8217;re unavailable. Keep using single signatures for normal business.</li>
<li><strong>Primary and Approvals:</strong> Use the weights in your signer list to require a specific signer along with at least one other.</li>
</ul>
<p>The Ripple Consensus Ledger&#8217;s multi-signing feature also allows signers to independently rotate their keys, for even greater security. Here&#8217;s a brief look at how:</p>
<ol>
<li>Include the signer&#8217;s address in your SignerList.</li>
<li>Fund the signer&#8217;s address in the ledger.</li>
<li>Assign a <a href="https://ripple.com/build/transactions/#setregularkey">Regular Key Pair</a> to the signer&#8217;s address and disable its master key. (Funded addresses can only sign using their master key pair if it&#8217;s not disabled.)</li>
<li>Have that signer use its regular key pair to contribute to your multi-signatures.</li>
</ol>
<h2 id="further-reading">Further Reading</h2>
<ul>
<li><a href="https://ripple.com/build/transactions/#multi-signing">Multi-Signing Summary</a></li>
<li><a href="https://ripple.com/build/how-to-multi-sign/">How to Multi-Sign</a></li>
<li><a href="https://ripple.com/build/amendments/#multisign">MultiSign Amendment</a></li>
</ul>
<h2 id="other-resources">Other resources:</h2>
<ul>
<li>The Ripple Forum: <a href="https://forum.ripple.com/">https://forum.ripple.com/</a></li>
<li>The Ripple Dev Blog: <a href="https://ripple.com/category/dev-blog/">https://ripple.com/category/dev-blog/</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li>XRP Chat: <a href="http://www.xrpchat.com/">http://www.xrpchat.com/</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/multi-signing-now-available/">Multi-Signing is Now Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled 0.32.0 has been released</title>
		<link>https://ripple.com/dev-blog/rippled-0-32-0-released/</link>
		<pubDate>Mon, 27 Jun 2016 21:23:51 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[rcl]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[release announcement]]></category>
		<category><![CDATA[Rippled]]></category>
		<category><![CDATA[transaction queue]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=12429</guid>
		<description><![CDATA[<p>Ripple is proud to announce the release of rippled version 0.32.0. This release introduces several enhancements that improve the reliability and scalability of the Ripple Consensus Ledger. Ripple recommends that all server operators upgrade to the new version. Highlights of this release include: The transaction queue now supports batching and can hold up to 10 &#8230; <a href="https://ripple.com/dev-blog/rippled-0-32-0-released/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-0-32-0-released/">rippled 0.32.0 has been released</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple is proud to announce the release of <code>rippled</code> version 0.32.0. This release introduces several enhancements that improve the reliability and scalability of the Ripple Consensus Ledger. Ripple recommends that all server operators upgrade to the new version.</p>
<p>Highlights of this release include:</p>
<ul>
<li>The transaction queue now supports batching and can hold up to 10 transactions per account, allowing users to queue multiple transactions for processing when the network load is high. This encourages liquidity for XRP since important transactions now have a more reliable way of getting into the ledger. For more information, see <a href="https://ripple.com/build/transaction-cost/#queued-transactions">Queued Transactions</a> in the Ripple Developer Portal.</li>
<li>The <code>server_info</code> and <code>server_state</code> commands now include information on transaction cost multipliers. Customers who want to robustly submit transactions now have additional tools for accurately setting the fee based on changing network conditions. Furthermore, the <code>fee</code> command is now available to unprivileged users. For more information, see the <a href="https://ripple.com/build/rippled-apis/#api-methods"><code>rippled</code> API Method Reference</a> in the Ripple Developer Portal.</li>
<li>There&#8217;s a new WebSocket implementation based on <a href="https://github.com/vinniefalco/Beast">Beast</a>. Use of this implementation is optional. A future version of <code>rippled</code> will make this WebSocket implementation the default, with the old implementation removed.</li>
</ul>
<p>Read the complete <a href="https://github.com/ripple/rippled/releases/tag/0.32.0">release notes in GitHub</a>.</p>
<h2 id="actions-required">Actions Required</h2>
<ol>
<li>If you operate a <code>rippled</code> server, you should upgrade to version 0.32.0 for the best performance.</li>
<li>If you have backend software which constructs and submits transactions to the Ripple network, you may need to adapt it to correctly use the network’s new transaction queue mechanism.</li>
</ol>
<h2 id="impact-of-not-upgrading">Impact of Not Upgrading</h2>
<p>If you operate a <code>rippled</code> server but don’t upgrade to version 0.32.0, your server might lose synchronization with the rest of the upgraded network for brief periods of time. That is, the local view of ledgers may be slightly behind the rest of the network.</p>
<p>For instruction on updating rippled on supported platforms, please see <a href="https://ripple.com/build/rippled-setup/#updating-rippled">Updating <code>rippled</code></a> in the Ripple Developer Center.</p>
<p>The md5sum for the rpm is: <strong>1b37fd80fd869e42a715f17a9e30c81a</strong>.<br />
The md5sum for the source rpm is: <strong>d43f4d371416b213d6197fb1c630cf44</strong>.</p>
<p>For other platforms, please compile version 0.32.0 from source. See <a href="https://wiki.ripple.com/Rippled_build_instructions"><code>rippled</code> Build Instructions</a> in the Ripple Wiki for details.</p>
<p>The first log entry should be the change setting the version:</p>
<pre><code>commit d22eb0caa25ecfbd373cc9af0347e56031a23646
Author: seelabs &lt;scott.determan@yahoo.com&gt;
Date:   Fri Jun 24 11:30:09 2016 -0400

    Set version to 0.32.0
</code></pre>
<h2 id="network-update">Network Update</h2>
<p>The Ripple operations team plans to deploy version 0.32.0  to all rippled servers under its operational control, including private clusters, starting at 1:00 PM PDT on Wednesday, 2016-06-29. The deployment is expected to complete within 4 hours.</p>
<h2 id="learn-ask-questions-and-discuss">Learn, ask questions, and discuss</h2>
<p>Ripple supported documentation including detailed example API calls and web tools for API testing are located on the Ripple Developer Portal: <a href="https://ripple.com/build/">https://ripple.com/build/</a></p>
<h3 id="other-resources">Other resources:</h3>
<ul>
<li>The Ripple Forum: <a href="https://forum.ripple.com/">https://forum.ripple.com/</a></li>
<li>The Ripple Dev Blog: <a href="https://ripple.com/category/dev-blog/">https://ripple.com/category/dev-blog/</a></li>
<li>Ripple Technical Services: <a href="mailto:support@ripple.com">support@ripple.com</a></li>
<li>XRP Chat: <a href="http://www.xrpchat.com/">http://www.xrpchat.com/</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-0-32-0-released/">rippled 0.32.0 has been released</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Multi-Signing Will Soon Be Available</title>
		<link>https://ripple.com/dev-blog/multi-signing-will-soon-available/</link>
		<pubDate>Tue, 21 Jun 2016 21:02:47 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[amendments]]></category>
		<category><![CDATA[multi-signing]]></category>
		<category><![CDATA[rcl]]></category>
		<category><![CDATA[Rippled]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=12376</guid>
		<description><![CDATA[<p>The multi-signing amendment is currently supported by the majority of voting validators on Ripple, and is scheduled to become active on the protocol on Monday, 2016-06-27. For more information, please see the multi-signing documentation in the Ripple Developer Portal: How to Multi-Sign MultiSign Amendment Information To continue receiving updates about the rippled server, please subscribe &#8230; <a href="https://ripple.com/dev-blog/multi-signing-will-soon-available/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/multi-signing-will-soon-available/">Multi-Signing Will Soon Be Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="content">
<p>The multi-signing amendment is currently supported by the majority of voting validators on Ripple, and is scheduled to become active on the protocol on Monday, <strong>2016-06-27</strong>. For more information, please see the multi-signing documentation in the Ripple Developer Portal:</p>
<ul>
<li><a href="https://ripple.com/build/how-to-multi-sign/">How to Multi-Sign</a></li>
<li><a href="https://ripple.com/build/amendments/#multisign">MultiSign Amendment Information</a></li>
</ul>
<p>To continue receiving updates about the <code>rippled</code> server, please subscribe to the Ripple Server Google Group:</p>
<p><a href="https://groups.google.com/forum/#!forum/ripple-server">https://groups.google.com/forum/#!forum/ripple-server</a></p>
</p></div>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/multi-signing-will-soon-available/">Multi-Signing Will Soon Be Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Data API v2.2 Released</title>
		<link>https://ripple.com/dev-blog/data-api-v2-2-released/</link>
		<pubDate>Wed, 15 Jun 2016 23:03:33 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=12354</guid>
		<description><![CDATA[<p>The Data team is proud to announce the release of the Ripple Data API v2.2! This release includes lots of new features, including a total of 15 new methods, improvements in data quality, and documentation. One of the biggest changes in the new version is the incorporation of data relating to the Ripple network itself. &#8230; <a href="https://ripple.com/dev-blog/data-api-v2-2-released/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/data-api-v2-2-released/">Data API v2.2 Released</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="content">
<p>The Data team is proud to announce the release of the <a href="https://github.com/ripple/rippled-historical-database/releases/tag/v2.2.0">Ripple Data API v2.2</a>! This release includes lots of new features, including a total of 15 new methods, improvements in data quality, and documentation.</p>
<p>One of the biggest changes in the new version is the incorporation of data relating to the Ripple network itself. This includes expanded information on <a href="https://ripple.com/build/data-api-v2/#get-daily-validator-reports">validator reports</a>, <a href="https://ripple.com/build/data-api-v2/#get-topology">network topology</a>, and the <a href="https://ripple.com/build/data-api-v2/#get-transaction-costs">XRP transaction costs</a> currently being paid to the network. You can interact with all of the new methods using our <a href="https://ripple.com/build/data-api-tool/">Data API Tool</a>.</p>
<p>Also part of the new release is a method to calculate the <a href="https://ripple.com/build/data-api-v2/#get-xrp-distribution">distribution of XRP</a> from Ripple (the company) to others, along with the total amount of XRP in existence. The <a href="https://ripple.com/xrp-portal/">XRP Portal</a> is already using the new method to report the most recent totals automatically.</p>
<p>For more information, check out the following resources:</p>
<ul>
<li><a href="https://ripple.com/build/data-api-v2/">Data API Docs in the Ripple Developer Center</a></li>
<li><a href="https://github.com/ripple/rippled-historical-database">Data API source code</a></li>
<li><a href="https://www.ripplecharts.com/">Data visualizations on Ripple Charts</a></li>
</ul>
<p>We look forward to seeing what you developers can do with all this data!</p>
</p></div>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/data-api-v2-2-released/">Data API v2.2 Released</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled 0.31.2 and Other Updates</title>
		<link>https://ripple.com/dev-blog/rippled-0-31-2-updates/</link>
		<pubDate>Fri, 10 Jun 2016 22:59:36 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=12317</guid>
		<description><![CDATA[<p>The rippled team is proud to announce a bundle of related news items: rippled release 0.31.2 Amendments system Transaction cost changes Multi-signing rippled 0.31.2 rippled 0.31 introduced several new features, including Amendments, Multi-Signing, a transaction queue, and changes to transaction cost escalation. Version 0.31.2 includes important fixes for security, stability, and compatibility with the official &#8230; <a href="https://ripple.com/dev-blog/rippled-0-31-2-updates/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-0-31-2-updates/">rippled 0.31.2 and Other Updates</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The <code>rippled</code> team is proud to announce a bundle of related news items:</p>
<ul>
<li><a href="#rippled-0312"><code>rippled</code> release 0.31.2</a></li>
<li><a href="#amendments-system">Amendments system</a></li>
<li><a href="#transaction-cost-changes">Transaction cost changes</a></li>
<li><a href="#multi-signing">Multi-signing</a></li>
</ul>
<h2 id="rippled-0312">rippled 0.31.2</h2>
<p><code>rippled</code> 0.31 introduced several new features, including Amendments, Multi-Signing, a transaction queue, and changes to transaction cost escalation. Version 0.31.2 includes important fixes for security, stability, and compatibility with the official validators run by Ripple (the company).</p>
<p>We recommend all users, especially validators, upgrade as soon as possible:</p>
<ul>
<li>For Red Hat Enterprise Linux 7 or CentOS, you can <a href="https://ripple.com/build/rippled-setup/#updating-rippled">update to the new version using <code>yum</code></a>.</li>
<li>For other platforms, please <a href="https://wiki.ripple.com/Rippled_build_instructions">compile the new version from source</a>.</li>
<li>For more information, see the <code>rippled</code> <a href="https://github.com/ripple/rippled/releases/tag/0.31.2">0.31.2 release notes</a> and <a href="https://github.com/ripple/rippled/releases/tag/0.31.0">0.31.0 release notes</a> on GitHub.</li>
</ul>
<h2 id="amendments-system">Amendments System</h2>
<p>Amendments are a new feature introduced in <code>rippled</code> 0.31.0. The Amendments system provides a means of introducing new features to the decentralized Ripple consensus network without causing disruptions. The first amendment, FeeEscalation, is already live, having been approved on 2016-05-05. This amendment provides improvements to the handling of transactions when the network is under load.</p>
<p>The next amendment, MultiSign, introduces a way to authorize transactions using multiple signatures, for greater security and flexibility.</p>
<p>For more information, see <a href="https://ripple.com/build/amendments/">Amendments in the Ripple Developer Center</a>.</p>
<h2 id="transaction-cost-changes">Transaction Cost Changes</h2>
<p>We have brought two significant changes to <a href="https://ripple.com/build/transaction-cost/">transaction costs</a> in the <code>rippled</code> 0.31 releases. First, the FeeEscalation amendment changed the way the network escalates transaction costs under load. Second, <code>rippled</code> 0.31.2 has decreased the minimum transaction cost back to its previous value of 0.00001 XRP (10 drops).</p>
<p>Previously, transaction costs tended to spike rapidly when the network was under load and drop quickly when the backlog was processed, causing network volatility. As a temporary fix, Ripple configured the official validating servers to always report a load multiplier of 1000 or more. This effectively increased transaction costs from 0.00001 XRP to 0.01 XRP.</p>
<p>The FeeEscalation amendment, introduced in <code>rippled</code> 0.31.0 and approved by consensus on 2016-05-05, fixes this problem. The new algorithm dynamically adjusts the transaction cost based on the number of unconfirmed transactions relative to the number the network is able to confirm each round. The new algorithm reduces volatility and gives users more control over the XRP costs they pay for transactions.</p>
<p>An integral part of the new transaction cost algorithm is a transaction queue. If transaction costs rise because of high network load, users can submit low priority, legitimate transactions to the transaction queue to be considered for future ledgers when load decreases and transaction costs drop. The queue also makes transactions submitted during high traffic periods more likely to succeed.</p>
<p>With the new algorithm in place, the transaction cost escalation actually works better without the load multiplier artificially increased. Consequently, <code>rippled</code> version 0.31.2 removes the 1000× minimum from the load multiplier. Effective immediately, the minimum transaction cost is back to 0.00001 XRP. When load on the consensus network is higher, you can queue a transaction for a later ledger by paying this cost, or pay a higher XRP cost to get into the current open ledger. (How much higher depends on how large the transaction backlog is.)</p>
<h2 id="multi-signing">Multi-signing</h2>
<p>The <code>rippled</code> team is excited to announce that the next feature to be enabled by Amendment is the ability to multi-sign transactions. Multi-signing is a new way of authorizing transactions for the Ripple Consensus Ledger, using multiple secret keys. After setting up multi-signing for an account, you can put the master secret in cold storage, or even disable the master key entirely. With multiple secret keys required to authorize a multi-signature, you can improve security in many ways.</p>
<p>Ripple plans to configure its validators to start voting in favor of the MultiSign amendment on 2016-06-13. If the feature maintains a majority for two weeks after that, multi-signing will become an active part of the protocol starting <strong>2016-06-27</strong>.</p>
<p>For more information, see the following articles in the Ripple Developer Center:</p>
<ul>
<li><a href="https://ripple.com/build/amendments/#multisign">MultiSign Amendment</a></li>
<li><a href="https://ripple.com/build/transactions/#multi-signing">Multi-Signing transaction reference</a></li>
<li><a href="https://ripple.com/build/how-to-multi-sign/">How to Multi-Sign Tutorial</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-0-31-2-updates/">rippled 0.31.2 and Other Updates</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Introducing RippleAPI</title>
		<link>https://ripple.com/dev-blog/introducing-rippleapi/</link>
		<pubDate>Sat, 13 Feb 2016 01:24:32 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=11636</guid>
		<description><![CDATA[<p>Ripple is proud to announce an improved, unified interface to the Ripple Consensus Ledger: the new RippleAPI! RippleAPI merges ripple-lib and Ripple-REST into a single high-level interface for JavaScript that is fully-documented, fully-tested, schema-validated, stateless, and easier to use. If you’re excited to get started with the new RippleAPI right away, jump right in with &#8230; <a href="https://ripple.com/dev-blog/introducing-rippleapi/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/introducing-rippleapi/">Introducing RippleAPI</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="content">
<p>Ripple is proud to announce an improved, unified interface to the Ripple Consensus Ledger: the new <strong>RippleAPI</strong>! RippleAPI merges ripple-lib and Ripple-REST into a single high-level interface for JavaScript that is fully-documented, fully-tested, schema-validated, stateless, and easier to use.</p>
<p>If you’re excited to get started with the new RippleAPI right away, jump right in with the following resources:</p>
<ol>
<li><a href="https://ripple.com/build/rippleapi-beginners-guide/">RippleAPI Beginners Guide</a> &#8211; A tutorial that introduces the basics of RippleAPI, even if you have minimal prior experience writing JavaScript applications.</li>
<li><a href="https://ripple.com/build/rippleapi/">RippleAPI Reference</a> &#8211; A thorough reference of all methods and features contained in the new API.</li>
<li><a href="https://github.com/ripple/ripple-lib/tree/develop/docs/samples">Sample Code</a> &#8211; Additional code samples for a growing variety of use cases.</li>
<li><a href="https://github.com/ripple/ripple-lib"><code>ripple-lib</code> on GitHub</a> &#8211; The RippleAPI source code is available under an open-source license so you can freely download, modify, and contribute back to the project.</li>
</ol>
<p>For more information on how and why we built RippleAPI, read on.</p>
<h2 id="-background-and-rationale">Background and Rationale</h2>
<p>Prior to RippleAPI, there were three very different APIs to the Ripple Consensus Ledger:</p>
<ol>
<li>The <code>rippled</code> APIs: a low-level interface, not designed for ease of use.</li>
<li>The ripple-lib API: a low-level javascript interface, largely undocumented</li>
<li>The Ripple-REST API: a high-level HTTP interface</li>
</ol>
<p>In order to better focus our efforts as a company, as well as providing a better experience for all users, we merged #2 and #3 into a single high-level JavaScript interface. </p>
<p>Unfortunately, all good things come to an end, and this is the end of the line for Ripple-REST. We are no longer developing or supporting Ripple-REST, and we recommend you migrate your applications away from it. Fortunately, RippleAPI also includes an <a href="https://github.com/ripple/ripple-lib/blob/develop/src/index.js#L7-L8">experimental REST-like HTTP API</a>, although this interface is currently unsupported.</p>
<p>Meanwhile, the <a href="https://ripple.com/build/rippled-apis/"><code>rippled</code> APIs</a> continue to provide an alternative method of interacting with the Ripple Consensus Ledger, providing maximum power at a cost of increased complexity, so you can choose the tradeoffs that are best for your use case.</p>
<h2 id="-source-code-improvements">Source Code Improvements</h2>
<p>The RippleAPI source code is written in ECMAScript 6 (the latest JavaScript standard) and uses <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promises</a> to return values from asynchronous calls. The new source code also follows many of the paradigms of <a href="https://en.wikipedia.org/wiki/Functional_programming">functional programming</a>. The result is that the we reduced 15,000 lines of source code in ripple-lib and 6,000 lines in Ripple-REST to just 4,000 lines total in RippleAPI. </p>
<p>For better organization, we used the “weak layering principle” to structure the source, according to which each layer can only depend on layers below it. This means that the source files are structured into subdirectories and there are very few imports that reach into parent or sibling directories.</p>
<h2 id="-testing-and-documentation">Testing and Documentation</h2>
<p>RippleAPI comes with a comprehensive array of tests, including 100% unit test coverage, integration tests for every method, flow type checking, ESLint checks, and automated testing of the documentation.</p>
<p>All API methods have JSON schemas that specify the return values and parameter types. The unit tests use the schemas to validate the return values, which guarantees that the API results are consistent with expectations.</p>
<p>We generate human-readable documentation using Embedded JavaScript, which utilizes the schemas to generate parameter tables and the test fixtures as code samples. Every Git commit comes with the latest copy of the resulting Markdown documentation, thanks to unit tests which ensure that the documentation has been re-generated whenever changes are made. As long as the unit tests are passing, the documentation is consistent with the tests, and therefore with the source code.</p>
<h2 id="-conclusion">Conclusion</h2>
<p>We hope that RippleAPI will help developers harness the power of the Ripple Consensus Ledger. So <a href="https://ripple.com/build/rippleapi-beginners-guide/">get started</a>, and <a href="https://forum.ripple.com/viewforum.php?f=2">let us know on the forums</a> how we’re doing!</p>
</div>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/introducing-rippleapi/">Introducing RippleAPI</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>rippled 0.30.1 Released</title>
		<link>https://ripple.com/dev-blog/rippled-0-30-1-released/</link>
		<pubDate>Wed, 10 Feb 2016 22:44:36 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=11606</guid>
		<description><![CDATA[<p>The latest version of rippled, the core server of the Ripple Consensus Ledger, is here! Version 0.30.1 contains lots of small features and improvements, including updates to account_offers, server_info, peer subscriptions, and more. It also adds several optimizations to the consensus process that have already led to a dramatic increase in the number of ledgers &#8230; <a href="https://ripple.com/dev-blog/rippled-0-30-1-released/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-0-30-1-released/">rippled 0.30.1 Released</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The latest version of <tt>rippled</tt>, the core server of the Ripple Consensus Ledger, is here! Version 0.30.1 contains lots of small features and improvements, including updates to account_offers, server_info, peer subscriptions, and more. It also adds several optimizations to the consensus process that have already led to a dramatic increase in the number of ledgers validated per day! Learn more:</p>
<ul>
<li>See the full <a href="https://wiki.ripple.com/Rippled-0.30.1">rippled 0.30.1 Release Notes on the Ripple Wiki</a>.</li>
<li>See our <a href="https://ripple.com/build/rippled-setup/#installing-rippled">installation instructions</a> to set up <tt>rippled</tt> yourself.</li>
<li>Visit the <a href="https://ripple.com/build/">Developer Center</a> for more information on how to use the Ripple Consensus Ledger.</li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/rippled-0-30-1-released/">rippled 0.30.1 Released</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Correction to Ripple White Paper</title>
		<link>https://ripple.com/dev-blog/correction-to-ripple-white-paper/</link>
		<pubDate>Thu, 03 Sep 2015 00:35:15 +0000</pubDate>
		<dc:creator><![CDATA[Stefan Thomas]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[academia]]></category>
		<category><![CDATA[academics]]></category>
		<category><![CDATA[Byzantine]]></category>
		<category><![CDATA[consensus]]></category>
		<category><![CDATA[fork]]></category>
		<category><![CDATA[study]]></category>
		<category><![CDATA[white paper]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=9605</guid>
		<description><![CDATA[<p>We&#8217;ve recently been made aware of a paper discussing the possibility of forks in the Ripple system. We agree with the authors&#8217; conclusion that a fork is not possible given that the UNL overlap is greater than 40%. Unfortunately, this is different than the 20% figure stated in our 2014 white paper. We apologize for &#8230; <a href="https://ripple.com/dev-blog/correction-to-ripple-white-paper/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/correction-to-ripple-white-paper/">Correction to Ripple White Paper</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><span style="font-weight: 400;">We&#8217;ve recently been made aware of a </span><a href="http://www.ghassankarame.com/ripple.pdf"><span style="font-weight: 400;">paper</span></a><span style="font-weight: 400;"> discussing the possibility of forks in the Ripple system. We agree with the authors&#8217; conclusion that a fork is not possible given that the UNL overlap is greater than 40%. Unfortunately, this is different than the 20% figure stated in our </span><a href="https://ripple.com/consensus-whitepaper/"><span style="font-weight: 400;">2014 white paper</span></a><span style="font-weight: 400;">. We apologize for the oversight and are issuing a corrected version.</span></p>
<p><span style="font-weight: 400;">We&#8217;d like to point out that our validators are in fact configured with an overlap of 100%, which is also our current recommendation to partners. In other words, these new findings confirm our understanding that the live Ripple network has been and continues to be safe from forks.</span></p>
<p><span style="font-weight: 400;">In the paper the authors reference “several forks” in distributed ledger protocols, citing two sources. The first one is a blog post about </span><a href="https://bitcoinmagazine.com/3668/bitcoin-network-shaken-by-blockchain-fork/"><span style="font-weight: 400;">a fork in the Bitcoin network</span></a><span style="font-weight: 400;">. The second is a blog post about </span><a href="https://www.stellar.org/blog/safety_liveness_and_fault_tolerance_consensus_choice/"><span style="font-weight: 400;">a fork in the Stellar network</span></a><span style="font-weight: 400;">. We’d like to point out that neither of these systems use the Ripple consensus protocol in conjunction with our recommended configuration. There has been no such incident on the Ripple network after nearly three years of operation and more than 15 million ledger closes.</span></p>
<p><span style="font-weight: 400;">We&#8217;re excited to see increased interest from the academic community in Ripple consensus. As we work to diversify validator sets, we are also increasing our own efforts to contribute to consensus research. Our 2014 white paper was the first formal description of Ripple-style consensus and there’s a lot more to explore. We&#8217;re working to provide more detailed descriptions of Byzantine fault tolerance in Ripple and the safety of certain topologies of validators.</span></p>
<p><span style="font-weight: 400;">If you are currently in academia studying consensus or graph problems, please reach out to us at </span><a href="mailto:research@ripple.com"><span style="font-weight: 400;">research@ripple.com</span></a><span style="font-weight: 400;">.</span></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/correction-to-ripple-white-paper/">Correction to Ripple White Paper</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Validator Registry</title>
		<link>https://ripple.com/dev-blog/validator-registry/</link>
		<pubDate>Tue, 18 Aug 2015 19:30:30 +0000</pubDate>
		<dc:creator><![CDATA[Brandon Wilson]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=9488</guid>
		<description><![CDATA[<p>Today we are excited to announce the launch of the Ripple Validator Registry at validators.ripple.com</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/validator-registry/">Validator Registry</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>At Ripple Labs, our goal is to expand the size and diversity of the Ripple consensus network by enabling people to easily run rippled validators and understand how those validators perform. We aim to create a network where validating participants are well known and respected by gathering and publicizing identity information of validators in addition to performance statistics.</p>
<p>Today, we are excited to announce the launch of the Ripple Validator Registry at <a href="https://validators.ripple.com">validators.ripple.com</a>. The Validator Registry gathers and publishes data for all network validators, enabling rippled operators to determine which validators to trust. An <a href="https://data.ripple.com/v2/network/validators">http-based API</a> is also available for dynamically constructing rippled configurations.</p>
<h4><b>Build a UNL</b></h4>
<p>Running rippled involves selecting a UNL &#8211; a unique node list of trusted validators. There are two primary factors in determining validator trustworthiness: performance and operator identity.</p>
<h5><b>Performance</b></h5>
<p>The Validator Registry provides several metrics for each validator based on uptime and network agreement:</p>
<ul>
<li>agreement &#8211; the percentage of ledgers that passed consensus that were validated by the validator</li>
<li>disagreement &#8211; the percentage of ledgers validated by the validator that did not pass consensus</li>
</ul>
<h5><b>Identity</b></h5>
<p>Network participants are unlikely to trust validators without knowing who is operating them. To address this concern, validator operators can associate their validator with a web domain that they operate by following the steps on the <a href="https://ripple.com/build/rippled-apis/rippled-setup/#domain-verification">Ripple Dev Portal</a>. The Validator Registry verifies these domains and lists them with the validators.<br />
As the consensus network continues to grow, we hope the Validator Registry plays a key role in decentralizing and strengthening the network through open data.</p>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/validator-registry/">Validator Registry</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Introducing the Data API</title>
		<link>https://ripple.com/dev-blog/the-new-data-api/</link>
		<pubDate>Wed, 05 Aug 2015 22:00:16 +0000</pubDate>
		<dc:creator><![CDATA[Travis Nelson]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[data api]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[historical database]]></category>
		<category><![CDATA[market makers]]></category>
		<category><![CDATA[ripple charts]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[Trading]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=9355</guid>
		<description><![CDATA[<p>Ripple Labs data is moving under one roof, the Data API – a version two of the Historical Database API – and one infrastructure, Hadoop.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/the-new-data-api/">Introducing the Data API</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple Labs data is moving under one roof, the Data API – a version two of the Historical Database API – and one infrastructure, Hadoop. We are building a much more robust and reliable way to import, parse, and house data that is not taxing on the Ripple network. Housing all of our endpoints together will allow us to scale much faster and with more confidence as the ledger and our data needs grow.</p>
<p>The Data API also includes a lot of new capabilities, including:</p>
<ul>
<li>historical normalization of currency values against XRP</li>
<li>added fields for exchanges that show the makers and takers of liquidity</li>
<li>more information on each account, including the funding source and date</li>
<li>a new endpoint to show account balance changes</li>
<li>new metrics in transaction stats</li>
</ul>
<p>We are making these changes quickly and are focusing our resources on building out and testing new endpoints. Documentation for the Data API will soon be available on <a href="http://ripple.com/build">ripple.com/build</a>. The API will live at <a href="http://data.ripple.com">data.ripple.com</a>. In the meantime, you can look through the <a href="https://github.com/ripple/rippled-historical-database/blob/develop/README.md">Data API in GitHub</a>.</p>
<p>Because we are pulling all of the data endpoints under one API, we are shutting down some of our <span class="inline-comment-marker">underutilized</span> endpoints that are relying on infrastructure we are not moving forward with. The first shutdown will be CouchDB on August 19th, which we used early on for Ripple Charts. We are replacing some of the endpoints that hit CouchDB in the Data API, but other, less frequently used calls are being removed. In the next few months, we will also be shutting down the Ripple Charts API and replacing aspects of that by expanding the Data API. The Historical Database API – version one – will live in parallel to the Data API as we make this transition. It will be deprecated by the end of the year.</p>
<p>&nbsp;</p>
<p>The following endpoints will be shut down:</p>
<table>
<tbody>
<tr>
<td>/api/totalNetworkValue</td>
</tr>
<tr>
<td>/api/totalValueSent</td>
</tr>
<tr>
<td>/api/valueSent</td>
</tr>
<tr>
<td>/api/offers</td>
</tr>
<tr>
<td>/api/currencyBalances</td>
</tr>
<tr>
<td>/api/accounttransactionstats</td>
</tr>
<tr>
<td>/api/accounttrust</td>
</tr>
<tr>
<td>/api/ledgersclosed</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>The following endpoints will be replicated on the Data API:</p>
<table class="confluenceTable" style="height: 345px" width="487">
<tbody>
<tr>
<th class="confluenceTh">Current</th>
<th class="confluenceTh">Data API</th>
</tr>
<tr>
<td>/api/offersExercised</td>
<td>/v2/exchanges</td>
</tr>
<tr>
<td>/api/exchangeRates</td>
<td>/v2/exchange_rates</td>
</tr>
<tr>
<td>/api/totalIssued</td>
<td>TBD</td>
</tr>
<tr>
<td>/api/topMarkets</td>
<td>TBD</td>
</tr>
<tr>
<td>/api/totalPaymentVolume</td>
<td>TBD</td>
</tr>
<tr>
<td>/api/payments</td>
<td>TBD</td>
</tr>
<tr>
<td>/api/accountsCreated</td>
<td>/v2/accounts</td>
</tr>
<tr>
<td>/api/gateways</td>
<td>TBD</td>
</tr>
<tr>
<td>/api/currencies</td>
<td>TBD</td>
</tr>
<tr>
<td>/api/marketTraders</td>
<td>TBD</td>
</tr>
<tr>
<td>/api/issuerCapitalization</td>
<td>TBD</td>
</tr>
<tr>
<td colspan="1">/api/accounttransactions</td>
<td colspan="1">/v2/accounts/:account/payments</td>
</tr>
<tr>
<td colspan="1">/api/accountoffersexercised</td>
<td colspan="1">/v2/accounts/:account/exchanges</td>
</tr>
<tr>
<td colspan="1">/api/transactionstats</td>
<td colspan="1">/v2/stats</td>
</tr>
</tbody>
</table>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/the-new-data-api/">Introducing the Data API</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Gatewayd No Longer Available</title>
		<link>https://ripple.com/dev-blog/gatewayd-no-longer-available/</link>
		<pubDate>Wed, 01 Jul 2015 17:03:20 +0000</pubDate>
		<dc:creator><![CDATA[Geert Weening]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[gatewayd]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=8893</guid>
		<description><![CDATA[<p>In the interest of focusing our resources on other projects, starting today, Gatewayd will no longer be available on Github.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/gatewayd-no-longer-available/">Gatewayd No Longer Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>In the interest of focusing our resources on other projects, starting today, Gatewayd will no longer be available on Github.</p>
<p>Gatewayd was an open-source project that began roughly one year ago, and it was broadly designed for the use-cases we discovered in the open-source community. Throughout the past year, we’ve explored these various use-cases and decided to narrow our focus. As such, we’re working on developing a more focused set of products to support our partners.</p>
<p>We would like to thank everyone who regularly used gatewayd. We appreciate your ongoing feedback, and we are continuously working on new products to better suit our customers’ needs. More details will be announced in the near future. Please contact us at <a href="mailto:support@ripple.com">support@ripple.com</a> with any questions.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/gatewayd-no-longer-available/">Gatewayd No Longer Available</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Ripple Charts Update: Payment Volume and Issued Value</title>
		<link>https://ripple.com/dev-blog/ripple-charts-update-payment-volume-and-issued-value/</link>
		<pubDate>Wed, 10 Jun 2015 20:08:02 +0000</pubDate>
		<dc:creator><![CDATA[Norman Hsieh]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[Issued Value]]></category>
		<category><![CDATA[Payment Volume]]></category>
		<category><![CDATA[ripple charts]]></category>
		<category><![CDATA[RippleCharts]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=8613</guid>
		<description><![CDATA[<p>Starting today, we are rolling out a small update to Ripple Charts that may seem minor but hopefully will have a big impact in the way we look at Ripple in the future.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ripple-charts-update-payment-volume-and-issued-value/">Ripple Charts Update: Payment Volume and Issued Value</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Starting today, we are rolling out a small update to Ripple Charts that may seem minor but hopefully will have a big impact in the way we look at Ripple in the future.</p>
<p>On the Ripple Charts landing page we will be replacing two items:</p>
<h4><b style="line-height: 1.428571429;">1. &#8220;Transaction Volume&#8221; will be now changed to &#8220;Payment Volume&#8221;</b></h4>
<p>We wanted to clearly distinguish that this number was specifically tracking payment transactions separate from any other transaction. Since the term transaction can mean many things in Ripple, we hope this adjustments makes things more clear.</p>
<p><a href="https://cdn.ripple.com/wp-content/uploads/2015/06/payment-charts.jpg"><img class="alignnone size-full wp-image-8614" src="https://cdn.ripple.com/wp-content/uploads/2015/06/payment-charts.jpg" alt="payment-charts" width="994" height="667" srcset="https://cdn.ripple.com/wp-content/uploads/2015/06/payment-charts.jpg 994w, https://cdn.ripple.com/wp-content/uploads/2015/06/payment-charts-300x201.jpg 300w" sizes="(max-width: 994px) 100vw, 994px" /></a></p>
<p>&nbsp;</p>
<h4><b style="line-height: 1.428571429;">2. &#8220;Total Network Value&#8221; will be broken down into two separate numbers, &#8220;XRP Capitalization&#8221; and &#8220;Issued Value&#8221;</b></h4>
<p>As we spend more and more effort around building liquid assets on the Network, we didn&#8217;t want to specifically tie real fiat currency assets with the volatility of XRP.</p>
<p>As many users pointed out in the forums, &#8220;Total Network Value&#8221; often ranged quite a bit due to the large influence of XRP price. We believe that this new addition will allow us to watch our issued value grow on the network while still being able to track the value of XRP going forward as well.</p>
<p><a href="https://cdn.ripple.com/wp-content/uploads/2015/06/issuedcharts.jpg"><img class="alignnone size-full wp-image-8615" src="https://cdn.ripple.com/wp-content/uploads/2015/06/issuedcharts.jpg" alt="issuedcharts" width="987" height="666" srcset="https://cdn.ripple.com/wp-content/uploads/2015/06/issuedcharts.jpg 987w, https://cdn.ripple.com/wp-content/uploads/2015/06/issuedcharts-300x202.jpg 300w" sizes="(max-width: 987px) 100vw, 987px" /></a></p>
<p>&nbsp;</p>
<p>We’d like to thank all of our passionate fans who regularly use Ripple Charts. We love and appreciate your ongoing feedback given our commitment to improving the charts experience—not only from the perspective of user experience but also in a way that best reflects the evolving direction of Ripple Labs.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ripple-charts-update-payment-volume-and-issued-value/">Ripple Charts Update: Payment Volume and Issued Value</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Do You Have What It Takes to Be a Gateway?</title>
		<link>https://ripple.com/dev-blog/do-you-have-what-it-takes-to-be-a-gateway/</link>
		<pubDate>Wed, 18 Mar 2015 20:41:14 +0000</pubDate>
		<dc:creator><![CDATA[Rome Reginelli]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=7494</guid>
		<description><![CDATA[<p>We&#8217;re proud to announce the first release of our new Gateway Guide, a comprehensive manual to operating a gateway in the Ripple network. Whether you&#8217;re trying to understand how a gateway makes revenue, or how to use the authorized accounts feature, or even just what a warm wallet is, the gateway guide has you covered. &#8230; <a href="https://ripple.com/dev-blog/do-you-have-what-it-takes-to-be-a-gateway/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/do-you-have-what-it-takes-to-be-a-gateway/">Do You Have What It Takes to Be a Gateway?</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>We&#8217;re proud to announce the first release of <a href="https://ripple.com/build/gateway-guide/" title="Gateway Guide">our new Gateway Guide</a>, a comprehensive manual to operating a gateway in the Ripple network. Whether you&#8217;re trying to understand <a href="https://ripple.com/build/gateway-guide/#fees-and-revenue-sources" title="fees and revenue section of the Gateway Guide">how a gateway makes revenue</a>, or how to use the <a href="https://ripple.com/build/gateway-guide/#authorized-accounts" title="authorized accounts section of the Gateway Guide">authorized accounts</a> feature, or even just <a href="https://ripple.com/build/gateway-guide/#warm-wallets" title="warm wallets section of the Gateway Guide">what a warm wallet is</a>, the gateway guide has you covered.</p>
<p>The guide comes with step-by-step, diagrammed explanations of typical gateway operations, a hefty <a href="https://ripple.com/build/gateway-guide/#precautions" title="Gateway Guide precautions section">list of precautions</a> to make your gateway safer, and concrete examples of all the API calls you need to perform in order to get your gateway accounts set up and secure. </p>
<p>We&#8217;re proud of all the work we&#8217;ve done to make the business of running a gateway easier, but there&#8217;s still more work to do. If you have any questions, comments, or ideas, please send feedback to <a href="mailto:developers@ripple.com">developers@ripple.com</a> &#8211; or <a href="https://forum.ripple.com/viewforum.php?f=2" title="Ripple Developer Forums">post it on our forums</a>. We&#8217;d love to hear from you!</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/do-you-have-what-it-takes-to-be-a-gateway/">Do You Have What It Takes to Be a Gateway?</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Calculating Balance Changes for a Transaction</title>
		<link>https://ripple.com/dev-blog/calculating-balance-changes-for-transaction/</link>
		<pubDate>Thu, 19 Feb 2015 23:03:07 +0000</pubDate>
		<dc:creator><![CDATA[Geert Weening]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=7241</guid>
		<description><![CDATA[<p>When interacting with Transactions on the Ripple Network you often care about the changes that have been made to a specific account. For example, if you make a payment, you want to know by how much the balance on your account has been decreased. Parsing out the exact balance changes from a transaction can often be complicated and we’ve spend a lot of time to provide a simple method for getting accurate information. In an effort to standardize the way we deal with balance changes and make sure we have one place that captures our efforts, we released a module, called ripple-lib-transactionparser. We’ve made the module available on npm and you can find the source on our github</p>
<p>In this post we want to provide some background on why parsing balance changes is hard and give details on how a transaction’s metadata should be interpreted.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/calculating-balance-changes-for-transaction/">Calculating Balance Changes for a Transaction</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<h2><a class="anchor" href="#introduction" rel="noreferrer" name="user-content-introduction"></a>Introduction</h2>
<p>When interacting with Transactions on the Ripple Network you often care about the changes that have been made to a specific account. For example, if you make a payment, you want to know by how much the balance on your account has been decreased. Parsing out the exact balance changes from a transaction can often be complicated and we’ve spend a lot of time to provide a simple method for getting accurate information. In an effort to standardize the way we deal with balance changes and make sure we have one place that captures our efforts, we released a module, called <a href="https://www.npmjs.com/package/ripple-lib-transactionparser" rel="noreferrer">ripple-lib-transactionparser</a>. We’ve made the module available on npm and you can find the source on our <a href="https://github.com/ripple/ripple-lib-extensions/tree/master/transactionparser" rel="noreferrer">github</a></p>
<p>In this post we want to provide some background on why parsing balance changes is hard and give details on how a transaction’s meta should be interpreted.</p>
<h3><a class="anchor" href="#table-of-contents" rel="noreferrer" name="user-content-table-of-contents"></a>Table of Contents</h3>
<p><strong><a href="#installation-instructions" rel="noreferrer">Installation Instructions</a></strong><br />
<strong><a href="#why-is-parsing-transactions-hard" rel="noreferrer">Why is parsing transactions hard?</a></strong><br />
<strong><a href="#the-solution" rel="noreferrer">The solution</a></strong><br />
<strong><a href="#counterparty-vs-issuer" rel="noreferrer">Counterparty vs Issuer</a></strong><br />
<strong><a href="#additonal-notes-on-meta" rel="noreferrer">Additonal notes on meta</a></strong></p>
<h2><a class="anchor" href="#installation-instructions" rel="noreferrer" name="user-content-installation-instructions"></a>Installation Instructions</h2>
<p>To install this package in your Node project, run:</p>
<pre><code>npm install ripple-lib-transactionparser</code></pre>
<p>Given a <code>transactionResponse</code>, which is a return for a transaction submission or transaction lookup, you can use it as follows:</p>
<pre><code>    var parseBalanceChanges = require(‘ripple-lib-transactionparser’).parseBalanceChanges;
    …
    var balanceChanges = parseBalanceChanges(transactionResponse.meta);
</code></pre>
<h2><a class="anchor" href="#why-is-parsing-transactions-hard" rel="noreferrer" name="user-content-why-is-parsing-transactions-hard"></a>Why is parsing Transactions hard?</h2>
<p>Each host on the Ripple Network runs a program called <a href="https://github.com/ripple/rippled" rel="noreferrer">rippled</a> that is responsible for maintaining the Ripple ledger and reaching consensus. The rippled application is written in C++ and it’s interface is geared more for machine consumption than human consumption, so it doesn’t directly tell you higher-level information like what balances were affected by a specific transaction. Instead, it provides some <code>meta</code> about how various nodes changed in the ledger, which can be used to compute balance changes for transactions that affect balances.</p>
<p>Extracting the balance changes from a transaction’s meta isn’t straightforward. Objects in the AffectedNodes array describe the changes to nodes in the ledger, but how a balance or a affected account has changed requires some parsing of the given meta.</p>
<h3><a class="anchor" href="#transaction-meta" rel="noreferrer" name="user-content-transaction-meta"></a>Transaction meta</h3>
<p>Below is an example of what the relevant transaction meta that comes from rippled looks like</p>
<pre><code>{
  "AffectedNodes": [
    {
      "ModifiedNode": {
        "FinalFields": {
          "Balance": {
            "currency": "USD",
            "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
            "value": "1.525330905250352"
          },
          "Flags": 1114112,
          "HighLimit": {
            "currency": "USD",
            "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q",
            "value": "0"
          },
          "HighNode": "00000000000001E8",
          "LowLimit": {
            "currency": "USD",
            "issuer": "rKmBGxocj9Abgy25J51Mk1iqFzW9aVF9Tc",
            "value": "1000000000"
          },
          "LowNode": "0000000000000000"
        },
        "LedgerEntryType": "RippleState",
        "LedgerIndex": "2F323020B4288ACD4066CC64C89DAD2E4D5DFC2D44571942A51C005BF79D6E25",
        "PreviousFields": {
          "Balance": {
            "currency": "USD",
            "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
            "value": "1.535330905250352"
          }
        },
        "PreviousTxnID": "DC061E6F47B1B6E9A496A31B1AF87194B4CB24B2EBF8A59F35E31E12509238BD",
        "PreviousTxnLgrSeq": 10459364
      }
    },
    {
      "ModifiedNode": {
        "FinalFields": {
          "Balance": {
            "currency": "USD",
            "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
            "value": "0.02"
          },
          "Flags": 1114112,
          "HighLimit": {
            "currency": "USD",
            "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q",
            "value": "0"
          },
          "HighNode": "00000000000001E8",
          "LowLimit": {
            "currency": "USD",
            "issuer": "rLDYrujdKUfVx28T9vRDAbyJ7G2WVXKo4K",
            "value": "1000000000"
          },
          "LowNode": "0000000000000000"
        },
        "LedgerEntryType": "RippleState",
        "LedgerIndex": "AAE13AF5192EFBFD49A8EEE5869595563FEB73228C0B38FED9CC3D20EE74F399",
        "PreviousFields": {
          "Balance": {
            "currency": "USD",
            "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
            "value": "0.01"
          }
        },
        "PreviousTxnID": "DC061E6F47B1B6E9A496A31B1AF87194B4CB24B2EBF8A59F35E31E12509238BD",
        "PreviousTxnLgrSeq": 10459364
      }
    },
    {
      "ModifiedNode": {
        "FinalFields": {
          "Account": "rKmBGxocj9Abgy25J51Mk1iqFzW9aVF9Tc",
          "Balance": "239555992",
          "Flags": 0,
          "OwnerCount": 1,
          "Sequence": 38
        },
        "LedgerEntryType": "AccountRoot",
        "LedgerIndex": "E9A39B0BA8703D5FFD05D9EAD01EE6C0E7A15CF33C2C6B7269107BD2BD535818",
        "PreviousFields": {
          "Balance": "239567992",
          "Sequence": 37
        },
        "PreviousTxnID": "DC061E6F47B1B6E9A496A31B1AF87194B4CB24B2EBF8A59F35E31E12509238BD",
        "PreviousTxnLgrSeq": 10459364
      }
    }
  ],
  "TransactionIndex": 2,
  "TransactionResult": "tesSUCCESS"
}
</code></pre>
<p>The meta above doesn’t make it obvious what the changes are to which accounts without first understanding what <code>HighNode</code>, <code>LowNode</code>, <code>...Limit</code> and the various other fields mean.</p>
<h2><a class="anchor" href="#the-solution" rel="noreferrer" name="user-content-the-solution"></a>The solution</h2>
<p>We wrote the <code>ripple-lib-transactionparser</code> module to capture the logic needed to parse transaction meta like the above. We spent a lot of time discussing various edge cases and how to correctly parse the balance changes most intuitively.</p>
<p>Using the <code>ripple-lib-transactionparser</code> the above meta will result in the following balance changes:</p>
<pre><code>{
  rKmBGxocj9Abgy25J51Mk1iqFzW9aVF9Tc: [
    {
      value: '-0.01',
      currency: 'USD',
      counterparty: 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q'
    },
    {
      value: '-0.012',
      currency: 'XRP',
      counterparty: ''
    }
  ],
  rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q: [
    {
      counterparty: 'rKmBGxocj9Abgy25J51Mk1iqFzW9aVF9Tc',
      currency: 'USD',
      value: '0.01'
    },
    {
      counterparty: 'rLDYrujdKUfVx28T9vRDAbyJ7G2WVXKo4K',
      currency: 'USD',
      value: '-0.01'
    }
  ],
  rLDYrujdKUfVx28T9vRDAbyJ7G2WVXKo4K: [
    {
      counterparty: 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q',
      currency: 'USD',
      value: '0.01'
    }
  ]
}
</code></pre>
<p>The keys in the balance changes object (rLDY…) are the affected addresses and the values (in square brackets) are arrays of balance changes that happened on that address. Each balance change is specified with a counterparty, currency, and value, where <code>counterparty</code> refers to the address on the opposite end of the trustline. If you’re not a gateway, then the counterparty is typically the issuer of the currency (for a more detailed explanation see the section <a href="#counterparty-vs-issuer" rel="noreferrer">Counterparty vs Issuer</a> below).</p>
<p>Let’s look at how these balance changes are computed from the meta. The meta contains an array of AffectedNodes, where each AffectedNode object contains a CreatedNode, ModifiedNode, or DeletedNode, which each correspond to a change in the ledger. The JSON is structured this way, rather than just an array of nodes with the type as a property, so that the node objects can map directly to the corresponding C++ classes. Each node has a LedgerEntryType and there are two types that can indicate a balance change:<br />
AccountRoot &#8211; holds an account’s XRP balance, last transaction sequence number, and related information<br />
RippleState &#8211; tracks credit between two accounts and associated properties (corresponds to a trustline)<br />
So AccountRoot nodes appear when XRP balances change and RippleState nodes appear when trustline balances change.</p>
<p>Calculating XRP balance changes from AccountRoot nodes is straightforward; subtract the balance in the FinalFields from the balance in the PreviousFields and convert from drops to XRP (all XRP balances from rippled are specified in drops, where one XRP is equivalent to one million drops). If a new account is created, a CreatedNode will be found instead of a ModifiedNode, in which case PreviousFields won’t exist and FinalFields will be replaced with NewFields. DeletedNodes still have FinalFields and PreviousFields, just like ModifiedNodes.</p>
<p>Calculating the balance changes for a trustline is similar, but with an additional complication: the sign of the balances are oriented with respect to the <code>low node</code>, which is the node with the lower address of the two on the trustline (the address is treated as a numerical value, so for example <code>rKm…</code> is lower than <code>rMw…</code> since <code>K</code> comes before <code>M</code> in the <a href="https://wiki.ripple.com/Encodings" rel="noreferrer">base58 dictionary</a>). This convention was established in rippled so that the hash of a trustline between A and B is the same as the hash of a trustline between B and A. Therefore, the balance is negated when generating the balance change for the high address. Two balance changes are created for each trustline balance change, one from the perspective of each address on the trustline, which are extracted from the HighLimit and LowLimit objects.</p>
<h2><a class="anchor" href="#counterparty-vs-issuer" rel="noreferrer" name="user-content-counterparty-vs-issuer"></a>Counterparty vs. Issuer</h2>
<p>Through the Ripple products we sometimes use the concept of <code>issuer</code> instead of <code>counterparty</code>. Ripple-REST for example has been using the term <code>issuer</code> and it shows up throughout our documentation. The <code>issuer</code> is the party on a trustline that owes the other party, so the party on a trustline that has credited the party. The <code>counterparty</code> is the party on the other side of the trustline from the perspective of a given party, regardless of who owes who. For calculating balance changes, <code>counterparty</code> is more useful. If we were to use <code>issuer</code>, gateways would not be able to see balance changes that shift money between their trustlines because both changes would have the same issuer and would cancel out. A gateway may want to monitor such changes in order to mirror balances to an off-ledger accounting system.</p>
<p>It might seem like you would need the concept of <code>issuer</code> in order to keep track of who issued your USD because only the issuer will redeem it. But any USD that you have on a trustline with a gateway is automatically issued by that gateway. There’s no way to take USD from gateway A and move it to a trustline with gateway B because that would require increasing your balance with gateway B, which is something that only gateway B is allowed to do. If Alice sends SnapSwap-USD to Bob, it moves from Alice’s trustline with SnapSwap to Bob’s trustline with SnapSwap; SnapSwap-USDs never leave SnapSwap’s trustlines. Actually even calling them SnapSwap-USDs makes it sound like the currency itself is tied to SnapSwap, but the currency format doesn’t specify any address for the issuer, so SnapSwap-USDs are really just USDs on a SnapSwap trustline.</p>
<h2><a class="anchor" href="#additional-notes-on-meta" rel="noreferrer" name="user-content-additional-notes-on-meta"></a>Additional Notes on meta</h2>
<h3><a class="anchor" href="#lownode-and-highnode" rel="noreferrer" name="user-content-lownode-and-highnode"></a>LowNode and HighNode</h3>
<p>The LowNode and HighNode fields may be confusing. They are hints to make node deletion happen in constant time in rippled and should always be ignored outside of rippled. More precisely, LowNode is the integer number of the page in the low account&#8217;s owner directory that contains the reference to the trust line.</p>
<h3><a class="anchor" href="#account_one" rel="noreferrer" name="user-content-account_one"></a>ACCOUNT_ONE</h3>
<p>The issuer listed in the balance fields is <code>rrrrrrrrrrrrrrrrrrrrBZbvji</code>, which is referred to as ACCOUNT_ONE and is the encoding that corresponds to the numerical value 1. This convention is used because the addresses on the trustline are already specified in the HighLimit and LowLimit objects, so specifying them here would be redundant. More information can be found at <a href="https://wiki.ripple.com/Ledger_Format" rel="noreferrer">https://wiki.ripple.com/Ledger_Format</a></p>
<h2><a class="anchor" href="#additional-notes-on-meta" rel="noreferrer" name="conclusion"></a>Conclusion</h2>
<p>Parsing balance changes from a transaction is hard, so we made a module that makes it easy.</p>
<p>Find it on NPM:<br />
<a href="https://www.npmjs.com/package/ripple-lib-transactionparser" rel="noreferrer">https://www.npmjs.com/package/ripple-lib-transactionparser</a></p>
<p>And here&#8217;s the github:<br />
<a href="https://github.com/ripple/ripple-lib-extensions/tree/master/transactionparser" rel="noreferrer">https://github.com/ripple/ripple-lib-extensions/tree/master/transactionparser</a></p>
<p>For any issues or questions, please use the github issues page.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/calculating-balance-changes-for-transaction/">Calculating Balance Changes for a Transaction</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Turn your exchange into a Ripple Gateway</title>
		<link>https://ripple.com/dev-blog/turn-your-exchange-into-a-ripple-gateway/</link>
		<pubDate>Thu, 18 Dec 2014 23:08:36 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=6732</guid>
		<description><![CDATA[<p>Throughout 2014 we&#8217;ve talked to businesses all over the world, both big and small, who are interested in tapping into Ripple&#8217;s increasing liquidity and settlement capabilities. For exchanges dealing in bitcoins and other assets, the value proposition is clear &#8211; deeper orderbooks and the ability for customers to hop between different assets instantly is a &#8230; <a href="https://ripple.com/dev-blog/turn-your-exchange-into-a-ripple-gateway/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/turn-your-exchange-into-a-ripple-gateway/">Turn your exchange into a Ripple Gateway</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Throughout 2014 we&#8217;ve talked to businesses all over the world, both big and small, who are interested in tapping into Ripple&#8217;s increasing liquidity and settlement capabilities. For exchanges dealing in bitcoins and other assets, the value proposition is clear &#8211; deeper orderbooks and the ability for customers to hop between different assets instantly is a major boon to their service. The natural follow-up question is how to get started.</p>
<p>As such, we&#8217;ve developed a <a href="https://ripple.com/files/exchange_to_ripple_gateway.pdf">high-level integration guide for exchanges</a> that covers the basic accounting concepts of operating a gateway on Ripple and some of the API calls you can use to interact with the network. For the purposes of this guide, we&#8217;ve outlined an example integration for the fictional Acme Bitcoin Exchange. While specifically referencing bitcoins as the asset handled by this gateway, note that the concepts are applicable to other forms of value such as physical commodities, securities, fiat currencies, and more.</p>
<p>Feel free to email us at developers@ripple.com with any questions or thoughts on how this could be improved.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/turn-your-exchange-into-a-ripple-gateway/">Turn your exchange into a Ripple Gateway</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Why the Stellar Forking Issue Does Not Affect Ripple</title>
		<link>https://ripple.com/dev-blog/why-the-stellar-forking-issue-does-not-affect-ripple/</link>
		<pubDate>Sun, 07 Dec 2014 08:44:11 +0000</pubDate>
		<dc:creator><![CDATA[Stefan Thomas]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=6615</guid>
		<description><![CDATA[<p>The Stellar Development Foundation (SDF) which maintains Stellar, a network built on a modified version of the Ripple code base, recently published a post claiming flaws in the Ripple consensus algorithm. We take any reports about possible security issues very seriously and after reviewing the information conclude that there is no threat to the continued operation of &#8230; <a href="https://ripple.com/dev-blog/why-the-stellar-forking-issue-does-not-affect-ripple/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/why-the-stellar-forking-issue-does-not-affect-ripple/">Why the Stellar Forking Issue Does Not Affect Ripple</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>The Stellar Development Foundation (SDF) which maintains Stellar, a network built on a modified version of the Ripple code base, recently published a post claiming flaws in the Ripple consensus algorithm. We take any reports about possible security issues very seriously and after reviewing the information conclude that there is no threat to the continued operation of the Ripple network. We&#8217;d like to share our thoughts.</p>
<p>Quoting the post in question:</p>
<blockquote><p><b>Issue 1: Sacrificing safety over liveness and fault tolerance—potential for double spends</b></p>
<p><i>The Fischer Lynch Paterson impossibility result (FLP) states that a deterministic asynchronous consensus system can have at most two of the following three properties: safety (results are valid and identical at all nodes), guaranteed termination or liveness (nodes that don’t fail always produce a result), and fault tolerance (the system can survive the failure of one node at any point). This is a proven result.</i></p></blockquote>
<p>This is correct.</p>
<p>&nbsp;</p>
<blockquote><p><i>Any distributed consensus system on the Internet must sacrifice one of these features.</i></p></blockquote>
<p>This is potentially misleading. The FLP result shows that no system can provide those guarantees and reach consensus in bounded time. Real-world implementations of consensus like Paxos and Ripple however use probability to achieve safety, liveness and fault tolerance within a given time limit with very high likelihood.</p>
<p>If consensus is not achieved in this timeframe, the algorithm will retry and once again achieve consensus with very high likelihood and so on. In statistical terms, consensus will eventually be reached with <a href="http://en.wikipedia.org/wiki/Almost_surely">probability 1</a>, satisfying liveness under a probabilistic model. In practice, progress is usually made every round and two or more rounds are very rarely needed.</p>
<p>This means that distributed consensus systems like the Ripple network and Google’s Spanner database exist and can provide extremely high availability if configured correctly.</p>
<p>&nbsp;</p>
<blockquote><p><i>The existing Ripple/Stellar consensus algorithm is implemented in a way that favors fault tolerance and termination over safety.</i><strong><strong><br />
</strong></strong></p></blockquote>
<p>This is incorrect. We have not reviewed Stellar&#8217;s modified version of Ripple consensus, but as far as the Ripple consensus algorithm is concerned, the protocol provides safety and fault tolerance assuming the validators are configured correctly. For a detailed proof, please see our <a href="https://ripple.com/consensus-whitepaper-released/">consensus white paper</a>.</p>
<p>&nbsp;</p>
<blockquote><p><i>This means it prioritizes ledger closes and availability over everyone actually agreeing on what the ledger is—thus opening up several potential risk scenarios.</i></p></blockquote>
<p>This is incorrect. If a quorum cannot be reached, validators will retry until connectivity has been restored.</p>
<p>&nbsp;</p>
<blockquote><p><b>Issue 2: Provable correctness</b></p>
<p><i>Prof. David Mazières, head of Stanford’s Secure Computing Group, reviewed the Ripple/Stellar consensus system and reached the conclusion that the existing algorithm was unlikely to be safe under all circumstances.</i></p></blockquote>
<p>We look forward to reading Prof. Mazières&#8217; findings once they are published.</p>
<p>&nbsp;</p>
<blockquote><p><i>Based [on] these findings, we decided to create a new consensus system with provable correctness.</i></p></blockquote>
<p>As mentioned before, a proof of Ripple&#8217;s correctness is available in the form of the Ripple <a href="https://ripple.com/consensus-whitepaper-released/">consensus white paper</a>.</p>
<p>As Ripple Labs&#8217; chief cryptographer and the original developer of Ripple consensus David Schwartz <a href="https://forum.ripple.com/viewtopic.php?f=1&amp;t=8629&amp;p=59073#p59073">pointed out yesterday</a>, there cannot be two conflicting majority sets without overlap. For bootstrapping with a small set of trusted validators, it is appropriate to use a crash-recovery fault model, meaning a simple majority such as three out of five is sufficient. In other words, it is impossible for the Ripple network to experience an unintentional ledger fork as Stellar’s did because our nodes require votes from a majority of validators. In the future, we will generally recommend a supermajority greater than two thirds to account for Byzantine faults (validators that act arbitrarily or maliciously), but otherwise the same concepts apply.</p>
<p>In either case, anyone wishing to join a specific set of mutually consenting validators in the Ripple topology can do so by configuring their local Ripple node appropriately. We recognize the immense task of building the world&#8217;s first global consensus graph. It is a hard problem, but not an impossible one. Like the transition from Arpanet to the distributed routing topology of the modern internet, it will require time, education and a great deal of caution. But thanks to our amazing partners and colleagues, we are ready to tackle this challenge.</p>
<p>The Ripple network and its distributed ledger have used the Ripple consensus protocol to operate reliably for two years and currently manage $1.4 million in daily volume. We continue to invest in scaling Ripple to support the world&#8217;s cross-border transactions with bank partners in the U.S. and Europe actively integrating today.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/why-the-stellar-forking-issue-does-not-affect-ripple/">Why the Stellar Forking Issue Does Not Affect Ripple</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Release Notes (3 December 2014)</title>
		<link>https://ripple.com/dev-blog/release-notes-3-december-2014/</link>
		<pubDate>Wed, 03 Dec 2014 23:09:00 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=6554</guid>
		<description><![CDATA[<p>Curated release notes will be posted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features. Codius [Github] New website and documentation &#8211; check it out! Ripple-Rest [Release Notes &#124; Github &#124; Issue Tracking] Released version 1.3.2-rc1 Add place and cancel order functionality d80d198 &#8230; <a href="https://ripple.com/dev-blog/release-notes-3-december-2014/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/release-notes-3-december-2014/">Release Notes (3 December 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p style="color: #898788;"><em style="font-weight: inherit; color: #9090aa;">Curated release notes will be posted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features.</em></p>
<h3><strong>Codius </strong><strong>[<a href="https://github.com/codius">Github</a>]</strong></h3>
<ul>
<li>New <a href="http://codius.org/">website</a> and documentation &#8211; check it out!</li>
</ul>
<h3><strong>Ripple-Rest [<a href="https://github.com/ripple/ripple-rest/blob/master/docs/release_notes.md">Release Notes</a> | <a href="https://github.com/ripple/ripple-rest">Github</a> | <a href="https://ripplelabs.atlassian.net/browse/RA/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel">Issue Tracking</a>]</strong></h3>
<p><em>Released version 1.3.2-rc1</em></p>
<ul>
<li>Add place and cancel order functionality <a href="https://github.com/ripple/ripple-rest/commit/d80d198e18f9c1f96adad8fba4be67b8ae26c4d5">d80d198</a></li>
<li>Support paging behavior for balances and trustlines <a href="https://github.com/ripple/ripple-rest/commit/6980ab7c844508caae5c62ee7202aa429d12ef0b">6980ab7</a></li>
<li>Fix parameter discrepancy, <code>*_froze_line</code> -&gt; <code>*_trustline_frozen</code> <a href="https://github.com/ripple/ripple-rest/commit/2701c0b9ac481b4e9172b6faaf0d0a4821d6acb5">2701c0b</a> and <a href="https://github.com/ripple/ripple-rest/commit/a8aeeeced9b9f896608160a3d34aaedf00e3dc96">a8aeeec</a></li>
<li>Add tests to show use of complex currencies <a href="https://github.com/ripple/ripple-rest/commit/9c5412f3a0e1498e3108930d38da6157dc764e53">9c5412f</a></li>
</ul>
<h3><strong>Rippled [<a href="https://ripple.com/wiki/Category:Rippled_release_notes">Release Notes</a> | <a href="https://github.com/ripple/rippled">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=25">Issue Tracking</a>]</strong></h3>
<p><i>No new releases</i></p>
<h3><strong>Ripple-lib [<a href="https://github.com/ripple/ripple-lib/releases">Release Notes</a> | <a href="https://github.com/ripple/ripple-lib">Github</a> | <a href="https://github.com/ripple/ripple-lib/issues">Issue Tracking</a>]</strong></h3>
<p><em>No new releases</em></p>
<h3><strong>Ripple Client [<a href="https://github.com/ripple/ripple-client/releases">Release Notes</a> | <a href="https://github.com/ripple/ripple-client">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=2&amp;view=planning&amp;selectedIssue=RT-1990&amp;quickFilter=38&amp;epics=visible">Issue Tracking</a>]</strong></h3>
<p><em>No new releases</em></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/release-notes-3-december-2014/">Release Notes (3 December 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Release Notes (19 November 2014)</title>
		<link>https://ripple.com/insights/release-notes-19-november-2014/</link>
		<pubDate>Wed, 19 Nov 2014 02:52:56 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[Insights]]></category>

		<guid isPermaLink="false">https://ripple.com/?p=6416</guid>
		<description><![CDATA[<p>Curated release notes will be posted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features. Rippled [Release Notes &#124; Github &#124; Issue Tracking] Released version 0.26.4 Rocksdb v. 3.5.1 SQLite v. 3.8.7 Disable SSLv3 Add counters to track ledger read and &#8230; <a href="https://ripple.com/insights/release-notes-19-november-2014/">Continued</a></p>
<p>The post <a rel="nofollow" href="https://ripple.com/insights/release-notes-19-november-2014/">Release Notes (19 November 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p style="color: #898788;"><em style="font-weight: inherit; color: #9090aa;">Curated release notes will be posted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features.</em></p>
<h3><strong>Rippled [<a href="https://ripple.com/wiki/Category:Rippled_release_notes">Release Notes</a> | <a href="https://github.com/ripple/rippled">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=25">Issue Tracking</a>]</strong></h3>
<p><em>Released version 0.26.4</em></p>
<ul>
<li>Rocksdb v. 3.5.1</li>
<li>SQLite v. 3.8.7</li>
<li>Disable SSLv3</li>
<li>Add counters to track ledger read and write activities</li>
<li>Use trusted validators median fee when determining transaction fee</li>
<li>Add &#8211;quorum argument for server start (<a class="external text" href="https://ripplelabs.atlassian.net/browse/RIPD-563" rel="nofollow">RIPD-563</a>)</li>
<li>Add account_offers paging (<a class="external text" href="https://ripplelabs.atlassian.net/browse/RIPD-344" rel="nofollow">RIPD-344</a>)</li>
<li>Add account_lines paging (<a class="external text" href="https://ripplelabs.atlassian.net/browse/RIPD-343" rel="nofollow">RIPD-343</a>)</li>
<li>Ability to configure network fee in rippled.cfg file (<a class="external text" href="https://ripplelabs.atlassian.net/browse/RIPD-564" rel="nofollow">RIPD-564</a>)</li>
<li> Performance
<ul>
<li>Ledger performance improvements for storage and traversal (<a class="external text" href="https://ripplelabs.atlassian.net/browse/RIPD-434" rel="nofollow">RIPD-434</a>)</li>
<li>Improve client performance for JSON responses (<a class="external text" href="https://ripplelabs.atlassian.net/browse/RIPD-439" rel="nofollow">RIPD-439</a>)</li>
</ul>
</li>
</ul>
<ul>
<li>Other
<ul>
<li>Remove PROXY handshake feature</li>
<li>Change to rippled.cfg to support sections containing both key/value pairs and a list of values</li>
<li>Return descriptive error message for memo validation (<a class="external text" href="https://ripplelabs.atlassian.net/browse/RIPD-591" rel="nofollow">RIPD-591</a>)</li>
<li>Changes to enforce JSON-RPC 2.0 error format</li>
<li>Optimize account_lines and account_offers (<a class="external text" href="https://ripplelabs.atlassian.net/browse/RIPD-587" rel="nofollow">RIPD-587</a>)</li>
<li>Improve fee setting logic (<a class="external text" href="https://ripplelabs.atlassian.net/browse/RIPD-614" rel="nofollow">RIPD-614</a>)</li>
<li>Improve transaction security</li>
<li>Config improvements</li>
<li>Improve path filtering (<a class="external text" href="https://ripplelabs.atlassian.net/browse/RIPD-561" rel="nofollow">RIPD-561</a>)</li>
<li>Logging to distinguish Byzantine failure from tx bug (<a class="external text" href="https://ripplelabs.atlassian.net/browse/RIPD-523" rel="nofollow">RIPD-523</a>)</li>
</ul>
</li>
</ul>
<h3><strong>Ripple-lib [<a href="https://github.com/ripple/ripple-lib/releases">Release Notes</a> | <a href="https://github.com/ripple/ripple-lib">Github</a> | <a href="https://github.com/ripple/ripple-lib/issues">Issue Tracking</a>]</strong></h3>
<p><em>Released version 0.9.3</em></p>
<ul>
<li>Change <code>presubmit</code> to emit immediately before transaction submit</li>
<li>Add &#8220;core&#8221; browser build of ripple-lib which has a subset of features and smaller file size</li>
<li>Update binformat with missing fields from rippled</li>
<li>Wait for transaction validation before returning <code>tec</code> error</li>
<li>Change default <code>max_fee</code> on <code>Remote</code> to <code>1 XRP</code></li>
<li>Fix: Request ledger_accept should return the Remote</li>
</ul>
<h3><strong>Ripple Client [<a href="https://github.com/ripple/ripple-client/releases">Release Notes</a> | <a href="https://github.com/ripple/ripple-client">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=2&amp;view=planning&amp;selectedIssue=RT-1990&amp;quickFilter=38&amp;epics=visible">Issue Tracking</a>]</strong></h3>
<p><i>www.rippletrade.com &#8211; released versions 1.1.0, 1.1.1, 1.1.2, and 1.1.3</i></p>
<p>1.1.3</p>
<ul class="task-list">
<li>Add error messages on gateways page</li>
<li>Disable remove button on incoming trust</li>
<li>Orderbook currency precision changes</li>
<li>Update the loading spinners</li>
<li>Remove external jQuery dependency</li>
<li>Fix problems with GBI Send/Convert</li>
<li>Fix release notes link</li>
</ul>
<p>1.1.2</p>
<ul class="task-list">
<li>Add BRL, MXN funding pages</li>
<li>Add client side validation for trusting amount</li>
<li>Code cleanup</li>
<li>Show higher precision for orderbook</li>
</ul>
<p>1.1.1</p>
<ul class="task-list">
<li>Add account deletion feature</li>
<li>Add ripple name support on debug page</li>
<li>Change amount precisions on send, convert, orderbook</li>
</ul>
<p>1.1.0</p>
<ul class="task-list">
<li>Keep user session in sync thru all the browser tabs</li>
<li>Fund UI redesign</li>
<li>Add max network fee change field in advanced tab</li>
<li>Add Balances sidebar for several pages</li>
<li>Add JPY funding page</li>
<li>Add pretend page</li>
<li>Add 404 page</li>
<li>Add tooltip with full Ripple address when hovering over contact</li>
<li>E2E tests for settings dropdown and login</li>
<li>New amount precision rules based on currencies,</li>
<li>Clean up the code according to our js style guide</li>
<li>Update Loading UIs</li>
<li>Remove downloadable client code</li>
<li>Expand history filters by default</li>
<li>Fix contact destination tag deletion</li>
<li>Fix currency on trustline deletion</li>
<li>Generalize currency colors</li>
</ul>
<p><strong><a href="https://www.bountysource.com/trackers/3604734-ripple-trade"><i>Open bounties</i></a></strong></p>
<ul>
<li><a href="https://www.bountysource.com/issues/2842674-in-the-send-confirmation-page-show-network-and-gateway-fees">In the &#8220;Send&#8221; confirmation page, show network and gateway Fees</a> (41,667 XRP)</li>
</ul>
<h3><strong>Ripple-Rest [<a href="https://github.com/ripple/ripple-rest/blob/master/docs/release_notes.md">Release Notes</a> | <a href="https://github.com/ripple/ripple-rest">Github</a> | <a href="https://ripplelabs.atlassian.net/browse/RA/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel">Issue Tracking</a>]</strong></h3>
<p><em>Released version 1.3.1</em></p>
<ul>
<li>Add <code>validated</code> query parameter to POST payment, account settings and trustlines. When set to true this will force the request to wait until the transaction has been validated. <a href="https://github.com/ripple/ripple-rest/commit/f2710f4b78a8c1b9860f2876f6f051022241c641">f2710f4b</a>, <a href="https://github.com/ripple/ripple-rest/commit/1ee9c9ff06ada4a14955bf64ed42d7c3c75f5a3e">1ee9c9ff</a>, <a href="https://github.com/ripple/ripple-rest/commit/f243fef9d28be86f593dae11a3fac7421115e5bf">f243fef9</a></li>
<li>Add <code>/v1/transaction-fee</code> endpoint to retrieve the current fee that connected servers are charging. <a href="https://github.com/ripple/ripple-rest/commit/212c0bfbcde887db9e9842ef43af062b5ab77598">212c0bfb</a> and <a href="https://github.com/ripple/ripple-rest/commit/afaa381bb5f9a4fdd50f1e35cb1d7990b4926833">afaa381b</a></li>
<li>Support <code>last_ledger_sequence</code> in POST payments, sets the last ledger this payment can be included in.</li>
<li>Support <code>max_fee</code> in POST payments. This will set the maximum fee the user will pay when posting a payment.</li>
<li>Add config entry to configure <code>max_transaction_fee</code>. This allows you to set the maximum fee you&#8217;re willing to pay for any transaction. <a href="https://github.com/ripple/ripple-rest/blob/develop/docs/server-configuration.md">Documented changes</a></li>
<li>Save unsubmitted transactions to database</li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/insights/release-notes-19-november-2014/">Release Notes (19 November 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>ripple-rest 1.3 release</title>
		<link>https://ripple.com/dev-blog/ripple-rest-1-3-release/</link>
		<pubDate>Tue, 04 Nov 2014 21:03:53 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://www-stage.ripple.com/?p=6167</guid>
		<description><![CDATA[<p>Last Friday we did a master release of ripple-rest version 1.3.0. We’ve done a few changes externally but the substantial additions in 1.3.0 have been stability and verbose error handling. If you’ve been following the commits on [github](https://github.com/ripple/ripple-rest), we’ve also vastly improved test coverage and introduced simplicity by removing the need for Postgres.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ripple-rest-1-3-release/">ripple-rest 1.3 release</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Last Friday we did a master release of ripple-rest version 1.3.0. We’ve done a few changes externally but the substantial additions in 1.3.0 have been stability and verbose error handling. If you’ve been following the commits on [github](https://github.com/ripple/ripple-rest), we’ve also vastly improved test coverage and introduced simplicity by removing the need for Postgres.</p>
<p><strong><strong> </strong></strong></p>
<p>Below is a list of some of the major changes and an explanation of the decisions we made for this last release.</p>
<p><strong><strong> </strong></strong></p>
<ul>
<li><b>Improved error handling:</b> Error handling logic has been rewritten to provide clearer feedback for all requests. Prior to 1.3.0, an error could respond with a 200-299 range HTTP status code stating that the ripple-rest server was able to respond but the request may not have been successful. This put the burden on the developers to parse through the response body to determine whether something was successful or not. In version 1.3.0, ripple-rest will only return a “success” (200-299 range) when the actual request is successful and developers can expect that the response body will match what a successful request looks like. With actual errors and errors responses, ripple-rest will now include an error_type (a short code identifying the error), an error (a human-readable summary), and an optional message (for longer explanation of errors if needed). Details [here](<a href="http://dev.ripple.com/ripple-rest.html#errors">http://dev.ripple.com/ripple-rest.html#errors</a>).</li>
</ul>
<p><strong><strong> </strong></strong></p>
<ul>
<li><b>DB support for SQLite on disk, and removal of Postgres support:</b> Version 1.3.0 now directly supports both SQLite in memory and on disk. We&#8217;ve removed support for Postgres based on feedback that the installation has been a huge burden for the minimal amount of data that is stored in ripple-rest. The installation with SQLite is now much leaner and configuring a new database is as simple as pointing to a flat file location in the config.json. In the future, we may revisit adding additional database connectors for clustered and high availability deployments, but we’re much more keen on the usability and simplicity of only supporting SQLite at this point.</li>
</ul>
<p><strong><strong> </strong></strong></p>
<ul>
<li><b>Config.json 2.0:</b> The previous config.json 1.0.1 was confusing and disabling things like SSL required removal of lines inside the config file while environment variables could be set to overwrite config file values. We’ve cleaned up a lot of that messiness and we’ve modified the new config.json so that all configurations are fully transparent. SSL can be disabled simply by setting “ssl_enabled” as false and in order to switch to SQLite in memory the “db_path” should be set to “:memory:” instead of pointing to a flat file. Lastly, as a reminder to folks who didn’t know, ripple-rest does support a multi-server configuration in the array of “rippled_servers”. Documentation on config file can be found [here](https://github.com/ripple/ripple-rest/blob/develop/docs/server-configuration.md)</li>
</ul>
<p><strong><strong> </strong></strong></p>
<ul>
<li><b>/v1/wallet/new endpoint:</b> Easy and simple way to generate ripple wallets! No explanation needed!</li>
<li><b>Removed /v1/tx/{:hash} and /v1/transaction/{:hash}: </b>Use `/<b>v1/transactions/{:hash}`</b>. This change serves to provide consistency with REST standards.</li>
</ul>
<p><strong><strong> </strong></strong></p>
<ul>
<li><b>Removed /v1/payments:</b> Use `<b>/v1/accounts/{source_address}/payments`</b> to submit a payment. This change serves to provide consistency in the payment flow.</li>
</ul>
<p><strong><strong> </strong></strong></p>
<p>We appreciate the continued feedback from those of you who are building integrations with ripple-rest and appreciate all the support that you’ve given us so far.</p>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ripple-rest-1-3-release/">ripple-rest 1.3 release</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Release Notes (29 October 2014)</title>
		<link>https://ripple.com/dev-blog/release-notes-29-october-2014/</link>
		<pubDate>Wed, 29 Oct 2014 22:20:57 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://54.215.240.129/?p=6086</guid>
		<description><![CDATA[<p>Curated release notes will be posted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features.</p>
<p>We hope you find these useful! Please let us know if you have feedback in the comments.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/release-notes-29-october-2014/">Release Notes (29 October 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p style="color: #898788;"><em style="font-weight: inherit; color: #9090aa;">Curated release notes will be posted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features.</em></p>
<p style="color: #898788;"><em style="font-weight: inherit; color: #9090aa;">We hope you find these useful! Please let us know if you have feedback in the comments.</em></p>
<h3><strong>Rippled [<a href="https://ripple.com/wiki/Category:Rippled_release_notes">Release Notes</a> | <a href="https://github.com/ripple/rippled">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=25">Issue Tracking</a>]</strong></h3>
<p><em>No releases</em></p>
<h3><strong>Ripple-lib [<a href="https://github.com/ripple/ripple-lib/releases">Release Notes</a> | <a href="https://github.com/ripple/ripple-lib">Github</a> | <a href="https://github.com/ripple/ripple-lib/issues">Issue Tracking</a>]</strong></h3>
<p><em>Released version 0.9.0</em></p>
<p>0.9.0</p>
<ul>
<li>Add routes to the vault client for KYC attestations (<a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/commit/ed2da57475acf5e9d2cf3373858f4274832bd83f">ed2da574</a>)</li>
<li>Currency: add <code>show_interest</code> flag to show or hide interest in <code>Currency.to_human()</code> and<code>Currency.to_json()</code> <a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/blob/947ec3edc2e7c8f1ef097e496bf552c74366e749/test/currency-test.js#L123">Example use in tests</a></li>
<li>Configurable maxAttempts for transaction submission (<a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/commit/d10709254061e9e4416d2cb78b5cac1ec0d7ffa5">d107092</a>)</li>
<li>Binformat: added missing TransactionResult options (<a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/commit/6abed8dd5311765b2eb70505dadbdf5121439ca8">6abed8d</a>)</li>
<li><strong>Breaking change:</strong> make maxLoops in seed.get_key optional. <a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/blob/23e473b6886c457781949c825b3ff48b3984e51f/test/seed-test.js">Example use in tests</a>(<a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/commit/23e473b6886c457781949c825b3ff48b3984e51f">23e473b</a>)</li>
<li>Shrinkwrap packages for dependency locking (<a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/blob/0.9.0/2dcd5f94fbc71200eb08a5044c76ef94f7971913">2dcd5f9</a>)</li>
<li>Fix: Amount.to_human() precision bugs (<a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/commit/4be209e286b5b209bec7bcd1212098985e15ff2f">4be209e</a> and <a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/commit/7708c64576e70ce3ac190442daceb30e4446aab7">7708c64</a>)</li>
<li>Fix: change handling of requestLedger options (<a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/commit/57b70300f5f0c7534ede118ddbb5d8762668a4f8">57b7030</a>)</li>
</ul>
<h3><strong>Ripple Charts [<a href="https://github.com/ripple/ripplecharts-frontend">Github (frontend)</a> | <a href="https://github.com/ripple/ripple-data-api">Github (backend)</a> | <a href="https://ripplelabs.atlassian.net/browse/RC/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel">Issue Tracking</a>]</strong></h3>
<ul>
<li>Added date picker to staging, launching to production soon</li>
<li>Massive <a href="https://github.com/ripple/ripplecharts-frontend/commit/c656f71d6655ee79755f212393d3107861a9c227">pull request</a> outlining upcoming features</li>
</ul>
<p><a href="https://www.bountysource.com/trackers/3954022-ripple-charts"><strong><i>Open bounties</i></strong></a></p>
<ul>
<li><a href="https://www.bountysource.com/issues/3597514-value-summary-donut-change-details-display-to-better-represent-iou-iou-markets">Value Summary Donut: change details display to better represent IOU/IOU markets</a> (5,833 XRP)</li>
</ul>
<h3><strong>Ripple Client [<a href="https://github.com/ripple/ripple-client/releases">Release Notes</a> | <a href="https://github.com/ripple/ripple-client">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=2&amp;view=planning&amp;selectedIssue=RT-1990&amp;quickFilter=38&amp;epics=visible">Issue Tracking</a>]</strong></h3>
<p><i>www.rippletrade.com &#8211; released version 1.0.11</i></p>
<p>1.0.11</p>
<ul class="task-list">
<li>Numbers after decimals are getting rounded now, not truncated</li>
<li>Snapswap USD funding flow (hidden)</li>
<li>GBI gateway discovery</li>
<li>l10n fixes</li>
<li>Roll back pathfinding changes</li>
<li>new txQueue mechanism</li>
<li>UI cleanup</li>
<li>When logged in on multiple tabs, if you sign out/in on one tab, sign out/in on the other tab</li>
</ul>
<p><strong><a href="https://www.bountysource.com/trackers/3604734-ripple-trade"><i>Open bounties</i></a></strong></p>
<ul>
<li><a href="https://www.bountysource.com/issues/2842674-in-the-send-confirmation-page-show-network-and-gateway-fees">In the &#8220;Send&#8221; confirmation page, show network and gateway Fees</a> (41,667 XRP)</li>
<li>BOUNTY GRANTED: <a href="https://www.bountysource.com/issues/2842476-incorrect-amount-displayed-for-partial-payments">Incorrect amount displayed for partial payments</a> (8,333 XRP)</li>
</ul>
<h3><strong>Ripple-Rest [<a href="https://github.com/ripple/ripple-rest/blob/master/docs/release_notes.md">Release Notes</a> | <a href="https://github.com/ripple/ripple-rest">Github</a> | <a href="https://ripplelabs.atlassian.net/browse/RA/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel">Issue Tracking</a>]</strong></h3>
<p><em>Released version 1.3.0-rc5</em></p>
<p>1.3.0-rc5</p>
<ul>
<li>Freeze support (<a style="color: #4183c4;" href="https://github.com/ripple/ripple-rest/pull/167">pull 167</a> and <a style="color: #4183c4;" href="https://github.com/ripple/ripple-rest/pull/178">pull 178</a>)</li>
<li>Memo field support (<a style="color: #4183c4;" href="https://github.com/ripple/ripple-rest/pull/154">pull 154</a>)</li>
<li>Add <code>destination_amount_submitted</code> and <code>source_amount_submitted</code> to Payment (<a style="color: #4183c4;" href="https://github.com/ripple/ripple-rest/commit/0d3599b4057c5cb884eade6bc11c978f8770c943">0d3599b</a> and<a style="color: #4183c4;" href="https://github.com/ripple/ripple-rest/commit/67134e3ef57b808fc193f2f62579c5681aeb49cc">67134e3</a>)</li>
<li>New endpoint to generate an address/secret pair, <code>/wallet/new</code></li>
<li>Expose <code>router</code> and <code>remote</code> as <code>RippleRestPlugin</code> to use as a plugin for other modules</li>
<li>Log all connected servers, add reconnect to servers on SIGHUP</li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/release-notes-29-october-2014/">Release Notes (29 October 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Gateway Advisory On Partial Payment Flag</title>
		<link>https://ripple.com/dev-blog/gateway-advisory-on-partial-payment-flag/</link>
		<pubDate>Wed, 22 Oct 2014 22:17:55 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://54.183.161.14/?p=5991</guid>
		<description><![CDATA[<p>Ripple Labs has issued a Gateway Bulletin on the Partial Payment flag which describes the flag and best practices around balancing activity on and off the ledger. The tfPartialPayment flag is set by the sender to specify a payment where the beneficiary can receive less than the specified amount.<br />
Gateways are encouraged to implement best practices and understand the Partial Payment flag to mitigate errors that can result in fraud if undetected.<br />
To view this bulletin, please visit: https://wiki.ripple.com/Gateway_Bulletins</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/gateway-advisory-on-partial-payment-flag/">Gateway Advisory On Partial Payment Flag</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div>Ripple Labs has issued a Gateway Bulletin on the Partial Payment flag which describes the flag and best practices around balancing activity on and off the ledger. The tfPartialPayment flag is set by the sender to specify a payment where the beneficiary can receive less than the specified amount.</div>
<div>Gateways are encouraged to implement best practices and understand the Partial Payment flag to mitigate errors that can result in fraud if undetected.</div>
<div></div>
<div>To view this bulletin, please visit: <a href="https://wiki.ripple.com/Gateway_Bulletins" target="_blank">https://wiki.ripple.com/<wbr />Gateway_Bulletins</a></div>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/gateway-advisory-on-partial-payment-flag/">Gateway Advisory On Partial Payment Flag</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Release Notes (14 October 2014)</title>
		<link>https://ripple.com/dev-blog/release-notes-14-october-2014/</link>
		<pubDate>Tue, 14 Oct 2014 22:15:05 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://54.183.161.14/?p=5988</guid>
		<description><![CDATA[<p>Curated release notes will be posted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features.<br />
We hope you find these useful! Please let us know if you have feedback in the comments.<br />
Rippled [Release Notes &#124; Github &#124; Issue Tracking]<br />
Released version 0.26.3-sp4<br />
Update for validating rippled servers that includes new transaction fee logic</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/release-notes-14-october-2014/">Release Notes (14 October 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="entry-content">
<p style="color: #898788;"><em style="font-weight: inherit; color: #9090aa;">Curated release notes will be posted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features.</em></p>
<p style="color: #898788;"><em style="font-weight: inherit; color: #9090aa;">We hope you find these useful! Please let us know if you have feedback in the comments.</em></p>
<h3><strong>Rippled [<a href="https://ripple.com/wiki/Category:Rippled_release_notes">Release Notes</a> | <a href="https://github.com/ripple/rippled">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=25">Issue Tracking</a>]</strong></h3>
<p><em>Released version 0.26.3-sp4</em></p>
<ul>
<li>Update for validating rippled servers that includes new transaction fee logic</li>
</ul>
<h3><strong>Ripple-lib [<a href="https://github.com/ripple/ripple-lib/releases">Release Notes</a> | <a href="https://github.com/ripple/ripple-lib">Github</a> | <a href="https://github.com/ripple/ripple-lib/issues">Issue Tracking</a>]</strong></h3>
<p><em>Released versions 0.8.2, 0.8.3-rc1, 0.9.0-rc1, 0.9.0-rc2</em></p>
<p>0.9.0-rc2</p>
<ul>
<li>Currency: add <code>show_interest</code> flag to show or hide interest in <code>Currency.to_human()</code> and<code>Currency.to_json()</code> <a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/blob/947ec3edc2e7c8f1ef097e496bf552c74366e749/test/currency-test.js#L123">Example use in tests</a></li>
<li><strong>Breaking change:</strong> make maxLoops in seed.get_key optional. <a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/blob/23e473b6886c457781949c825b3ff48b3984e51f/test/seed-test.js">Example use in tests</a>(<a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/commit/23e473b6886c457781949c825b3ff48b3984e51f">23e473b</a>)</li>
</ul>
<p>0.8.3-rc1</p>
<ul>
<li>Add routes to the vault client for KYC attestations (<a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/commit/ed2da57475acf5e9d2cf3373858f4274832bd83f">ed2da574</a>)</li>
<li>Configurable maxAttempts for transaction submission (<a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/commit/d10709254061e9e4416d2cb78b5cac1ec0d7ffa5">d107092</a>)</li>
<li>Fix: change handling of requestLedger options (<a style="color: #4183c4;" href="https://github.com/ripple/ripple-lib/commit/57b70300f5f0c7534ede118ddbb5d8762668a4f8">57b7030</a>)</li>
</ul>
<p>0.8.2</p>
<ul>
<li>Currency: Allow mixed letters and numbers in currencies</li>
<li>Deprecate account_tx map/reduce/filter</li>
<li>Fix: correct requestLedger arguments</li>
<li>Fix: missing subscription on error events for some server methods</li>
<li>Fix: orderbook reset on reconnect</li>
</ul>
<h3><strong>Ripple Charts [<a href="https://github.com/ripple/ripplecharts-frontend">Github (frontend)</a> | <a href="https://github.com/ripple/ripple-data-api">Github (backend)</a> | <a href="https://ripplelabs.atlassian.net/browse/RC/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel">Issue Tracking</a>]</strong></h3>
<p><em>No major updates</em></p>
<p><a href="https://www.bountysource.com/trackers/3954022-ripple-charts"><strong><i>Open bounties</i></strong></a></p>
<ul>
<li><a href="https://www.bountysource.com/issues/3597514-value-summary-donut-change-details-display-to-better-represent-iou-iou-markets">Value Summary Donut: change details display to better represent IOU/IOU markets</a> (5,833 XRP)</li>
</ul>
<h3><strong>Ripple Client [<a href="https://github.com/ripple/ripple-client/releases">Release Notes</a> | <a href="https://github.com/ripple/ripple-client">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=2&amp;view=planning&amp;selectedIssue=RT-1990&amp;quickFilter=38&amp;epics=visible">Issue Tracking</a>]</strong></h3>
<p><i>www.rippletrade.com &#8211; released version 1.0.8, 1.0.9, 1.0.10</i></p>
<p>1.0.10</p>
<ul class="task-list">
<li>Added a complete KYC flow (hidden for now)</li>
<li>Fixed payment URI’s with small amounts</li>
<li>Fixed JSON rewriter issues</li>
<li>Fixes on account page UI</li>
<li>Fixes on convert page</li>
<li>Routing changes</li>
<li>Notification and button UI improvements</li>
</ul>
<p>1.0.9</p>
<ul class="task-list">
<li>Nodejs server for dev use</li>
<li>Advanced settings page UI improvements</li>
<li>Add default ripple.txt file</li>
<li>Show ripple names on overview page</li>
<li>Align balances on the decimal place on overview page</li>
</ul>
<p>1.0.8</p>
<ul class="task-list">
<li>UI improvements / cleanup</li>
<li>Currency parameter for Ripple URIs</li>
</ul>
<p><strong><a href="https://www.bountysource.com/trackers/3604734-ripple-trade"><i>Open bounties</i></a></strong></p>
<ul>
<li><a href="https://www.bountysource.com/issues/2842674-in-the-send-confirmation-page-show-network-and-gateway-fees">In the “Send” confirmation page, show network and gateway Fees</a> (41,667 XRP)</li>
<li><a href="https://www.bountysource.com/issues/2842476-incorrect-amount-displayed-for-partial-payments">Incorrect amount displayed for partial payments</a> (8,333 XRP)</li>
</ul>
<h3><strong>Ripple-Rest [<a href="https://github.com/ripple/ripple-rest/blob/master/docs/release_notes.md">Release Notes</a> | <a href="https://github.com/ripple/ripple-rest">Github</a> | <a href="https://ripplelabs.atlassian.net/browse/RA/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel">Issue Tracking</a>]</strong></h3>
<p><em>Released version 1.2.5, 1.3.0-rc2, 1.3.0-rc3, 1.3.0-rc4</em></p>
<p>1.3.0-rc4</p>
<ul>
<li>Memo field support</li>
<li>Freeze support</li>
<li>New endpoint to generate an address/secret pair, <code>/account/new</code></li>
<li>New configuration, you will have to change your config file</li>
<li>New database interface, support for sqlite in memory or persistent through config path</li>
<li>Deprecated Postgres support</li>
<li>Transitioned to Express4</li>
<li>Refactored response and error handling, improves consistency of response messages</li>
<li>Expose <code>router</code> and <code>remote</code> as <code>RippleRestPlugin</code> to use as a plugin for other modules</li>
<li>Centralize connection checking, improves consistency of connected responses</li>
<li>Centralize logging using winston, timestamps on all logs</li>
<li>New test-suite</li>
<li>Log all connected servers, add reconnect to servers on SIGHUP</li>
<li>Tied api version to major package version and added package version to index page <code>/</code> or<code>/v1</code></li>
<li>Update ripple-lib which fixes several stability problems and crashes</li>
<li>Fix: issue where forcible server connectivity check would cause permanent server disconnect</li>
<li>Fix: show index page while hitting root <code>/</code></li>
<li>Fix: issue with notification parsing</li>
<li>Fix: check and validate issuer upon payment</li>
<li>Fix: database reset on startup</li>
<li>Fix: Check tx.meta exists before accessing</li>
<li>Fix: Allow browser-based client to make POST to ripple-rest server</li>
<li>Fix: Occasional crash on getting payments for account</li>
<li>Code refactor and cleanup</li>
</ul>
<p>1.2.5</p>
<ul>
<li>Fix: Check that tx.meta exists before accessing</li>
<li>Fix: Case where ripple-rest would crash when rippled could not be connected to</li>
</ul>
<div id="fb-root" class=" fb_reset">
<div style="position: absolute; top: -10000px; height: 0px; width: 0px;">
<div><iframe style="display: none;" src="https://www.facebook.com/connect/ping?client_id=477386009022238&amp;domain=ripple.com&amp;origin=1&amp;redirect_uri=https%3A%2F%2Fs-static.ak.facebook.com%2Fconnect%2Fxd_arbiter%2F2_ZudbRXWRs.js%3Fversion%3D41%23cb%3Df25dcc0a74%26domain%3Dripple.com%26origin%3Dhttps%253A%252F%252Fripple.com%252Ff422a5754%26relation%3Dparent&amp;response_type=token%2Csigned_request%2Ccode&amp;sdk=joey" name="f17f15ae9" width="300" height="150" frameborder="0" scrolling="no"></iframe></div>
</div>
<div style="position: absolute; top: -10000px; height: 0px; width: 0px;">
<div><iframe id="fb_xdm_frame_https" style="border: none;" tabindex="-1" title="Facebook Cross Domain Communication Frame" src="https://s-static.ak.facebook.com/connect/xd_arbiter/2_ZudbRXWRs.js?version=41#channel=f422a5754&amp;origin=https%3A%2F%2Fripple.com" name="fb_xdm_frame_https" width="300" height="150" frameborder="0" scrolling="no"></iframe></div>
</div>
</div>
<p><script>// <![CDATA[
(function(d, s, id) {
		var js, fjs = d.getElementsByTagName(s)[0];
		if (d.getElementById(id)) return;
		js = d.createElement(s); js.id = id;
		js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&#038;appId=477386009022238";
		fjs.parentNode.insertBefore(js, fjs);
	}(document, 'script', 'facebook-jssdk'));
// ]]&gt;</script></p>
<ul class="list-unstyled sharing-is-caring">
<ul class="list-unstyled sharing-is-caring">
<li class="facebooker"><span style="vertical-align: bottom; width: 76px; height: 20px;"><iframe class="" style="border: none; visibility: visible; width: 76px; height: 20px;" title="fb:like Facebook Social Plugin" src="https://www.facebook.com/plugins/like.php?app_id=477386009022238&amp;channel=https%3A%2F%2Fs-static.ak.facebook.com%2Fconnect%2Fxd_arbiter%2F2_ZudbRXWRs.js%3Fversion%3D41%23cb%3Df5b7d9ef4%26domain%3Dripple.com%26origin%3Dhttps%253A%252F%252Fripple.com%252Ff422a5754%26relation%3Dparent.parent&amp;href=https%3A%2F%2Fripple.com%2Fdev-blog%2Frelease-notes-14-october-2014%2F&amp;layout=button_count&amp;locale=en_US&amp;sdk=joey&amp;send=false&amp;show_faces=true" name="f278cc64f4" width="1000px" height="1000px" frameborder="0" scrolling="no"></iframe></span></li>
<li class="twitterer"><iframe id="twitter-widget-0" class="twitter-share-button twitter-tweet-button twitter-share-button twitter-count-horizontal" style="width: 109px; height: 20px;" title="Twitter Tweet Button" src="https://platform.twitter.com/widgets/tweet_button.378d258ae34e4697b1163b509c82f85f.en.html#_=1414188870382&amp;count=horizontal&amp;id=twitter-widget-0&amp;lang=en&amp;original_referer=https%3A%2F%2Fripple.com%2Fdev-blog%2Frelease-notes-14-october-2014%2F&amp;size=m&amp;text=Release%20notes%20(14%20October%202014)%20%7C%20Ripple&amp;url=https%3A%2F%2Fripple.com%2Fdev-blog%2Frelease-notes-14-october-2014%2F&amp;via=ripple" width="300" height="150" frameborder="0" scrolling="no" data-twttr-rendered="true"></iframe><br />
<script>// <![CDATA[
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');

// ]]&gt;</script></li>
</ul>
</ul>
<div class="mobile-linebreak"></div>
<ul class="list-unstyled sharing-is-caring">
<li class="linkediner"><script src="//platform.linkedin.com/in.js" type="text/javascript">// <![CDATA[
lang: en_US
// ]]&gt;</script><br />
<span class="IN-widget" style="line-height: 1; vertical-align: baseline; display: inline-block; text-align: center;"><span style="padding: 0px !important; margin: 0px !important; text-indent: 0px !important; display: inline-block !important; vertical-align: baseline !important; font-size: 1px !important;"><span id="li_ui_li_gen_1414188870613_0"><a id="li_ui_li_gen_1414188870613_0-link"></a><span id="li_ui_li_gen_1414188870613_0-logo">in</span><span id="li_ui_li_gen_1414188870613_0-title"><span id="li_ui_li_gen_1414188870613_0-mark"></span><span id="li_ui_li_gen_1414188870613_0-title-text">Share</span></span></span></span><span style="padding: 0px !important; margin: 0px !important; text-indent: 0px !important; display: inline-block !important; vertical-align: baseline !important; font-size: 1px !important;"><span id="li_ui_li_gen_1414188870627_1-container" class="IN-right IN-hidden"><span id="li_ui_li_gen_1414188870627_1" class="IN-right"><span id="li_ui_li_gen_1414188870627_1-inner" class="IN-right"><span id="li_ui_li_gen_1414188870627_1-content" class="IN-right">0</span></span></span></span></span></span><script type="IN/Share+init" data-counter="right"></script></li>
<li class="gpluser">
<div id="___plus_0" style="text-indent: 0px; margin: 0px; padding: 0px; border-style: none; float: none; line-height: normal; font-size: 1px; vertical-align: baseline; display: inline-block; width: 450px; height: 20px; background: transparent;"><iframe id="I0_1414188870666" style="position: static; top: 0px; width: 450px; margin: 0px; border-style: none; left: 0px; visibility: visible; height: 20px;" tabindex="0" title="+Share" src="https://apis.google.com/u/0/se/0/_/+1/sharebutton?plusShare=true&amp;usegapi=1&amp;action=share&amp;hl=en-US&amp;origin=https%3A%2F%2Fripple.com&amp;url=https%3A%2F%2Fripple.com%2Fdev-blog%2Frelease-notes-14-october-2014%2F&amp;gsrc=3p&amp;ic=1&amp;jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.en.cJd-xLIjm7E.O%2Fm%3D__features__%2Fam%3DAQ%2Frt%3Dj%2Fd%3D1%2Ft%3Dzcms%2Frs%3DAGLTcCM1qdK7R3UH7SuVDUEU_gm_1mpDrA#_methods=onPlusOne%2C_ready%2C_close%2C_open%2C_resizeMe%2C_renderstart%2Concircled%2Cdrefresh%2Cerefresh&amp;id=I0_1414188870666&amp;parent=https%3A%2F%2Fripple.com&amp;pfname=&amp;rpctoken=34719058" name="I0_1414188870666" width="100%" height="150" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" data-gapiattached="true"></iframe></div>
<p><script type="text/javascript">// <![CDATA[
window.___gcfg = {
	        lang: 'en-US'
	      };

	      (function() {
	        var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
	        po.src = 'https://apis.google.com/js/plusone.js';
	        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
	      })();

// ]]&gt;</script></li>
<li class="rsser"><a href="http://ripple.com/dev-blog/feed"><img src="https://ripple.com/wp-content/themes/ripple/assets/img/rss.png" alt="Subscribe to Ripple" /></a></li>
</ul>
<div class="about-author-wrapper">
<div class="about-author">
<div class="author-img">
<div class="entry_author_image"><img alt="Ryan Terribilini" /></div>
</div>
<div class="author-meta">
<h6 class="author-title">About Ryan Terribilini</h6>
</div>
<p class="author-bio">Ryan Terribilini is head of developer relations at Ripple Labs.</p>
</div>
</div>
</div>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/release-notes-14-october-2014/">Release Notes (14 October 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>How Ripple Labs supports gateways</title>
		<link>https://ripple.com/dev-blog/ripple-labs-helps-gateways/</link>
		<pubDate>Mon, 22 Sep 2014 16:15:06 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/p=4826</guid>
		<description><![CDATA[<p>To help accelerate the creation of strong, reliable, and compliant gateways, Ripple Labs will be providing XRP incentives and extended technical support for gateways that meet criteria considered to be critical for the success of a gateway.</p>
<p>Ripple Labs wants every gateway to achieve a gold standard in business planning, technical reliability and stability, regulatory compliance, and liquidity. The Ripple protocol enables the federation and interoperability of many independent payment systems.</p>
<p>As such, we’re actively developing the specifications for Gateway Services APIs and are eager to help gateways with implementation. In the meantime, here are some of the steps and assistance provided by Ripple Labs to help get your gateway to that point.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ripple-labs-helps-gateways/">How Ripple Labs supports gateways</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="alert alert-danger">This program is no longer active.</div>
<p><i>To help accelerate the creation of strong, reliable, and compliant gateways, Ripple Labs will be providing XRP incentives and extended technical support for gateways that meet criteria considered to be critical for the success of a gateway.</i></p>
<p>Ripple Labs wants every gateway to achieve a gold standard in business planning, technical reliability and stability, regulatory compliance, and liquidity. The Ripple protocol enables the federation and interoperability of many independent payment systems.</p>
<p>As such, we’re actively developing the specifications for <a href="https://ripple.com/wiki/Gateway_Services">Gateway Services APIs</a> and are eager to help gateways with implementation. In the meantime, here are some of the steps and assistance provided by Ripple Labs to help get your gateway to that point.</p>
<h2>Gateway business plan development</h2>
<p>Successful businesses start with a concept that can be concisely summarized and executed upon. To get things started on the right foot, here is a <a href="https://docs.google.com/a/ripple.com/document/d/1lVPuqCdLwTrkxmK5t1vcHhOyBd3fT7Q75v89eedzcBo/edit#">business plan template for gateways</a> that is freely available. This plan was developed in consultation with new gateways that were exploring the business opportunities on Ripple, so it&#8217;s tailored to the needs of an early stage operator.</p>
<p>The template encourages you to carefully consider who your customer is and what value they’ll derive from your service. Simplifying their experience and making the deposit and withdrawal of assets frictionless is critical to driving volume and subsequent revenue.</p>
<p>Serious endeavors should contact Ripple Labs at <a href="mailto:developers@ripple.com">developers@ripple.com</a> to coordinate for possible assistance and business planning.</p>
<h2></h2>
<h3>Services implementation</h3>
<p><a href="https://wiki.ripple.com/Gateway_Services">Gateway Services APIs</a> make gateways interoperable and provide straightforward calls that clients can use to route payments appropriately. Gateway Services rely on existing web standards like host-meta and webfinger, while making certain functions of the REST API more robust. Please contact us for assistance if you decide to implement these services at your gateway.</p>
<h2>XRP for customers of KYC/AML compliant gateways</h2>
<p>Ripple Labs may assist with customer acquisition by providing gateways with XRP that can be used to activate Ripple wallets of new accounts. Customers who provide a baseline level of KYC information may be eligible to receive XRP upon registration and making a deposit at your gateway.</p>
<h2>Compliance resources</h2>
<p>Ripple Labs regularly issues <a href="https://wiki.ripple.com/Gateway_Bulletins">Gateway Bulletins</a> as new features are released or on topics related to compliance and risk. Those bulletins are shared with the developer community including gateway operators and <a href="https://groups.google.com/forum/#!forum/irba">IRBA members</a>. In addition to Gateway Bulletins, Ripple Labs publishes <a href="https://groups.google.com/forum/#!forum/irba">Compliance Resources</a> that may be helpful for gateway operators in understanding local and global standards on KYC/AML policies, as well as opinions or guidance on virtual currency.</p>
<p>Since rules on KYC/AML policies and guidance on virtual currency vary by jurisdiction, gateways should obtain legal advice on how these rules apply to their business and country of operation. Be aware that regulatory standards are evolving rapidly. While Ripple Labs makes every effort to update the Gateway Bulletins and Compliance Resources regularly, gateways should seek legal advice and understand changes to regulation as it may vary based on geography and the products that you offer.</p>
<h2>Generating liquidity</h2>
<p>Ripple Labs understands that it may be difficult for new gateways to generate the liquidity needed to provide a compelling service to their customers. To do so, it is important to meet the aforementioned technical and compliance standards to have a popular, well-capitalized gateway. Transaction volume drives liquidity so Ripple Labs may facilitate introductions for operational gateways to market makers who can enable assets issued by your gateway to trade freely at competitive exchange rates.</p>
<h2>Feedback is welcome</h2>
<p>The Ripple protocol&#8217;s success will be largely determined by the ecosystem of gateways that are providing the onramps and off-ramps for value. As such, Ripple Labs continues to support gateway developers and entrepreneurs in their projects to build gateways.</p>
<p>We’d love to hear your feedback on what’s most useful and other tools that you’d like to see. We look forward to working alongside you to build the value web!</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ripple-labs-helps-gateways/">How Ripple Labs supports gateways</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Biweekly release notes (17 September 2014)</title>
		<link>https://ripple.com/dev-blog/biweekly-release-notes-17-september-2014/</link>
		<pubDate>Wed, 17 Sep 2014 16:20:27 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/p=4915</guid>
		<description><![CDATA[<p>Curated release notes will be posted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features.</p>
<p>We hope you find these useful! Please let us know if you have feedback in the comments.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/biweekly-release-notes-17-september-2014/">Biweekly release notes (17 September 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p style="color: #898788;"><em style="font-weight: inherit; color: #9090aa;">Curated release notes will be posted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features.</em></p>
<p style="color: #898788;"><em style="font-weight: inherit; color: #9090aa;">We hope you find these useful! Please let us know if you have feedback in the comments.</em></p>
<h3><strong>Rippled [<a href="https://ripple.com/wiki/Category:Rippled_release_notes">Release Notes</a> | <a href="https://github.com/ripple/rippled">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=25">Issue Tracking</a>]</strong></h3>
<p><em>Released version 0.26.3-sp1</em></p>
<ul>
<li>New command to display HTTP/S-RPC sessions metrics (<a class="external text" style="color: #663366;" href="https://ripplelabs.atlassian.net/browse/RIPD-533" rel="nofollow">RIPD-533</a>)</li>
<li>Improved handling of HTTP/S-RPC sessions (<a class="external text" style="color: #663366;" href="https://ripplelabs.atlassian.net/browse/RIPD-489" rel="nofollow">RIPD-489</a>)</li>
<li>Fix unit tests for Windows.</li>
<li>Fix integer overflows in JSON parser.</li>
<li>Improve processing of trust lines during pathfinding.</li>
<li>Added a command line utility called LedgerTool for retrieving and processing ledger blocks from the Ripple network.</li>
</ul>
<h3><strong>Ripple-lib [<a href="https://github.com/ripple/ripple-lib/releases">Release Notes</a> | <a href="https://github.com/ripple/ripple-lib">Github</a> | <a href="https://github.com/ripple/ripple-lib/issues">Issue Tracking</a>]</strong></h3>
<p><em>Released version 0.8.1</em></p>
<ul class="task-list">
<li>Wallet: Add Wallet class that generates wallets</li>
<li>Make npm test runnable in Windows.</li>
<li>Fix several stability issues, see merged PR&#8217;s for details</li>
<li>Fix bug in Amount.to_human_full()</li>
<li>Fix undefined fee states when connecting to a rippled that is syncing</li>
</ul>
<h3><strong>Ripple Charts [<a href="https://github.com/ripple/ripplecharts-frontend">Github (frontend)</a> | <a href="https://github.com/ripple/ripple-data-api">Github (backend)</a> | <a href="https://ripplelabs.atlassian.net/browse/RC/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel">Issue Tracking</a>]</strong></h3>
<p><em>No major updates</em></p>
<p><a href="https://www.bountysource.com/trackers/3954022-ripple-charts"><strong><i>Open bounties</i></strong></a></p>
<ul>
<li><a href="https://www.bountysource.com/issues/3597514-value-summary-donut-change-details-display-to-better-represent-iou-iou-markets">Value Summary Donut: change details display to better represent IOU/IOU markets</a> (5,833 XRP)</li>
</ul>
<h3><strong>Ripple Client [<a href="https://ripple.com/wiki/Ripple_Trade_Release_Notes">Release Notes</a> | <a href="https://github.com/ripple/ripple-client">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=2&amp;view=planning&amp;selectedIssue=RT-1990&amp;quickFilter=38&amp;epics=visible">Issue Tracking</a>]</strong></h3>
<p><i>www.rippletrade.com &#8211; released version 1.0.6, 1.0.7</i></p>
<p>1.0.6</p>
<ul>
<li>Balance pie UI changes</li>
<li>Enable 2 factor authentication</li>
</ul>
<p>1.0.7</p>
<ul>
<li>Add &#8220;Download to CSV&#8221; option for account history</li>
<li>Ability to select which issuer you want in the send and convert flows</li>
<li>Use bower ripple-lib</li>
<li>Update bower dependency versions</li>
<li>Fix issues around balance pies and exchange rates</li>
<li>Gateway UI changes</li>
<li>Show ripple names on notifications</li>
<li>Show executed trades in notifications bell</li>
<li>Temporarily remove currency and amount filters from history</li>
</ul>
<p><strong><a href="https://www.bountysource.com/trackers/3604734-ripple-trade"><i>Open bounties</i></a></strong></p>
<ul>
<li><a href="https://www.bountysource.com/issues/2842674-in-the-send-confirmation-page-show-network-and-gateway-fees">In the &#8220;Send&#8221; confirmation page, show network and gateway Fees</a> (41,667 XRP)</li>
<li><a href="https://www.bountysource.com/issues/2842476-incorrect-amount-displayed-for-partial-payments">Incorrect amount displayed for partial payments</a> (8,333 XRP)</li>
</ul>
<h3><strong>Codius </strong><strong>[<a href="https://github.com/codius">Github</a>]</strong></h3>
<ul>
<li>Connect and write to TCP socket</li>
<li>Add jsmn to libuv for JSON parsing</li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/biweekly-release-notes-17-september-2014/">Biweekly release notes (17 September 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Biweekly Release Notes (3 September 2014)</title>
		<link>https://ripple.com/dev-blog/biweekly-release-notes-3-september-2014/</link>
		<pubDate>Wed, 03 Sep 2014 20:39:05 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/p=4864</guid>
		<description><![CDATA[<p>A few days tardy, but better late than never...</p>
<p>Curated release notes will be posted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features.</p>
<p>We hope you find these useful! Please let us know if you have feedback in the comments.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/biweekly-release-notes-3-september-2014/">Biweekly Release Notes (3 September 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><em>A few days tardy, but better late than never&#8230;</em></p>
<p><em>Curated release notes will be posted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features.</em></p>
<p><em>We hope you find these useful! Please let us know if you have feedback in the comments.</em></p>
<h3><strong>Rippled [<a href="https://ripple.com/wiki/Category:Rippled_release_notes">Release Notes</a> | <a href="https://github.com/ripple/rippled">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=25">Issue Tracking</a>]</strong></h3>
<p><em>No new releases, <i>major commits included below</i></em></p>
<ul>
<li>Fix missing return value error check</li>
<li>Optimize pathfinding operations</li>
<li>Improve parallelization of getRippleLines</li>
</ul>
<h3><strong>Ripple-Rest [<a href="https://github.com/ripple/ripple-rest/blob/master/docs/release_notes.md">Release Notes</a> | <a href="https://github.com/ripple/ripple-rest">Github</a> | <a href="https://ripplelabs.atlassian.net/browse/RA/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel">Issue Tracking</a>]</strong></h3>
<p><i><em>No new releases</em>, major commits included below</i></p>
<ul>
<li>Fix missing metadata on get payment</li>
<li>Fix undefined ledger_current_index</li>
<li>Fix double-date-conversion in request payment</li>
<li>Always query rippled for transactions</li>
</ul>
<h3><strong>Ripple Charts [<a href="https://github.com/ripple/ripplecharts-frontend">Github (frontend)</a> | <a href="https://github.com/ripple/ripple-data-api">Github (backend)</a> | <a href="https://ripplelabs.atlassian.net/browse/RC/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel">Issue Tracking</a>]</strong></h3>
<p><em>No major updates</em></p>
<p><a href="https://www.bountysource.com/trackers/3954022-ripple-charts"><strong><i>Open bounties</i></strong></a></p>
<ul>
<li><a href="https://www.bountysource.com/issues/3597514-value-summary-donut-change-details-display-to-better-represent-iou-iou-markets">Value Summary Donut: change details display to better represent IOU/IOU markets</a> (5,833 XRP)</li>
</ul>
<h3><strong>Ripple Client [<a href="https://ripple.com/wiki/Ripple_Trade_Release_Notes">Release Notes</a> | <a href="https://github.com/ripple/ripple-client">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=2&amp;view=planning&amp;selectedIssue=RT-1990&amp;quickFilter=38&amp;epics=visible">Issue Tracking</a>]</strong></h3>
<p><i>www.rippletrade.com &#8211; released version 1.0.4, 1.0.5, 1.0.5-1, and 1.0.5-2</i></p>
<p>1.0.4</p>
<ul>
<li>Pie widget that displays the total estimated balance of the account in 1 currency</li>
<li>&#8220;Flip&#8217; button for currency pairs in the Trade tab</li>
<li>Click on an active order, load orderbook for that pair</li>
<li>&#8220;Trade&#8221; filter in the History page</li>
<li>Place recently used trade pairs at the top of the dropdown</li>
<li>Migrate and Login flows now check separate blobs</li>
<li>Add destination tags to transaction summary page</li>
<li>Update trust lines UI to &#8220;Connect gateway&#8221; UI, put it under the &#8220;Fund&#8221; tab</li>
<li>Put Rippling and incoming trust lines into the &#8220;advanced trust line&#8221; options</li>
<li>Settings UI updated</li>
</ul>
<p>1.0.5</p>
<ul>
<li>Only show funded portion of orders in the orderbook</li>
</ul>
<p>1.0.5-1</p>
<ul>
<li>Fix currency choice restriction bug (RT-2146)</li>
</ul>
<p>1.0.5-2</p>
<ul>
<li>Various send tab fixes</li>
</ul>
<p><strong><a href="https://www.bountysource.com/trackers/3604734-ripple-trade"><i>Open bounties</i></a></strong></p>
<ul>
<li><a href="https://www.bountysource.com/issues/2842674-in-the-send-confirmation-page-show-network-and-gateway-fees">In the &#8220;Send&#8221; confirmation page, show network and gateway Fees</a> (41,667 XRP)</li>
<li><a href="https://www.bountysource.com/issues/2842476-incorrect-amount-displayed-for-partial-payments">Incorrect amount displayed for partial payments</a> (8,333 XRP)</li>
</ul>
<h3><strong>Codius </strong><strong>[<a href="https://github.com/codius">Github</a>]</strong></h3>
<ul>
<li>Create passthrough API</li>
<li>Implement fs.statSync to call out of the sandbox</li>
<li>Added EventLoop</li>
</ul>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/biweekly-release-notes-3-september-2014/">Biweekly Release Notes (3 September 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Use of C++14 in rippled</title>
		<link>https://ripple.com/dev-blog/use-of-c14-in-rippled/</link>
		<pubDate>Tue, 19 Aug 2014 17:44:52 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/p=4802</guid>
		<description><![CDATA[<p>C++ is a language under constant development, resulting in alternating minor and major releases. The last major release of C++ was C++11.  A minor release has just been approved by all participating national bodies (zero negative votes). This will be C++14. C++17 is the next planned major release and is currently under development by the committee.</p>
<p>Rippled has already adopted a number of useful C++14 features. We’ve done this through the development environment where native support is available, or by emulating the features through providing compatible implementations using our beast cxx14 compatibility library ( <a href="https://github.com/ripple/rippled/tree/develop/src/beast/beast/cxx14">https://github.com/ripple/rippled/tree/develop/src/beast/beast/cxx14</a>). A brief list of notable features:</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/use-of-c14-in-rippled/">Use of C++14 in rippled</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><em>Posted by Howard Hinnant</em></p>
<p><em>Howard Hinnant is a Sr. C++ Engineer at Ripple Labs as well as Library Working Group Chair Emeritus at the Standard C++ Foundation. He was lead author of several C++11 features including: move semantics, unique_ptr, and the headers &lt;mutex&gt;,  &lt;condition _ variable&gt; and &lt;chrono&gt;. For C++14 he contributed the &lt;shared_ mutex&gt; library. Howard was the lead author of the std::lib implementation libc++ found at libcxx.llvm.org. </em></p>
<p>C++ is a language under constant development, resulting in alternating minor and major releases. The last major release of C++ was C++11.  <a href="https://isocpp.org/blog/2014/08/we-have-cpp14">A minor release</a> has just been approved by all participating national bodies (zero negative votes). This will be C++14. C++17 is the next planned major release and is currently under development by the committee.</p>
<p>Rippled has already adopted a number of useful C++14 features. We’ve done this through the development environment where native support is available, or by emulating the features through providing compatible implementations using our beast cxx14 compatibility library ( <a href="https://github.com/ripple/rippled/tree/develop/src/beast/beast/cxx14">https://github.com/ripple/rippled/tree/develop/src/beast/beast/cxx14</a>). A brief list of notable features:</p>
<ul>
<li>Use of <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3656.htm">std::make_unique</a><b> </b>for secure and exception safe allocations. For a more in-depth discussion, have a look at this wikipedia article on <a href="http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization">Resource Acquisition is Initialization</a></li>
<li>Simplified use of type transformations with <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3655.pdf">type aliased type_traits</a><b>. </b>See cppreference.com for <a href="http://en.cppreference.com/w/cpp/language/type_alias">some developer friendly details</a>.</li>
<li>Resistance to buffer overrun attacks via <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3671.html">secure &lt;algorithm&gt;</a></li>
<li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3658.html">integer_sequence</a> facilitates interoperation with the boost::asio asynchronous network library</li>
</ul>
<p>Like its predecessors, C++14 represents another significant improvement to an already -great language in the area of producing verifiably correct and concise algorithms. Since Ripple Labs operates in the space of financial transactions, the rippled team uses all available tools to ensure that its software behaves predictably and remains auditable to field experts.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/use-of-c14-in-rippled/">Use of C++14 in rippled</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Biweekly Release Notes (14 August 2014)</title>
		<link>https://ripple.com/dev-blog/biweekly-release-notes-14-august-2014/</link>
		<pubDate>Thu, 14 Aug 2014 18:44:27 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/p=4798</guid>
		<description><![CDATA[<p>Release notes are part of a larger overhaul of our developer resources, which we are continually adding to.</p>
<p>Curated release notes wiposted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features.</p>
<p>We hope you find these useful! Please let us know if you have feedback in the comments.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/biweekly-release-notes-14-august-2014/">Biweekly Release Notes (14 August 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><em>Release notes are part of a larger overhaul of our developer resources, which we are continually adding to.</em></p>
<p><em>Curated release notes will be posted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features.</em></p>
<p><em>We hope you find these useful! Please let us know if you have feedback in the comments.</em></p>
<h3><strong>Rippled [<a href="https://ripple.com/wiki/Category:Rippled_release_notes">Release Notes</a> | <a href="https://github.com/ripple/rippled">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=25">Issue Tracking</a>]</strong></h3>
<p><i>Released version 0.26.2</i></p>
<ul>
<li>Freeze enforcement: activates on September 15, 2014 (<a class="external text" style="color: #663366;" href="https://ripplelabs.atlassian.net/browse/RIPD-399" rel="nofollow">RIPD-399</a>)</li>
<li>Add pubkey_node and hostid to server stream messages (<a class="external text" style="color: #663366;" href="https://ripplelabs.atlassian.net/browse/RIPD-407" rel="nofollow">RIPD-407</a>)</li>
<li>Fix intermittent exception when closing HTTPS connections (<a class="external text" style="color: #663366;" href="https://ripplelabs.atlassian.net/browse/RIPD-475" rel="nofollow">RIPD-475</a>)</li>
<li>Correct Pathfinder::getPaths out to handle order books (<a class="external text" style="color: #663366;" href="https://ripplelabs.atlassian.net/browse/RIPD-427" rel="nofollow">RIPD-427</a>)</li>
<li>Detect inconsistency in PeerFinder self-connects (<a class="external text" style="color: #663366;" href="https://ripplelabs.atlassian.net/browse/RIPD-411" rel="nofollow">RIPD-411</a>)</li>
<li>Add owner_funds to client subscription data (<a class="external text" style="color: #663366;" href="https://ripplelabs.atlassian.net/browse/RIPD-377" rel="nofollow">RIPD-377</a>) (Experimental Feature)</li>
</ul>
<h3><strong>Ripple-Rest [<a href="https://github.com/ripple/ripple-rest/blob/master/docs/release_notes.md">Release Notes</a> | <a href="https://github.com/ripple/ripple-rest">Github</a> | <a href="https://ripplelabs.atlassian.net/browse/RA/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel">Issue Tracking</a>]</strong></h3>
<p><i>No new releases, major commits included below</i></p>
<ul>
<li>Add empty http tests</li>
<li>Add rest to lib transaction converter</li>
<li>Fixed bugs from API cleanup</li>
<li>Began breakout of globals to separate modules</li>
</ul>
<h3><strong>Ripple Charts [<a href="https://github.com/ripple/ripplecharts-frontend">Github (frontend)</a> | <a href="https://github.com/ripple/ripple-data-api">Github (backend)</a> | <a href="https://ripplelabs.atlassian.net/browse/RC/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel">Issue Tracking</a>]</strong></h3>
<p><i>www.ripplecharts.com</i></p>
<ul>
<li>restore user persistence for light theme</li>
<li>add Ripple Fox to gateways list</li>
<li>add IOU/IOU markets to top markets</li>
<li>metrics: added SS EUR, RS XAU, PR ILS to total network value</li>
<li>offersExcercised: demmurage/interest currency support</li>
<li>offersExercised: apply interest to unreduced results</li>
<li>gateways: rename ripple israel, add GBI</li>
<li>gateways: added lakeBTC</li>
</ul>
<p><a href="https://www.bountysource.com/trackers/3954022-ripple-charts"><strong><i>Open bounties</i></strong></a></p>
<ul>
<li><a href="https://www.bountysource.com/issues/3597514-value-summary-donut-change-details-display-to-better-represent-iou-iou-markets">Value Summary Donut: change details display to better represent IOU/IOU markets</a> (8,750 XRP)</li>
</ul>
<h3><strong>Ripple Client [<a href="https://ripple.com/wiki/Ripple_Trade_Release_Notes">Release Notes</a> | <a href="https://github.com/ripple/ripple-client">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=2&amp;view=planning&amp;selectedIssue=RT-1990&amp;quickFilter=38&amp;epics=visible">Issue Tracking</a>]</strong></h3>
<p><i>www.rippletrade.com &#8211; new release next week!</i></p>
<ul>
<li>Redesigned Settings page</li>
<li>Destination Tag included in Transaction Summary (thanks <a href="https://github.com/orzfly">OrzFly</a>!)</li>
<li>Fix invalid/non-canonical currency pairs in dropdown menu</li>
<li>Trade filter on history page (thanks <a href="https://github.com/Madsn">Madsn</a>!)</li>
</ul>
<p><strong><a href="https://www.bountysource.com/trackers/3604734-ripple-trade"><i>Open bounties</i></a></strong></p>
<ul>
<li><a href="https://www.bountysource.com/issues/2842674-in-the-send-confirmation-page-show-network-and-gateway-fees">In the &#8220;Send&#8221; confirmation page, show network and gateway Fees</a> (62,500 XRP)</li>
<li><a href="https://www.bountysource.com/issues/2842706-ripple-trade-alerts-in-the-top-right-should-include-executed-trades">Alerts in the top right should include trades</a> (12,500 XRP)</li>
<li><a href="https://www.bountysource.com/issues/2842655-ripple-uri-for-trade-tab">Ripple URI for trade tab</a> (12,500 XRP)</li>
</ul>
<h3><strong>Codius </strong><strong>[<a href="https://github.com/codius">Github</a>]</strong></h3>
<ul>
<li>Code released on August 4th</li>
<li>Examples available (<a href="https://github.com/codius/example-bitcoin">bitcoin</a>, <a href="https://github.com/codius/example-webserver">webserver</a>, <a href="https://github.com/codius/example-helloworld">helloworld</a>)</li>
</ul>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/biweekly-release-notes-14-august-2014/">Biweekly Release Notes (14 August 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Dev Portal Adds rippled APIs</title>
		<link>https://ripple.com/dev-blog/dev-portal-adds-rippled-apis/</link>
		<pubDate>Fri, 01 Aug 2014 21:54:15 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/p=4767</guid>
		<description><![CDATA[<p>Today, the Ripple Dev Portal gets a big boost of content and usability. The new additions to our development portal include thorough and tested documentation of all the public API methods for our core server software, ‘rippled’, alongside a host of improvements in styling and formatting, as well as new introductory material to give you direction in navigating the sea of Ripple technology.</p>
<p>This update brings very crucial content into the fold of documentation that's thorough, complete, and software-tested. Today, you can access full specs and usage information for all 20+ public methods in the rippled WebSocket API.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/dev-portal-adds-rippled-apis/">Dev Portal Adds rippled APIs</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><strong>By Rome Reginelli, technical writer</strong></p>
<p>Today, the <a href="https://dev.ripple.com/">Ripple Dev Portal</a> gets a big boost of content and usability. The new additions to our development portal include thorough and tested documentation of all the public API methods for our core server software, ‘rippled’, alongside a host of improvements in styling and formatting, as well as new introductory material to give you direction in navigating the sea of Ripple technology.</p>
<p>This update brings very crucial content into the fold of documentation that&#8217;s thorough, complete, and software-tested. Today, you can access <a href="https://dev.ripple.com?p=websocket">full specs and usage information for all 20+ public methods in the rippled WebSocket API</a>.</p>
<p>Just how much did we change this time? Let&#8217;s have a look at what an arbitrary API calls looks like in the old and new formats:</p>
<p><strong>Before:</strong></p>
<p><a href="https://ripple.com/wp-content/uploads/2014/08/Screen-Shot-2014-08-01-at-2.45.28-PM.png"><img class="alignleft size-full wp-image-4768" src="/wp-content/uploads/2014/08/Screen-Shot-2014-08-01-at-2.45.28-PM.png" alt="Screen Shot 2014-08-01 at 2.45.28 PM" width="444" height="361" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>After:</strong></p>
<p><a href="https://ripple.com/wp-content/uploads/2014/08/Screen-Shot-2014-08-01-at-2.47.50-PM1.png"><img class="alignleft size-full wp-image-4770" src="/wp-content/uploads/2014/08/Screen-Shot-2014-08-01-at-2.47.50-PM1.png" alt="Screen Shot 2014-08-01 at 2.47.50 PM" width="573" height="664" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>You can see just from the size of the screenshots how much more information our new documentation brings to the table. We’ve standardized the structure of every method reference, and simplified the descriptions of what each one does. All the parameters in the request are listed and explained; so are all the fields in the response. Tested, complete examples are provided for both request and response in every method. Details have been checked against running instances and the source code, and the entire document has been proof-read multiple times by different experts. All the new examples scroll separately so they don’t overflow the layout. (Tip: You can expand any example to its full vertical size by double-clicking it. Careful: some of them are <i>long.</i>) To top it off, there&#8217;s brand-new introductory material, ranging from why to run a server to how to select the right tool for the job.</p>
<p>While this is a big step forward for the Developer Portal, you should be aware of a few existing gaps in our content coverage which will be resolved shortly. For starters, most of the Websocket API&#8217;s admin methods aren&#8217;t covered. For those, you&#8217;ll still have to refer back to the old wiki documentation. Possible error messages aren&#8217;t included in the method reference, either. Although every method has an example in WebSocket format, most methods don&#8217;t have a corresponding example in JSON-RPC syntax yet. Most importantly, this still covers only one piece of the software that Ripple Labs is creating: great pieces of software like <a href="https://github.com/ripple/ripple-lib">ripple-lib</a> and the <a href="https://github.com/ripple/ripple-blobvault">Blobvault</a> aren&#8217;t on the Dev Portal yet. Rest assured, we&#8217;re working on it.</p>
<p>The good news is, we don&#8217;t have to go it alone. Following Ripple&#8217;s company ethos of being inclusive and open, we&#8217;ve got the source for the Dev Portal <a href="https://github.com/ripple/ripple-dev-portal">available on GitHub</a> for anyone to download and view. If you catch a mistake—let us know with an <a href="https://github.com/ripple/ripple-dev-portal/issues">issue</a>, and we&#8217;ll take a look. Better yet, fork the repo, fix it yourself, and send us a pull request. We love community contributions, and we&#8217;d love to work your changes into the official site.</p>
<p>For all those of you who are following the Ripple protocol and building apps already, thank you. We&#8217;re hard at work to make your jobs easier. For all those of you who haven&#8217;t started yet: why not? Now&#8217;s a better time than ever.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/dev-portal-adds-rippled-apis/">Dev Portal Adds rippled APIs</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Biweekly release notes (31 July 2014)</title>
		<link>https://ripple.com/dev-blog/biweekly-release-notes-31-july-2014/</link>
		<comments>https://ripple.com/dev-blog/biweekly-release-notes-31-july-2014/#respond</comments>
		<pubDate>Thu, 31 Jul 2014 18:16:11 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/p=4762</guid>
		<description><![CDATA[<p>Starting today, Ripple Labs will release curated release notes on a bi-weekly basis to ensure better communication with the developer community about ongoing projects.</p>
<p>This effort is part of a larger overhaul of our developer resources which currently leave a bit to be desired.</p>
<p>The curated release notes will be posted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/biweekly-release-notes-31-july-2014/">Biweekly release notes (31 July 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Starting today, Ripple Labs will release curated release notes on a bi-weekly basis to ensure better communication with the developer community about ongoing projects.</p>
<p>This effort is part of a larger overhaul of our developer resources, which we are continually adding to.</p>
<p>The curated release notes will be posted on this blog and will include updates from every active project. Specifically we will post and link to any new release notes, open bounties, and upcoming features.</p>
<p>We hope you find these useful! Please let us know if you have feedback in the comments.</p>
<h3><strong>Rippled [<a href="https://ripple.com/wiki/Category:Rippled_release_notes">Release Notes</a> | <a href="https://github.com/ripple/rippled">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=25">Issue Tracking</a>]</strong></h3>
<p><i>Released version 0.26.1</i></p>
<ul>
<li>Enabled asynchronous handling of HTTP-RPC interactions. This fixes client handlers using RPC that periodically return blank responses to requests. (<a href="https://ripplelabs.atlassian.net/browse/RIPD-390">RIPD-390</a>)</li>
<li>Fixed auth handling during OfferCreate. This fixes a regression of <a href="https://ripplelabs.atlassian.net/browse/RIPD-256">RIPD-256</a>. (<a href="https://ripplelabs.atlassian.net/browse/RIPD-414">RIPD-414</a>)</li>
</ul>
<h3><strong>Ripple-Lib [<a href="https://github.com/ripple/ripple-lib/releases">Release Notes</a> | <a href="https://github.com/ripple/ripple-lib">Github</a> | <a href="https://github.com/ripple/ripple-lib/issues">Issue Tracking</a>]</strong></h3>
<p><i>Released version 0.7.39</i></p>
<ul>
<li>Improvements to multi-server support. Fixed an issue where a server&#8217;s score was not reset and connections would keep dropping after being connected for a significant amount of time.</li>
<li>Improvements in order book support. Added support for currency pairs with interest bearing currencies. You can request an order book with hex, ISO code or full name for the currency.</li>
<li>Fix value parsing for amount/currency order pairs, e.g. Amount.from_human(&#8220;XAU 12345.6789&#8221;)</li>
<li>Improved Amount parsing from human readable string given a hex currency, e.g.Amount.from_human(&#8220;10 015841551A748AD2C1F76FF6ECB0CCCD00000000&#8221;)</li>
<li>Improvements to username normalization in the vault client</li>
<li>Add 2-factor authentication support for vault client</li>
<li>Removed vestiges of Grunt, switched to Gulp</li>
</ul>
<h3><strong>Ripple-Rest [<a href="https://github.com/ripple/ripple-rest/blob/master/docs/release_notes.md">Release Notes</a> | <a href="https://github.com/ripple/ripple-rest">Github</a> | <a href="https://ripplelabs.atlassian.net/browse/RA/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel">Issue Tracking</a>]</strong></h3>
<p><i>Released version 1.2.1</i></p>
<ul>
<li>Enabled invoice ID</li>
<li>Do not limit the amount of account transactions per ledger to 10, fixing the issue where no incoming transactions were ever notified.</li>
</ul>
<h3><strong>Rippled Historical Database [<a href="https://github.com/ripple/rippled-historical-database">Github</a>]</strong></h3>
<p><i>Kicked off development on project</i></p>
<ul>
<li>SQL database as a canonical source of historical data in Ripple</li>
</ul>
<h3><strong>Ripple Charts [<a href="https://github.com/ripple/ripplecharts-frontend">Github (frontend)</a> | <a href="https://github.com/ripple/ripple-data-api">Github (backend)</a> | <a href="https://ripplelabs.atlassian.net/browse/RC/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel">Issue Tracking</a>]</strong></h3>
<p><i>www.ripplecharts.com</i></p>
<ul>
<li>Top 6 markets are visible on the front dashboard now</li>
<li>New markets have been added to our volume pie chart</li>
<li>Hot/Warm wallet accounts have been deducted from Cold Wallets balances in the capitalization charts (under value trends) to more accurately represent capitalization of each issuer/currency</li>
</ul>
<h3><strong>Ripple Client [<a href="https://ripple.com/wiki/Ripple_Trade_Release_Notes">Release Notes</a> | <a href="https://github.com/ripple/ripple-client">Github</a> | <a href="https://ripplelabs.atlassian.net/secure/RapidBoard.jspa?rapidView=2&amp;view=planning&amp;selectedIssue=RT-1990&amp;quickFilter=38&amp;epics=visible">Issue Tracking</a>]</strong></h3>
<p><i>Released versions 1.0.1 and 1.0.2</i></p>
<p>1.0.1</p>
<ul>
<li>Account password change functionality</li>
<li>Navbar render optimization</li>
<li>Currency caching fixes</li>
<li>e2e testing setup / basic login, xrp send flow tests</li>
<li>Mobile UI fixes</li>
<li>&#8220;LESS&#8221; variables for used colors / fonts</li>
<li>Translation fixes</li>
<li>Online/Offline issue fix</li>
</ul>
<p>1.0.2</p>
<ul>
<li>AngularJS optimizations / Performance boost</li>
<li>Code cleanup</li>
<li>Demurrage exchange fixes</li>
<li>Mobile UI fixes</li>
<li>&#8220;Load more&#8221; button for orderbook</li>
<li>Detect browser language preferences</li>
</ul>
<p><strong><a href="https://www.bountysource.com/trackers/3604734-ripple-trade"><i>Open bounties</i></a></strong></p>
<ul>
<li><a href="https://www.bountysource.com/issues/2842674-in-the-send-confirmation-page-show-network-and-gateway-fees">In the &#8220;Send&#8221; confirmation page, show network and gateway Fees</a> (62,500 XRP)</li>
<li><a href="https://www.bountysource.com/issues/2842592-ripple-trade-click-on-xrp-amount-in-top-right-dropdown-showing-all-balances">Click on XRP amount in top right, dropdown showing all balances</a> (25,000 XRP)</li>
<li><a href="https://www.bountysource.com/issues/2842682-create-trade-filter-in-history-tab">Create &#8220;Trade&#8221; filter in History tab</a> (25,000 XRP)</li>
</ul>
<h3><strong>Codius</strong></h3>
<p><i>Code drop on 4 August 2014 at 9:00 am PST</i></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/biweekly-release-notes-31-july-2014/">Biweekly release notes (31 July 2014)</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://ripple.com/dev-blog/biweekly-release-notes-31-july-2014/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XRP Giveaway for Developers</title>
		<link>https://ripple.com/dev-blog/xrp-giveaway-for-developers/</link>
		<pubDate>Tue, 29 Jul 2014 06:51:05 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>

		<guid isPermaLink="false">https://ripple.com/p=4752</guid>
		<description><![CDATA[<p>Ripple Labs has partnered with Assembla to send qualified developers 1,000 XRP to their Ripple Trade account. To apply for this giveaway please fill out and submit the application form.</p>
<p>If you’re interested in developing on Ripple please check out the Primer for a high level overview. From there you can dive into different layers of the Ripple ecosystem.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/xrp-giveaway-for-developers/">XRP Giveaway for Developers</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple Labs has partnered with <a href="https://www.assembla.com/home">Assembla</a> to send qualified developers 1,000 XRP to their Ripple Trade account. To apply for this giveaway please fill out and submit <a href="https://www.assembla.com/ripple">the application form</a>.</p>
<p>If you’re interested in developing on Ripple please check out the <a href="https://ripple.com/ripple_primer.pdf">Primer</a> for a high level overview. From there you can dive into different layers of the Ripple ecosystem.</p>
<h2>Bounties</h2>
<p>The Ripple Labs Development Team is always looking to get the community involved. Check out the <a href="https://www.bountysource.com/teams/ripple/bounties">Ripple Bountysource page</a>, <a href="https://github.com/ripple">contribute to the codebase</a>, and make some XRP!</p>
<h2>Rippled</h2>
<p>Want to have your own server on the Ripple Network? Set up a rippled Instance and know that you have a secure connection to Ripple. Check out the <a href="https://ripple.com/wiki/Rippled">installation</a> guide.</p>
<h3>Ripple Lib API</h3>
<p>Use the <a href="https://github.com/ripple/ripple-lib">official javascript library</a> to communicate with Ripple.</p>
<h3>Ripple WebSocket API</h3>
<p>Use the <a href="https://ripple.com/wiki/Websocket_API">Websocket Protocol</a> to maintain persistent two-way communication with Ripple.</p>
<h3>JSON-RPC API</h3>
<p>A simple request-response communication via HTTP. For more information, click <a href="https://ripple.com/wiki/Sending_RPC_Commands">here</a>.</p>
<h2>Middleware</h2>
<h3></h3>
<h3>Ripple Rest API</h3>
<p>Use the <a href="https://github.com/ripple/ripple-rest">official REST API</a> to easily interact with Ripple. Check balances, send payments, set trustlines, and more. Additionally, check out the <a href="https://github.com/ripplelabsbounties">community made libraries</a> for Ripple Rest.</p>
<h3>Ripple Data API</h3>
<p>Search the vast data stored in closed ledgers through the <a href="https://github.com/ripple/ripple-data-api">Data API</a>.</p>
<h2>Applications</h2>
<h3>Ripple Trade</h3>
<p>Interested in building a wallet? Check the open source <a href="https://www.rippletrade.com">Ripple Trade Client</a>. Contribute to the <a href="https://github.com/ripple/ripple-client">project</a> or fork it and make your own!</p>
<h3>Ripple Charts</h3>
<p>The open source <a href="http://www.ripplecharts.com/#/">Ripple Charts Client</a> contains beautiful charts and graphs to show what is happening on the Ripple network. Check out the <a href="https://www.bountysource.com/trackers/3604734-ripple-trade">project</a> on github where you can contribute and fork the project.</p>
<h3>Ripple Graph</h3>
<p>Enter a Ripple Wallet address and see beautiful graphs of transaction and trust lines associated with that address using the <a href="https://ripple.com/graph">Graph Tool</a>.</p>
<h2>Bug Tracking</h2>
<p>You can see the status of our development process on <a href="https://ripplelabs.atlassian.net/secure/Dashboard.jspa">our JIRA instance</a>. Contribute bug reports and feature requests!</p>
<h2>Collaborative Resources</h2>
<p>We have a Ripple Application Development Skype chat, email <a href="mailto:developers@ripple.com">developers@ripple.com</a> with your Skype handle to join.</p>
<p>Additionally, join the <a href="https://ripple.com/forum/viewforum.php?f=2&amp;sid=9085f087d72bcec32f6fa6fc897a5edf">Forums</a> to see what the community is up to.</p>
<p>If you have any questions don’t hesitate to email <a href="mailto:developers@ripple.com">developers@ripple.com</a>.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/xrp-giveaway-for-developers/">XRP Giveaway for Developers</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Ripple Labs Bounty Program Moves To Bountysource</title>
		<link>https://ripple.com/dev-blog/ripple-labs-bounty-program-moves-to-bountysource/</link>
		<pubDate>Tue, 08 Jul 2014 00:46:41 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[bounty program]]></category>
		<category><![CDATA[bountysource]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[open-source]]></category>

		<guid isPermaLink="false">https://ripple.com/p=4595</guid>
		<description><![CDATA[<p>The Ripple Labs Bounty Program is moving to its new home at Bountysource, a vibrant and robust bounty marketplace that will make paid contributions to the Ripple source code more effective and efficient.</p>
<p>By making Ripple projects easier to manage and participate in, the Bountysource platform will help us expand and engage with our open source community. We look forward to your contributions!</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ripple-labs-bounty-program-moves-to-bountysource/">Ripple Labs Bounty Program Moves To Bountysource</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><em>Posted by Daniel Radding</em></p>
<p>The Ripple Labs Bounty Program is moving to its <a href="https://www.bountysource.com/teams/ripple/bounties">new home at Bountysource</a>, a vibrant and robust bounty marketplace that will make paid contributions to the Ripple source code more effective and efficient.</p>
<p>One of the major benefits of Bountysource is its seamless GitHub integration. You can view Ripple GitHub projects on our team page. Bountysource automatically pulls open issues from these projects. Issues from JIRA can be manually added with a deeplink.</p>
<p>Anyone can place a bounty on an issue, which is then awarded when a proposed solution is accepted by Ripple Labs. Bounties are paid out in USD, XRP, Bitcoin, or Mastercoin.</p>
<p>Users can also request proposals to open issues and invite developer bids, get a better sense of the market value of a potential bounty, and prevent redundant efforts.</p>
<p>And while the Ripple Labs team will be actively placing bounties, anyone can contribute ideas and raise money for development by opening a fundraiser.</p>
<p>For instance, community member longhaul is pushing for <a href="https://www.bountysource.com/teams/instant-ripple/fundraiser">a fully-featured Ripple wallet for Android</a>. We’ll continue to support community collaboration in the <a href="https://ripple.com/forum/viewforum.php?f=22">community-sponsored bounties</a> section of the official forums. Third-party projects are hosted on a new Github page called <a href="https://github.com/ripplelabsbounties">RippleLabsBounties</a> (e.g. client libraries and outbound bridges).</p>
<p>By making Ripple projects easier to manage and participate in, the Bountysource platform will help us expand and engage with our open source community. We look forward to your contributions!</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/ripple-labs-bounty-program-moves-to-bountysource/">Ripple Labs Bounty Program Moves To Bountysource</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Introducing: Offer Autobridging</title>
		<link>https://ripple.com/dev-blog/introducing-offer-autobridging/</link>
		<pubDate>Wed, 02 Jul 2014 19:24:01 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[autobridging]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[FX trading]]></category>
		<category><![CDATA[market makers]]></category>
		<category><![CDATA[pathfinding]]></category>

		<guid isPermaLink="false">https://ripple.com/p=4572</guid>
		<description><![CDATA[<p>Ripple’s powerful system allows payments between any source and destination currency to be made easily. Pathfinding considers multiple conversions between currencies to find the best rate for a payment.</p>
<p>The new autobridging feature improves offer placement in a similar fashion to pathfinding: when consuming existing offers, a newly placed offer will have the liquidity available in not only the direct order book (source to destination currency) but also in the corresponding books in which XRP is the destination and source respectively.</p>
<p>This expands the Ripple protocol’s capabilities and brings improved market depth for heavily-used asset pairs and improved liquidity for less-heavily-used asset pairs. A primer for Ripple’s autobridging implementation is available on the Ripple Forums.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/introducing-offer-autobridging/">Introducing: Offer Autobridging</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p><strong>By Nikolaos D. Bougalis</strong></p>
<p>Ripple’s powerful system allows payments between any source and destination currency to be made easily. Pathfinding considers multiple conversions between currencies to find the best rate for a payment.</p>
<p>The new <b>autobridging</b> feature improves offer placement in a similar fashion to pathfinding: when consuming existing offers, a newly placed offer will have the liquidity available in not only the direct order book (source to destination currency) but also in the corresponding books in which XRP is the destination and source respectively.</p>
<p>This expands the Ripple protocol’s capabilities and brings improved market depth for heavily-used asset pairs and improved liquidity for less-heavily-used asset pairs. A primer for Ripple’s autobridging implementation is <a href="https://ripple.com/forum/viewtopic.php?f=1&amp;t=7127">available on the Ripple Forums</a>.</p>
<p><b>AUTOBRIDGING: Creating more efficient markets on the Ripple network</b></p>
<p>Autobridging, at its core, is about constructing a new order book, which contains in sorted order by offer quality both direct and bridged offers. Traversing such a combined book and performing order crossing would, then, be no different than traversing a direct book.</p>
<p><a href="https://ripple.com/wp-content/uploads/2014/07/autobridging-graphic.png"><img class="aligncenter size-full wp-image-4576" src="/wp-content/uploads/2014/07/autobridging-graphic.png" alt="Autobridging" width="1024" height="547" /></a></p>
<p>Although conceptually simple (&#8220;figure out the offers, sort them best to worst and do offer crossing&#8221;), the reality is that there are a number of subtle points to keep in mind.</p>
<p><b>SORTING: Ranking direct and autobridged offers</b></p>
<p>To sort composed bridged offers—such as (USD:XRP) and (XRP:EUR)—against direct offers—(USD:EUR)—we must calculate their respective exchange rates—what we call <i>quality</i>.</p>
<p>In the case of offer autobridging, quality is defined as the ratio of <i>out:in</i> at the time that the offer was placed. This is particularly important—once an order is placed, its quality <b>never changes</b>.</p>
<p>In bridged offers, the input of the second leg is the output of the first leg, and quality is the ratio <i>out:in</i>. Thus the resulting quality of a bridged offer would be <i>leg2-out:leg1-in</i>—ignoring the XRP part of the offers—that is, we calculate the quality of the (USD:EUR) bridged offer by taking the product of the two legs together.</p>
<p>Given respective qualities direct and bridged offers are sorted into a combined order book from best to worst.</p>
<p>After rank, the next key variable to consider is amount—which brings us to the concept of <i>flow</i>.</p>
<p>With the ability to compare direct and bridged offers by quality, we are now able to sort them into an order book from best to worst. But we still need to figure out what offers we actually have to put in that book.</p>
<p>In the case of a direct offer, the answer is simple: put the direct order itself into the book. But what to do in the case of a bridged offer? To answer that question, we need to calculate how much a bridged offer could accept as input and how much it could produce as output—which brings us to another new concept: <i>flow</i>.</p>
<p><b>FLOW</b><b>: Determining bridged offer combinations</b></p>
<p><i>Flow</i> is the pair of input and output amounts that can be produced when taking an offer. Depending on context, flow can mean either <i>maximal flow</i> or <i>actual flow</i>.</p>
<p><i>Maximal</i> flow is the largest output that the offer can produce—it represents the amount that one could get out of the offer, given an infinite amount of the input asset.</p>
<p><i>Actual</i> flow, on the other hand, is the amount that will actually be produced when the offer is taken—it is the amount that one could get out of the offer for a given, finite input.</p>
<p>During the autobridging process, we need to be able to take two <i>maximal</i> flows (the individual USD:XRP and XRP:EUR offer flows) and combine them to create a new <i>maximal</i> flow (USD:EUR).</p>
<p><b>COMBINING OFFERS</b></p>
<p>In order to combine two offers, we must first determine which of the two offers is the limiting factor by looking at the output of the first leg and the input of the second leg and finding the smallest of the two.</p>
<p>With that established, we can adjust the non-limiting order so as to make the first order&#8217;s output equal to the second order&#8217;s input. Any such adjustment, of course, must be done respecting the offer&#8217;s quality to maintain the invariant established earlier—that an offer&#8217;s rate never changes.</p>
<p>The primitive we use is <i>capping</i>—capping clamps an offer&#8217;s input or output to by a given maximum, scaling the output or input respectively, if necessary.</p>
<p>When capping an offer&#8217;s input, if the offer&#8217;s input is greater than the cap amount, then we clamp the input so that is equal to the limit, and we scale the output down by the offer&#8217;s quality.</p>
<p>Similarly, when capping an offer&#8217;s output, if the output is greater than to the cap amount, we clamp the output so that is equal to the limit, and we scale the input down by the offer&#8217;s quality.</p>
<p>Either way, the result of capping is a new flow. When capping is complete, the output of the first offer (in XRP) should be equal to the input of the second offer (again, in XRP). The end result is that, given two offers (USD:XRP) and (XRP:EUR), we now have a maximal (USD:EUR) flow representing the combination of those two offers bridged over XRP.</p>
<p>It is this maximal flow which we will then place on the book.</p>
<p>At this point, you are probably wondering &#8220;<i>what about Buy/Sell semantics?</i>&#8221; It turns out that to implement Buy vs. Sell all that is required is one more <i>cap</i> operation, either on the first or the second leg depending on whether we are implementing Sell or Buy semantics respectively, performed before we calculate the <i>maximal</i> flow. We believe that this highlights the elegance of the <i>flow</i> and <i>cap</i> primitives.</p>
<p><b>CROSSING</b></p>
<p>Given both a quality and a maximal flow, we can now create an autobridged book that contains, in sorted order, both direct and bridged offers that take USD and pay EUR—which is what we wanted—and offer crossing can proceed normally.</p>
<p><b>REARCHITECTING</b></p>
<p>As an aside, during the development of offer autobridging, we also undertook a significant rearchitecting of the offer crossing code. Although the existing code was robust and well-written, we felt that we could still improve it by leveraging what we’ve learned in the process of developing and maintaining Ripple.</p>
<p>The results of these ongoing efforts speak for themselves—the offer crossing code has been abstracted and can be separately unit-tested. And—when using lines of code as a metric—less code is now needed to implement offer crossing.</p>
<p>Smaller size and increased functionality? Winning!</p>
<p>Going forward, you will see process reflect more of this rearchitecting of code alongside with the development of new features. This will help us improve the code and make it easier to understand, analyze, and further develop Ripple.</p>
<p>If you would like to examine the code, you can view the autobridging implementation on <a href="https://github.com/ripple/rippled/commits/develop">our GitHub repository</a>. The relevant commits are tagged with &#8220;Autobridging&#8221; in their commit message.</p>
<p>We look forward to any questions that you may have.</p>
<p><em>Contact Nik: <strong>nikb@ripple.com</strong></em></p>
<p><em>Follow him on Twitter: <a href="https://twitter.com/nbougalis"><strong>@nbougalis</strong></a></em></p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/introducing-offer-autobridging/">Introducing: Offer Autobridging</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Curves with a Twist</title>
		<link>https://ripple.com/dev-blog/curves-with-a-twist/</link>
		<pubDate>Fri, 27 Jun 2014 03:20:00 +0000</pubDate>
		<dc:creator><![CDATA[Alec Liu]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[Curve25519]]></category>
		<category><![CDATA[DSA]]></category>
		<category><![CDATA[ECDSA]]></category>
		<category><![CDATA[Ed25519]]></category>
		<category><![CDATA[elliptic curve]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[oracle system]]></category>
		<category><![CDATA[Schnorr]]></category>
		<category><![CDATA[secp256k1]]></category>
		<category><![CDATA[signatures]]></category>
		<category><![CDATA[smart contracts]]></category>
		<category><![CDATA[threshold signature]]></category>
		<category><![CDATA[Twisted Edwards]]></category>

		<guid isPermaLink="false">https://ripple.com/p=4534</guid>
		<description><![CDATA[<p>Ripple Labs is considering the addition of a new elliptic curve implementation to the Ripple protocol to complement the existing cryptographic system. The addition of a Schnorr-based cryptosystem will produce more optimal and secure design schemes and provides a platform for robust and sophisticated functionality while preserving existing network structure and efficiency.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/curves-with-a-twist/">Curves with a Twist</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple Labs is considering the addition of a new elliptic curve implementation to the Ripple protocol to complement the existing cryptographic system. The addition of a Schnorr-based cryptosystem will produce more optimal and secure design schemes and provides a platform for robust and sophisticated functionality while preserving existing network structure and efficiency.</p>
<p>Currently, the Ripple protocol uses Koblitz curves with secp256k1 parameters and <a href="http://en.wikipedia.org/wiki/Elliptic_Curve_DSA">ECDSA</a> signatures as defined in the <a href="http://www.secg.org/collateral/sec2_final.pdf">Standards for Efficient Cryptography</a> (SEC) by Certicom, which is the same cryptosystem that powers Bitcoin.</p>
<p>After months of analysis and testing, we’ve concluded that a Schnorr-based cryptosystem will greatly enhance the security, flexibility, and performance of the Ripple protocol. The system we’re currently testing is <a href="http://ed25519.cr.yp.to/">Ed25519</a>.</p>
<p>The Ed25519 cryptosystem was designed by prominent cryptographer <a href="http://cr.yp.to/djb.html">Daniel J. Bernstein</a>. It consists of <a href="http://cr.yp.to/ecdh.html">Curve25519</a>, a <a href="http://en.wikipedia.org/wiki/Twisted_Edwards_curve">Twisted Edwards curve</a>, in conjunction with the <a href="http://en.wikipedia.org/wiki/Schnorr_signature">Schnorr signature scheme</a>. Ed25519 addresses many of the ongoing security concerns surrounding commonly used cryptosystems, which Bernstein <a href="http://blog.cr.yp.to/20140323-ecdsa.html">outlines in a March blog post</a>, and avoids several design constraints inherent to secp256k1 ECDSA. <a href="http://www.openssh.com/">OpenSSH</a> recently added support for Ed25519 <a href="http://chneukirchen.org/blog/archive/2014/02/the-road-to-openssh-bliss-ed25519-and-the-identitypersist-patch.html">based on this reasoning</a>.</p>
<p><b>The elliptic curve: Curve25519</b></p>
<p><a href="https://ripple.com/wp-content/uploads/2014/06/curved2.png"><img class="aligncenter size-full wp-image-4537" src="/wp-content/uploads/2014/06/curved2.png" alt="curved2" width="612" height="311" /></a><em>Image: secp256k1 (left) versus Curve25519 (right)</em><a href="https://ripple.com/wp-content/uploads/2014/06/secp256k1-curve.png"></p>
<p></a></p>
<p>The <a href="http://safecurves.cr.yp.to/">open and transparent nature</a> of how the curve parameters for Curve25519 were set mitigates the risk of a potential backdoor.</p>
<p>Summary of advantages versus secp256k1:</p>
<ul>
<li><a href="http://safecurves.cr.yp.to/disc.html">Large absolute value</a> for the CM field discriminant (large |D|)—although there is no evidence of security problems with small |D|.</li>
<li>Supports simple, fast, <a href="http://safecurves.cr.yp.to/complete.html">complete</a> constant-time single-scalar multiplication using <a href="http://safecurves.cr.yp.to/ladder.html">a Montgomery ladder</a>.</li>
<li>A random curve point can be represented in a way that’s <a href="http://safecurves.cr.yp.to/ind.html">indistinguishable from random data</a>.</li>
<li>Faster performance (see below)</li>
</ul>
<p>Our initial tests and analysis suggest significant performance gains with the new curve. Curve25519 halves verification time versus secp256k1 based on efficient implementations of both curves. These results were achieved with lower variance, which point to the constant time properties of Curve25519.</p>
<p>Also, the default signature format for Ed25519 allows batch signature verification, which promises twice the performance of DSA.</p>
<p><i>Benchmarking:</i></p>
<ul>
<li><a href="http://justmoon.github.io/curvebench/benchmark.html">Raw test results</a></li>
<li><a href="https://github.com/justmoon/curvebench">Benchmark source code</a></li>
</ul>
<p>In combination, the new curve implementation is expected to quadruple performance versus secp256k1 based on our preliminary benchmarking.</p>
<p><b>The signature scheme: Schnorr</b></p>
<p>The Schnorr signature scheme also adds key benefits in comparison to ECDSA. <a href="http://en.wikipedia.org/wiki/Adam_Back">Adam Back</a>, the inventor of <a href="http://en.wikipedia.org/wiki/Hashcash">Hashcash</a> (the proof-of-work system used in Bitcoin), <a href="https://www.mail-archive.com/cypherpunks@cpunks.org/msg02419.html">sums up the benefits of Schnorr</a> as follows: &#8220;simple blinding, compact multi-sig, clearer security proofs, better security margin, less dependence on hash properties.&#8221;</p>
<p>Summary of advantages versus ECDSA:</p>
<ul>
<li>Simpler to securely implement</li>
<li>Composable threshold signatures without multi-party computation
<ul>
<li>Verification happens off-network allowing for sophisticated functionality without increasing network load or complexity</li>
<li>Conducive to highly distributed systems</li>
</ul>
</li>
<li>Less constraints allows for more optimal and secure design schemes</li>
</ul>
<p>DSA schemes are difficult to manage because the schemes are easy to get wrong. An improper implementations is trivial to break, and what might seem like a minor misstep can precipitate a system-wide vulnerability—as demonstrated by <a href="http://nakedsecurity.sophos.com/2012/10/25/sony-ps3-hacked-for-good-master-keys-revealed/">the highly publicized Playstation hack</a> in 2012.</p>
<p>Hackers were able to access full control of the PS3 employing “simple algebra” after Sony set a constant in its custom DSA implementation instead of a randomly generated number. The sensitivity of DSA signatures to human error allowed this single oversight to fully compromise the console’s encryption protections, exposing the platform and Sony’s partners to the perpetual threat of piracy.</p>
<p>Alternatively, Schnorr signatures are more forgiving and simpler to implement because its security is inherently <a href="http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&amp;arnumber=4908440">more robust based on the scheme’s dynamic hash function</a>. The ephemeral public value <i>r</i> is tightly bound to the message, which means that the security of the scheme is no longer <a href="http://www.cs.bris.ac.uk/Publications/pub_master.jsp?id=2001023">dependent on the collision resistance of the hash function</a>.</p>
<p><a href="https://ripple.com/wp-content/uploads/2014/06/dsa-schnorr.png"><img class="aligncenter size-large wp-image-4538" src="/wp-content/uploads/2014/06/dsa-schnorr-1024x784.png" alt="dsa-schnorr" width="640" height="490" /></a></p>
<p><b>Independent verification and combining</b></p>
<p>Another advantage of Schnorr is related to <a href="http://en.wikipedia.org/wiki/Threshold_cryptosystem">threshold signatures</a>, a useful alternative to <a href="https://ripple.com/wiki/Multisign">multi-signature schemes</a> when multiple parties need to sign a message.</p>
<p>Multi-signature schemes require the network to verify each signature, increasing load with the number of participants. Conversely, threshold signatures are generated offline and result in a single signature regardless of total number of parties participating.</p>
<p>ECDSA can create threshold signatures, but requires <a href="http://en.wikipedia.org/wiki/Secure_multi-party_computation">multi-party computation</a>. This means that the number of participants required to generate a signature without revealing their secrets is twice the number of shares required to recover the key. In contrast, Schnorr has no such restriction. Shares of a signature can be independently verified and then composed.</p>
<p>Incidentally, composable threshold signatures allow the integration of sophisticated new features with fewer design constraints—especially when considering highly distributed systems—while preserving existing network structure and efficiency.</p>
<p><b>Powering the future</b></p>
<p>Ed25519 allows more optimal designs regarding security, distribution, and, performance. The added flexibility will become increasingly relevant going forward as we supplement sophisticated functionality to the Ripple network—particularly in the area of <a href="http://en.wikipedia.org/wiki/Smart_contract">smart contracts</a> and oracle systems (such as <a href="https://www.realitykeys.com/">Reality Keys</a>, winner of the Startup Challenge sponsored by <a href="https://ripple.com/blog/ripple-labs-at-bitcoin-2014-in-amsterdam/">Ripple Labs at Bitcoin 2014 in Amsterdam</a>)—where we have dedicated significant efforts behind the scenes.</p>
<p>We’ll provide an update of our progress in a future post.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/curves-with-a-twist/">Curves with a Twist</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			</item>
		<item>
		<title>Introducing Ripple Names</title>
		<link>https://ripple.com/dev-blog/introducing-ripple-names/</link>
		<comments>https://ripple.com/dev-blog/introducing-ripple-names/#respond</comments>
		<pubDate>Mon, 28 Apr 2014 22:18:57 +0000</pubDate>
		<dc:creator><![CDATA[Ryan Terribilini]]></dc:creator>
				<category><![CDATA[Dev Blog]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[identity]]></category>
		<category><![CDATA[Ripple Name]]></category>
		<category><![CDATA[trustlines]]></category>

		<guid isPermaLink="false">https://ripple.com/p=4232</guid>
		<description><![CDATA[<p>We’re excited to introduce Ripple names. Ripple names will work in conjunction with Ripple addresses as a destination to receive funds, an identifier for the sender, and setting trustlines.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/introducing-ripple-names/">Introducing Ripple Names</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ripple names work in conjunction with Ripple addresses as a destination to receive funds, as an identifier for the sender, and as a handle to set trustlines.</p>
<p>&nbsp;</p>
<p><b>Ripple name specifications<br />
</b></p>
<p>●  Have 1-20 characters</p>
<p>●  Valid characters include “a” through “z”, “0” through “9”, and dash “-”</p>
<p>●   Leading, trailing, and two or more adjacent dashes are not allowed</p>
<p>Names will be canonicalized, meaning:</p>
<p>●   Case insensitive, e.g. TheABCs is the same as theabcs</p>
<p>●   Hyphens are ignored, e.g. the-abcs is the same as theabcs</p>
<p><b>Implementation</b></p>
<p>We are designing a system for the Ripple network. Because protocol level changes are irreversible, we have decided to develop an off-network implementation.</p>
<p>In this implementation, we reserve the right to set aside names that can be claimed by authorized entities.</p>
<p>Reserved list:</p>
<p>●  All 1-character and 2-character names</p>
<p>●  The most visited 100,000 domains</p>
<p>●  Current [name]@ripple.com addresses</p>
<p>●  Application requests in sunrise period (open through 04/30/2014)</p>
<p>●  Subset of Google’s n-gram database</p>
<p><b>Application Requirements</b></p>
<p>Applying for a name and completing the payment does not guarantee that that Ripple name will be claimable. Applications must show some previous or intended use of the name, which can include, but is not limited to:</p>
<p>●  Having a registered business, or doing-business-as, with that name</p>
<p>●  Owning and controling a related domain name</p>
<p>●  Not infringing on known trademarks or servicemarks</p>
<p>●  Not intended to confuse or mislead</p>
<p>Applications will be reviewed in early May.</p>
<p>To apply for a Ripple name, please fill out the <a href="http://names.ripple.com">name application form</a> and complete a payment of 10,000 XRP to rrrrrrrrrrrrrrrrrNAMEtxvNvQ. XRP sent to this address will be unspendable. This is known as a <a href="https://ripple.com/wiki/Accounts#Black_hole_Addresses">black hole address</a>.</p>
<p>If you have additional questions, please email support@ripple.com.</p>
<p>The post <a rel="nofollow" href="https://ripple.com/dev-blog/introducing-ripple-names/">Introducing Ripple Names</a> appeared first on <a rel="nofollow" href="https://ripple.com">Ripple</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://ripple.com/dev-blog/introducing-ripple-names/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>