January 2021 Release Plan

Reference

Document status

complete

Release status

COMPLETE

Milestones

Start date

Dec 7, 2020 

Release

Feb 8, 2021 

Stakeholders

@Medha Parlikar

CTO

 

@Mrinal Manohar

CEO

 

 

 

Development team

Program manager

Project Manager

Engineering Lead

SRE

@Medha Parlikar

@Piotr Dziubecki

@Ed Hastings (Deactivated)

@Joe Sacher



Marketing team

Marketing lead

Content owner

@Matthew Iles (Unlicensed)

@Everett M (Unlicensed)



Release Overview

Simple Overview

This release features a new networking layer, and several improvements fixes for system stability and a new node launcher component that supports protocol upgrades.

Detailed Overview

This release will improve networking by providing a robust node discovery and gossiping protocol to support message passing and node discovery for the Casper network. An integration with a custody provider will be partially completed during this release cycle. As part of this work, we have released a new Javascript SDK, which can be found on npm.

The Casper VM now supports immutable contracts, in addition to fully upgradeable contracts. Contract authors can specify at deploy time, whether a contract is upgradeable or not. The Node RPC deploy acceptor will throttle requests at a configurable threshold, to protect the node from deploy spam attacks.

Economic Updates:

Transfers of the system’s native token (CSPR) now cost exactly 10,000 motes (there are 1,000,000,000 motes in 1 CSPR token). When submitting transactions, a gas-price of 1 mote for 1 unit of gas must be provided. The node will not select transactions based on gas-price, but rather in the order which the deploys are received. In addition to providing gas-price, a parameter ‘payment-amount’ is also required, which indicates the amount the user is willing to pay for the transaction. Since the Casper network processes the transactions only after a block is finalized, refunds are not provided, as providing an inflated payment-amount could be a way to mis-represent the actual cost of a transaction to validators.

Consensus Security and Safety features

In the Delta test net we have observed a variety of issues associated with liveness failures, with validators going offline while bonded. Validators can now rejoin after a brief outage in the current era. The consensus protocol will also evict a validator that has been offline for too long.

A validator node will also detect a doppleganger (a clone of itself) and shut down, to prevent unintended equivocations if a node operator accidentally spins up a clone of another node’s configuration.

The Highway Protocol paper outlines an attack known as 'fork spam', a vulnerability present in all fork choice protocols. As part of this release, all of the security features as outlined in the paper have been implemented.

Protocol Features:

  • Validators can rejoin the network in the current era (recovery from liveness faults)

  • Improved joining from a trusted hash

  • DOS protection (throttling) against deploy spam.

Consensus Security Features:

  • Finality Signatures

  • Defense against fork spam

  • Doppleganger detection

Execution Engine

  • Remove wasm system contracts

  • Apply cost to wasmless transfers.

  • Apply costs to all host side system contracts.

  • Support immutable contracts.

Essential System Contracts

  • The Auction contract will be enhanced to include the vesting schedule to be compliant with the VFTA

Operations & Monitoring

  • Grafana dashboard for Rust node

  • Load and performance testing

  • Explainer guide on metrics - key metrics, what they are, why they matter.

Ecosystem

  • New Javascript SDK available on npm.

  • We will update our documentation at docs.casperlabs.io

  • Provide additional example contracts for use by developers

We will create video tutorial content for the following:

  • Deploying a token & calling it to send tokens to an account.

  • Deploying a contract and then upgrading it. Showing the change in version.

    • Walk through of code to upgrade.

Tickets for this Release

Features

key summary status priority
Loading...
Refresh

Ecosystem Features

key summary status priority
Loading...
Refresh

 

Key Consensus Deliverables

key summary assignee status sprint priority
Loading...
Refresh

 

Key Node Deliverables

key summary assignee status sprint priority
Loading...
Refresh

Key Contract Runtime Deliverables

key summary status sprint priority
Loading...
Refresh

Ecosystem Product Updates

  • Event Capturing Service, Event Store

  • Javascript SDK

  • Clarity supporting Rust Node

  • Enhancements to Signer

key summary assignee status sprint priority
Loading...
Refresh

SRE

  • Network Health Monitoring

Documentation

  • Updated dApp developer guide for Rust Node

Defects Fixed

 

key summary status
Loading...
Refresh

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. http://docs.casperlabs.io

  •  

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?