Document status | |
Release status | |
Related pages |
Start date |
|
Sprint 28 (2 weeks) |
|
Sprint 29 (2 weeks) | |
Release |
|
Program manager | Project manager | Developer | Developer | Developer | SRE |
Ashok Ranadive | Piotr Dziubecki | Michael Birch | Akosh Farkas | Henry Till | Tom Vasile |
Marketing lead | Content owner |
TBD | TBD |
We are proud to announce that CasperLabs now supports Smart Contract development in both Rust and AssemblyScript.
We also present our first version of a contract development kit, that enables developers to run smart contracts in the CasperLabs runtime environment, enabling the use of Rust development tools like Cargo and CLion.
The kit includes the system (Genesis contracts) and several example contracts, such as an ERC20 example and a set of integration tests. Rust developers can use familiar tools and workflows to build their contracts and run them in the engine in the order they desire and observe the effects of contract execution in the global state (the shared database that is the blockchain) -all from within an IDE of their choice.
Placeholder for Consensus:
The Highway Protocol implements a partially synchronous liveness strategy for CBC-Casper. As we run up to our TestNet launch, we completed the work in consensus to implement Eras, Rounds and leaders, along with an efficient fork choice rule.
Consensus & Node Features
EcoSystem:
Test & Operations:
For dApp Developers
In this release, we are pleased to offer 2 large features to support dApp developers - Assemblyscript contracts, and a Rust contract development runtime environment and documentation.
Introducing cargo casperlabs
Developers wanting to use Rust (recommended for financial applications) can create a crates project for their smart contracts and run their contracts in a testing framework that has the CasperLabs contract runtime environment with it. This enables developers to use a seamless workflow for authoring and testing their smart contracts. This environment can also be used for continuous integration, enabling Rust smart contracts to be managed using development best practices. The documentation on how to use cargo casperlabs is documented on Github (https://github.com/CasperLabs/CasperLabs/blob/dev/execution-engine/cargo-casperlabs/README.md )
As part of the Rust development environment enhancements, we also present Rustdocs for the contracts library. The Rustdocs are available at: https://docs.rs/crate/casperlabs-contract/0.1.0
Smart contracts in Assembly Script
For those developers that would prefer to use a scripting type language, the W3C foundation has implemented AssemblyScript https://docs.assemblyscript.org/ for Webassembly. We have created a contracts library that enables developers to create smart contracts for Webassembly using AssemblyScript. Quite often AssemblyScript is conflated with TypeScript, and while these 2 languages are both scripting languages, there are several differences which are documented and contract developers should be aware of these differences.
GraphQL enhancements:
We offer new relationships in GraphQL that support retrieving the child relationships given a block hash.
query { block(blockHashBase16Prefix: "a3016e93f101da2781eae0696064df8c1ca770058b1d1eae261cfd4034f47547") { blockHash parents { children { blockHash } } } } |
Response:
{ "data": { "block": { "blockHash": "a3016e93f101da2781eae0696064df8c1ca770058b1d1eae261cfd4034f47547", "parents": [ { "children": [ { "blockHash": "a3016e93f101da2781eae0696064df8c1ca770058b1d1eae261cfd4034f47547" } ] } ] } } } |
The GraphQL interface is available on every node, and public DevNet interface is at http://devnet-graphql.casperlabs.io:40403/graphql
Building Highway- Paving a path to the Future
Ashok Ranadive (Unlicensed) you can put your content here.
Getting Ready for our next big milestone.
We are preparing to embark on a round of performance testing, optimizing and tuning of the protocol as we integrate it into the node in the coming weeks. To support these efforts, the team has been working hard on preparing extensive test infrastructure. Launching a permissionless blockchain, open to hostile actors is a non-trivial matter, and we need test infrastructure to meet this challenge. We will be publishing our specification for our test platform in the coming days
For Node Operators
Most platforms don't support native development workflows, developers need to run full or light nodes in order to develop contracts - and don't have access to an IDE. (work in progress still)
Release packaging will include:
Github - part of the public release.
Gitter developer channel