我在上一篇博客中《以太坊开发--geth的使用入门》中使用的是geth的开发环境,准确来说和私链还是不同的。今天我们就学习来搭建一个以太坊私链。我们知道区块链有三种:公有链、联盟链、私有链。我会在之后的博客中详细讲述这三者的不同,今天主要来实现建立私有链的步骤。兑换geth环境和其他区块链环境的配置请参考《区块链-以太坊开发环境搭建介绍》这篇博客。
(1)首先在命令行中使用“geth account list”来查看当前的账户,如果没有账户的话可以使用“geth account new”来新建一个账户:
。
可见我已经有四个账户了,那么我这里就不再创建了。
(2)编写创世块,在根目录~/下创建test-genesis.json文件,文件中的内容如下:
{
"nonce": "0x0000000000000042",
"difficulty": "0x1",
"alloc": {
"3ae88fe370c39384fc16da2c9e768cf5d2495b48": {
"balance": "20000009800000000000000000000"
},
"81063419f13cab5ac090cd8329d8fff9feead4a0": {
"balance": "20000009800000000000000000000"
},
"9da26fc2e1d6ad9fdd46138906b0104ae68a65d8": {
"balance": "20000009800000000000000000000"
}
},
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa",
"gasLimit": "0xb2d05e00"
}
(3)接下去就要初始化创始块,首先要去查看你的Ethereum安装位置,注意我的Ethereum安装在/Users/用户名/Library下。使用以下命令初始化:
geth --datadir “~/Library/Ethereum" init ~/test-genesis.json
123456
这样一行即可。
(5)在根目录下,即~/目录下,也就是/Users/用户名 下编写以太坊启动脚本,命名为private_blockchain.sh,配置内容如下(请把文件目录换成自己的):
geth --rpc --rpcaddr="0.0.0.0" --rpccorsdomain="*" --unlock '0'
--password ~/Library/Ethereum/password --nodiscover --maxpeers '5' --networkid '1234574'
--datadir '~/Library/Ethereum' console
注意--unlock后面的参数,如果你在上面的alloc中只写一个账户,在password文件中只写一个密码,那么这里就只写'0', 其他数量的以此类推。‘0,1,2...’.
(6)以后每次启动geth节点,只需要通过以下命令即可:
bash private_blockchain.sh
出现以上界面表示geth以太坊私链已经搭建完成了。接下去就可以使用geth命令行来完成各种操作了。