RChain Blog

RChain Co-op Weekly Community Debrief # 186 July 2 – July 08 2020

Platform Development Update #127 Rao Bhamidipati:

Time : 0:17

See Rao’s written update here or read below:



Currently testing RNode- release on the sandbox. It is still in development. We will be adding 2 to 3 more PRs to this release (for a total of 15 PRs or so) and test on testnet when ready (expect to start this over the weekend or early next week). The main content is DAG Store, BlockStore and LMDB improvements, using the Key Value Store implemented in 0.9.25.  Included PRs are listed at https://github.com/rchain/rchain/pulls?q=is%3Apr+milestone%3Av0.9.25.1  This is the second  and substantial part of the Last Finalized State milestone. Release 0.9.26 will complete Last Finalized State.  Open PRs list at https://github.com/rchain/rchain/pulls

Tomislav to demo today the initial working version of Last Finalized State. This still needs a lot of tests and other work. That’s the content of release 0.9.26

All nodes on the mainnet are currently running release 0.9.25.  We will start moving some of the main net validator nodes to the IBM cloud.

Release Notes:  RNode-0.9.25 release plan  and https://github.com/rchain/rchain/releases/tag/v0.9.25

Full PR list for Rnode-0.9.25 is at https://github.com/rchain/rchain/pulls?q=is%3Apr+milestone%3Av0.9.25+is%3Aclosed

0.9.25 is a bug fix release, with significant configuration changes, preparatory constructs for last finalized state and many other enhancements (total of 25 PRs): Improvements to RNode Storage (Keyvaluestore in LMDB to be used in future releases by DAG Store and Block Store, as well as to cache transactions and state changes), HTTP Admin API endpoint and by bytesToHex method by Arthur Greef, Ability to visualize DAG from any point, Improved logging and handling of errors in the Web API, Configuration for API server, isFinalized call in the http API etc.

Sequence of updates is testnet to mainnet observers and then main net validators if applicable. Current philosophy is to minimize updates/disruptions to validator nodes while enabling improved observer node functionality.

Sprint 57 in progress

Main Focus: Work towards completing Last Finalized State, identify and address as many slashing issues/bugs as possible, hardening the main net, improve performance.  Current PR list at https://github.com/rchain/rchain/pulls

Current Work In Progress

Performance: Nutzipper has started capturing some performance data using a highly recursive contract. We are analyzing the results obtained to see what they can tell us about areas for improvement. We are still at preliminary stages of this analysis. We will report as we make progress on the insights and implement the improvements.

Ongoing – Investigate and Fix Slashing errors: One validator node was slashed due to tuple space mismatch. First part of debugging revealed that the problem is manifesting when Trie is recalculated because of insert/delete of nodes when they share common prefix. RCHAIN-4102 – Tuple space mismatch error In Progress We are fixing this issue. While it would certainly help reduce errors, it’s not clear that this is the ONLY source of the problem. At this time this is a non-deterministic and rare error. It took 3 months to manifest and only in one of the ten main net nodes. We will continue to watch and analyze/debug it. We have to put in place a strategy to handle such errors. This is a future ToDo.

Fix rewards / cost accounting bug: In developing a dashboard to display validator rewards and costs. This seems to occur after slashing.  Tomislav noticed that the sequence/timing of application of the various charges and rewards may be incorrect. PR to fix this is currently in. Developing unit tests and testing on the sandbox. 

0.9.26 is targeted to be the release for completion of Last Finalized State. is expected be released in the next week or two if no substantial issues are discovered during testing.

Addressing discovered bugs: Investigating the ‘tuple space error’ that we occasionally see on the main net.

Ongoing – Improvements to last finalized state issued but quite a bit of work involved still. Significant progress, some of which have been released in 0.9.25 and more scheduled to be released in after testing is complete. The PR and the branch are structured so that multiple people can collaborate/ work on different parts of the feature at the same time. The scope of this work enables (a) faster catchup by new nodes – you can start from the last finalized state – this is a differentiator for RChain (b) offloading older data, differentiated storage and retrieval strategies for the same (c) allows for a leaner / less bloated node. This change touches most parts of the code base. Having to pick between refactoring and work-arounds in various parts. Tomislav implemented a mostly modular and future-beneficial approach.

SRE – Most mainnet observer nodes are now on the IBM cloud. Moving the exchange servers and some of the mainnet validator nodes to IBM. The goal is to achieve substantial cost reduction but also diversity of cloud infrastructure such that the Rchain network can continue to operate even if one cloud provider has problems (eventual target of only 25% to 33% validator nodes on any given cloud).


We are slowly moving from Jira to Github for the development team, started publishing release notes in Github with release 0.9.25.  New issues are entered only in github. For a while, we will maintain in both Jira and Github. 


Thursday 10 AM Eastern. In the last session Greg addressed questions related to  (a) sharding and interaction among shards – specifically, tree vs. mesh behavior and what token support across shards is needed to enable inter-operation (b) multi-sig wallets – mostly the various use cases were discussed (c) cross-chain interoperability – relates to sharding. We can potentially run one other chain (Ethereum or Hyperledger) as a shard and demonstrate inter-operation so that others can use that as a template to create inter-operation with other chains and (d) the role of consensus equational reasoning and theorem provers in governance.  Meeting notes are at https://docs.google.com/document/d/1fvxMC6Bt5XwbVaLzYPy6ZPB8KzJvASO2sKRC6ZCPwpI

There were questions from the community regarding enabling privacy and zero knowledge proofs on the chain – this is in active discussion. Greg will create a position statement on this and likely discuss the current state of the art, use cases and potential approaches in an RCast session.  Same with sharding and cross-chain operation. 

dApp Development:

Dan Connolly continues to make progress on the RChat effort using zulip.
Theo gave an early demo of his functional cryptography based ‘completely anonymous’ voting 

Current Backlog (partial)

Improve merging in system deploys
Improve Casper by enabling more tests and resolving identified code issues
Improve BlockMerge including refactoring RunTimeManager
Improve multi-parent Casper enablement
Implement sharding capabilities
Improve logging to be able to learn what API calls are being used, so they can be related to resource use and performance etc
Rholang 1.1 to improve syntax and user experience / learning curve

Tuesday TeachOuts by Tomislav (Tuesday 10 AM Eastern, 7 Am pacific) in Jimscarver’s zoom room https://zoom.us/j/6853551826 

Tech-Governance meetings on Thursdays 10 AM Eastern, 7 Am Pacific 

Mercury requirements and acceptance criteria

Details on the acceptance criteria: Mercury acceptance criteria

Please see the documentation at https://github.com/rchain/rchain/blob/dev/docs/features.md

Testnet status

Please see RChain public testnet information to learn more about public testnet as well as a FAQ.

Tech Governance + Community testing

Thursdays at 14:00 UTC. Please see RChain community RNode testing for more information.

Tomislav – on Last Finalized State

Time: 14:17

@ 24:06 Greg explains how “this is the first step in the demonstration of a number of technical features that separates Casper based protocols from the rest of the blockchain protocols, and also separates RChain specifically because of our particular implementation of Casper and our execution mechanism, which will start to see the benefits of the execution mechanism in the block merge. But here we’re starting to see some of the benefits of Casper and what it means for the blockchain. So synchronization will be many, many times faster because you only have to go as far back as the Last Finalized State. And the other side of this is regulatory compliance. As soon as we start putting personal data on chain, we have to be able to forget data. So being able to go back to the last finalized state is one of the ways that we remain in compliance with things like GDPR. So, hopefully people are beginning to see not only the technical benefits and the speed benefits, but also the regulatory and compliance benefits.”

Theo – demo of voting App

Time: 30:50

Community Week in Review

Time: 55:31

Thurs July 2:

Governance Committee Meeting:

The Governance Committee reaffirmed to maintain committee chair positions as volunteer positions with no compensation. We reviewed the permissions on the governance committee log and modified these to ensure security. We also discussed sharing the Committee’s weekly agenda with the membership each week, prior to meeting,  and then publishing a summary of what we worked on each week. Ian shared a draft “Notice of 2020 Annual Meeting” to be sent out to all members. The draft asks members to generate and submit a REV address to be used for Co-op coordination and governance (E.g. voting) – Meeting recap by, Rao, Darryl, Ian, Theo, SteveH, JimW, GaryC)

DApp Development Working Group

Theo demo of functional encryption voting on android.

  • Uses ionic framework via capacitor. Vue + Ionic + Capacitor

Gridsome.org investigation – site generator with vue.js and graphql, used for rholang.github.ioNew coop zulip invite https://rchat71.madmode.com/join/zb4l8zjklzw5mmaivly5fz44/

Fri July 3:

Climate and Coordination RCast

Photographer Sarah Skinner joined us with a discussion about social media, censorship and advertising, as well as how blockchain technology can potentially facilitate higher levels of discourse and provenance. – Darryl N

Mon July 6:

Casper Standup Call #140 – watch here.

There was a light hearted discussion of building physics on top of the mathematics of agency. – Greg Meredith

Tues July 7:

RChain Education meeting

The education session discussed how monoid par operation collects all terms in one Set and eval executes, or reduces this Set of terms.  Complete examples of Simple Rholang are available for review in the Discord education channel. – Steve H

Communications Working Group

Today the communications working group discussed the newest updates to the blog site, followed by a review of the blog guidelines document. After this, the newsletter structure was discussed as well as the process for creating meeting summaries after each call. – Nora G

Wed July 8:

Member Hangout in Jim W’s room

Went over the education meeting details, Steve Henley, in prep for governance call tomorrow brought up the RChain Cooperative strategic plan, and the governance committee’s role in actualizing the plan, prioritizing elements w specific action items and assigning them to people who take responsibility. – Steve H

Weekly media to check out:

Watch the Co-op’s past “Debriefs” and Co-op Podcasts at https://youtube.com/rchain

Watch weekly Casper (Proof of Stake) meetings (YouTube Link)

Listen  to weekly Co-op Podcasts (RCasts) or on youtube:

Subscribe to RCast on iTunes | Google Play | Stitcher | Spotify

Co-op Led Events: members can join via Discord

Mon 7AM PST / 2PM UTC: Casper POS Standup (Youtube)

Tues 7AM PST / 2PM UTC: “Teach Out”

Wed 11AM PST / 6PM UTC: “Community Debrief” (Youtube playlist) (@leiterhaus#0430)

Th 7AM PST / 2PM UTC: Tech Governance

Th 9AM PST 4PM UTC: Governance Working Group (@jimscarver#5578)

Fri 8:30AM PST / 3:30 PM UTC: Climate & Coordination RCast (Youtube playlist)

Friday  11AM / 6PM UTC Member Q&A (@leiterhaus#0430): See weekly #friday-qa-xx-xx channel for details

Join us on the Co-op’s Discord