RNode-0.8.1 release plan

Milestones

Start date 
Sprint 18 
Sprint 20 
Demo 
Release 
Testnet relaunch 


Release summary

RNode v0.8.1 (fbd2fc9) includes several new features, security improvements, bug fixes, and work to improve testing and debugging. Work continues to address stability issues in the platform that block the launch of a public test net. Test net blockers shows these known issues.  

Upgrade to Java 10

The most important change for RNode users with this release is the upgrade to Java 10. The software works with Java 10 or higher. We recommend https://openjdk.java.net/projects/jdk/10/

Consensus

This release includes work to improve debugging efforts and a number of bug fixes related to the Casper consensus protocol.

Rholang 

RNode v0.8 introduces the ability to measure 'time' on the blockchain. To implement certain features, there needs to be a notion of time on the blockchain accurate to the day (+- 24 hours). This is done by way of an ambient channel that is a notion of 'wall clock time'. This Rholang feature supports requirements for unbonding wait time for validators.

This release also includes an update to the matching tutorial and an example for use with the registry, 'tut-registry.rho'.

DAG storage

RNode operators need a way to save the state of the blockchain to disk to support faster recovery after a restart. This release supports RNode writing complete block data to disk to minimize network synchronization across node restarts. If a node is down for extended periods, it will be forced to perform synchronization with others nodes in order to update both its block data store, the DAG, and the LatestMessages table for validators.

Name registry

The name registry debuted in RNode v0.7.1. This release includes changes to support use of the name registry for the proof of stake contract, make mint, and the basic wallet. You can find examples for using some of the registry functions in rholang/examples/tut-registry.rho.

dApp developer and RNode operator support

This release provides:

  • An API to provide block information for a deploy given a user ID and timestamp
  • A method to return an unforgeable name
  • The start of the work to deliver the Rholang API to fund contract deployment. Please see   for more details. In addition, this release provides a Rholang API to support deploy information to payment code, an API that accepts REV for deployment in the proof of stake contract, and adds a test for estimating the cost of deploying payment code. 
Performance and security

We observed stack overflow errors while processing large amounts of Rholang. This release includes work to harden against deeply nested Rholang. Since this is a generic issue that could occur in different scenarios and in different parts of the interpreter, we focused on hardening the interpreter, specifically improving stacksafety of the normalizer, the reducer, spatial match, and most of the recursive functions used for the interpreter.

Other work in this release supported performance enhancements related to streaming of messages across the network and refactoring in the consensus module to use communication status messages and broadcast.

Work completed for this release

Description of release packaging

Release packaging will include:

  • Docker image (Supported on Linux only)
  • Debian package 
  • RPM package
  • .zip file
  • tar.gz file
  • Brew installation

Where do developers go to learn more and get started?

Please visit v0.8.1 on GitHub for binary artifacts.

A docker image is available via 


Homebrew installation via

Where will bugs be filed?

We use Jira to collect bugs and feedback. File a bug

Where do developers go for support? 

Please visit https://developer.rchain.coop or file a bug.

What license will this be released under?

The RChain software is licensed under Apache License, version 2.0

Rholang is licensed under the MIT License (MIT)

The Docker image is licensed under the GPL 2.0 License

Work completed since last release