主页 > imtoken冷钱包苹果版下载 > 1.区块链——Genesis block(windows私有链以太坊网络搭建)
1.区块链——Genesis block(windows私有链以太坊网络搭建)
最近迷上了区块链,然后迷上了造区块链,再迷上了Genesis,创造数字货币,然后自己挖来装。 . . . . . .
这几天不知道反复失败了多少次。 事情发生的那一刻,我的内心无法表达。 我兴奋地站了起来,然后发现我在办公室,然后装作若无其事地去厕所洗脸。
1、作为当今最大的区块链开源平台,必须安装以太坊
Geth windows官方安装指南:
(英文,建议使用谷歌浏览器,右键直接翻译)
ps:安装的时候在c盘找到cmd.exe右键以管理员权限安装,因为需要安装很多安装包,不然会报错
2、看白皮书以太坊私链如何确认区块,看白皮书,看白皮书,重要的事情说三遍
区块链白皮书地址:
3. 因为geth需要同步所有的区块,所以时间超级超级长。 我花了一天时间完成同步
4、以上操作可根据官方文档进行。 一切准备就绪后,创建json格式的Genesis区域文件,然后在json文件中填写新的区块配置:
{
“配置”:{
“链号”:15,
“家园块”:0,
“eip155块”:0,
“eip158块”:0
},
“币库”:“0x0000000000000000000000000000000000000000”,
“难度”:“0x40000”,
“额外数据”:“”,
“gasLimit”:“0xffffffff”,
“随机数”:“0x0000000000000042”,
“混合哈希”:“0x0000000000000000000000000000000000000000000000000000000000000000”,
“parentHash”:“0x0000000000000000000000000000000000000000000000000000000000000000”,
“时间戳”:“0x00”,
“分配”:{}
}
解释一下各个参数的作用:
混合哈希
与 nonce 一起用于挖掘,从前一个块的一部分生成的哈希。 注意him和nonce的设置需要满足黄皮书4.3.4描述的条件。 区块头有效性,以太坊 (44) 部分。 .
随机数
nonce 是用于挖矿的 64 位随机数。 注意it和mixhash的设置需要满足黄皮书4.3.4描述的条件。 区块头有效性以太坊私链如何确认区块,(44) of Ethereum。
困难
设置当前区块的难度。 如果难度太高,CPU挖矿就会很困难。 在这里设置一个较小的难度
分配
用于为账户预先设置账号和以太币数量,因为私链挖矿相对容易,所以我们不需要预先设置一个账户有币,需要的时候可以自己创建。
币库
矿机账号,随便填
时间戳
设置创世块的时间戳
父哈希
上一个区块的哈希值,因为是创世区块,所以这个值为0
额外数据
附加信息,随便填,可以填写你的个人信息
气体限制
该值设置了 GAS 总消耗量的限制,用于限制区块可以包含的交易信息的总和。 由于我们是私链,所以我们填最大值。
5.启动区块链节点:
进入以太坊的Windows目录,创建一个文件夹链,存放区块数据,然后将之前创建的json文件放入其中。 我下载安装的默认路径如图:
piccgenesis.json 是创世块配置
6.
一种。 进入geth安装目录:C:\Users\admin\AppData\Roaming\Ethereum
b. 执行:geth --datadir "%cd%\chain" init piccgenesis.json
C。 设置数据存储地址并初始化Genesis模块:
启动 Geth 启动以太坊区块链。 为了构建私有链,需要在启动 Geth 时添加一些参数。 说明如下:
geth --identity "PICCetherum" --rpc --rpccorsdomain "*" --datadir "%cd%\chain" --port "30303" --rpcapi "db,eth,net,web3" --networkid 93318 控制台
执行成功后会进入javascript控制台:
以太坊私有网络搭建成功
PS:Geth参数含义如下:
身份
区块链的标记,随便填,用来标记当前网络的名称
在里面
指定创世块文件的位置并创建初始块
数据目录
设置当前区块链网络数据存放位置
港口
网络监听端口
rpc
启动rpc通信,即可部署调试智能合约
rpcapi
设置允许连接的rpc客户端,一般为db、eth、net、web3
网络编号
设置当前区块链的网络ID,用于区分不同的网络,是一个数字
安慰
启动命令行模式,可以在Geth中执行命令
7、进入JS控制台后,使用节点创建账号:
一种。 输入命令查看账户信息:
命令:eth.accounts
一般情况下,没有这样的输出。 下面的输出是[],因为我之前创建过,所以有账号。
b. 创建一个帐户:
命令:personal.newAccount("wangyaxing"),
d. 再次输入查询账户命令:eth.accounts
可以看出我有两个账户存储在一个数组中
!!!!!!
8.账户已经有了,这个区块链是我们自己创造的,里面的币量也是我们自己定义的,所以,当然要开始赚钱了,赚大钱
赚钱的方法英文叫做Mining,俗称挖矿
一种。 在命令行执行开始挖矿:
命令:miner.start()
因为是私有节点,没有竞争对手,分分钟就能拿到很多奖励,
输入命令:miner.stop(),停止挖矿
那我们看看我们的账户钱包里有多少矿:
查询钱包余额命令:eth.getBalance(eth.accounts[0])
看看我们的账户,有多少个以太币,你是不是很震惊? 哈哈哈哈哈哈哈哈哈哈哈哈哈! ! !
PS:查询的是第一个账户的余额。 当我们挖矿时,奖励存储默认到第一个帐户。 如果第二个账户需要,我们可以执行转账指令;
eth.sendTransaction({from:"第一个账户的账号",to:"第二个账户的账号",value:web3.toWei(1000000,"ether")})
直接执行该方法会抛出异常:
帐户被锁定
在 web3.js:3119:20
在 web3.js:6023:15
在 web3.js:4995:36
在:1:1
是因为没解锁
解锁命令:
personal.unlockAccount("第一个账号的账号", "设置的密码")
然后需要执行挖矿命令完成转账,会看到转账数量增加。