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