Community Update 145
- Rao Bhamidipati
Owned by Rao Bhamidipati
General
- Release
- All the main net observer nodes are running release 0.9.25.6, which is a bug fix release https://github.com/rchain/rchain/releases/tag/v0.9.25.6 Main net validators are currently running 0.9.25.5.
- Tomislav is preparing a new bug fix release 0.9.25.7 that resolves the occasional data corruption errors in the lmdb database. This is related to how the direct buffer is used. PRs are at https://github.com/rchain/rchain/pulls?q=is%3Apr+is%3Aclosed Once this release is tagged, it will be run on testnet observers and then testnet validators for a few days before updating the main net with this version.
- Slightly delayed - Tomislav is still preparing the final Rnode 0.9.26 release for the main net, which includes the Last Finalized State (LFS) work, which is a major milestone. He's mostly done with this release, but during testing we discovered a memory leak. This leak may be related to one of the dependencies, but there seems to be a work around. Tomislav is currently testing to see if this work-around resolves the memory leak issue.
- Test net is running release 0.9.25.6 on all the nodes (validator as well as observers). Will soon be running 0.9.25.7
- With 0.9.26-lfs-Pre-release, node catch up is now much improved. This release also includes many bug fixes including for the slashing /tuple space mismatch bug reported earlier. gRPC behaviour is improved with per validator grpc channel.
- Main net has 20 nodes running plus observer nodes and exchange nodes.
- Main difference between testing on Observer nodes vs. Validator nodes: When we test on the observer node, a large part of the code base is executed. The Block creation code runs only on the validator nodes. As a part of that, the portion of the Runtime Manager that plays the deploy is run on the validator node but not on the observer node.
- Sprint 70 in progress
- Main Focus is work on releasing and enabling 0.9.26 on the main net, continue Block merge work in a couple of streams explained below, resolve recently identified bugs in hashing and concurrency (we suspect one of these is responsible for slashing errors), continue to update project dependencies to the latest feasible library versions, hardening the main net, improve performance. Current PR list is at https://github.com/rchain/rchain/pulls
- Current Work In Progress
- Good progress - Will and nutzipper anticipate merging their respective streams of work soon. https://github.com/rchain/rchain/pull/3201 contains nutzipper's refactoring to casper code and block processing code, which needs to be merged with Will's work. Will is working on tests, runtime manager refactoring and combining his code for conflict resolution with nutzipper's block merge code changes. nutzipper is working on additional refactoring needed for block merge. We are making good progress on block merge.
- We will demo once the block merge branch is ready.
- Dependencies - some are released, the main ones to be released with 0.9.26-lfs release: Significant updates to the dependencies are completed, more underway. Scalapb, protobufs and netty changes are one of the significant dependency updates. These involve some code refactoring and writing new tests. All these changes will be released along with the LFS version 0.9.26.
- Update to Scala 2.13 may be the last dependency update, which may also take quite a bit of work. This is not on our current priority / critical path though. We will get to it after another round of dependency updates to the various libraries.
- Ongoing - Fix additional identified bugs
- API and usability improvements - in conjunction with the community
- In Process - Will has mostly completed the OpenAPI/Swagger documentation of the RNode API https://github.com/rchain/rchain/pull/3128 He's will try to resolve the reviewer comments after he's done with block merge work or as time permits. Familiarity with Swagger and the available swagger tools should make it easy for developers to use our API.
- Future - Also in the thinking stage is an improvement to revdefine.io or elsewhere, a graph representation of payments / transfers on the network, with perhaps date+time and amount on the arcs.
- Release 0.9.27 - Block merge
- In Process - conflict resolution and block merging gist under development at https://gist.github.com/tgrospic/33b5729404bb5e098e89453453208415
- In Process - conflict resolution among deploys within a block and/or maximal feasible concurrency during creation and block processing
- Release 0.9.28 and beyond
- Near term road map is last finalized state (soon), block merge, updating PoS contract, sharding, name spaces
- Creating a design spec and the code for how to update contracts on the main net. This will enable addressing some of the pressing issues such as faster epoch times, and other issues listed below
- Fix Rewards calculation bugs https://github.com/rchain/rchain/issues/2956
- In process: Finish dependency updates and plugin updates
- In process: Improve error logging, debugging and monitoring infrastructure. This will help improve developer productivity, both on the core team as well as dApp developers
- Ongoing, mostly done - Refactor Run Time Manager. We may need more refactoring in future, but we want to do this incrementally, as needed.
- Protection from 'too much free work' attack, policy to reject deploys when user doesn't provide sufficient phlo or does not have sufficient REV in the wallet to cover the phlo etc - https://github.com/rchain/rchain/issues/2997 and https://github.com/rchain/rchain/issues/2976
- Implement On-chain configuration and Shard configuration https://github.com/rchain/rchain/pull/2986
- Explanation for last finalized state (released in 0.9.26): 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.
- Hackathon successfully concluded, thanks to support from Dan, Jim, Theo and team. One person is pursuing work on liquid democracy, we might have him do some Scala / core platform tasks also. We had lots of learning about how we are approaching this, how to make this more streamlined, both in marketing it and in supporting the potential developers. Next hackathon tentatively scheduled for Jan 9-10, 2021.
We need to make building the developer ecosystem an ongoing task, just like development. Ian, Steve Henley and team are actively reaching out to as many universities and groups as possible. Please promote the much improved hackathon page at https://rchain.coop/hackathon.html to all the groups you are part of.- In process - We need to further increase and properly size the Problem Statements, brief sessions on tips and tricks during the hackathon, and office hours during the hackathon. We will keep adding to the problem statements.
- Ongoing - Learning examples, links to and improvement of documentation. Dan (dckc) has substantially improved the Rholang learning resources. Current plan is to make https://rholang.github.io/ the hub of all learning materials. dckc has been making substantial improvements to the learning materials as well as the API tools. The community is requested to contribute to any or all of these.
- CI/CD:
- Ongoing - 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.
- TechGovernance:
- Thursday 10 AM Eastern. Meets alternate weeks. Last meeting focused on how to implement and manage shard configuration. Meeting notes are at https://docs.google.com/document/d/1fvxMC6Bt5XwbVaLzYPy6ZPB8KzJvASO2sKRC6ZCPwpI Discussions and work on a model of economics to ensure network security is proceeding. Most recent discussion was about ensuring some amount of stake beyond a 4 month window, spreading out stake over a longer time and how to incentivize that, while ensuring that everyone pays for network security.
- ToDo - 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.
- In progress - Excel Model for 'economics of sustainable network security and decentralization' to enable community understanding of the inter-relationships and community conversation around these issues. Will be releasing the initial version soon. May have multiple releases.
- dApp Development:
- Looking for developers to help make progress on the RChat effort using zulip. SRT and possibly Will to add 'Rchain to zulip' functionality. Invite any community members with the expertise to help in this.
- Current Backlog (partial)
- Improve merging in system deploys
- Improve Casper by enabling more tests and resolving identified code issues
- Improve BlockMerge
- Improve multi-parent Casper enablement
- Resolve slashing bugs, including additional refactoring of RunTimeManager
- 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.
Blockers to Mainnet
NA
Risks to code completion for Mercury
Developer website
Date |
---|