主页 > imtoken官网下载2.0 苹果 > 以太坊客户端和全节点运行

以太坊客户端和全节点运行

imtoken官网下载2.0 苹果 2023-05-17 07:16:36

什么是以太坊客户端

• 以太坊客户端是实现以太坊的软件应用程序

网络与其他以太坊客户端通信。如果不同的以太坊客户端符合

参考规范和标准化通信协议,互操作性是可能的。

• 以太坊是一个开源项目,由称为“黄皮书”的正式规范定义。除了各种

除了以太坊改进提案之外以太坊节点升级,这个正式规范还定义了以太坊客户端的标准行为。

• 由于以太坊有明确的正式规范,因此有许多独立开发的以太坊客户端

通过软件实现,它们可以相互交互。

以太坊的各种客户端

• go-ethereum ( Go )

官方推荐,开发最多用的

地址:

• 奇偶校验 (Rust)

最轻客户端,在以往以太坊网络攻击中表现出色

地址:

• cpp-ethereum (C++)

地址:

• pyethapp(蟒蛇)

地址:

• ethereumjs-lib (javascript)

地址:

• EthereumJ/Harmony(Java)

地址:

以太坊全节点

• 全节点是整个主链的副本,存储和维护链上的所有数据,以及

在验证新区块的合法性时。

• 区块链的健康和可扩展性取决于有许多独立的操作和地理上分散的

全节点。每个全节点可以帮助其他新节点获取区块数据并提供

用于独立验证所有交易和合同。

• 运行全节点会消耗巨大的成本,包括硬件资源和带宽。

• 以太坊开发不需要在现网(主网)上运行完整节点。我们可以

改用测试网的节点,或者使用本地私有链,或者使用服务商

提供基于云的以太坊客户端; 这些几乎可以做任何事情。

远程客户端和轻节点

• 远程客户端

不存储区块链的本地副本或验证块和交易。这些客户通常只提及

提供钱包功能以创建和广播交易。远程客户端可用于连接到

现有网络,MetaMask 就是这样的客户端之一。

• 轻节点

不保存链上的区块历史数据,只保存区块链当前状态。轻节点

可以验证块和交易。

全节点的优缺点

优势

• 为以太坊网络的灵活性和审查阻力提供强有力的支持。

• 权威地验证所有交易。

• 可以直接与公共区块链上的任何合约交互。

• 可离线查询区块链状态(账户、合同等)。

• 您可以直接将自己的合约部署到公共区块链。

缺点

• 需要大量的硬件和带宽资源并将继续增长。

• 第一次下载通常需要几天时间才能完全同步。

• 必须及时维护、升级和保持在线同步区块。

公共测试网节点的优缺点

优势

• 测试网节点需要同步和存储的数据要少得多,大约 10GB,具体取决于

在不同的网络上。

• 测试网节点通常可以在几个小时内完全同步。

• 部署合约或进行交易,只需要发送一个测试以太币,可从“水龙头”免费获取

不得不。

• 测试网是一个公共区块链,有许多其他用户和合约在运行(与私有区块链相反)。

缺点

• 测试以太币在测试网络上使用,没有任何价值。因此无法测试对方的

安全,因为没有任何风险。

• 在测试网络上进行测试无法涵盖所有​​真正的主网功能。例如,交易费用

虽然发送交易是必须的,但是因为gas是免费的,所以在testnet上往往不考虑

考虑一下。而且一般情况下,测试网不会像主网那么拥堵

本土私链的优缺点

优势

• 磁盘上几乎没有数据,也没有同步其他数据,完全“干净”

环境。

• 无需获取测试以太币,可以任意分配以太币,也可以随时挖矿获取

不得不。

• 没有其他用户,没有其他合同,没有任何形式的外部干扰。

缺点

• 没有其他用户意味着与公链不同的行为。发送的交易不存在于空间或

交易顺序的竞争。

• 除了你自己没有矿工意味着挖矿更可预测,所以不能在公链上测试

发生的某些情况。

• 没有其他合同,这意味着您必须部署要测试的所有内容以太坊节点升级,包括所有

运行全节点的要求

• 最低要求

• 双核或以上CPU

• 至少有 80GB 可用空间的硬盘存储

• SSD 需要超过 4GB RAM,HDD 至少需要 8GB RAM

• 8 MB/s 下载带宽

• 推荐配置

• 具有四核以上的快速 CPU

• 16GB 或更多内存

• 具有 500GB 以上可用空间的快速 SSD

• 25+ MB/s 下载带宽

Geth(去以太坊)

Geth是由以太坊基金会积极开发的Go语言实现的,因此被认为是基于

以太坊客户端的“官方”实施。

• 通常,每个基于以太坊的区块链都有自己的Geth实现。
• 以太坊的 Geth github 仓库链接:
https://github.com/ethereum/go-ethereum
JSON-RPC
• 以太坊客户端提供了API 和一组远程调用(RPC)命令,这些命令
被编码为 JSON。这被称为 JSON-RPC API。本质上,JSON-RPC 
API 就是一个接口,允许我们编写的程序使用以太坊客户端作为网
关,访问以太坊网络和链上数据。
• 通常,RPC 接口作为一个 HTTP 服务,端口设定为 8545。出于安
全原因,默认情况下,它仅限于接受来自 localhost 的连接。
• 要访问JSON-RPC API,我们可以使用编程语言编写的专用库,例
如JavaScript的 web3.js。 • 或者也可以手动构建HTTP请求并发送/接收JSON编码的请求,如:
$ curl -X POST -H "Content-Type: application/json" --data \
'{"jsonrpc":"2.0","method":"web3_clientVersion",
"params":[],"id":1
}' \ http://localhost:8545