Geth安装后
在其安装目录下创建一个文件夹privateChain
在privateChain文件夹下创建一个文件genesis.json(这是创世区块的配置文件)
在genesis.json文件中输入配置创世区块的代码(来自:https://geth.ethereum.org/docs/interface/private-network)
{
"config": {
"chainId": 12345,
"homesteadBlock": 0,
"eip150Block": 0,
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0,
"berlinBlock": 0,
"ethash": {}
},
"difficulty": "1",
"gasLimit": "8000000",
"alloc": {
"7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" },
"f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" }
}
}
在命令行窗口privateChain目录下,使用如下命令初始化区块链
geth --datadir data0 init genesis.json
其中--datadir data0
是将区块链的数据保存到data0文件下
注意:
我开始使用geth init genesis.json --datadir data0 并未成功
也可以启动节点后用eth再创建
用如下命令
geth account new --datadir data0
geth --datadir data0 --networkid 1108 console 2>1.log
networkid 配置成与配置文件config内的chainId相同值,代表加入哪个网络,私链就自己随意编号即可
console 进入管理台
2> 1.log Unix系统下的重定向,将Geth产生的日志输出都重定向到1.log中,以免刷日志影响操作
当需要remix连接本地部署的私有链节点可以采用如下代码(更完整的配置)
geth --datadir data0 --networkid 12345 --http --http.addr 0.0.0.0 --http.vhosts "*" --http.api "db,net,eth,web3,personal" --http.corsdomain "*" --snapshot=false --mine --miner.threads 1 --allow-insecure-unlock console 2> 1.log