Node 0.10 Release Plan

Reference

Document status

COMPLETE

Release status

COMPLETE

Related pages


Milestones

Start date

 

Sprint 23 (2 weeks)

 

Sprint 24 (2 weeks) 
Sprint 25 (2 weeks) 

Release

 

Stakeholders

Name

Role

Reviewed?

Medha ParlikarCEO, CasperLabs
  •  
Mrinal ManoharCEO, ADAPtive
  •  

Development team

Program manager

Project manager

Developer

Developer

Developer

SRE

Ashok RanadiveRita AllenMichael BirchAkosh FarkasHenry TillTom Vasile

Marketing team

Marketing lead

Content owner

TBDTBD

Release Overview

Simple Overview

With this release, we announce concurrent contract execution in the CasperLabs Execution Engine. Additionally, parsed wasm modules for system functions are cached during deploy execution, improving performance.

Detailed Overview

Updates that improve the dApp developer experience

Create a DevNet Replica Locally

DApp developers can create a local 3 DevNet replica using Docker and deploy to this network using the CasperLabs client.  Using this framework, developers can deploy to the local replica, or the DevNet by adjusting or parameterizing the host setting in their scripts. More information is available on GitHub at:   https://github.com/CasperLabs/CasperLabs/blob/master/hack/docker/README.md

Installation scripts for Macintosh

  • To support Mac users, we also offer brew installation scripts for the system.

Key Generation in the client

  • The client has been improved to include a CLI (command line interface) for key generation.  

Time to Live

  • Deployments now have a 'Time to Live' parameter, a duration by which the deploy can be included in a block prior to expiration.  If no parameter is specified, a default (defined in the Chainspec - Genesis block) will be used.

ERC20 Example Contract.


Updates that improve the Node operator experience

Node operators need to monitor node performance and troubleshoot possible issues in their node configuration.  As part of this release, we introduce logging for the node and execution engineNode operators can export the logs to Greylog or Elk or any other log querying system.  The logs are structured JSON and will work with any querying system.

The node also reports new metrics 'Sync Travel Efficiency' and 'Relay acceptance Rate', which help diagnose issues with DAG traversal.

Execution Engine Enhancements

Improved Performance through Concurrency and Caching

CasperLabs aims to increase performance of blockchain technology through the use of concurrency, and as part of this, we have implemented concurrent contract execution in the node and execution engine.  


Execution Engine Features

key summary assignee status
Loading...
Refresh


Node Features

  • Updated chainspec to include Max TTL and Max dependencies
  • Using normal client with hacker/docker setup: spinning up nodes with the hack/docker environment is convenient enough except the part about having to mount volumes to the dockerized client. We have resolved the issue in this release so that each node has their ports mapped to the host:

    • --port 404${n}1 is where we can send deploys to node n
    • --port-internal 404${n}2 is where we can use the propose command

    For node-0 these match the defaults, but to deploy to node-1 for example one has to pass --port 40411 to the casperlabs-client.


key summary assignee status
Loading...
Refresh



EcoSystem & Operations

  • Observe the number of validators on the network for a given block
  • Security Improvements to Clarity.
  • Example ERC-20 Token contract
  • Support for Brew Installation of Scala client
  • Testing and documentation of Python client for Mac and Windows
  • Version numbers in Python and Scala clients include gitHash.
  • Set up Greylog to consume and manage Node logs

key summary assignee status
Loading...
Refresh

Tickets for this Release

Features/Stories

key summary assignee status type
Loading...
Refresh

Defects Fixed

key summary assignee status
Loading...
Refresh

Metric for tracking the success:

What is special about this release?

This release introduces an easy process to create a local DevNet, complete with a block explorer for use by developers to test their contracts and interact with the blockchain on a local system.  The client has been enhanced to support key generation, making it easy for dApp developers to generate keys from the command line interface.  We also offer brew based installation for the Macintosh platform.  The system now processes contracts concurrently, and is faster at processing transactions thanks to caching of system contracts.

CLarity, the block explorer has been enhanced to provide the list of validators present in a given block.  This feature enables users to observe their block approaching finality in each of the validator's DAG's, and also provides insight to the amount staked on each block.


For Node Operators

  • New Metrics for Block validation
  • Observe the other validators in Clarity
  • Logging in the node that works with Graylog and Elastic search

Are we doing something differently? If so, why are we doing it this way?

The CLarity block explorer is a rendering of the block DAG from the perspective of a single node.  Validators in the Highway Protocol don't have a unified view of the block DAG, rather, each validator has their own view of the DAG that they are helping to create.  This is a property of CBC-Casper's fork choice rule. For this reason, our block explorer now provides information from each validator on a given block, providing a deeper view into a block's weight as it approaches finality.  

Before these features were available, what were developers able to do?

Developers were able to compile their contracts and send deployments to the DevNet, or they could use Docker to spin up a network and work within the Docker containers to deploy contracts.  

After these features launch, what will developers be able (and not able) to do?

Now developers can use Docker to spin up a network and use a client to send deployments to the nodes and observe the effects in a block explorer on their local machine.

Description of release packaging

Release packaging will include:

  • Docker image (Supported on Linux only)
  • Debian package 
  • RPM package
  • tar.gz file

Where do developers go to learn more and get started?

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