一些基本定义
区块链网络中技术栈的一个核心部分是节点和帮助人类操作节点的客户端。今天我们将比较和对比这些元素在以太坊和Cardano网络中的工作情况。在我们深入研究之前,让我们先把一些基本定义说出来。
在计算机科学中,一个节点是网络中的一个物理设备,能够发送、接收或转发信息。在引擎盖下,区块链网络只是一个关于交换和存储信息的规则集合。区块链网络上的节点有不同的形状和大小,但它们都准确地做了计算机网络上的节点所做的事情:它们发送、接收或转发信息给其他节点。围绕这个一般的想法,还有更多的花哨和复杂的东西,但为了这篇文章的目的,让我们用这个基本定义。
计算机科学中的客户端是指使用一些外部或远程资源的东西。例如,你的Chrome、Brave或Safari浏览器是HTTP客户端,它们与远程网络服务器对话,在你的屏幕上呈现这篇文章或其他网络内容。 同样地,区块链提供不同的客户端,让你进行不同的互动。例如,区块链钱包客户端让你接收或发送加密货币给他人。节点客户端帮助技术人员配置计算机硬件,在区块链网络上发送、接收和转发信息。当你向你的朋友或电子商务网站发送2 Ada或0.1 Eth时,该信息通常由一个节点客户端处理并记录到区块链上。
与例如我们的浏览器客户端相比,区块链节点客户端的一个小的独特之处在于,区块链节点和它们的客户端通常是如此紧密地联系在一起,以至于它们有时被互换地提及。你的浏览器客户端生活在你的浏览器中,与世界另一端的网络服务器对话。然而,区块链节点和节点客户端更多时候是生活在同一个设备上。然而,尽管它们很接近,区块链节点和区块链节点客户端是两个独立的东西。
区块链节点接收和验证数据,转发消息,或将验证的数据发送到其他节点。 区块链节点是存储区块链核心规则的地方。
区块链节点客户端是区块链节点的主管。区块链节点客户端让开发者建立交易和执行采矿操作。它们可以带有许多针对区块链节点运行环境的额外功能。例如,它们可能会以一种为特定软件阅读而优化的方式,存储它们从节点获得的区块链副本。一些客户端为非区块链系统提供多种网络协议,以便与坐在客户端后面的区块链节点进行对话。客户端可以是特定于一种编程语言的。
##以太坊上的节点客户端 以太坊节点,当它被设计和创建时,是由正式的规范来定义的。形式化规范是一种书呆子的说法,即使用数学精确地定义了做或构建某件事的指令。因为以太坊节点是正式定义的,所以有可能建立不同的客户端,以满足特定类型的用户,同时与其他客户端保持互操作性,并遵守分类账规则。 由于这一点,以及以太坊自2015年以来一直存在,与其他区块链网络相比,它享有最丰富的节点客户生态系统。
以太坊基金会为流行的编程语言社区维护客户端,包括Go(Geth, Prysm), .Net/C#, Java, 和 Rust 。有一个Ethereum客户端,用于快速读取节点并与Ethereum区块链进行通信,只需使用计算机命令行界面(OpenEthereum)。
以太坊上的节点客户端可以是全节点客户端,轻客户端,或远程客户端。 全节点客户端持有整个区块链历史,让你执行区块链支持的所有可能的行动。 轻客户端通常只持有部分区块链数据,并让你做特定(和有限)的事情。 它们往往速度更快,需要更少的资源来运行。 远程客户端不存储任何数据或验证任何消息。相反,他们远程连接到一个完整的或轻型的客户端来执行他们的任务。这些通常用于建立钱包应用程序。远程客户端的好处是,你可以把它们嵌入到浏览器等地方,让用户在浏览器中使用他们的关键短语建立、签署交易或解码一些东西。然而,任何需要提交给区块链或由区块链验证的东西,然后被发送到远程全客户端或轻客户端进行处理。
这些节点和节点客户端大多是可以互换的。你可以将轻客户端连接到全节点,或者将全节点客户端连接到档案节点。通常情况下,一个节点客户端会衡量它所连接的节点类型,并相应地配置自己。
拥有如此多的客户端,特别是接近区块链核心的客户端,一个权衡就是协调和发布以太坊核心系统的更新。 这可能是个挑战。如果没有整个社区的协调,你可能会出现这样的情况:客户端没有准备好支持更新,可能会在网络上创建消息,导致问题。 2021年8月,流行的客户端节点之一Geth,有许多用户使用过时的客户端版本,这导致以太坊网络分叉。区块链上的分叉发生在有多个历史版本争夺的时候。这些用户能够更新节点客户端,历史被调和了。
Cardano上的节点客户端
当涉及到Cardano上的节点和客户端时,事情才刚刚开始。截至目前,只有一个节点和客户端实现在生产中。它是用Haskell编写的,由Cardano的创始实体之一IOG维护。这意味着,如果你想建立一个密切接触区块链层的丰富应用程序,如果你的应用程序想建立区块或处理来自其他Cardano节点的区块,它必须用Haskell编写。 这个客户端还假设你对生产或转发区块感兴趣。
IOG的节点和客户端实现提供CLI和REST接口,用于向节点客户端提交交易和询问基本问题。
IOG有另一个正在开发的节点和客户端实现,称为Mithril。它目前正在测试中,预计将在未来几个月内发布。Mithril允许在。Checkout full article @lidonation' post_id=138]hours rather than days. 在未来,Mithril也将成为开发Ethereum风格的轻客户端的一个关键组件。
通过Project Catalyst,Cardano社区正在酝酿替代的节点客户端,以满足目前IOG节点和客户端实现所不能满足的用例和编程语言社区。
Five Binaries的团队想开发一个专门迎合元数据应用的客户端。元数据oracle node。
TxPipes希望开发一个Rust节点客户端,专门关心数据和重读应用。它希望是云原生的,允许在云中有效地存储数据,而不是像目前的IOG节点客户端那样存储在本地服务器上。TxPipe客户端还将提供HTTP/JSON和gRPC网络通信支持。
像以太坊一样,Cardano节点和客户端的实现是正式规定的,所以这些和更多的节点和客户端软件可以为特定的环境编写,同时与目前的IOG的客户端和未来的客户端具有互操作性。
结语
区块链网络的生死取决于它们在推出后能获得多少社区和全球的支持。拥有丰富的节点和客户端实施的生态系统是区块链网络获得商业社区支持的一个好迹象。
对于以太坊,你有可能在阅读这篇文章之前,已经在电视和广告牌或一些屏幕上多次看到它。它已经取得了商业界的认同。
对于Cardano来说,它在推出对智能合约区块链应用的支持后仅一年,就已经接近拥有更多的节点和客户端实施,这是一个好兆头。它的社区很丰富,随着工作的继续,未来会告诉我们更广泛的商业社区会有多少买进。
No comments yet…