写点什么

以太坊团队备战 ETH 2 首次硬分叉

  • 2021-04-07
  • 本文字数:3489 字

    阅读完需:约 11 分钟

以太坊团队备战ETH 2首次硬分叉

2020 年 12 月 1 日,eth2 的第 0 阶段终于登陆主网,这也成为我们整个职业生涯中最值得纪念的一天。我们非常清楚,这时我们的工作才正式进入正轨。为此,我们决定将 Q1 设定为一段专注于优化、提升稳定性并改进用户体验的修复性时期。社区中的每一条批评意见,都将成为我们推进 eth2 更上一层楼的重要助力。

 

我们坚信,Prysm 终将达到“发布之后、自行运作”的良好态势。验证机制本身高度稳定,除安全相关软件更新之外几乎无需任何额外干预,借此尽可能降低其“存在感”。我们承认,Prysm 在发布之初仍有大量优化问题需要解决,必须保证它能够随验证方数量的增长而持续发展。下面来看年初至今 Prysm 达成的几项小小成绩:

 

  • 持续对证明聚合进行优化,保证 Prysm 不断提升资源利用效率与盈利能力

  • 对拥塞及证明处理做出重大优化,最大程度降低利益相关方忽略验证方提案或投票的可能性

  • 高度关注稳定性与文档记录,并保证 Prysm 始终“正常运行”。未来的发展道路还很漫长,但与最初发布的主网相比,我们对当前最新版本的稳定性已经抱有极强的信心。

  • 进一步关注 P2P 网络、入口点、对等管理与链同步层面的安全性与健壮性。

  • 改进代码库中各重要组件,保证其经受得住时间的考验。具体涵盖 slasher、slashing 保护,并建立起能够适应全部实现需求的 eth2.0 api 标准

 

在 Chainstack 的开发者活动报告中,Prysm 占据了相当比例的篇幅。这份报告着重介绍了我们项目的贡献情况与 repo 发展态势,成功吸引到不少新的外部贡献力量。

 


2021 Eth2 客户发展报告,来源:Chainstack

 

重点任务

 

从 Q2 开始,我们的团队将加大工作力度,将每位成员对以太坊项目的发展愿景变为现实。下一阶段,我们主要将重点关注以下几个方面。

ETH 1 到 ETH 2 合并

我们已经在 eth 2 的分片部分上完成大量工作。但很明显,社区仍然高度重视未来项目将如何由 eth 1 合并至 eth 2,确保发挥权益证明机制的一切潜能。

 

作为其中一种方法选项,我们打算将智能合约、交易、EVM、钱包以及大家所熟悉并喜爱的其他各类元素转移至权益证明引擎之下。各区块将按 12 秒固定时间周期在区块链内生成,证明机制则不再由矿工们实现,而是被权益证明方提供的证据所代替。要顺利完成这项工作,负责维护 go-ethereum 等 eth1 客户端的开发者与 eth2 开发团队必须建立起紧密的协同合作关系。

 

目前,我们主要关注两大“合并”实现提案,二者也都要求在 eth1 与 eth2 节点之间建立通信。之所以选择二者兼容,是因为双方并非简单的彼此替代、而更该说是各擅胜场:eth2 节点处理权益证明与验证方注册表,而 eth1 节点则处理交易及 EVM。如此一来,我们就可以利用对 eth1 核心协议的充分理解显著加快“合并”速度。

 


https://notes.ethereum.org/m9IX3OkkTveXCCOSzGkUiw

 

我们同时也关注 Vitalik 提出的第二项提案,即快速合并,也被称为共识交换。Mikhail 曾提交过一项相关 pull 请求,在社区中获得了大量支持与积极反馈。客户端团队正在研究这项提案,并快速进行概念验证。在 Prysm 方面,我们已经开始对快速合并选项的工作量与资源预算进行评估。下面来看其中几项要点:

  • 应用载荷处理。当信标节点接收到信标区块时,将对该区块中的 eth1 组件进行验证。接下来,该信标节点面向对应的 eth1 节点调用 eth2_insert_block。

  • 应用载荷生成。当信标节点生成信标区块时,会调用 eth2_produce_block 以接收来自 eth1 节点的应用载荷。此应用载荷随后将被打包至信标区块当中。

  • 在信标状态端,我们将为应用状态 root 与 block 哈希添加两个字段,用以验证应用载荷。

  • 在信标区块端,我们将添加应用载荷与交易字段。

  • 我们需要使用帮助程序将各类具体类型统一格式化为十六进制字符串,以便以 json 的形式通过 rpc 与 eth1 节点通信。

 

我们对这项工作感到万分期待,也将持续将最新进展汇报给整个社区。

ETH2 首个硬分叉:Altair

 

今年夏季,我们还有另一项重要的网络升级计划:Altair。此升级将极大简化现有协议,通过更好的数据结构计算 eth 2 中各时段验证方的参与、奖励与惩罚活动。此外,本轮升级还将向 eth2 light 客户敞开大门。考虑到这是我们的首次升级,因此团队一直在认真思考如何调整 Prysm repo 以适应后续升级,并保证不对代码质量造成损害。

 


我们首先从一项跟踪问题起步,研究 Prysm 中的新型信标状态 Altair 软件包。上游 ethereumapi repo 则负责定义大部分新型数据结构,例如同步委员会、信标区块以及 Altair 中的更多数据结构。目前核心处理逻辑已经基本完成,我们只需将其与新的信标状态 Altair 合并即可。我们还将同步引入 Altair 规范测试以保证升级工作的全面合规。除了 Q2 的硬分叉之外,还有更多更新值得大家期待。

展望未来

矿工可提取价值与 ETH 2

 

我们已经意识到,矿工可提取价值(Miner Extractable Value,简称 MEV)已经成为以太坊当前面临的头号难题之一。

 

如果不及早解决,这项顽疾必将给未来的 eth2 带来严重影响。这里稍做解释,MEV 导致共识参与者在下令向以太坊中添加大宗交易区块方面拥有不公平的优势。换句话说,目前的矿工们有权在必要时,在以太坊上重组并先于他人执行交易,这显然会影响以太坊的声誉与吸引力,同时也将进一步扩大现已存在的“付费插队”市场。



“付费插队”市场规模图,来源:Flasbots团队

 

Flashbots 小组目前正全力研究 MEV 问题。在 eth 2 当中,这种动态权力将从矿工转向验证方,但其中的激励措施仍然保持不变。考虑到 eth 2 将采用权益证明机制,且协议中包含强大的“链最终性”概念,我们必须认真考虑可能引发的开放性问题。

 

目前,我们团队正在与 Flashbots 合作,确定如何在 eth2 上妥善解决 MEV 隐患,进而改善以太坊的未来使用体验。

短期目标

优化 Prysm Slasher



Slashing 机制已经成为以太坊权益证明中不可或缺的必要保障方法。目前,Prysm slasher 已然拥有不错的效果,但仍可能在遭遇网络不稳定及最终性停滞时导致数据丢失。但很明显,这个时段才是捕捉数据以实现事后取证的关键阶段。

 

必须承认,我们的初版 Slasher 在很多重要设计考量上都缺乏关注。过去一个季度以来,我们投入大量时间来设计、修改并编写能够在新 Slasher 实现中带来提升的高质量代码。在参考了 Protolambda github.com/protolambda/eth2-surround说明文档与 Sigma Prime 在 Rust 上构建的 Slasher 成果之后,我们决定以相同的第一原理为基础设计 Prysm Slasher。相关测试将在几周内快速启动。

Web UI 1.0 版本即将发布



在 mainnet 之前,我们曾发布过 Prysm Web UI,希望让不熟悉命令行的用户们也能轻松访问 eth2 并享受持币生息收益。

 

在“测试版”的发布公告(https://medium.com/prysmatic-labs/prysm-eth2-client-web-interface-now-live-feb278f4aa15)当中,我们发布了可通过-web 标记运行 Prysm 的选项,大家可以通过小型 Web 应用执行验证程序中的一系列重要任务,例如导入验证密钥、查看近期性能并检查关于网络的某些特定信息。但在此之后,面对优化、安全性及稳定性等其他高优先级事务的压力,我们始终腾不出手来进一步改善用户体验。

 

在不久的将来,我们将着手发布 Prysm Web UI 的 1.0 版本,其将在功能方面与 Prysm 验证程序 CLI 保持一致。也就是说,您之前使用验证程序通过命令行执行的所有操作,届时都可以通过 Web UI 顺利完成!

 

这套 Web UI 的目标是全面替代 CLI 实现 Prysm 与验证程序管理。但请注意,目前它还不能算是区块浏览器。我们当前的目标是不断提升其实用性,主要强调其中验证程序软件的操作流程;查看网络统计信息暂时只是附加功能。Prysm Web V1 计划于今年第二季度内正式发布。

开发者 Wiki

整个以太坊团队的核心开发理念,并非掌握大量专业术语或者晦涩的知识表达,而更多强调良好的问题解决能力与团队合作能力。在加入 Prysmatic Labs 之前,当前团队中的不少成员根本不熟悉以太坊。没关系,我们拥有相当深厚的软件设计与开发专业知识积累,足以为协议编写出良好的代码成果。

 

我们的日常工作主要集中在为 eth2 设计底层架构方面。我们坚信,只要能够通过全面的开发者 Wiki 提供关键 Prysm 知识,每个人都能更好地为开源项目服务。Wiki 提供简单易读的素材,可帮助大家快速了解 Prysm 中的各类设计决策与实现流程。Wiki 还将包含 repo 中某些特定部分的设计讨论与会议记录。

 

我们计划将文档门户网站https://docs.prylabs.network转换为Prysm的规范参考平台,后续还会将其设置为团队代码组件的交流枢纽。在开发者 Wiki 的指引下,相信新朋友们能够更好地理解如何加入项目贡献、以及我们怎样解决项目中最为棘手的种种难题。

 

今年以来,以太坊协议发生了重大变化。我们将继续发布每月开发更新,向大家分享我们的工作成果。

 

作者简介:

 

Raul Jordan,Prysmatic Labs 联合创始人

 

原文链接:

https://medium.com/prysmatic-labs/eth2-march-development-update-prysmatic-labs-f6c72b9e0dda

2021-04-07 15:195875

评论 1 条评论

发布
用户头像
BSN专业区块链平台,海量案例(防伪溯源、供应链金融、采购招投标...)
2021-11-05 14:46
回复
没有更多了
发现更多内容

在线crontab表达式执行时间计算工具

入门小站

工具分享

共享存储设备,如何实现差异化IO分配策略

怀瑾握瑜

云计算 负载均衡 存储 数据中心 SSD

活久见!低访问量竟然也能导致系统问题

三石

mycat

Python——双向队列 (deque)

在即

6月日更

第6模块作业

高亮

架构训练营

架构实战营 模块六作业

Dylan

架构实战营

架构实战营 模块六课后作业

iProcess

架构实战营

浪潮云说 | 开源新势力—云溪数据库ZNBase

云计算

Cookie常见面试题

悟空聊架构

缓存 面试 Cookie 6月日更

顶级程序员都是如何诞生的?

Nydia

话题讨论

EasyRecovery,拯救那些遗失的文件

淋雨

文件恢复 Easyrecovery破解 数据恢复软件 免费数据恢复

密码学系列之:blowfish对称密钥分组算法

程序那些事

加密解密 密码学 程序那些事 密码学和算法

Nginx简单属性和使用总结

赵镇

架构实战营模块 6

阿体

从 Flutter 和前端角度出发,聊聊单线程模型下如何保证 UI 流畅性

魅影

大前端 事件驱动 Event iOS 知识体系

电商平台微服务拆分(简化版)

白发青年

架构实战营

模块六:课后作业

菲尼克斯

架构实战营

不动如山,表备份硬核技术:物理细粒度备份恢复

华为云开发者联盟

集群 数仓 Roach 物理细粒度 备份恢复

推荐 3 款超好用的 Docker 图形化管理工具

学神来啦

Docker Linux 程序员 分布式 运维

云图说|初识云数据库GaussDB(for Cassandra)

华为云开发者联盟

开源 Cassandra 云数据库 GaussDB(for Cassandra) 宽列数据库

34岁Android开发大叔感慨,已拿offer附真题解析

欢喜学安卓

android 程序员 面试 移动开发

Flink集成hive测试及生产规划

一弦思华年

大数据 hive 实时数仓 数仓 flink 执行

【Flutter 专题】128 图解 ColorTween 颜色补间动画 & ButtonBar 按钮容器

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

HarmonyOS学习路之开发篇——Data Ability

爱吃土豆丝的打工人

HarmonyOS Ability 鸿蒙 Ability Data Ability

MySQL 页完全指南——浅入深出页的原理

leonsh

MySQL 数据库 innodb

Linux之mkdir命令

入门小站

Linux

鸿蒙究竟是什么?

Nydia

电商系统微服务

贯通

架构实战营

【Vue2.x 源码学习】第二十篇 - 使用真实节点替换原始节点

Brave

源码 vue2 6月日更

架構實戰營 - 模塊 6 作業

Frank Yang

架构实战营

34岁安卓开发大叔感慨,帮你突破瓶颈

欢喜学安卓

android 程序员 面试 移动开发

以太坊团队备战ETH 2首次硬分叉_语言 & 开发_Raul Jordan_InfoQ精选文章