PoA以太私链搭建


前言

学习记录


一、启动PoA节点

1. 下载并安装geth

根据需要下载相应版本的geth。
在这里插入图片描述
这里我用的是64位Windows版本,也就是图片上第三个。下载完成后,点开,在电脑上完成安装,并根据需要进行环境变量的配置。

2. 启动节点

(1)验证geth是否安装完成

win+R打开cmd窗口,输入

geth version

如果安装成功,就会出现如下显示
在这里插入图片描述

(2)创建账户

由于我们运用PoA共识算法,先在四个节点文件夹中创建账户:
(这个操作同时会建立节点文件)

geth account new --datadir node0/keystore
geth account new --datadir node1/keystore
geth account new --datadir node2/keystore
geth account new --datadir node3/keystore

输入命令后,会要求输入密码,此时输入内容不会显示,输完回车即可,一个节点的新账户建立完成,如下图所示:
在这里插入图片描述
完成四个节点的新账户建立,会出现4个节点文件夹:
在这里插入图片描述

(3)准备创世块

这里创建基于PoA(活动证明)共识算法的创世块,我们首先要创建genesis.json 文件。(可以直接讲下述文本复制,打开记事本粘贴,然后重命名文件)

{
  "config": {
    "chainId": 12400,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "clique": {
      "period": 5,
      "epoch": 3000
    }
  },
  "difficulty": "1",
  "gasLimit": "8000000",
  "extradata": "0x0000000000000000000000000000000000000000000000000000000000000000e866857a657ecd01ed11157cacb5373c0093d5d1afabbf959166556bef72af10887d2a3fd7133c6cc332c083987ce8c80874c79ab8be5aa6d073ba29ea80dc20355278107e4364a59af7d5f4805ab1660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  "alloc": {
    "565eDb916c178419A413977dcC18CE82A3A2d4C9": { "balance": "300000000000000000000000000" }
  }
}
  • 默认的验证者是在 extradata 中, extradata 是以64个0开头,130个0结尾,中间是验证者的地址(去除地址前的0x),将创建4个账户时,出现的账户地址依次复制粘贴到下述“validator”的位置。
   > 0x000....(32bytes)<validator1><validator2><validator3><validator4>000...(65bytes) 
  • 这里可以和PoW的创世块做个对比。
  • 注意chain ID(懒得说了,看PoW的那篇)

(4)初始化创世块

打开控制台,cd到 genesis.json 所在目录,键入命令

datadir node init genesis.json

这里我使用四个节点node0、node1、nede2、node3:
在这里插入图片描述

(5)启动节点

此时我们要启动四个节点:

  • 命令如下:
geth --datadir node0 --networkid 981027 --ipcdisable --http.port 8545 --ws.port 8546 --port 30303 console

因为节点内及节点之间要通信,就必须打开端口。

  • 节点2可能会出现报错:Fatal: Error starting protocol stack: Access is denied.这是因为开启了2个进程,只需要在启动命令中的console前加 –ipcdisable 即可。

……
于是启动了四个节点,如下所示
在这里插入图片描述

2.区块打包

(1)节点地址

节点启动后,会进入geth控制台,在控制台中键入admin.nodeInfo.enode会打印出节点信息。并在各个节点文件夹下,新建一个建一个static-nodes.json的文件,将各个节点信息按下图所示写入文件中:
在这里插入图片描述

(2)区块打包

断开各个节点(CTRL+D),按如下命令重新启动节点,节点之间即可互通,并开始创建区块。

geth --datadir node0 --networkid 981027 --ipcdisable  --miner.etherbase 0x1901300c3e828d84651c2ba9caa21db60195c2f4 --unlock 0x1901300c3e828d84651c2ba9caa21db60195c2f4   --mine --http.port 8545 --http --http.api "admin,eth,txpool,personal,web3" --ws.port 8546 --port 30303 --allow-insecure-unlock console

因为创世块中默认设置了四个验证者,需要启动三个节点挖矿,区块才会打包。

(3)添加验证者

启动 node3 ,将node3加入到验证者,node3中的 eth.accounts[0] 地址为 ea80dc20355278107e4364a59af7d5f4805ab166

只要在任意一个节点的geth控制台中键入 clique.propose(0xea80dc20355278107e4364a59af7d5f4805ab166,true) 即可发起一个提议,只需默认验证中51%以上的地址投票通过, ea80dc20355278107e4364a59af7d5f4805ab166 账户即可成为新的验证者

在当前节点键入 clique.proposals 可以查看当前节点发起的提议;

投票:在其他验证者节点键入clique.propose(0xea80dc20355278107e4364a59af7d5f4805ab166,true)
在这里插入图片描述

总结

大概写完了

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
亚马逊的POA(Plan of Action)模板是指卖家在面对亚马逊的相关问题或违规指控时,需要提交的一份解决方案计划。这个模板有特定的格式和内容都是需要遵循的。 首先,在POA模板中,卖家需要明确指出亚马逊所指控的问题,并清楚地解释为什么会出现这个问题。例如,如果亚马逊指控某个商品存在品质问题,卖家需要说明商品的来源、质量检验流程等,以证明商品质量合格。 接下来,卖家需要提供解决问题的具体步骤和措施。这些措施应该有针对性地解决亚马逊所指控的问题,并能够确保问题不再发生。例如,如果卖家被指控缺乏对物流问题的控制,卖家可以提出改进物流流程,增加包装防护措施等。 在POA模板中,卖家还需要附上相关的支持文件和证据,以证明自己的解决方案的可行性和有效性。这些证据可以包括供应商合作协议、质检报告、翻译文件等。卖家应该确保这些文件是真实可靠的,能够提供给亚马逊进行核查。 最后,卖家需要在POA模板中表达对亚马逊的合作态度和诚意。卖家可以向亚马逊保证将切实执行所提出的解决方案,并提供追踪和监管措施。此外,卖家还可以承诺对自身的业务进行全面的检查和改进,以确保未来不再发生类似问题。 总之,亚马逊的POA模板是卖家在面对亚马逊问题时所需准备的一份解决方案计划。卖家在填写这个模板时,应该清楚描述问题、提供解决方案、附上支持文件,并表达合作态度和诚意,以恢复亚马逊对其的信任。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值