当前位置: 首页 > 工具软件 > Go Ethereum > 使用案例 >

使用go-ethereum创建私有网络

訾渝
2023-12-01

克隆

git clone https://github.com/ethereum/go-ethereum.git

安装

make all

可执行文件在 go-ethereum/build/bin 下

创建创世区块配置文件

mkdir /home/block

vi /home/block/genesis.json
{
  "config": {
    "chainId": 15,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "ethash": {}
  },
  "difficulty": "2000",
  "gasLimit": "8000000",
  "alloc": {
    "7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" }
  }
}

difficulty参数影响初始挖矿难度

chainId参数网络id

alloc初始余额(可以写自己的eth地址)

这里的单位是wei  1eth=10^18wei

即1eth=1000000000000000000 18个0

初始化

geth init --datadir /home/block /home/block/genesis.json

运行

id为之前配置的id

geth --datadir /home/block --networkid 15

使用JavaScript 控制台运行

## 启动
geth --datadir /home/block --networkid 15 console 2>output.log

## 开发模式启动 该模式不需要初始化配置genesis.json
geth --datadir /home/block --dev console 2>output.log

命令列表

eth:主要包含对区块链进行访问和交互相关的方法;
net:主要包含查看p2p网络状态的方法;
admin:主要包含与管理节点相关的方法;
miner:主要包含挖矿相关的一些方法;
personal:包含账户管理的方法;
txpool:包含查看交易内存池的方法;
web3:包含以上所有对象,还包含一些通用方法。
常用命令有:
personal.newAccount():创建账户;
personal.unlockAccount():解锁账户;
eth.accounts:列出系统中的账户;
eth.getBalance():查看账户余额,返回值的单位是Wei;
eth.blockNumber:列出当前区块高度;
eth.getTransaction():获取交易信息;
eth.getBlock():获取区块信息;
miner.start():开始挖矿;
miner.stop():停止挖矿;
web3.fromWei():Wei换算成以太币;
web3.toWei():以太币换算成Wei;
txpool.status:交易池中的状态;

命令查看钱包初始余额

把wei转为eth并输出

web3.fromWei(eth.getBalance("钱包地址"), "ether")

 类似资料: