区块链挖矿

本地私链创世区块

在当前文件夹下创建genesis.json文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{
"nonce": "0x0000000000000042",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x00",
"gasLimit": "0x80000000",
"difficulty": "0x01",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x3333333333333333333333333333333333333333",
"alloc": { },
"config":{
"chainId":15,
"homesteadBlock":0,
"eip155Block":0,
"eip158Block":0
}
}

参数名|描述
---:|--:
chainId|指定了独立的区块链网络 ID。网络 ID 在连接到其他节点的时候会用到,以太坊公网的网络 ID 是 1,为了不与公有链网络冲突,运行私有链节点的时候要指定自己的网络 ID。不同 ID 网络的节点无法相互连接。
HomesteadBlock|当设置为0表示使用Homestead发布该链。
difficulty|设置设置当前区块的难度,越大挖矿就越难。
alloc|用来预置账号以及账号的以太币数量。
coinbase|矿工账号。
timestamp|设置创世块的时间戳。
parentHash|上一个区块的hash,创世块就为0
extraData|附加信息。
gasLimit|该值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总和。
mixhash|与nonce配合用于挖矿,由上一个区块的一部分生成的hash。
nonce|nonce就是一个64位随机数,用于挖矿。

## 初始化创始区块

### geth
geth是以太坊的客户端程序。全称是Go-ethereum,是用go语言编写的。目前比较常用。
[官网下载地址](https://www.ethereum.org/cli)

### 初始化genesis.json文件
```shell
geth --datadir "D:\github\blockchain-learn\tmpPrivate" init "D:\github\blockchain-learn\tmpPrivate\genesis.json"

创建私链

1
2
3
geth --datadir "D:\github\blockchain-learn\tmpPrivate" --nodiscover console 2>>geth.log
personal.neweAccount("liubing")
eth.accounts

挖矿

1
2
3
4
miner.start()
eth.getBalance(eth.accounts[0])
eth.blockNumber
miner.stop()
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2021 小白兔
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信