极路由B70关闭root-(极路由b70设置)
来源:191路由网 2022-10-29 13:29:49
原文链接:https://learnblockchain.cn/2019/04/08/genesis/
请前往简单的区块链主站, 获取最新内容。
作为第零块,创世区块直接或间接引用于创世区块。因此,在节点启动之初,必须载入正确的创世区块信息,不得任意修改。
以太坊允许通过创造配置文件初始化创造块,也可以使用选择使用多个内置网络环境的创造配置。以太坊主网创造配置默认使用。
创建配置文件
假如你需要建立以太坊私有链,那么了解创造配置是必要的,否则你可能不在乎创造配置。下面是一份 JSON 创造配置格式示例:
{
\\"config\\":{
\\"chainId\\": 1,
\\"homesteadBlock\\": 1150000,
\\"daoForkBlock\\": 1920000,
\\"daoForkSupport\\": true,
\\"eip150Block\\": 2463000,
\\"eip150Hash\\": \\"0x2086799aeebeae135c246c65021c82b4e15a2c451340993aacfd2751886514f0\\",
\\"eip155Block\\": 2675000,
\\"eip158Block\\": 2675000,
\\"byzantiumBlock\\": 4370000,
\\"constantinopleBlock\\": 7280000,
\\"petersburgBlock\\": 7280000,
\\"ethash\\":{}
},
\\"nonce\\": \\"0x42\\",
\\"timestamp\\": \\"0x0\\",
\\"extraData\\": \\"0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa\\",
\\"gasLimit\\": \\"0x1388\\",
\\"difficulty\\": \\"0x400000000\\",
\\"mixHash\\": \\"0x0000000000000000000000000000000000000000000000000000000000000000\\",
\\"coinbase\\": \\"0x0000000000000000000000000000000000000000\\",
\\"number\\": \\"0x0\\",
\\"gasUsed\\": \\"0x0\\",
\\"parentHash\\": \\"0x0000000000000000000000000000000000000000000000000000000000000000\\",
\\"alloc\\":{
\\"000d836201318ec6899a67540690382780743280\\":{
\\"balance\\": \\"0xad78ebc5ac6200000\\"
},
\\"001762430ea9c3a26e5749afdb70da5f78ddbb8c\\":{
\\"balance\\": \\"0xad78ebc5ac6200000\\"
}
}
}
按配置用途可分为三类:
链配置
config项目定义链配置,会影响共识协议。虽然链配置对创造影响不大,但新区块的规则取决于链配置。
创造区块头信息配置
nonce:随机数对应创世区块 Nonce 字段。
创造区块头信息配置
nonce:随机数对应创世区块 Nonce 字段。
timestamp:UTC时间戳对应创世区块 Time字段。
extraData:额外数据对应创世区块 Extra 字段。
gasLimit:必填、燃料上限对应创世区块 GasLimit 字段。
difficulty:必填、难度系数对应创世区块 Difficulty 字段。搭建私有链时,需要根据情况选择合适的难度值,以调整块。
minHash:哈希值对应创世区块MixDigest字段。和 nonce 一起证明区块上有足够的计算。
coinbase:地址对应创世区块Coinbase字段。
初始账户资产配置
alloc 项目是创世中初始账户资产配置。在世区块生成时,将数据集中的账户资产写入区块,相当于预挖矿。这对开发测试和私有链非常有用,可以直接为任何多个账户分配资产,无需挖掘。
自定义创世
如果你计划部署以太坊私有网络或独立的测试环境,你需要定制它并初始化它。为统一沟通,建议在用户根目录中创建文件夹 deepeth,作为以太坊设计与实现的电子书学习目录。
mkdir $HOME/deepeth && cd $HOME/deepeth
在创造时准备两个以太坊账户存入资产。
geth --datadir $HOME/deepeth account new
由于是学习使用,建议使用统一密码 foobar,执行两个命令,创建两个账户。这里使用 --datadir 参数指定了以太坊运行时的数据存储目录,允许每个人在本课程的学习文件夹中统一存储数据。
然后保存以下配置内容 $HOME/deepeth/genesis.json 文件,其中 alloc 项目被新创建的两个以太坊账户地址取代。
{
\\"config\\":{
\\"chainId\\": 8888,
\\"homesteadBlock\\": 0,
\\"daoForkBlock\\": 0,
\\"daoForkSupport\\": true,
\\"eip150Block\\": 0,
\\"eip155Block\\": 0,
\\"eip158Block\\": 0,
\\"byzantiumBlock\\": 0,
\\"constantinopleBlock\\": 0,
\\"petersburgBlock\\": 0,
\\"ethash\\":{}
},
\\"nonce\\": \\"0x42\\",
\\"timestamp\\": \\"0x0\\",
\\"extraData\\": \\"0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa\\",
\\"gasLimit\\": \\"0x1388\\",
\\"difficulty\\": \\"0x1\\",
\\"alloc\\":{
\\"093f59f1d91017d30d8c2caa78feb5beb0d2cfaf\\":{
\\"balance\\": \\"0xffffffffffffffff\\"
},
\\"ddf7202cbe0aaed1c2d5c4ef05e386501a054406\\":{
\\"balance\\": \\"0xffffffffffffffff\\"
}
}
}
然后,执行 geth 子命令 init 创造区块的初始化。
geth --datadir $HOME/deepeth init genesis.json
实施成功后,可启动私有链:
geth --maxpeers 0 --datadir $HOME/deepeth console
执行下列命令,您可以查看前面创建的两个帐户,现有资产:
eth.getBalance(eth.accounts[0])
// 18446744073709551615
eth.getBalance(eth.accounts[1])
// 18446744073709551615
至此,我们已经完成了创造定制版。
内置创新配置
以上我已经完成了自定义创造,但以太坊作为去中心平台,需要很多节点一起参与。
内置创新配置
以上我已经完成了自定义创造,但以太坊作为一个分散的平台,需要很多节点一起参与。仅仅为了测试,建立多个节点的私人链更麻烦。想和别人联调,或者需要在测试网络中测试DAPP该怎么办?以太坊测试网络可以使用。以太坊公开的测试网络有 5 个,还在运行的有 4 具体见下表。
测试网共识机制的块间隔提供了在线时间备注状态
MordenPoW由于难度炸弹,以太坊官方2015.7被迫退役stopped
RopstenPoW以太坊官方2016.1130秒取代Mordenrunning
KovanPoA4秒以太坊钱包Parity2017年3月开发团队不支持gethrunning
RinkebyPoA2017.4年以太坊官方15秒最常用,只支持gethrunning
SokolPoA5秒以太坊官方POA.network2017年12不支持团队gethrunning
G?rliPoA2018.9以太坊柏林社区15秒以太坊2.0实验场running
支持 geth 以太坊代码中内置了三个测试网络的创建配置,具体见 core/genesis.go 文件:
// DefaultTestnetGenesisBlock returns the Ropsten network genesis block.
func DefaultTestnetGenesisBlock() *Genesis{}
// DefaultRinkebyGenesisBlock returns the Rinkeby network genesis block.
func DefaultRinkebyGenesisBlock() *Genesis
// DefaultGoerliGenesisBlock returns the G?rli network genesis block.
func DefaultGoerliGenesisBlock() *Genesis{}
当然,以太坊主网的创会缺少创意配置 geth 默认配置操作。
// DefaultGenesisBlock returns the Ethereum main net genesis block.
func DefaultGenesisBlock() *Genesis{}
如果您不想为开发测试定制创建配置文件,因此,以太坊还为本地开发提供配置。
// DeveloperGenesisBlock returns the 'geth --dev' genesis block. Note, this must
// be seeded with the
func DeveloperGenesisBlock(period uint64, faucet common.Address) *Genesis
运行 geth --dev console 可临时使用。但是,如果需要长期使用这种模式,则需要指定 datadir。 {x
相关阅读
-
-
极路由B70关闭root-(极路由b70设置)
极路由B70关闭root(极路由b70设置)原文链接:请前往简单的区块链主站,获取最新内容。作为第零块,创世区块直接或间接引用于创世区块。因此,在节点启动之初,必须载入正确的创世区块信息,不得任意修改。以太坊允许通过创造配置文件初始化创造块,也可以使用选...
2022-10-29
-
-
电脑怎么重装win10-(如何给电脑安装win10系统)
如何重新安装计算机win10(如何安装电脑win10系统)许多朋友想安装自己的电脑win10系统,不知道怎么操作。一般来说,我们可以使用本地在线安装方法或U盘重新安装方法,但无论我们使用哪种方法,我们都需要备份C盘和桌面数据,这将与您分享重新安装计算机win10系统的详细步骤。更多小白一键重新安装...
2022-10-29
-
-
路由器安装上为啥老断网-(路由器安装上为啥老断网呢)
为什么路由器安装时断网(为什么路由器安装时断网呢)大家好,这是@实用数码笔记,分享各种实用的数码技巧,期待您的关注。目前网络已经普及到千家万户,笔记菌所在的社区百兆宽带已经成为标准,但问题也随之而来。不知道大家有没有注意到,有时候在家看小说/刷剧/玩游戏,兴高采烈,网...
2022-10-29
-
-
翔升老主板选择u盘启动-(翔升主板怎么设置u盘启动)
升老主板选择u盘启动(翔升主板如何设置u盘启动)一个好的u盘启动盘可以提高用户安装成功率。老白菜作为一种简单实用的u盘制作工具,深受用户喜爱,但仍有一些用户不太擅长使用老白菜。让我与您分享老白菜装机版u盘启动盘制作教程。...
2022-10-29
-
-
文件经损坏怎么恢复-(文件经损坏怎么恢复原状)
如何恢复文件损坏(如何恢复文件损坏原状)----关注IT小技术,有你想要的IT干货!今天,我想和大家谈谈系统是否坏了,桌面上的文件会丢失吗?无法恢复。有三种方法可以解决这个问题。一、系统文件、软件、驱动损坏导致系统无法启动。第一种情况下,系统坏了,系统开机报错了,或者一直是蓝屏,不能正常进入系统,但可以进入安全模式,也可以启动最...
2022-10-29
191路由网 - 192.168.1.1,192.168.0.1无线路由器设置教程
版权声明:本站的文章和图片来自互联网收集,仅做分享之用如有侵权请联系站长,我们将在24小时内删除