以太坊多少个主节点,以太坊节点

OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载   官网注册

以太坊多少个主节点,以太坊节点

一、以太坊节点***全节点***轻节点***归档节点

以太坊节点的多样性和角色在区块链网络中起着关键作用。主要有全节点、轻节点和归档节点三种类型。全节点是网络中的基石,拥有完整的区块链数据,确保交易验证和区块链同步,确保去中心化系统的安全。轻节点则是轻量级的选择,存储最少的状态信息,通过请求全节点获取交易详情进行验证,以节省存储空间。归档节点则在全节点的基础上,储存每个区块的快照状态,便于快速查询历史状态,但对硬件要求较高,主要用于特殊服务。

全节点确保了网络的完整性和安全性,而轻节点则在资源有限的情况下提供了验证交易的可能。归档节点虽然对整体安全性影响不大,但对历史数据查询至关重要。在实际应用中,全节点通常能满足大部分需求,而归档节点则更多见于专业服务场景。通过理解这些节点类型,用户可以更好地参与到以太坊网络的维护和使用中。

二、以太坊的“分片”是指什么

写在文前:视频版本和文字版本略有不同,想要看我深情并茂演绎,请看视频版本(喵懂区块链22期|分片(Sharding):以太坊太慢,“盘”他!),思维逻辑怪,请看文案加长版。

最近以太坊由于君士坦丁堡升级(Constantinople)而出现了压倒性的积极走势,而以太坊的升级之路则犹如升级打怪一般,落入了rabbithole,谁也不知道这洞有多深。既然是“路漫漫其修远兮”,则把脚下的每一步走好走准,则成了至关重要的点。攻破这一难点之后,以太坊的下一技术难点---Sharding分片,则又被摆到了台面上。本期《喵懂区块链》会带大家走进让以太坊快起来的法宝--- Sharding分片。

什么是sharding分片?

分片技术其实并不是什么新概念,起初是针对大型中心数据库提出的优化方案,具体来说就是将大型数据库中的数据划按照某种规则分成很多数据分片(shard),再将这些数据分片分别存放在不同的服务器中,以减小每个服务器的数据访问压力,从而提高整个数据库系统的性能。

我们举一个通俗的小例子:

比如我们平时经常使用的美团,滴滴打车等软件,就可以按照“城市”来进行分片,由于不同城市的数据不需要互通,就可以将不同城市的数据存放在不同数据库中,这样既可以把数据库服务器部署到离对应城市最近的节点上,还可以提高访问速度,何乐而不为呢?!

从上面的例子中,我大家应该对分片的概念有了初步了解,那么对应到区块链场景中来说,分片又是怎么样的呢?

以以太坊分片为例,在原有的单链系统中,公链整体的性能取决于单个节点的性能,进行分片之后,每个节点只需要承当全网部分工作,各个分片并行工作,按照Vitalik的话来说,each shard is like a separate galaxy每个分片都像是独立的小宇宙,这样效率自然噌噌噌提升!原本以太坊链全网TPS约为20,现在若增加到100个分片,那么全网TPS可以提升至2000,同理,全网容量也将提升至原来的100倍。

“每个节点只需要承担全网部分工作”,这就会引出几大问题,1.怎么确定这个节点是负责哪个分片的工作?2.哪些交易应该归类到哪些分片当中去?3.每个节点是否只需要储存自己所在分片的交易信息(账本)?

根据以上问题的实现与否,我们可以将分片依次分为三种类型:网络分片,交易分片,状态分片。

网络分片:如何将全网节点划分到不同分片当中去。

交易分片:如何将全网交易划分到不同分片当中去。

状态分片:如何让各个节点只维护各自分片内的账本,但又不影响整个系统的安全性。

主链和分片链的区别和联系?

分片的类型我们已经明白了,那么主链(Main chain)和分片链(shard chain)有什么不同呢?

向左转|向右转

在主链中,我们知道记账的人叫做矿工,账本是存在区块当中,对应到分片链当中,则是Collator校对人和Collation校对块。

类似于区块的构成,Collation校对块也包含Collation header校对头和tansaction list具体的交易信息。

向左转|向右转

对比下来,主链和分片链本身来说,还是大同小异,但是一但要把他们联系起来,问题就变得复杂了,这里我们举个通俗的小例子类比一下:

假设,

以太坊主链=温州银行

每个分片=温州银行分行

比如:

shard1(分片1)=温州银行(杭州分行)

Shard2(分片2)=温州银行(宁波分行)

……

在这个系统中,我们就会清晰看到几大问题:1.各大分行的账本如何汇总到总行里去?2.各大分行的账本如何互联?

对应到主链和分片链系统当中来,则变成了1.分片链和主链如何实现跨链链接?2.分片之间怎么互联?甚至分叉的场景要怎么办?

分片链和主链如何实现跨链链接?

为了将分片链加入到主链中,在主链上需要有一个叫做验证人管理员合约(Validator Manager Contract)VMC的特殊合约。VMC具体是这样的:

向左转|向右转

所有的验证人把它们的保证金(stake)存入 VMC当中,这些验证人就会被收录在VMC的common validator pool验证人备选池中。系统将会“隔一段时间”根据stake权益的多少随机为每个分片抽取一名验证人,将各个分片的collation header校对头信息同步到主链中去。

这里的“隔一段时间”,我们需要额外解释一下:“时间”,也叫period周期,这到底是怎么确定的呢?答案是主要看开发人员在最终代码中的实现为准,比如说我们把周期定为5个区块,那么就意味着主链出5个区块,所有分片链分别出一个collation校对块,这就间接决定了分片链的出块时间。

这种随机的形式,使得验证者无法提前预测他们何时会成为验证者,也无法预测会成为哪个分片的验证人,从而预防作恶的可能性。

如果一旦发现我们的分片验证人作恶了,他的stake权益就会被剥夺。

跨分片通信(cross-shard communication)怎么办?

比如说一个转账方小A在分片M中,收款方小B在分片N中,小A可以通过主链这个桥梁,完成扣款操作,并创建一个带有ID的 receipt收据,代表着“自己已经完成了扣款操作”,收款方小B可以根据这个 receipt ID创建一个receipt-consuming收据消费交易,“消费”成功了之后,收款也就成功了。

向左转|向右转

分片链分叉了怎么办?(fork choice rule)

在以往的分叉情况中,都是“以最长链为主链”,在分片当中,分叉规则是“以最长主链里面的最长分片链为有效分片链(the longest valid shard chain within the longest valid main chain)”。

什么意思呢?我们举个例子:

一条主链出现了分叉,一条分叉连续跟了两个区块,同时也跟了两个Collation校对块,另一条则是一个区块和一个校对块,那么很明显,第一条是有效链。

向左转|向右转

接下来,第二条链又加了一个区块,变成两个区块和一个Collation校对块,依然很明显,第一条链仍然是有效链:

向左转|向右转

接下来,第一条链上又加了一个区块,虽然这条链上只有一个Collation校对块,但是它的主链长度已经超过了第一条,那么第二条则成为了现在的有效链,这就是分片场景下的分叉规则,首先比较主链长度,再比较分片链长度!

向左转|向右转

以太坊分片的实现是一个漫长的过程,就连Vitalik自己也说将会分阶段来逐步实现,分片到底能不能从理论走向实践,我们还是小小期待一下吧。

参考资料:

三、以太坊多节点私有链部署

假设两台电脑A和B

要求:

1、两台电脑要在一个网络中,能ping通

2、两个节点使用相同的创世区块文件

3、禁用ipc;同时使用参数--nodiscover

4、networkid要相同,端口号可以不同

1.4搭建私有链

1.4.1创建目录和genesis.json文件

创建私有链根目录./testnet

创建数据存储目录./testnet/data0

创建创世区块配置文件./testnet/genesis.json

1.4.2初始化操作

cd./eth_test

geth--datadir data0 init genesis.json

1.4.3启动私有节点

1.4.4创建账号

personal.newAccount()

1.4.5查看账号

eth.accounts

1.4.6查看账号余额

eth.getBalance(eth.accounts[0])

1.4.7启动&停止挖矿

启动挖矿:

miner.start(1)

其中 start的参数表示挖矿使用的线程数。第一次启动挖矿会先生成挖矿所需的 DAG文件,这个过程有点慢,等进度达到 100%后,就会开始挖矿,此时屏幕会被挖矿信息刷屏。

停止挖矿,在 console中输入:

miner.stop()

挖到一个区块会奖励5个以太币,挖矿所得的奖励会进入矿工的账户,这个账户叫做 coinbase,默认情况下 coinbase是本地账户中的第一个账户,可以通过 miner.setEtherbase()将其他账户设置成 coinbase。

1.4.8转账

目前,账户 0已经挖到了 3个块的奖励,账户 1的余额还是0:

我们要从账户 0向账户 1转账,所以要先解锁账户 0,才能发起交易:

发送交易,账户 0->账户 1:

需要输入密码 123456

此时如果没有挖矿,用 txpool.status命令可以看到本地交易池中有一个待确认的交易,可以使用 eth.getBlock("pending", true).transactions查看当前待确认交易。

使用 miner.start()命令开始挖矿:

miner.start(1);admin.sleepBlocks(1);miner.stop();

新区块挖出后,挖矿结束,查看账户 1的余额,已经收到了账户 0的以太币:

web3.fromWei(eth.getBalance(eth.accounts[1]),'ether')

用同样的genesis.json初始化操作

cd./eth_test

geth--datadir data1 init genesis.json

启动私有节点一,修改 rpcport和port

可以通过 admin.addPeer()方法连接到其他节点,两个节点要要指定相同的 chainID。

假设有两个节点:节点一和节点二,chainID都是 1024,通过下面的步骤就可以从节点二连接到节点一。

首先要知道节点一的 enode信息,在节点一的 JavaScript console中执行下面的命令查看 enode信息:

admin.nodeInfo.enode

" enode://d465bcbd5c34da7f4b8e00cbf9dd18e7e2c38fbd6642b7435f340c7d5168947ff2b822146e1dc1b07e02f7c15d5ca09249a92f1d0caa34587c9b2743172259ee@[::]:30303"

然后在节点二的 JavaScript console中执行 admin.addPeer(),就可以连接到节点一:

addPeer()的参数就是节点一的 enode信息,注意要把 enode中的 [::]替换成节点一的 IP地址。连接成功后,节点一就会开始同步节点二的区块,同步完成后,任意一个节点开始挖矿,另一个节点会自动同步区块,向任意一个节点发送交易,另一个节点也会收到该笔交易。

通过 admin.peers可以查看连接到的其他节点信息,通过 net.peerCount可以查看已连接到的节点数量。

除了上面的方法,也可以在启动节点的时候指定--bootnodes选项连接到其他节点。 bootnode是一个轻量级的引导节点,方便联盟链的搭建下一节讲通过 bootnode自动找到节点

参考:

本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/jys/184406.html

上一篇 2025年10月08日
下一篇 2025年10月08日

相关推荐

  • Swarm上线时间全解析,从历史到未来的以太坊互联网拼图

    Swarm上线时间全解析,从历史到未来的以太坊互联网拼图 在区块链世界的宏大叙事中,如果说以太坊是一条承载着智能合约和去中心化应用的“高速公路”,那么Swarm(蜂群)就是这条公路上不可或缺的“基础设施”——它旨在为整个以太坊生态系统提供一个去中心化的存储层,许多关

    2026-07-31 09:30:02
    0 0
  • 以太坊合并已成定局?最新消息与影响深度解析

    以太坊合并已成定局?最新消息与影响深度解析 在加密货币领域,以太坊的“合并”(The Merge)无疑是近年来最受瞩目的技术变革之一,它不仅标志着以太坊从工作量证明(PoW)向权益证明(PoS)共识机制的华丽转身,更被寄予了提升能效、可扩展性和安全性的厚望,随着时间推移和

    2026-07-31 09:30:02
    0 0
  • 以太坊3月1日硬分叉,升级路线图关键一步,生态再迎新变革

    以太坊3月1日硬分叉,升级路线图关键一步,生态再迎新变革 在全球区块链技术爱好者与开发者的共同瞩目下,以太坊(Ethereum)网络即将迎来一次重要的技术更新——一次定于3月1日进行的硬分叉,此次硬分叉并非旨在改变以太坊的基本共识机制或引发社区分裂,而是其持续演进路线

    2026-07-31 09:30:02
    0 0
  • 以太坊价格查询,币市动态与实用指南

    以太坊价格查询,币市动态与实用指南 在加密货币市场,以太坊(Ethereum)作为仅次于比特币的第二大主流币种,其价格波动一直是投资者、开发者和用户关注的焦点,通过“币市”等平台查询以太坊价格,不仅能够实时掌握市场动态,更是决策的重要依据,如何高效查询以太坊价格,又

    2026-07-31 09:30:02
    0 0
  • EVM的思维速度,深入浅出解析以太坊虚拟机内存存取

    EVM的思维速度,深入浅出解析以太坊虚拟机内存存取 在区块链的世界里,以太坊(Ethereum)无疑是最具影响力的智能合约平台,而支撑这一切的,是一个精巧而强大的虚拟机——以太坊虚拟机(EVM),我们可以将EVM理解为一个去中心化的、全球共享的计算机,它负责执行智能合约中的

    2026-07-31 09:30:02
    0 0
  • 以太坊的平方公里,一个关于虚拟土地的误解与探索

    以太坊的平方公里,一个关于虚拟土地的误解与探索 “以太坊有多少平方公里?”——这个问题乍一听似乎有些奇怪,甚至不合逻辑,以太坊,作为一个全球性的去中心化开源区块链平台,它由代码、节点和分布式账本构成,是一个完全的数字实体,存在于互联网的虚拟空间中,它没有物

    2026-07-31 09:30:02
    0 0

发表回复

8206

评论列表(0条)

    暂无评论

binance币安交易所
已有2000万用户加入币安交易所

立即下载