Ethereum Classic Labs Core — Quarterly Development Review Q2, 2019
Ethereum Classic Labs Core development team has been diligently working to provide the community with hot project releases and infrastructure. Most importantly, the Atlantis fork is under-way and on schedule.
Second-Quarter 2019 Achievements
Client Team
Our team has proposed and championed the Ethereum Classic Atlantis hard fork described in ECIP-1054. Participating stakeholders in the community agreed on the official schedule on June 20, 2019. The schedule is as described below:
Block 716,617 ~ Jun 19 on Kotti Classic PoA-testnetBlock 4,729,274 ~ Jul 29 on Morden Classic PoW-testnetBlock 8,772,000 ~ Sept. 17 ETC PoW-mainnet
- ECIP-1054 is accepted and the Atlantis hard fork schedule is finally set.
Thanks to the collaboration of Ethereum Classic Labs and Chainsafe Systems, Classic-Geth is prepared for Atlantis. Classic-Geth has ~62% market share as of today, so it is important to provide a sufficient Classic-Geth client to the community.
- Classic-Geth v6.0.6-beta is released. Classic-Geth version 6.0.6-beta or later is mandatory for Classic-Geth users in preparation for the Atlantis hard fork scheduled for mid-September.
We’ve made landmark progress for Multi-Geth. As of release v1.9.0
, Multi-Geth is no longer a near-direct echo of upstream branches and Multi-Geth now supports OpenRPC’s Service Discovery rpc.discover
method.
- Implemented ECIP-1053 (OpenRPC Service Discovery) into Multi-Geth
- Contributed in Multi-Geth releases
Tooling Team
Pristine
Pristine is a starting point, it follows a Documentation Driven Development approach, and can be used as a resource to augment existing documentation.
- Pristine-CLI released. A CLI to make it super easy to select a Pristine Github template to start from.
- Pristine-typescript-openrpc-server released. This pristine OpenRPC starting point auto generates clients to interact with this server when released via semantic-release.
- Pristine-typescript-electron-menubar released. This is a starting place (template) for an electron menubar application based on typescript and pristine.
Jade Suite
The goal of Jade is to enable the creation of decentralized, peer to peer applications built for Ethereum Classic.
- Jade Service Runner released. Jade Service Runner is a service manager for JSON-RPC based services. Building upon the recent success of the OpenRPC specification, the Jade-Service-Runner is the first release of the team’s new Jade Suite of DApp development tools. Watch core developer Zane Starr’s presentation on Jade-Service Runner.
- Jade Signer RPC prerelease. Jade Signer JSON-RPC API lets you manage keys and sign transactions and messages offline for any EVM-based blockchain. Currently supports ETC, ETH, and various test-nets.
- pristine-typescript-react-jade released. This is a barebones DApp which currently uses Jade Service Runner to run Multi-Geth background service and display current block height in a simple typescript-react UI.
OpenRPC
The OpenRPC Specification defines a standard, programming language-agnostic interface description for JSON-RPC 2.0 APIs.
- Upgrades to Mock-Server for performance, stability, and devops. The open-rpc-mock-server allows developers to run and test against their APIs in a local and lightweight environment. See Using OpenRPC Mock Server to test against an Ethereum JSON-RPC API.
- Improvements to OpenRPC Meta Schema
- Upgrades to Generator-Client. The Generator-Client is a multi-language client generator tool for open-rpc APIs.
- OpenRPC typings released.
$ open-rpc-typings --help
Usage: cli [options]Options:
-v, --version output the version number
-d, --document [openrpcDocument] JSON string or a Path/Url pointing to an open rpc schema (default: "./openrpc.json")
--output-rs [directory] output dir of rust typings
--output-ts [directory] output dir of typescript typings
--output-go [directory] output dir of go typings
--name-rs [file] File name of rust typings (default: "./index")
--name-ts [file] File name of typescript typings (default: "./index")
--name-go [file] File name of go typings (default: "./index")
-h, --help output usage information
- Improvements to Playground UI, performance, and stability. The OpenRPC Playground is a place to play around with writing your own OpenRPC.
Documentation
We’ve released a few high-level community resources that will undergo continued growth to support developers and the open-source technologies we contribute to.
Forward Quarterly Goals
Client Team:
- Agharta hard-fork preparation
- Advanced client compatibility testing.
Tooling Team:
The tooling team is committed to the continued development and support for Jade, Pristine, and OpenRPC. However, we’re looking forward to the following deliverables
Pristine
- Pristine-rust-lib and Pristine-rust-bin progress. Rust based templates for Pristine.
- Semantic-rs releases. A Rust based library for automating releases.
Jade Suite
- Jade-Explorer releases. An open-source block explorer for EVM based blockchains and DApp development.
- Jade Wallet releases. An open-source wallet for EVM based blockchains and DApps.
- Jade-Signer progress.
OpenRPC
- Server-rs progress. A Rust based library for OpenRPC servers allowing a micro-framework for OpenRPC-based services as opposed to client-generator.