以太坊开发--使用geth搭建私有链

       我在上一篇博客中《以太坊开发--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"
}

其中alloc中的就是你上面创建的账号的公钥,你可以分配足够多的钱。你也可以只在alloc中写一个账号即可。

(3)接下去就要初始化创始块,首先要去查看你的Ethereum安装位置,注意我的Ethereum安装在/Users/用户名/Library下。使用以下命令初始化:

geth --datadir “~/Library/Ethereum" init ~/test-genesis.json

(4)命令行进入Ethereum的安装目录,即上面提到的/Users/用户名/Library/Ethereum,创建一个password文件,并在文件中,输入刚才alloc中对应账户的密码,每个密码一行。比如:

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命令行来完成各种操作了。


你可能感兴趣的:(区块链,区块链开发技术分享)