42

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

 5 years ago
source link: https://www.jinse.com/news/blockchain/362591.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

MNNRR3M.jpg!web 以太坊 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协议工程师强尼·瑞亚解释说:

“如果我有一个新的区块,并且与六个区块相连,我会随机将该区块发送给其中两个或三个区块。我广播那条信息,然后这些节点也会有对等节点,他们不会将消息发回给我,但会选择两个、或更多节点来发送消息。”

第二,使用libp2p线路协议的好处就是模块化。强尼·瑞亚继续补充道:

“另一个libp2p的好处就是模块化,假如你不喜欢......一个节点在互联网上找到另一个节点,那么你可以换一个节点,是可以替换的。”

现阶段,以太坊网络上只有两个客户端部署了lipp2p协议,他们都是由Go and Rust编程语言编写的。但实际上,以太坊2.0能否尽快成功发布,真的取决于编写每个客户端的程序语言能否正确地部署libp2p协议。因此,在完成对Java,Javascript和Swift等编程语言的支持之前,Hobbits协议将会作为支持基本消息传递并允许节点彼此通信的最小传输规范。

Consensys协议工程师强尼·瑞亚最后总结说:

“我们希望能够测试很多研发的东西,因此开发了这个最小线程协议,以便我们的团队、Chainsafe、以及其他没有部署libp2p协议的团队都能创建一个测试网络,实现节点间彼此通信。”

文章翻译自 CoinDesk


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK