http://www.raload.com

以太坊2.0升级要靠“八卦”?新通信协议了解下

对于致力于推动以太坊下一次升级——以太坊 2.0的核心开发人员来说,他们已经编写了帮助客户端开发人员测试本次升级工作的代码,让他们可以在迭代之前了解升级效果。

以太坊2.0升级要靠“八卦”?新通信协议了解下


以太坊 2.0无疑是目前以太坊开发人员议程上最重要的一项工作,也是迄今以太坊规模最大的一次升级。对于创建已经四年时间且市值达到170亿美元的以太坊区块链而言,本次升级将会对网络可扩展性和可用性带来巨大改进。根据以太坊客户端开发公司 Partiy 首席技术官弗雷迪克·哈里森 (Fredik Harryson)透露,以太坊 2.0(也被称为 Serenity)相关工作正在快速进行,针对本次升级初始阶段发布的代码规范目前已经完成了大约一半。

当然,本次以太坊 2.0升级的很多方面仍在研究之中,新代码是在4月23日被公布出来的,如果能够最终获得批准并实施,预计将会促进运行以太坊2.0软件的节点间基本通信。

据悉,目前已经确定的以太坊2.0协议名称为“Hobbits”,是由区块链性能测试公司Whiteblock、以太坊风险投资工作室ConsenSys、以及以太坊2.0实施团队Chainsafe和Yeeth合作开发的。

根据一篇介绍“Hobbits”协议的文章中所写:

“随着以太坊2.0客户端越来越接近实时测试,他们需要一种在各个客户端之间来回传递消息的方法,预计将会使用线路协议(Wire Protocol)。”

线路协议是一种传输数据的机制,但是不要被它的字面意思误解,以为它是物理层上的协议,其实不然。通常情况下,线路协议会被用于更高的层级,也是分布式网络工作的核心,因为正是在节点之间彼此传递关键信息(即交易历史),才构成了区块链本身。

今年二月,以太坊创始人“V神”Vitalik Buterin谈到了线路协议,他认为线路协议基本上决定了以太坊上消息发送的规则,并解释说:

“举个例子,如果两个节点相互通信,此时一个节点想要同步到区块链或是发布一个区块,那么另一个节点如何知道该节点想要发布区块?你又该如何知道对方发出的信息是一笔交易?”

据悉,以太坊2.0使用的是旧金山公司Protocol Labs开发和维护的“libp2p”线路协议,该公司也支持了Filecoin和IPFS等项目。但是在所有以太坊2.0客户端完成升级部署之前,“Hobbits”协议希望为那些尚未准备好“libp2p”线路协议的客户端提供支持,并在这些客户端之间建立交叉通信。

Consensys协议工程师强尼·瑞亚(Jonny Rhea)为“Hobbits”协议的开发做出了不少贡献,他表示:

“现在我们还没有使用libp2p协议,所以我们需要先找到一个最小线路协议,或者说是一种测试线路协议,直到我们所有客户端都完成协议部署。”

libp2p协议

Vitalik Buterin曾指出,每个区块链都有一个线路协议或“迷你语言”来定义消息如何通过网络传输和接受。对于目前的比特币和以太坊而言,线路协议使用的是Gossip协议,也就是所谓的“八卦”协议。

Gossip 协议(gossip protocol)又称 epidemic 协议(epidemic protocol),是基于流行病传播方式的节点或者进程之间信息交换的协议,在分布式系统中被广泛使用,比如我们可以使用 gossip 协议来确保网络中所有节点的数据一样。从 gossip 单词就可以看到,其中文意思是八卦、流言等意思,我们可以想象下绯闻的传播(或者流行病的传播),gossip 协议的工作原理就类似于这个,它利用一种随机的方式将信息传播到整个网络中,并在一定时间内使得系统内的所有节点数据一致。事实上,Gossip是一种去中心化思路的分布式协议,主要解决两个问题,一个是状态在集群中的传播,另一个是保证状态的一致性。

不过Vitalik Buterin认为以太坊2.0无法做到这一点,他表示:

“比特币和以太坊1.0都使用了八卦协议,任何广播的内容最终都会传播给所有人,但是对于以太坊2.0,我们无法做到这一点,因为总消息数量多过单个节点能下载的消息数量。”

这意味着,以太坊2.0需要全新的线路协议,也就是——libp2p。事实上,该协议会带来两个好处:

第一,libp2p利用了“gossipsub”的新协议设计,以防止每次节点想要发送消息的时候出现网络泛滥或网络阻塞。Consensys协议工程师强尼·瑞亚解释说:

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。