以太坊 POA 部署

cd $GOPATH/src/github.com/ethereum

1. 下载源码
 git clone  https://gitee.com/xgqnytz/go-ethereum.git
 
 git checkout v1.8.27
 
 go install github.com/ethereum/go-ethereum/cmd/geth
 
 cd  go-ethereum/
 make geth
 make all  
 
 安装后检查:
 geth version
 
 
2. 初始化配置

工作路径在 /work/geth

 mkdir -p /work/geth
 cd /work/geth
 
 创建两个文件夹存放节点数数据,地址信息等
 madir node1 node2
 
  $ geth --datadir node1 account new
  $ geth --datadir node2 account new
 
 这两条命令会在两个文件夹下生成两个地址
 
此步骤主要生成用户的keystore密钥文件,有此文件才能将账户添加进区块链
注:此命令需要输入2次账户密码,会返回账户地址以及私钥
--datadir:设置数据储存地址
account new:account:账户管理命令,new:生成新账户,会在数据目录下创建keystore目录,存放一个账
户的秘钥文件

生成genesis.json 

 go-ethereum自带puppeth工具, 可以方便地部署支持PoA的以太坊私链

初次使用可采用下面的流程:

$ puppeth  
依次 让你选择
1 :自定义这个网络的名称,也是你的genesis文件的名称
2 : 选择第二个 Configure new genesis  
3 : 选择第一个 Create new genesis from scratch
4 : 选择第二个  proof-of-authority (POA共识)	 
5 : 自定义出块的时间间隔,默认单位为s 这里测试 输入 10  
6 : 配置初始参与共识的地址,也就是指定矿工,这里输入上面命令生成的两个地址,每输入一个地址回车一次,不输入时直接回车进入下一环
7 : token的发放,与上一环类似,自行配置地址接受奖励 
8 : 默认回车就行,给一个预编译地址预留1 wei
9 : chain/network ID 默认回车,系统会随机生成

以上 配置完成后,选择第2条 Manage existing genesis ,
				 然后选择导出 Export genesis configurations 导出genesis文件,可自行配置名称
以上完成后,ctr+c 终端命令 退出

默认条件下 当前目录下 生成 .json 的配置文件


3. 启动节点,在两个终端上执行,工作路径同样,

node1:
geth --datadir node1 init testnet.json
geth --datadir node1 --port 3000  --nodiscover --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpccorsdomain "*" --rpcapi "db,eth,net,web3,personal,miner" --syncmode "full" console

node2:
geth --datadir node2 init testnet.json
geth --datadir node2 --port 3001  --nodiscover --rpc --rpcaddr 0.0.0.0 --rpcport 8546 --rpccorsdomain "*" --rpcapi "db,eth,net,web3,personal,miner" --syncmode "full" console

node1 node2 互相添加节点信息
两个终端分别执行下 
admin.nodeInfo.enode 获取当前节点连接信息,返回的结果,用于他人跟你建立连接
admin.addPeer()      新增连接,参数为上一步的输出


常用Api: 

解锁账户 地址,密码,时间
personal.unlockAccount(eth.coinbase,"123456",1000000)

配置默认账户
eth.defaultAccount = eth.coinbase

启动挖矿
miner.start()
miner.stop()
有其他错误时,需先关闭挖矿,再重新操作

发送交易:

> var tx = {from: "0x391694e7e0b0cce554cb130d723a9d27458f9298", to: "0xafa3f8684e54059998bc3a7b0d2b0da075154d66", value: web3.toWei(1.23, "ether")}
undefined
> personal.sendTransaction(tx, "账户密码") 

开启ws  参数为 地址  端口 要使用的跨域资源标头,api模块
admin.startWS("host","port","*","eth,net,web3") 
admin.stopWS()






以太坊浏览器
https://github.com/ethereumclassic/explorer

比较早的一个浏览器,node版本不要过高,9-10之间吧,浏览器的部署过程在git的readme中

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值