Skip to content

Howto Run a Unit producing Mediator.cn

Albert·Gou edited this page Oct 15, 2019 · 50 revisions

本文档演示,如何让一个 mediator 生产单元,大概需要如下3步:

  1. 成为 mediator;
  2. 修改配置文件,重启gptn;
  3. 投票成为活跃 mediator;

1. 成为 mediator

关于如何成为 Mediator,请参考 链接

完成以上步骤之后,可在console中,通过如下命令查看自己是否在 mediator 列表中:

> mediator.isInList("P1xxxx")

2. 生产单元

编辑 gptn 程序对应的 ptn-config.toml 文件,找到 MediatorPlugin.Mediators ,修改或者在后面追加如下配置:

[[MediatorPlugin.Mediators]]
Address = "P1xxxx" # mediator账户地址
Password = "password" # mediator账户密码
InitPrivKey = "3u5iudJqaz4dSaKNiANT8U44fheksubQvaQ8BzhWTke4" # mediator群签名初始私钥
InitPubKey = "ageMx8CsPfRdU8LoSnh6DTaQ123tfYJ73VB3UQWZbyG3SGbQTeCrbBWxjd3y9cW9SnF15xNDdDmheftoE9D2iM2yBFr43m84AeQzCbiyN45JGGveUprHEUBWbLGFK1sVf8w3mGKktJgwboatjScPdqBGqGpHg9RjZkPE7GT87j9Zge6"  # mediator群签名初始公钥

配置文件中 mediator 账户密码,建议程序启动后,将其改为空串,或者启动前设为空串,程序启动后,在console中永久解锁签名账户:

> personal.unlockAccount("P1xxx", "password", 0)

并修改如下配置:

[MediatorPlugin]
EnableProducing = true
EnableStaleProduction = false
EnableConsecutiveProduction = false
RequiredParticipation = 33
EnableGroupSigning = true

ContractAddress = "内网IP:12345"

保存以上配置,然后重启gptn程序;并在安全的地方将配置文件做个备份

3. 投票为活跃mediator

注意:本步骤为console命令行中的质押投票操作流程,更多的质押投票操作请在PalletOne钱包中进行。 可在console中通过如下命令将ptn代币转账到钱包账户:

> wallet.transferPTN("P1xxx", "P1xxx", 1234, 0.002)

3.1 需要质押相应的PTN,用作投票数量统计,可通过如下命令质押ptn:

> contract.depositContractInvoke("P1xxxx","PCGTta3M4t3yXu8uRgkKvaWd2d8DR32W9vM", 123456, 0.002,["PledgeDeposit"])

提示: 以上命令的参数说明:

  • 第1个参数:要质押ptn的账户地址;
  • 第3个参数:要质押ptn的数量,单位ptn;
  • 第4个参数:本次操作的手续费,单位ptn,1 ptn = 10^8 dao;

可通过如下命令,查询账户质押的ptn数量(optional):

> ptn.getPledge("P1xxxx")

3.2 在console中,可通过如下命令设置自己投票的mediator(若干个,可以自己给自己投票), 也可以拉票,让其他节点给本节点投票

> mediator.vote("P1xxxx", ["P1xxxx","P1xxxx"])

提示: 以上命令说明:

  • 第1个参数是投票的账户地址(也可以是mediator);
  • 第2个参数是被投的mediator地址列表;

可通过如下命令,查看指定账户已经给哪些mediator投票(optional):

> mediator.getVoted("P1xxxx")

4. 查看是否成为活跃 Mediator

可通过如下命令,下一次mediator投票统计的时间:

> mediator.getNextUpdateTime()

一旦过了换届时间,只要mediator的得票数量,排在前n位,就能成为活跃mediator。

可在console中,直接查看本mediator是否活跃:

> mediator.isActive("P1xxx")

或者,通过如下命令查看自己是否在活跃mediator列表中(optional):

> mediator.listActives

5. 查看节点是否生产单元

可在console中通过如下命令,查看mediator的相关信息:

> mediator.getInfo("P1xxx")

查看 mediator 的 lastConfirmedUnitNum 编号是否更新,并且 totalMissed 字段是否停止增加;

也可在gptn程序的输出日志中,查看是否有 mediator 单元生产的信息(optional):

Generated unit 6bxxdd…04xxb6 #1234 @2018-12-29 16:37:30 signed by P1xxxx
Clone this wiki locally