September 2020 Release Plan
(Reference
Document status | COMPLETE |
Release status | RELEASED |
Milestones
Start date | Aug 10, 2020 |
Release | Sep 17, 2020 [we will not have interim release] |
Stakeholders
@Medha Parlikar | CTO | |
@Mrinal Manohar | CEO |
Development team
Program manager | Project Manager | Engineering Lead | SRE |
@Ashok Ranadive (Unlicensed) | @Piotr Dziubecki | @Ed Hastings (Deactivated) | @Former user (Deleted) |
Marketing team
Marketing lead | Content owner |
@Kevin Watt | @Former user (Deleted) |
Release Overview
Simple Overview
Release 20.09 delivers a functional Rust network that can stand up 20 nodes stable for 1 month. The network will use the chainspec process to create the Genesis block. Nodes will discover each other based on having a matching Genesis block and will peer up. When the Genesis era starts, a leader will propose a leader block. Nodes will accept deploys and include these deploy hashes in leader blocks when it is their turn to propose a block. Non-leader nodes will execute (validate) blocks and send ballots (attestations) to help finalize blocks.
When the network achieves more than 2/3rd of the total stake in the form of signatures on a block, the consensus protocol will finalize the block. This ‘protoblock’ will then be executed by the validator set, and global state will be updated with the results of execution.
With this release, CasperLabs will launch a Rust network Testnest with 5 trusted validator. Validators will be able to launch the network using the Chainspec process. Validators will be able to monitor the network using a status endpoint similar to one in the existing Beta Testnet. The status endpoint will return the last finalized block, the list of peers for each of the nodes in the network.
In order to interact with the node, a basic Rust client will be shipped with this release. The client will support the sending of deploys, wasmless token transfer and key generation.
20.09 Release will include:
Rust Client: Feature parity with Python Client [partially done]
Platform to provide API for external clients like CLarity and Rust client [partially done]
Design and implementation node join / rejoin
Preparation for Rust Network launch with select 5 validators as precursor to Delta launch
Design Storage and Bandwidth pricing
Design support for off-chain execution usecases (consider both RoN and Event Stream models) - discussion
Design of Social Consensus
Documentation
Rust node documentation
Rust Client usage
dApp Developer guide update [stretch]
Bonding / Unbonding, How auctions work?
GitPod
Ecosystem Product Updates
Generic Voting App
IPwe PoC
Signer
SRE
Network Metrics & Performance Monitoring
Work to support Testnet
Address issues discovered in the Testnet.
Fixes to stabilize Testnet.
Metric for tracking the success:
What is special about this release?
For dApp Developers
For Node Operators
Are we doing something differently? If so, why are we doing it this way?
Before these features were available, what were developers able to do?
After these features launch, what will developers be able (and not able) to do?
Description of release packaging
Release packaging will include:
Debian package
Docker image
Brew packages
RPM package
tar.gz file
Where do developers go to learn more and get started?
At release, links to installation packages and relevant documentation is available at
Packages available at: http://github.com/CasperLabs/releases
Docs available on GitHub.
Where will bugs be filed?
Github - part of the public release.
Where do developers go for support? What is the SLA? Who is on point?
Gitter developer channel