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