win10以太坊私有节点创建

1. 安装Geth

http://ethfans.org/wikis/Ethereum-Geth-Mirror,本文使用版本:1.8.3

2. 创世区块

在刚刚Geth安装目录下放置初始化创世块文件名字为genesis.json

{
  "config": {
    "chainId": 101,
    "homesteadBlock": 0,
    "eip155Block": 0,
    "eip158Block": 0
  },
  "alloc": {},
  "coinbase": "0x0000000000000000000000000000000000000000",
  "difficulty": "0x400",
  "extraData": "",
  "gasLimit": "0xffffffff",
  "nonce": "0x0000000000000042",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp": "0x00"
}
chainId : 以太坊区块链网络Id,ethereum主链是1,私有链只用不要与主链冲突即可。
alloc : 预留账户,如下
  "alloc":{
   "0x0000000000000000000000000000000000000001":{"balance":"121312321"},
   "0x0000000000000000000000000000000000000002":{"balance":"121312321"},
  }
Coinbase: 旷工账户
Difficulty: 挖矿难度,0x400,这个是简单。
extraData:相当于备注
gasLimit:最小消耗gas
nonce : 64位随机数,用于挖矿,注意他和mixhash的设置需要满足以太坊黄皮书中的要求
parentHash : 上一个区块的Hash值,因为是创世块,石头里蹦出来的,没有在它前面的,所以是0
Timestamp : 时间戳

3.初始化私有节点0

geth --datadir  data0  init  genesis.json

4.进入客户端

geth --identity "TestNode1" --datadir "data0" --rpc --rpcapi "db,eth,net,web3" --rpcaddr "127.0.0.1" --rpcport "8486" --port "30304" --networkid "29382" console

5.初始化私有节点1

geth --datadir  data1  init  genesis.json

6.进入客户端

geth --identity "TestNode2" --datadir "data1" --rpc --rpcapi "db,eth,net,web3" --rpcaddr "127.0.0.1" --ipcpath "data1\geth\geth.ipc" --rpcport "8487" --port "30305" --networkid "29382" console

7.主节点添加新节点

新节点上执行命令:admin.nodeInfo.enode
主节点上执行命令:admin.addpeer(上一步命令的结果并修改IP地址)

8.创建账户并挖矿

personal.newAccount("123456")
miner.start(1)


geth命令

使用命令 geth -h 可以查看geth 相关的帮助文档。这里我说几个常用的属性。

--Identity : 节点身份标识,起个名字

--datadir : 指定节点存在位置,“data0”

--rpc : 启用http-rpc服务器

--rpcapi : 基于http-rpc提供的api接口。eth,net,web3,db...

--rpcaddr : http-rpc服务器接口地址:默认“127.0.0.1”

--rpcport : http-rpc 端口(多节点时,不要重复)

--port : 节点端口号(多节点时,不要重复)

--networkid : 网络标识符 随便指定一个id(确保多节点是统一网络,保持一致)

客户端操作

新建用户

 personal.newAccount('11111111')

查询账户

eth.accounts

不支持删除账户

查询账户余额

eth.getBalance(eth.accounts[0])

挖矿

miner.start()

停止挖矿

miner.stop()

查看区块数

eth.blockNumber

查看区块信息

eth.getBlock(5)

解锁账户

personal.unlockAccount(eth.accounts[0])

命令

eth.accounts               // 查询账户列表
personal.listAccounts      // 查询账户列表
personal.newAccount("xxx") // 新建账户,xxx为账户账户
web3.eth.coinbase          // 节点挖矿的账户地址,默认为账户列表的第一个账户
personal.listAccounts[0]   // 查看账户列表的第一个账户
eth.getBalance("xxx")      // 查看对应账户的余额,xxx为账户地址
miner.start()              // 开始挖矿
miner.stop()               // 停止挖矿
txpool.status              // 查看交易的状态
eth.blockNumber            // 查看交易的区块号
eth.getTransaction         // 查看交易区块信息
eth.getBlock(xxx)          // 根据区块号查看区块信息,xxx为区块号
miner.setEtherbase(xxx)    // 设置挖矿的账户,xxx为账户地址
getBalance()               // 返回值的单位是wei,wei是以太币的最小单位,1个以太币=10^18wei。
web3.fromWei()             // 将返回值换算成以太币

你可能感兴趣的:(win10以太坊私有节点创建)