自己学习这个过程也很艰难,记录下自己犯的错,对自己和他人都有帮助。
基于Windows搭建以太坊私有链可以参考这篇文章:搭建基于以太坊的Windows私有链
这篇是在Linux上操作的:
首先参考https://github.com/ethereum/go-ethereum/wiki/Installation-Instructions-for-Ubuntu,命令如下:
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum
我遇到了这个问题:
解决方法如下:
解决了,我们继续往下走:
sudo apt-get install -y build-essential
这是我现在的路径:/home/wdg
创建一个eth的根目录
mkdir eth
进入目录下,新建创世块json文件piccgenesis.json
内容如下:
{
"nonce":"0x0000000000000042",
"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x4000",
"alloc": {},
"coinbase":"0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x00000000",
"gasLimit":"0xffffffff",
"config":{
"chainId": 666,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
}
}
然后给文件增加执行权限
初始化,写入创世块
解释一下:“./",我这是让它自己在当前目录下存放区块链数据,也可以像这个样子,新建一个目录来存放数据,like this:
,我这里没用创建目录
创建私有链:
geth --datadir "./" --nodiscover console 2>>geth.log
看到Welcome to the Geth JavaScript console!的提示,说明已经启动成功
创建一个新账号
personal.newAccount("123456")
可以查看现有账号
eth.accounts
退出私有链,就是exit
看一下当前目录下都有啥:
我们可以再进入私有链
geth --datadir "./" --nodiscover console 2
看一下账户余额和当前的区块号
eth.getBalance(eth.accounts[0])
eth.blockNumber
当前余额都是0
我们可以再新增加第二个账号:
然后开始挖矿
首先:
挖到一个区块会奖励以太币,挖矿所得的奖励会进入矿工的账户,这个账户叫做coinbase,默认情况下coinbase是本地账户中的第一个账户。要想使挖矿奖励进入其他账户,通过miner.setEtherbase()将其他账户设置成coinbase。所以将coinbase改一下:
miner.setEtherbase(eth.accounts[0])
开始挖矿
其中start的参数表示挖矿使用的线程数。第一次启动挖矿会先生成挖矿所需的DAG文件,这个过程有点慢,等进度达到100%后,就会开始挖矿,此时屏幕会被挖矿信息刷屏。
miner.start()
要等到percentage=100。
挖矿过程大致是这样子的,其中有successfully sealed new block,说明有new block出现。
如果想停止挖矿,并且进度已经达到100%之后,可以输入
miner.stop()
现在区块号增加到了112。
btw:我这里miner.stop()=null,不是true,我也不知道为什么。。。有知道的请留言告知,谢谢!
看一下余额
getBalance()返回值的单位是wei,wei是以太币的最小单位,1个以太币=个wei。要查看有多少个以太币,可以用web3.fromWei()将返回值换算成以太币:
你可以查看特定block的详细信息
eth.getBlock(0)
关于这些字段的意思,可以看这篇博客以太坊区块的数据结构解析
reference:
https://blog.csdn.net/u012107512/article/details/79322645
https://blog.csdn.net/wo541075754/article/details/53064877
https://www.jianshu.com/p/8a2bb280a712