主页 > imtoken老版本 > 为什么很难运行我自己的以太坊节点,为什么我需要它?

为什么很难运行我自己的以太坊节点,为什么我需要它?

imtoken老版本 2023-04-18 05:14:34

如果您是区块链开发的新手,那么肯定对节点及其在区块链中的工作方式有很多疑问。 包括什么是区块链节点? 为什么很难运行自己的以太坊节点? 什么是节点提供者,我为什么需要它?

相信我,这东西很混乱,所以这里有一个很酷的纲要。

什么是区块链中的节点?

让我们从基础开始吧! 节点本质上是在计算机上运行的程序,允许您连接到区块链的其余部分。 它与其他节点连接来回发送信息,验证节点之间发送的交易是否有效,并存储有关区块链的相关重要信息。

区块链本质上是由许多不同的节点组成的。 也就是说,运行“以太坊”或“比特币”区块链的物理硬件是由世界各地的个人运行的节点集合。 区块链没有所谓的主服务器或单一物理来源,这就是它去中心化的原因。

那么大家需要注意的是,如果不使用节点,是无法访问区块链上的信息的,所以可以简单地将节点看成是区块链浏览器。

“区块链”是由个人运行的计算机(节点)的集合,这些计算机(节点)按照一定的规则共同参与验证区块链的状态。

您可以通过向节点发送请求并通过 API(应用程序编程接口)接收响应来在节点之间进行交互。 假设您在计算机的 8545 端口上运行一个节点;

以太坊全节点钱包_以太坊节点赚钱吗_以太坊免费公共节点

您可以发送这样的请求:使用 Alchemy 在线尝试(直接链接),此请求将要求您的节点通过调用块号方法返回最新的块号或最近生成的块号,这是一个示例响应:

正如你所看到的,这个例子中的最新块是,将其转换为十进制形式。

node为什么难跑?

有几点导致自己的节点开发难以衔接,让酷宇宙解释一下其中的一些原因:

节点需要很长时间才能构建,甚至数周!

任何开发人员的麻烦在于,设置一个对您构建的内容没有多大作用的工具需要花费大量时间,而节点是最糟糕的违规者之一。

一般有两种类型的节点:轻节点和全节点。

轻节点仅同步来自全节点的块头和查询请求,而全节点保留区块链的整个状态,包括曾经创建的每一笔交易。 轻节点用于大多数查询,但全节点是区块链的骨干,它们是提供大多数信息所必需的。

以太坊免费公共节点_以太坊全节点钱包_以太坊节点赚钱吗

轻节点相对简单,但仍然需要安装节点程序、设置配置变量、下载区块头、检查端口和健康状态以保证其正常运行。

全节点比较麻烦。 最大的问题是它需要从头开始下载从0到最新的每一个区块,并手动重放之前任何人提交的每一个区块和交易。 以太坊主网拥有超过 1000 万个区块和数十亿笔交易。 此过程可能需要数周时间才能同步。

在以太坊中还有一种称为存档节点的类型,这对于历史查找非常有用。

节点必须由您管理! 让我们简要回顾一下:

节点需要每隔几周升级一次,偶尔需要从头开始重建(例如硬分叉或客户端升级),因为大多数节点在设计时并未考虑可靠性,并且某些查询(例如)可能涉及运行数百万个块和事务,因此有经常超时或节点崩溃,我们称之为“死亡查询”。 所以你必须密切关注节点的健康状况,你可能经常需要在凌晨 3 点调试它们。 由于各种不同的原因(对等连接、卡在陈旧的分支、内部状态等),单个节点可能会落后于网络。 如果您的节点滞后,可能会导致用户在不知情的情况下获取过时的数据,这是一种非常糟糕和危险的体验。

扩展到多个节点很棘手

当您构建个人项目时,单个节点通常就可以了(即使它会间歇性崩溃)。 但是当你不能让你的节点服务器足够强大来服务你发送的请求时会发生什么?

“我将只运行两个节点并在它们之间设置一个负载均衡器!” 你可能会建议。 我们也是这么想的! 不幸的是,这种设置实际上很难保持一致,因为不同的节点以略微不同的方式“看到”区块链的最新状态,从而导致数据不一致和其他用户问题。

以太坊全节点钱包_以太坊节点赚钱吗_以太坊免费公共节点

想象一下:我们有两个节点,每个节点都在负载均衡器后面同步。 节点 A 认为最新的区块是区块 5以太坊免费公共节点,而节点 B 认为是区块 4。这是完全正常的,因为最新信息在网络中传播缓慢,所以一些节点总是领先于其他节点。

你:你好! Load 先生,您看到的最新区块是什么?

LB先生:(向节点A发送请求并返回响应):网络上最新的区块是区块5。

你:谢谢! 你能和我分享第5件的信息吗?

Mr. LB:(这次向Node B发送请求):对不起,我不知道block 5,请再试一次。

在现实世界中,假设用户在您的应用程序上购买了 NFT。 他们可能会向节点 A 发送购买 NFT 的请求,但是当他们的查询被发送到节点 B 时,会出现好像之前的 NFT 购买从未发生过! 像这样的“一致性问题”非常普遍且难以解决,尤其是当您扩展到数十个节点时。

什么是节点提供商?

节点提供商本质上是一个团队,提供一种无需运行自己的节点即可访问区块链信息的方法。 本质上,您可以通过向提供相同 API 的提供商发送请求来完成此操作。 提供者不向本地节点发送请求,而是运行一个完全同步的最新节点 24/7。

以太坊全节点钱包_以太坊节点赚钱吗_以太坊免费公共节点

如果您还记得之前的请求,这就是节点请求发送到提供者时的样子:

我们只是交换了端点,不需要其他更改。

可靠的节点提供商至少会提供:

定期节点更新和警报访问轻节点和完整节点,而不必担心分叉或网络变化; 存档节点以访问历史交易数据(只有 Alchemy 可以免费执行此操作) 可扩展性和可靠性:节点始终可用,并且可以随心所欲。 提供商可以处理一些棘手的块问题。 我在本地运行我的 dApp,效果很好! 但是为什么需要节点提供者?

在您准备好将流量发送到公共测试网或主网之前,您不需要节点提供商! 用于测试的区块链本地版本(由 Hardhat 或 Truffle/Ganache 提供)是构建和测试项目所需的全部。

一旦您想将应用程序部署到实时链上,节点提供商就成为您开发工作流程的关键部分。

首先,你需要一种通过交易将智能合约部署到区块链的方法,这只能通过区块链上的节点来完成。 这意味着运行您自己的节点,或将交易发送给提供商。

其次以太坊免费公共节点,您的应用程序可能需要不断提取有关区块链的信息以更新其内部状态。 此信息也通过节点或节点提供者传递。 您会希望此通道可靠且正确同步,这样您就不会向用户提供陈旧或损坏的数据。

以太坊节点赚钱吗_以太坊全节点钱包_以太坊免费公共节点

什么是 Alchemy?它与其他节点提供商有何不同

Alchemy 本质上是一个区块链节点提供商,具有极高的可靠性、出色的客户支持和大量的开发工具。 它声称 70% 的顶级区块链应用程序通过它发送流量。

它声称有几个因素使它们与该领域的其他节点提供商区分开来:

开发人员工具:您如何知道您的用户发送了哪些请求? 如果他们的请求失败,您如何查看和调试? 您发送等待开采的交易发生了什么? Alchemy 中有许多可用的工具,可让您分析 dApp 区块链节点更新上的流量,否则会涉及大量日志页面。 推送通知:如果你想在你关注的以太坊用户(例如 Vitalik Buterin)进行交易时收到通知,你应该怎么做? 你可以编写一个脚本来读取每个块并搜索特定地址并全天候运行它,或者你可以使用像 Alchemy Notify 这样的工具,这是一种为区块链上的事件发送推送通知的工具 ()。 增强的 API:如果你想搜索单个 ETH 用户进行的所有交易怎么办? 虽然这在 SQL 数据库中可能很简单,但在区块链中却非常复杂,您基本上需要扫描区块链的每笔交易(同样,以太坊上有数十亿)以查看它是否包含地址。 我们构建了几个增强的 API,允许您即时进行此查询和其他类似查询。 我该如何开始?

使用 Alchemy 作为您的节点提供者非常简单。 事实上,只需要一行代码就可以开始! 如果您一直在使用 web3.js 或 ethers.js,只需创建一个免费的 Alchemy 帐户,生成一个 API 密钥并将实例化替换为以下内容。

挖矿网Ethos中文网拥有简单易用的挖矿系统,为挖矿行业提供教程软件和矿机评测及交易信息,对比计算各种数字货币在挖矿网的挖矿收益,以及介绍矿网挖矿工具,矿场最新动态等。

矿业网络,版权所有丨如未注明,均为原创丨本站采用BY-NC-SA协议授权

转载请注明原文链接:为什么运行自己的以太坊节点这么难,为什么需要它?