主页 > 苹果手机下载imtoken钱包流程 > 以太坊开发——使用geth搭建私链

以太坊开发——使用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)下一步要初始化创世块,首先检查你的以太坊安装位置,注意我的以太坊安装在/Users/username/Library下。使用以下命令进行初始化:

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

(4)命令行进入以太坊的安装目录,即上面提到的/Users/username/Library/Ethereum,创建密码文件,在文件中输入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

p>

注意--unlock后面的参数。如果上述alloc中只写了一个账号,密码文件中只写了一个密码以太坊使用的是什么链,那么这里只写'0',其他数字以此类推。 '0,1,2...'.

(6)每次启动geth节点,只需要传递如下命令:

bash private_blockchain.sh

出现如上界面,说明geth以太坊私链已经搭建完成。接下来就可以使用geth命令行来完成各种操作了。