记录下搭建以太坊私有链的步骤

本文详细介绍了如何在Linux环境下搭建以太坊私有链,包括下载编译geth客户端、配置创世区块文件genesis.json、启动节点及管理账户等步骤,并解决了常见错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

猿哥的环境是 Linux,实际操作时,需要替换路径、钱包地址等。

1. 到  https://geth.ethereum.org/downloads/ 下载编译好的 geth

2. 创建 genesis.json,内容如下:

{
  "config": {
    "chainId": 2206,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0
  },
  "alloc": {},
  "coinbase": "0x0000000000000000000000000000000000000000",
  "difficulty": "0x20000",
  "extraData": "",
  "gasLimit": "0xffffffff",
  "nonce": "0x0000000000000042",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp": "0x00"
}

 

注意事项: 

 

  • 上述内容修改了https://github.com/ethereum/go-ethereum 中的的chainId和nonce, 不修改chainId的话,可能在交易时会出现错误“ Error: insufficient funds for gas * price + value ”。
  • 猿哥原先的 gasLimit 是  0x2fefd8,但使用 truffle 发布合约到私有链的时候出现了“Error encountered, bailing. Network state unknown. Review successful transactions manually. Error: exceeds block gas limit” 这样的错误。后来修改genesis.json 中的 gasLimit 为 “0xffffffff” ,删除区块文件并重新开始挖矿,之后可以正常发布合约到私有链了。

 

3. 生成创世区块:

/data/eth/geth --datadir "/data/eth/database"    init /data/eth/database/genesis.json

 

4. 创建账户,使用其它工具如 MyEtherWalletMetaMask 创建新帐号,获得钱包地址和私钥。

5. 启动节点

nohup /data/eth/geth --gcmode archive --networkid 2006 --mine --minerthreads=1 --etherbase=你的挖矿收益钱包地址 --rpcapi admin,eth,web3,personal --verbosity 0 --rpc --rpcport 8545  --nodiscover --datadir "/data/eth/database" &

上述命令中 --nodiscover 表示不链接其它节点;--gcmode archive 表示即时将内存中的数据写入到文件中,否则重启节点可能会导致区块高度归零而丢失数据。

 

6. 通过私钥导导入帐号到本地

/data/eth/geth --datadir "/data/eth/database" account import ./key.txt

 

key.txt 的内容只有一行,就是钱包的私钥。

7. 使用 console 模式启动命令行工具

/data/eth/geth  attach http://127.0.0.1:8545

之后就可以在命令行模式下使用命令了, 具体命令可以参考 https://github.com/ethereum/wiki/wiki/JavaScript-API

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值