RNode delivers feature enhancements and stability fixes.
Today we announce the newest release of our RChain node software: RNode v0.8.1. This is another of the pre-production release milestones toward the release of the RChain blockchain. Get started with RNode v0.8.1 here.
About This Release
The RChain Cooperative is pleased to announce the release of RNode v0.8.1 (fbd2fc9). This is the latest of the pre-production release milestones toward the release of the RChain blockchain planned for delivery in 2019.
The previous version of RNode introduced validator bonding, the start of cost-accounting, the name registry, and a Rholang cheat sheet. RNode v0.8.1 includes enhancements to the name registry, an API to support storage of the DAG to disk, a number of security and stability improvements, and bug fixes.
See notable enhancements of RNode v0.8.1 below for a detailed description of features and improvements in this release. Information about the project plan, key milestones, and plans for future releases are available here.
Developed by the RChain Cooperative, the RChain platform is the brainchild of Greg Meredith and described in the RChain Platform Architecture. The goal of this project is to build a decentralized, economically secured, sustainable blockchain. When complete, the platform will include a modular, end-to-end design that is correct-by-construction, operates at a global scale, and supports a rich variety of decentralized applications, DApps.
Notable features and improvements in RNode v0.8.1
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 show 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 this.
This release includes work to improve debugging efforts and a number of bug fixes related to the Casper consensus protocol.
RNode v0.8.1 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’.
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.
The name registry debuted in RNode v0.7.1. This release includes changes to support the 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 RHOL-775 – Rholang API to fund contract deployment (Short Leash Deploy) 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 stack safety 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.
Get started with RNode v0.8.1
Get started with this release using installation information found on the RNode v0.8 release plan.
We want to thank all community members for their continued support and invite everyone to test this new release.
We especially invite DApp developers and people interested in being validators to join us for community RNode testing sessions each Tuesday at 14:00 UTC. Information about these sessions and how to connect is available at RChain community RNode testing.
Read more about the RChain Coop.
Look for more releases in the coming weeks as we continue to build the RChain blockchain.