close

ETC Labs Core第一季度工作总结

etclabs core

ETC Labs Core于1月份推出,旨在支持和推动以太坊经典生态系统的发展。在最初的几个月里,我们开发了ETC-ETH兼容性、必要的数据分析工具、改进DApp开发环境的基本规范,实现了里程碑式突破,同时还纳入一些区块链领域的优秀开发者,扩充了团队。

 

团队

  • 核心开发团队规模增加75%

 

该团队最早的开发人员包括Constantine Kryvomaz,Meowbits,Michael Collison,Mike Lubinets,Shane Jonas,Stevan Lohja和Zachary Belford。然后又陆续迎来更多新成员,如Alan Li,Devon Wesley,Jake Lang,Talha Cross,Zac Mitton和Zane Starr。

 

Constantine,Meowbits和Talha组成了我们的客户端小组,Meowbits是该小组的核心人物。他们一起开发网络分析工具,为Classic Geth,Multi-Geth和网络升级提供支持。

 

EVM /编译小组则由Alan Li,Jake Lang,Michael C.和Mike L.组成,Michael C.是该组负责人。他们正在推动ETC JIT编译器和EVM LLVM项目,旨在大大提高EVM和智能合约执行性能。

 

Shane和Zachary Belford共同领导工具小组,其他成员还有Devon和Zane。DApp工具团队正在开发支持DApp开发环境的项目,包括OpenRPC规范,该项目旨在改变对等应用程序相互沟通及与区块链沟通的方式。

 

Stevan Lohja是我们的团队联系人,提供网络、文档支持和团队协作。Stevan正致力于对我们的技术及开发人员文档进行宣传教育。

 

2019年第一季度成果

 

客户端小组

我们提出了代号为“亚特兰蒂斯”(Atlantis)的ECIP-1054升级,该提议在整个社区内得到了极大的支持。我们对测试网和主网实施这种升级的区块高度进行了预测,但具体事宜还要与客户端开发人员进行更多讨论。ECIP-1054升级的动机在于实现ETC-ETH的最大兼容性和性能改进。

 

  • ECIP-1054:Atlantis,EVM和协议升级
  • ECIP-1053:将OpenRPC Service Discovery添加至JSON-RPC服务
  • 为Kotti网络(一个基于PoA的以太经典公共测试网)开发贡献力量
  • 继续为Classic Geth和Multi-Geth客户端提供支持和维护

 

客户端小组一直致力于提供高质量的网络驱动软件,使开发人员能够构建去中心化的对等应用程序。在2019年第一季度,我们在实现这一目标的同时解决了许多问题。今年年初,以太经典因遭受51%攻击而出现双花问题。那时,我们立刻开发出监控工具,以帮助以太经典网络进行相应的确认调整。

 

  • 完成了一个开源网络管理工作,针对51%攻击监控网络分布
  • 完成了Geth客户端的ELK堆栈配置

 

EVM /编译器小组

SputnikVM

  • 实施了一个多功能的Dynamic Path API,它具备Geth客户端的功能配置
  • 实施了Multi-Geth EVM的集成层
  • SputnikVM通过了所有的ETH应分叉,足以支持Atlantis,不过还需要进行更多测试
  • Repo管理(Jenkins的CI配置,默认情况下启用Rust代码格式,代码已对应Rust 2018版进行更新)
  • 实施了EVMC API的Rust绑定,并开始评估SVM的兼容性问题。

 

即时编译器(JIT

  • 完成了基础子系统:gas计量、异常处理和运行时管理器(所有子系统的单元测试)。
  • 完成外部接口子系统的第1阶段(提供功能签名)
  • 实施了一个包装器API,用于构建内联的LLVM类型声明

 

计划外:

  • 由于inkwell和llvm-C API缺少支持,不得不编写属性和内部管理器
  • 发现与LLVM相关的泄漏
  • 开始重构JIT,使其具有更清晰的生命周期模型,而不依赖于单例模式

 

LLVM EVM后端

  • 设计了LLVM EVM后端管道和工作流程(包括将LLVM虚拟记录器转换为堆栈操作的stackify pass)。
  • 实施了初步的LLVM代码生成器。
  • 设计了EVM代码生成器优化框架。

 

工具小组

Etherlog

  • 完成了初始的基于ELK的日志记录设置,该设置将运行以太坊客户端,ElasticSearch,Logstash和Kibana,预装了一些仪表板,非常适用于监控ETC网络的状况。

 

OpenRPC

在2018年第四季度,我们发现对于大多数使用JSON-RPC的应用程序开发人员来说,他们极其需要高质量的底层软件。我们探讨了诸如Open API和gRPC之类的解决方案,但这些都不合适。于是我们开始研究如何开发一个类似Open API和gRPC且适用于以太经典及其他区块链的工具。目前,除了发布一些工具的规格之外,我们还实现了工具的完整性。

  • 发布了OpenRPC规范1x

 

除了以太经典的ECIP-1053之外,它还可以升级整个生态系统工具,因此我们也向比特币和以太坊发出了OpenRPC改进提案:

  • BIP
  • EIP

 

模拟服务器(Mock Server

  • 完成Mock Server以提供对应OpenRPC文档中所的定义的方法JSON-RPC后端。

npm install -g @open-rpc/mock-server

 

open-rpc-mock-server -s \

-s <OpeRPC Document Reference>

 

这样就提供了一个功能齐全的服务器来进行测试。

 

Generator客户端

  • 以任意一种语言完成generator client-sdk
  • 目前支持Rust,TypeScript和JavaScript

 

在OpenRPC文档中,可通过以下步骤轻松生成客户端:

npm install -g @open-rpc/generator-client

 

open-rpc-generator-client \

-s <OpenRPC Document Reference>

 

Playground

  • 已完成OpenRPC的Web IDE

浏览器内编辑器结合OpenRPC Meta schema及docs-react提供交互式文档 / OpenRPC文档编辑体验,可以在https://playground.open-rpc.org/上试一试。

 

Docs React

  • 为OpenRPC文档完成React Docs组件

 

Docs React是一个反应组件,它将呈现给定的OpenRPC文档。

 

可按以下步骤使用:

npm install –save @open-rpc/docs-react

 

然后在React应用程序中:

import React from ‘react’;

import ReactDOM from ‘react-dm’;

 

import Documentation from “@open-rpc/docs-react”;

 

import {petstore} from “@open-rpc/examples”;

ReactDOM.render(<Documentation schema={petstore} />, document.getElementById(“root”));

 

Jenkins

  • 完成了Jenkins设置,允许在Windows,Linux和OSX本地工作的同时为多个平台提供我们的工具进行构建。它还包括一个方便部署到AWS的terraform配置。

git clone https://github.com/etclabscore/jenkins-vagrant

cd jenkins-vagrant

vagrant up

# or

terraform up

 

Ethash客户端设置

这是一种矿工客户端。通过编辑`start_miner.bat`文本,配合所需的矿池服务器及支付地址就可以轻松地开挖ETC了。

PhoenixMiner.exe -pool <INSERT POOL SERVER> -worker Rig001 -wal <INSERT PAY ADDRESS> -pass x -retrydelay 2

 

后续季度目标

第二季度

客户端:

  • 在Multi-Geth.内执行service discovery,即运用OpenRPC
  • 分析EWASM的含意

 

EVM:

  • 发布SVM的0.11和0.12版本
  • SputnikVM开发进展;更新后使用最新的SVM,运行集成测试,并通过’miri’测试运行时
  • 稳定EVMC绑定,并为EVMC提供SVM原型设计支持

 

JIT:

  • 完成外部(sload / store等)、内存、堆栈和256bit算术子系统
  • 开始主编译器代码生成
  • 为不需要区块链访问的外部回调实施辅助子系统

 

LLVM EVM:

  • 实施其余组件以使LLVM框架正常工作
  • 在LLVM中实现EVM优化
  • 与合同语言前端集成(例如Vyper或Solidity)
  • 实现Solidity编译器至少90%的性能

 

工具:

  • 完成服务运行
  • 在ETC客户端中采用OpenRPC
  • Jade DApp框架的基础架构进展

 

科普:

  • 启动开发者资源和文档的开源开发门户。

 

第三季度

客户端:

  • 亚特兰蒂斯升级

 

EVM:

  • 亚特兰蒂斯升级

 

JIT:

  • 完成JIT

 

LLVM EVM:

  • 持续发展

 

工具:

  • 多网络资源管理器
  • 智能合约部署工具

 

Tags : featured