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 Parlikar | CEO, CasperLabs | |
Mrinal Manohar | CEO, ADAPtive |
Development team
Program manager | Project manager | Developer | Developer | Developer | SRE |
Ashok Ranadive | Rita Allen | Michael Birch | Akosh Farkas | Henry Till | Tom Vasile |
Marketing team
Marketing lead | Content owner |
TBD | TBD |
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.
- We have implemented an example ERC-20 token contract. DApp developers can now create an ERC20 type token definition on the CasperLabs DevNet
- The example contract can be found on Github at: https://github.com/CasperLabs/CasperLabs/tree/master/execution-engine/contracts/examples
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 engine. Node 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
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 noden
--port-internal 404${n}2
is where we can use thepropose
command
For
node-0
these match the defaults, but to deploy tonode-1
for example one has to pass--port 40411
to thecasperlabs-client
.
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
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?
- 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