在Goerli Meddala的Lighthouse上设置Ethereum 2.0验证节点
最近几天,由于对Defi的火热,以太坊的价格也在不断上涨,其他加密货币价格出现了大幅上涨现象。以太坊最近发布其第一个eth2.0多客户端medella测试网上线并在eth1测试网Goerli的支持下启动了其第0阶段。
本文的目的是介绍使用Sigma Prime Lighthouse客户端在以太坊2.0 Medalla多客户端测试网上设置以太坊2.0信标链节点和验证节点的详细步骤。
它基于以下系统:
1. Ubuntu 18.04.3(LTS)x64 x64服务器
2. Go以太坊节点
3. Goerli Testnet,以PoA共识运行
4. 以太坊2.0客户端,Lighthouse
5. 官方多客户端测试网公共网络Medalla
6. MetaMask加密钱包浏览器扩展
什么是Lighthouse?
Lighthouse作为信息安全和软件工程公司Sigma Prime的后盾,Lighthouse同时也是9个构建Eth2.0客户端的团队之一。它是用Rust编写的,主要关注速度和安全性,并获得了以太坊基金会,ConsenSys和Vitalik Buterin的资助。
请注意:
这个设置并不简单,而且您需要对高级Linux操作系统(如防火墙、SSH、用户帐户、配置Linux服务)有相当的了解。
您还需要了解如何设置以太坊1.0完整节点,并了解区块链和以太坊的核心原则,例如助记符、私钥/公钥、账户地址、元掩码钱包、solidity合约和交易。
完成整个安装过程等待时间比较长,因此请保持耐心。
主要步骤
1. 在我们的服务器上设置一个Goerli testnet的以太坊1.0测试节点,让它与测试网最新区块同步
2. 安装和配置Lighthouse Beacon节点
3. 抵押合约
4. 生成并激活验证器密钥
5. 配置Lighthouse验证节点客户端
第1步-准备
从云服务运营商购买一台设备, 从技术上讲,此设置也可以在Raspberry pi 4上完成。但如果是使用AWS上的VPC的专用/公用子网支持计算机,则需要使用以下端口设置服务器安全组。对于此设置,您需要使用Linux防火墙服务ufw进行。
更新和升级系统
> sudo apt-get update -y && sudo apt-get upgrade -y
安全设置
默认情况下,ufw是禁用的,因此在启用它之前,您需要打开:
用于SSH连接的端口22,
端口30303 TCP/UDP,用于Geth节点与其对等节点交互,
端口9000/TCP和9000/UDP,允许Lighthouse与信标节点进行对等点的P2P连接
运行以下ufw命令
> ufw allow 22/tcp> ufw allow 30303/tcp> ufw allow 30303/udp> ufw allow 9000/tcp> ufw allow 9000/udp> ufw enable> ufw status numbered
输出应该如下所示
> ufw status numberedStatus: activeTo Action From -- ------ ----[ 1] 22/tcp ALLOW IN Anywhere [ 2] 30303/tcp ALLOW IN Anywhere [ 3] 30303/udp ALLOW IN Anywhere [ 4] 9000/tcp ALLOW IN Anywhere [ 5] 9000/udp ALLOW IN Anywhere [ 6] 22/tcp (v6) ALLOW IN Anywhere (v6) [ 7] 30303/tcp (v6) ALLOW IN Anywhere (v6) [ 8] 30303/udp (v6) ALLOW IN Anywhere (v6) [ 9] 9000/tcp (v6) ALLOW IN Anywhere (v6) [10] 9000/udp (v6) ALLOW IN Anywhere (v6)
第2步-安装并运行Go Ethereum节点
安装Go Ethereum
> sudo add-apt-repository -y ppa:ethereum/ethereum> sudo apt-get update> sudo apt-get install ethereum
由于您需要在该服务器中运行多个系统,并且所有系统都应不间断运行,因此您需要将这些系统设置为Linux服务。任何干扰都可能导致惩罚和削减保证金。
运行Go Ethereum作为后台服务
为服务运行创建一个no-home权限帐户goerli。您无法使用此帐户登录服务器。
为Goerli链创建数据目录。这是存储Goerli节点块数据所必需的。
设置目录权限。goerli帐户需要权限才能修改数据目录。
创建一个systemd服务文件来存储服务配置。您将使用配置文件告诉systemd运行geth进程。
> sudo useradd --no-create-home --shell /bin/false goerli> sudo mkdir -p /var/lib/goethereum> sudo chown -R goerli:goerli /var/lib/goethereum> sudo nano /etc/systemd/system/geth.service
使用以下代码更新geth服务配置。
[Unit]
Description=Ethereum go client
After=network.target
Wants=network.target
[Service]
User=goeth
Group=goeth
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/bin/geth --goerli --http --datadir /var/lib/goethereum--bootnodes "enode://d67359082562e4a599d0572c5a04909ca6e8650228c98f0a
3a6844514f3a1ae0a8b0b6fe635a2e2f0e0e6be9f08d80f1994f4399e154134bc07080
f0b0b64e42@68.183.59.172:30303,enode://95f5d03a95e7c5d0eb655b2fe3b549
5b86d424b4681a200d402c30f233e1edc1846f2837b0dfe7df691fe007236ed1998d1
78774c9b8bc049be75a2c21038978@95.217.215.48:30303,enode://79e5d36f90e
e0314293f4c1b1a4cd9ea13f1acd3d79b5a506870c70b6dbac6f9652ca86455886be8
54c9a1cfcc00d82cf0fa5d256bf7c40ae1fae0c21b437c7d@13.66.153.22:37912,
enode://a9f7bb623c007d2b28038978dac6ebbe945c74f07cc91820c88cc95633b29
468ca4708781fc99346a74ee43024b5e7cbb8b0803a988b57841b757cf975efa333@
104.211.30.135:30303,enode://02200a7b5253969458e2addf6838b3f064c9c6b2
2288e92848a7ac5a367553d8d8c871b1af0603ac6ac2118bc15795b5aefe2d29b4729
ae1e61e51a14201c8e9@18.194.247.237:30303,enode://553b679e4f84048f4340
de271025fdd047869b39d419352d30cfd48dc97868263c8dc1481337946a41ef2836d
2b5afece993012af982d8097de4cc062f50cda1@52.87.240.248:48584,
enode://4531d2559d9707406f5132d9e9490b9ab6b1fa62ba9b10486d3f0eb7d8f66
43b25f679c28ba4d4e0ac8e218d424aed8bd3a0a4ba9dd7bdec4823047adb8d0145
@24.74.186.77:36804,enode://aaf930ed9bd450fe48b2f953da22393d6a0d0fdb2
810ed16885d382d67fd89108d5777161c3b7401b922f34d8c416c74770f901147faf7
9c190de5bbbf0e3cc8@192.241.134.195:30303,enode://00e496ab9153d4dd8b88
275352831fd3c75fdc255e57fdf9fe5875164672fb722889b0732f8df9aab3e16e82b
ef9b979840800e740bca1914252c598378ec52e@24.4.149.245:30304,
enode://d26b54f391088fa3868811c643a72f42ea23be850670695c52bdd5ef6421e
227c376d476e94e32de09793eec38cacaf69bd6f79f71a34e8662cc9ed0b35e7976
@185.228.47.193:30303,enode://15032b1dcc97ebcbb9e060c27b775b81472653
d19f932f75d0fd96a2ec1184698c7064401a01b08533783d8039c837a1dce3d69c23
ef22289f02bb53a1dd70f7@202.187.155.60:30303,enode://4d03cdfa08658d67
37fd18507b54e6653a236d41039d0dd8a3f9d0a3b06dff98c2af903daf99fe4cd2c6
bfbb36f47554151336f42b971698c8bccf970f28c98a@51.210.9.77:40404,
enode://3d4d8863396c39fa0710504dbe8803b776bef9d7fe3f732967fb8681552f
d6d2dbe0c6f4642b45528060f5b168820ae93eb14d260617d29d815ffadc5c7db6f2
@95.216.206.118:30303,enode://9a3f770e82a128ea27d1b73ca9819b05cf6f16
275b7d9ee6151efe751966c771f7a82425447be97119743680c3bd421f024eccf240
66aa46020d061aac5128dc@64.120.90.247:33656,enode://f7d7aa996c18e45ef
be9b8a532f9f32bbdef027dc60a6999b6a06b97b3bd933995280b0a1390a4281edc2
556ddfc46521814feb0e5839f82010dcaba1afec445@51.77.211.174:30303,
enode://bfe4ae8c9638e56dc6c252d5fdf8fd7251b2ad82cbb89c56923c2e6ece2f
5f71888d1fa6849a2f6aee901835876d6001bfce8aa29fa27aa4715fc2420596e399
@155.93.136.72:56792,enode://10e545ef1ede27c90ef69863d50328f66de1ac80
6c67cf60d1bb4c72cc644fe11b6597ebd30d9e100d7ccdd05ae6b5d133d93122d8113
9baab03c2dd9e10c758@95.217.12.192:30303,enode://ca77b80280e607104f399
7e92f1e9ea14e009cd51a471960f43c2a5c0f95405e6f669ac15a46db4f3dbdc77411
551926dca0da0db32680a21b65cef80273bf5a@150.214.106.123:47524,
enode://00b77e6c1f44719d48b305da24965e6c7b8af5ec614e883efb0c8061767058
5c4a949fe4a3fbacf6454afce7d074ecaac40213a893425522f1e941de71c007ed
@155.93.196.78:58992,enode://6781b3fa91a8e5b2a89682f9307d2b66e21a4ae59
5d1b2dfe2662e5fbf7326f5db7a9acdcc64e8402b31a1e8fbefc6ba13fa0af4015a373
a42a4de14fd6a306b@164.90.236.249:30303,enode://1d63c062e215caa90ab8348
ab25bc38546d7112bf829d5e9a272e88fab0869bbef206e848acb4290448c6b6e077f3
12efef6075116a9bbeb0b069a95dbd7f103@86.88.214.39:30303,
enode://6b5ee2f457fc091b762f9a058d35f7fc73f1c8116a1853b3db2279eba56dbd
990c309084c002476a9cb1b8584ac3ee58e91184376ad22af337088ea357f0ef2e
@86.154.249.228:30303,enode://c40e962b9bb3433303ea77a9d785faa4a6c43d67
d813f3cbe42006412df64a74aab206c7138b90a74e4152bde99f5f94a310fe673e9c5b
5b899c5c61e5c28de5@82.233.188.75:30303"
[Install]
WantedBy=default.target
--goerli标志用于运行Göerli测试网络,而--http标志用于公开信标链将连接到的端点(http://localhost:8545)。--bootnodes标志可将选定的对等节点静态链接到我们的geth节点。
重新加载systemd更改,然后启动服务并检查以确保其运行正常。
> sudo systemctl daemon-reload
> sudo systemctl start geth
> sudo systemctl status geth
geth.service - Ethereum go client
Loaded: loaded (/etc/systemd/system/geth.service; enabled;vendor preset: enabled)
Aug 13 12:04:00 ubuntu-s-2vcpu-4gb-sgp1-eth geth[852]:INFO [08–13|12:04:00.654] Imported new chain segment blocks=1
txs=0 mgas=0.000 elapsed=”223.343µs” mgasps=0.0
Aug 13 12:04:13 ubuntu-s-2vcpu-4gb-sgp1-eth geth[852]:INFO [08–13|12:04:13.095] Chain reorg detected number=3217563
hash=”d20e45…488182" drop=1 dropfrom=”6882Aug 13 12:04:13 ubuntu-s-2vcpu-4gb-sgp1-eth geth[852]:
INFO [08–13|12:04:13.095] Imported new chain segment blocks=1
txs=3 mgas=0.796 elapsed=13.377ms mgasps=59.
这表明节点已启动。与Goerli区块链完全同步将需要几个小时甚至几天。对我来说,它必须同步超过300万个数据块。
第3步-搭建Lighthouse
安装依赖项,Lighthouse是使用rust开发的, 按照提示进行安装。
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
由于Rust修改了PATH变量,因此您需要注销然后再次登录,否则在尝试编译时可能会收到command not found的错误。
To get started you need Cargo’s bin directory ($HOME/.cargo/bin)
in your PATH environment variable. Next time you log in this will be done automatically.
还需要一些软件包(git,gcc,g ++,make,cmake等)。
$ sudo apt install -y git gcc g++ make cmake pkg-config libssl-dev
$ sudo apt update
搭建Lighthouse
现在已经安装了依赖项,现在应该构建Lighthouse客户端。
Lighthouse构建生成一个Lighthouse二进制文件。相同的二进制文件用于运行Beacon节点以及验证节点客户端。
Lighthouse核心存储库,使用“ make”编译Lighthouse二进制文件,然后将二进制文件移至bin文件夹。
> git clone https://github.com/sigp/lighthouse.git> cd lighthouse> make> sudo cp /$HOME/.cargo/bin/lighthouse /usr/local/bin
构建它需要一段时间。因此请保持耐心等待。
第4步—配置信标链节点
您将以服务的形式运行信标链节点,因此如果系统重新启动,该进程将再次自动启动。
将信标节链点作为后台服务运行
为服务运行创建一个no-home帐户Lighthouse
为Lighthouse信标链节点创建数据目录以存储信标节点数据
设置目录权限。lighthousebeacon帐户需要修改数据目录的权限
使用您喜欢的浏览器扩展程序上的Metamask钱包创建/使用新的Ethereum1.0地址,并按左侧的Lighthouse橙色图标复制图标字符串。在我们的示例中,地址是“0xFa55bEacf4d07839e1B84B6E56f002402fe2eB94”。
从此处获取您的信标链节点客户端的POAP(出席证明协议)徽章。这是一张图标,可以放在您的资源管理器块上,以证明您参与了此测试阶段。
创建一个systemd服务文件来存储服务配置。您将使用配置文件告诉systemd运行lighthousebeacon进程
> sudo useradd --no-create-home --shell /bin/false lighthousebeacon> sudo mkdir -p /var/lib/lighthouse/beacon-node> sudo chown -R lighthousebeacon:lighthousebeacon /var/lib/lighthouse/beacon-node> sudo nano /etc/systemd/system/lighthousebeacon.service
使用以下代码更新lighthousebeacon服务配置
[Unit]Description=Lighthouse Beacon NodeAfter=network.target Wants=network.target[Service]User=lighthousebeaconGroup=lighthousebeaconType=simpleRestart=alwaysRestartSec=5ExecStart=/usr/local/bin/lighthouse beacon_node --datadir /var/lib/lighthouse/beacon-node --testnet medalla --http --eth1-endpoint http://127.0.0.1:8545 --graffiti[Install]WantedBy=default.target
并在`— graffiti`处替换复制的图标字符串,然后保存文件。
重新加载systemd以反映更改,然后启动服务并检查以确保其运行正常。
> sudo systemctl daemon-reload> sudo systemctl start lighthousebeacon> sudo journalctl -f -u lighthousebeacon.serviceAug 12 08:09:50 ubuntu-s-2vcpu-4gb-sgp1-eth lighthouse[7237]:Aug 12 08:09:50.000 INFO Syncing est_time: 40 mins,speed: 5.33 slots/sec, distance: 12820 slots (1 days 18 hrs),peers: 51, service: slot_notifierAug 12 08:10:02 ubuntu-s-2vcpu-4gb-sgp1-eth lighthouse[7237]:Aug 12 08:10:02.001 INFO Syncing est_time: 39 mins,speed: 5.33 slots/sec, distance: 12693 slots (1 days 18 hrs),peers: 51, service: slot_notifierAug 12 08:10:14 ubuntu-s-2vcpu-4gb-sgp1-eth lighthouse[7237]:Aug 12 08:10:14.001 INFO Syncing est_time: 31 mins,speed: 6.67 slots/sec, distance: 12630 slots (1 days 18 hrs),peers: 53, service: slot_notifierAug 12 08:10:26 ubuntu-s-2vcpu-4gb-sgp1-eth lighthouse[7237]:Aug 12 08:10:26.001 INFO Syncing est_time: 31 mins,speed: 6.67 slots/sec, distance: 12567 slots (1 days 17 hrs),peers: 52, service: slot_notifier
让Beacon节点与其最新状态同步。est_time显示ETA。下面的状态表明信标节点已完全同步。
> sudo journalctl -f -u lighthousebeacon.service
Aug 12 10:28:20 ubuntu-s-2vcpu-4gb-sgp1-eth lighthouse[7237]:Aug 12 10:28:20.893 INFO New block received hash: 0x7d84…95d2,
slot: 56841, service: router
Aug 12 10:28:26 ubuntu-s-2vcpu-4gb-sgp1-eth lighthouse[7237]:Aug 12 10:28:26.000 INFO Synced slot: 56841, block: 0x7d84…95d2,
epoch: 1776, finalized_epoch: 1774, finalized_root: 0x9bf1…f0db,
peers: 55, service: slot_notifier
Aug 12 10:28:33 ubuntu-s-2vcpu-4gb-sgp1-eth lighthouse[7237]:Aug 12 10:28:33.846 INFO New block received hash: 0xcb1f…05bc,
slot: 56842, service: router
Aug 12 10:28:38 ubuntu-s-2vcpu-4gb-sgp1-eth lighthouse[7237]:Aug 12 10:28:38.000 INFO Synced slot: 56842, block: 0xcb1f…05bc,
epoch: 1776, finalized_epoch: 1774, finalized_root: 0x9bf1…f0db,
peers: 52, service: slot_notifier
第5步-将验证者保证金存入Medalla
获取Goerli抵押ETH
向Goerli Testnet水龙头索要32 ETH
如果您计划运行多个验证程序,则可以要求32 ETH x验证程序数量。
一旦Goerli ETH出现在您的MetaMask钱包中,请继续下一步。
抵押Goerli ETH
请按照以下步骤安装“ eth2deposit”脚本并使用给定命令运行该脚本
> cd ~
> curl -LO https://github.com/ethereum/eth2.0-deposit-cli/releases/download/v0.2.1/eth2deposit-cli-v0.2.1-linux-amd64.tar.gz
eth2deposit-cli-v0.2.1-linux-amd64.tar.gz 100%[========================================================================================>] 14.56M 5.47MB/s in 2.7s
2020-08-12 07:19:25 (5.47 MB/s) - 'eth2deposit-cli-v0.2.1-linux-amd64.tar.gz' saved [15271039/15271039]
-rw-r--r-- 1 root root 15M Jul 28 07:10 eth2deposit-cli-v0.2.1-linux-amd64.tar.gz
> tar -xzf eth2deposit-cli-v0.2.1-linux-amd64.tar.gz
> cd eth2deposit-cli-de03fe3-linux-amd64
-rwxr-xr-x 1 goerli lighthousebeacon 15M Jul 28 07:00 deposit
> ./deposit --num_validators 1 --chain medalla
Please choose your mnemonic language (italian, korean, spanish, chinese_traditional, chinese_simplified, english, czech) [english]:
Type the password that secures your validator keystore(s):
Repeat for confirmation:
This is your seed phrase. Write it down and store it safely, it is the ONLY way to retrieve your deposit.
Press any key when you have written down your mnemonic.
Creating your keys.
Saving your keystore(s).
Creating your deposit(s).
Verifying your keystore(s).
Verifying your deposit(s).
Success!
Your keys can be found at: /root/eth2deposit-cli-de03fe3-linux-amd64/validator_keys
➜ validator_keys l
total 16K
drwxr-xr-x 2 root root 4.0K Aug 12 07:25 .
drwxrwxr-x 3 goerli lighthousebeacon 4.0K Aug 12 07:25 ..
-rw-r--r-- 1 root root 647 Aug 12 07:25 deposit_data-1597217105.json
-rw-r--r-- 1 root root 710 Aug 12 07:25 keystore-m_12381_3600_0_0_0-1597217104.json
> sudo chown -R root:root /var/lib/lighthouse/validator
> lighthouse account validator import - directory ~/eth2deposit-cli-de03fe3-linux-amd64/validator_keys - validator-dir /var/lib/lighthouse/validator
Successfully moved keystore.
Successfully updated validator_definitions.yml.
Successfully imported 1 validators.
您可以在goerli测试网上查看抵押交易。只要你对于1.0具有一定的了解的花,都可以很容易地理解这是Solidity合约Medella BeaconContractor,在成为Beacon链的验证者之前,需要向其发送32个“ Goerli” ETH。这32个以太坊是抵押额,可能无法取回?
生成验证节点数据
转到官方的Eth2 LaunchPad并按照说明进行操作。如果一切正常,将生成验证节点密钥文件(keystore-m JSON文件)—为每个请求的验证节点生成一次。
最终,您应该看到这样的输出。
现在您已经达到了一个非常有趣的阶段。下图显示了32个ETH已被抵押;但是即使您现在启动验证节点客户端进程,也可能不会立即成为验证节点。图片显示最多可能需要5.08个小时;但是这完全取决于验证者队列的长度。每个周期都会激活四个验证节点。因此,如果队列中有5000多个队列,则可能需要大约5天的时间。
验证者通过发送交易来存款,该交易调用eth1链上的存款合约上的功能。保证金规定:
与用于签名消息的私钥相对应的公钥
提款凭证(验证者完成验证后将用于提款的公钥哈希)
存款金额
这些值均由签名密钥签名。具有单独的签名和撤回密钥的目的是允许更危险地保留更危险的撤回密钥(脱机,不与任何抵押池共享),同时在每个周期使用签名密钥对消息进行主动签名。
第6步-配置Lighthouse Validator客户端
您将验证节点客户端作为服务运行,因此如果系统重新启动,则该过程将自动重新开始备份。
将验证节点客户端作为后台服务运行
创建一个no-home的帐户lighthousevalidator以便在以下条件下运行该服务
为Lighthouse验证节点客户端创建数据目录以存储信标节点数据
设置目录权限。lighthousevalidator帐户需要修改数据目录的权限
创建一个systemd服务文件来存储服务配置。您将使用配置文件告诉systemd运行lighthousevalidator进程
> sudo useradd --no-create-home --shell /bin/false lighthousevalidator> sudo mkdir -p /var/lib/lighthouse/validator> sudo chown -R lighthousevalidator:lighthousevalidator /var/lib/lighthouse/validator> sudo nano /etc/systemd/system/lighthousevalidator.service
使用以下代码更新lighthousevalidator服务配置
[Unit]Description=Lighthouse ValidatorAfter=network.target Wants=network.target[Service]User=lighthousevalidatorGroup=lighthousevalidatorType=simpleRestart=alwaysRestartSec=5ExecStart=/usr/local/bin/lighthouse validator_client --datadir /var/lib/lighthouse/validator[Install]WantedBy=default.target
重新加载systemd以反映更改,然后启动服务并检查以确保其运行正常。对我来说,它显示以下消息。这意味着我的信标节点服务尚未同步。所以我不得不等待。
> sudo systemctl daemon-reload> sudo systemctl start lighthousevalidator> sudo journalctl -f -u lighthousevalidator.serviceAug 12 08:02:14 ubuntu-s-2vcpu-4gb-sgp1-eth lighthouse[10221]:Aug 12 08:02:14.001 ERRO Beacon node is syncing current_slot: 40800,target_slot: 56032, msg: not receiving new duties, service: notifierAug 12 08:02:26 ubuntu-s-2vcpu-4gb-sgp1-eth lighthouse[10221]:Aug 12 08:02:26.001 ERRO Beacon node is syncing current_slot: 40990,target_slot: 56032, msg: not receiving new duties, service: notifierAug 12 08:02:38 ubuntu-s-2vcpu-4gb-sgp1-eth lighthouse[10221]:Aug 12 08:02:38.002 ERRO Beacon node is syncing current_slot: 41055,target_slot: 56032, msg: not receiving new duties, service: notifier
后来,我看到了这些消息。在撰写本文时,我仍然收到此消息。那意味着我还在排队。
Aug 12 10:16:38 ubuntu-s-2vcpu-4gb-sgp1-eth lighthouse[10221]:
Aug 12 10:16:38.002 INFO Awaiting activation slot: 56782, epoch: 1774,
validators: 1, service: notifier
Aug 12 10:16:50 ubuntu-s-2vcpu-4gb-sgp1-eth lighthouse[10221]:Aug 12 10:16:50.001 INFO Awaiting activation slot: 56783, epoch: 1774,
validators: 1, service: notifier
Aug 12 10:17:02 ubuntu-s-2vcpu-4gb-sgp1-eth lighthouse[10221]:Aug 12 10:17:02.001 INFO Awaiting activation slot: 56784, epoch: 1774,
validators: 1, service: notifier
Aug 12 10:17:14 ubuntu-s-2vcpu-4gb-sgp1-eth lighthouse[10221]:Aug 12 10:17:14.002 INFO Awaiting activation slot: 56785, epoch: 1774,
validators: 1, service: notifier
验证节点激活后会立即加入验证节点注册表,但一开始是不活动的。在?≥4N≥4个纪元后,验证器变为活动状态;至少有4个可以确保RANDAO不可操纵,如果有太多验证者尝试同时加入,则?N可能会超过4。如果活动验证者集合的大小为|?|| V |,则每个时期最多可以加入???(4,|?| 65536)max(4,| V | 65536)个验证者;如果更多验证者尝试加入,则将它们放入队列并尽快处理。
微信掃描關注公眾號,及時掌握新動向
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場