RNode v0.4.1 introduces sending Rholang smart contracts across the network

RNode v0.4.1 takes significant next steps toward building the RChain blockchain with the introduction of deployment of Rholang contracts across the network, and proposal and acceptance of new blocks. Get started with RNode v0.4.1 at https://developer.rchain.coop.

About This Release

The RChain Cooperative in partnership with Pyrofex is pleased to announce the release of RNode v0.4.1. This is the latest of the pre-production release milestones toward the release of the RChain blockchain planned for delivery in the fourth quarter of this year.

The previous version of RNode demonstrated consensus messages over the RChain peer to peer network. RNode v0.4.1 builds on this and now introduces deployment of Rholang contracts across the network and an explicit call to propose a new block in the blockchain. Included in this are the necessary cryptographic functions, creation of a basic genesis block, a block explorer, and support for validator bonds. This release also contains a broader set of metrics which can be used by node operators to monitor node health and performance.

See notable enhancements of RNode v0.4.1 below for a detailed description of these new features. You can also watch demonstrations of RNode v0.4.1 features delivered during the May 30 RChain community debrief. Information about the project plan, key milestones, and plans for future releases is available at https://developer.rchain.coop.

Developed by the Pyrofex development team in collaboration with members of 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 enhancements of RNode v0.4.1

Cryptography

The RChain consensus algorithm uses a proof-of-stake protocol, where validators are required to bond with stake. Bonding and unbonding contracts need access to cryptographic functions to support signing with the validator key. Developers who want to deploy different tokens on the RChain platform will also need access to cryptographic functions to support their unique token cryptography.

Cryptographic functions are available to Rholang via a system cryptography channel and a cryptography module, available as a .jar file in the project. With the cryptography module in place, contract authors can use the following methods:

  • ed25519.verify
  • curve25519.encrypt
  • sha256.hash
  • keccak256.hash
  • blake2b256.hash

Support for secp256k1.verify will be available in a future release. Please see the cryptography specification for additional information.

Consensus

Consensus on the blockchain is a key aspect for this version of RNode. Using the gRPC interface, developers can:

  • Establish validators and stake ( — bonds-file)
  • Propose new blocks to the network ( — propose)
  • Deploy Rholang contracts across the network ( — deploy)
  • Use a block explorer ( — show-block)
  • Observe nodes in the network recognizing when there are missing blocks, requesting blocks from peers, peers sending those blocks, and receipt of the missing block
  • Observe a fork choice based on the outcome of the Casper consensus protocol

More information is available in the RChain consensus specification.

Metrics

Additional metrics available in this release support node operators in monitoring the health and performance of their nodes. Metrics are available from RNode and RSpace via a gRPC service.

These include:

  • CPU % utilization for the rNode process
  • RAM (in MB) — utilized by RNode and consumed by RSpace
  • Disk consumption (in MB) — for RNode (blockchain storage) and RSpace (tuplespace storage)
  • Network core metrics at the core level — Messages by message type and response time for network messages
  • JVM performance — including heap performance, garbage collection, size of memory pools, and consumption of memory pools

More information is available in the RNode metrics specification. An example of how to collect and display metrics using Docker, Prometheus Server, Pushgateway, and Grafana is available here.

Other enhancements

Updates to EVAL mode to support sending file contents over the wire. For example, a client can be in one place and the server in another and files can be sent between the two.

Introduction of transport layer security (TLS) for communications and node identity instead of the previously used UDP. TLS offers better performance and security for RNode. This release supports secp256r1 cryptography. The TLS implementation will be updated to support secp256k1 in a future release.

Get started with RNode v0.4.1

Download this release and find documentation at the RChain developer portal: https://developer.rchain.coop

We want to thank all community members for their continued support and invite everyone to test this new release. Building and testing a network of nodes at every stage of the development process is key to the success of delivering a blockchain with industrial-scale utility. Direct questions and comments to the RChain developer forum. Bugs can be filed on our JIRA.

Look for more releases in the coming weeks as we continue to build the RChain blockchain at https://developer.rchain.coop.