CasperLabs Releases Node 0.10

Medha Parlikar
CasperLabs
Published in
4 min readDec 18, 2019

--

Validators finalizing a block

We are thrilled to report the early release of Node 0.10. 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.

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.

A video demonstrating this process is available on YouTube

Before this release, developers could compile their contracts and send their transactions to the DevNet, or use Docker to set up a local network.

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. DApp developers can use this feature to create time-sensitive deployments, which have interesting applications such as purchasing tickets and reserving seats and games. The syntax for the parameter in a deploy is:

casperlabs-client --host deploy.casperlabs.io --session mycontract.wasm --payment-amount 10000000
--ttl 600 --private-key mykey.key

The above command sets Time to live to 600 milliseconds.

Developers can now use the client to generate keys via a command line interface, rather than having to use the web interface in CLarity.

Subcommand: keygen - Generates keys.
Usage: casperlabs-client keygen <existingOutputDirectory>
Command will override existing files!
Generated files:
node-id # node ID as in casperlabs://c0a6c82062461c9b7f9f5c3120f44589393edf31@<NODE ADDRESS>?protocol=40400&discovery=40404
# derived from node.key.pem
node.certificate.pem # TLS certificate used for node-to-node interaction encryption
# derived from node.key.pem
node.key.pem # secp256r1 private key
validator-id # validator ID in Base64 format; can be used in accounts.csv
# derived from validator.public.pem
validator-id-hex # validator ID in hex, derived from validator.public.pem
validator-private.pem # ed25519 private key
validator-public.pem # ed25519 public key

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. Users can now observe their block being finalized by the validators in the network.

Previously, Mac users had to download tarballs for installation of the system, we are pleased to offer brew based installation for the Macintosh platform.

brew tap CasperLabs
brew install CasperLabs_Client CasperLabs_Engine CasperLabs_Node

Performance Improvements

The Execution Engine now processes contracts concurrently, and is faster at processing transactions thanks to caching of system contracts. Processing time for block creation and block validation in the node has also been improved as part of our ongoing performance optimization work.

Part of validating blocks and finalizing transactions in Casper is validation of the fork choice rule, and identifying the ‘Latest Common Ancestor’ in the DAG. During our testing, we discovered that identifying the latest common ancestor was too computationally intensive and not efficient. In this release, we have moved to using the Last Finalized Block, which has simplified fork choice rule validation.

Features for Monitoring Node Performance

The CasperLabs node server emits information that is essential for monitoring node health and uptime. Metrics are emitted at a configurable port. An example of these metrics for the DevNet is viewable on Grafana publicly. New metrics for ‘Sync Travel Efficiency’ and ‘Relay acceptance Rate’, help diagnose issues with DAG traversal with complex DAG structures.

Operators can use these metrics with their monitoring system of choice. We are pleased to now offer logs with a standard json format, which can be exported to a log query system such as Elk or Greylog.

Where do developers go for support?

Join our community on Discord https://discord.gg/mpZ9AYD

About CasperLabs

CasperLabs is the blockchain platform purpose-built to scale opportunity for everyone. Building toward blockchain’s next frontier, CasperLabs is designed for real-world applications without sacrificing usability, cost, decentralization, or security. CasperLabs removes the barriers that prevent mainstream blockchain adoption by making blockchain friendly to use, open to the world, and future-proof to support innovations today and tomorrow. Guided by open-source principles and built from the ground up to empower individuals, the team seeks to provide an equitable foundation made for long-lasting impact.

Description of release packaging

Release packaging includes:

  • Docker images available via DockerHub
  • Debian package
  • RPM package
  • Brew package
  • tar.gz

Where do developers go to learn more and get started?

At release, links to installation packages and relevant documentation is available on GitHub.

Where will bugs be filed?

Report a bug on GitHub

--

--