platon和mtool操作FAQ

platon安装问题

  • 源码编译方式

    • 问题:crypto/bls/bls.go:4:10: fatal error: bls/bls.h: No such file or directory。

      解决:gcc版本低、git clone没有带上–recursive等,未按照官网步骤操作进行安装环境检测。须按照官网步骤进行操作,尽量不要跳过步骤,特别是需要检测编译环境是否符合要求,参考源码编译

    • 问题:如何确定当前platon是什么版本

      解决:

      
      # 找到你当前使用的可执行文件platon查看              
      
      $./platon version                             
      
      
  • ppa方式

    • 前提:查看系统是否是Ubuntu18.04,PPA方式只适合Ubuntu18.04。

    • 问题:如何确定当前platon是什么版本

      解决:

      
      # 查看当前版本以及旧版本
      
      $apt search platon                                
      
      
    • 问题:如何检查PPA仓库是否正确

      解决:

      
      # 添加源
      
      $sudo add-apt-repository ppa:ppatwo/platon    
      
      # 更新源
      
      $sudo apt update                          
      
      # 检查当前能够安装的版本
      
      $sudo apt search platon                           
      
      
    • 问题:如何一键卸载当前PPA和安装最新版本的PPA

      解决:

      
      # 更新 
      
      $sudo apt update                                                            
      
      # 卸载当前版本   
      
      $sudo apt remove `apt search platon|awk -F/ '/installed/{print $1}'` --purge -y  
      
      # 安装最新版本
      
      $sudo apt install -y `apt-cache search platon |awk -F'-' '{print $1}' |sort -t'.' -n -k1,1 -k2,2 -k3,3 -k4,4 |tail -n 1`                                                 
      
      

mtool常见问题

在线mtool操作详解

  • 问题:执行质押操作时报错502 Bad Gateway。

    解决:首先排查nodeid和key是否正确,然后查看platon进程是否运行;然后检查validator_config.json配置文件是否有问题,如果配置文件不对则使用validator_conf.sh脚本重新配置,执行脚本填写的信息和原来的一样,再重新执行质押。

  • 问题:执行质押操作时报错sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: signature check failed。

    解决:首先在mtool安装目录下检查validator_config.json,查看certificate字段描述的证书路径在不在,如果使用Nginx代理方式连接,需要在validator_config.json中配置CA证书的路径。

  • 问题:执行质押操作时报错Transaction error:The bls public key proof is wrong。

    解决:检查validator_config.json中的bls public key和节点生成的key是否一致。

  • 问题:执行质押操作时报错Value must be in format 0x[1-9]+[0-9]* or 0x0

    解决:该问题主要是platon 进程参数错误导致,可通过ps -ef|grep platon 检查进程启动参数。

  • 问题:查看不到钱包余额。

    解决:keytool genkeypair生成公私钥,但不会生成钱包,所以查不到钱包余额;须执行platon attach http://127.0.0.1:6789 --exec 'personal.importRawKey("",“123456”)'生成钱包,第一个双引号为私钥地址,第二个为密码。

  • 问题:查看钱包余额时报错Unable to connect to node 。

    解决:首先排查6789端口是否正常,节点是否正常运行;然后验证validator_config.json文件内容和格式是否正确,可能会出现非法字符,此时建议重新生成validator_config.json文件。

  • 问题:执行修改验证人信息操作时,修改了委托奖励比例,提示修改成功了,但却没有生效。

    解决:排查用户执行的命令参数,尤其检查用户执行的命令参数多了-a,如果有-a则需要去除。参数–a表示:用配置文件里面的值作参数去修改验证人信息,如果没有修改验证人配置文件的参数,执行mtool相关命令不会修改验证人的任何信息;目前已把–a从文档中的事例中删除,只做参数说明。

  • 问题:使用keytool命令生成节点公私钥时报错,执行命令为(keytool genkeypair | tee >(grep “PrivateKey” | awk ‘{print $2}’ > ./data/nodekey) >(grep “PublicKey” | awk ‘{print $3}’ > ./data/nodeid)),提示无法找到命令

    解决:该命令是基于PPA安装的前提之下,PPA安装platon时会将构建好环境变量,直接敲是可以生效的。源码或者二进制安装platon的话则需要在keytool所在目录下,在命令前面加上./即可。

  • nginx 常见问题

    • 问题:报错cat: /home/ubuntu/platon-node/data/nodeid: No such file or directory。

        get node public key failed!!!
      

      解决:未配置节点密钥,参照文档生成节点私钥和节点BLS私钥

    • 问题:执行报错403 Forbidden。

      解决:使用sudo权限的普通用户部署节点,并使用普通用户执行nginx_conf.sh脚本。

    • 问题:nginx如果重新生成了证书怎么处理?

      回答:使用mtool里面的证书替换新生成的证书文件。

常见问题与回答

对用户的解答:

  • 提问:在一个共识周期内,节点是轮流一次出一个块,还是一次出完10个块再轮到下一个节点?如果有个节点在轮到自己出块的那20s内没出块,之后还有补上的机会吗?

    回答:每个验证节点轮流成为提议人,节点会一次性出完10个块才轮到下一个提议人出块。若20秒内未能出10个块,则依然轮到下一个提议人出块,若该轮出块未满250个,则继续循环。

  • 提问:各个节点委托收益率相差这么大,收益率是怎么产生的?

    回答:委托年化收益率体现的是当前节点最近一段时间分配给其名下有效委托的年化收益率,随着时间会持续的变更。

    委托年化收益率计算公式:(最近1~4结算周期当前节点分配的委托总收益 / 最近1~4个结算周期当前节点每个周期下的有效委托量之和)* 年结算周期总数 *100%

    注:其中有效委托是, 处于锁定状态并完整锁定一个周期的委托(可查看PlatScan

    从公式可以看出:影响委托收益率值的有:

    (1)、委托收益:节点获得的收益(出块奖励,Stacking奖励)基于节点设置的委托奖励比例分配给当前结算周期有效的委托的收益数。因此节点获得的收益数,委托奖励比例的不同将直接影响委托可以获得的收益数

    (2)、委托成本:每个结算周期,节点接受到的有效委托量可分享节点分配的委托收益。在节点发放收益一样的情况下,有效委托越少,收益率越高。

    目前验证节点列表中,各个节点的有效委托相差比较大,同时有些节点设置的委托奖励比例100%,有些是10%,因此在收益率上就会偏差很大。

    委托收益率越高,委托价值越高,因此会吸引更多的委托人进行委托。随着各个节点接收到的委托量差距逐渐减少,委托收益率就会不断的下降,各个节点委托收益率将会逐渐达到一致并保持稳定。

  • 提问:领到200LAT个就能成为验证人了吧?

    回答:首先节点需要同步块高,等追上链上块高后质押至少100万LAT才可以成为验证节点。

  • 提问:不用433端口,不配置nginx如何处理?

    回答:使用http的方式,直接连接节点的6789端口,具体配置需要根据节点情况修改validator_config.json的nodeAddress和nodeRpcPort字段,删除certificate字段。

  • 提问:full同步和fast同步模式的区别?

    回答:同步模式主要分为full同步和fast同步,启动命令:–syncmode “full” 或 --syncmode “fast”,其中

    full同步:同步过程中会获取每个区块的header和区块的body,然后依次执行区块中每笔交易,对执行结果进行校验,也因此速度慢,但是能获取到所有的历史数据;

    fast同步:同步过程中会获取每个区块的header和区块的body,但是在同步当前最高块不执行区块中的每笔交易,不进行校验。这种方法用得最多,目的在不要在意历史数据,将历史数据按照快照的方式,不逐一验证,沿着区块下载最近数据库中的交易,有可能丢失历史数据。此方法可能会对历史数据有部分丢失,但是不影响今后的使用。

  • 提问:使用fast模式同步一开始查询不到块高?

    回答:使用fast模式启动platon进程,一开始是查询不到块高的,可以通过platon attach http://localhost:6789 -exec "platon.syncing"查看同步情况,等同步成功,就可以通过platon attach http://localhost:6789 -exec "platon.blockNumber"查看块高。

  • 提问:Please enter the delegatedRewardRate(0~10000):时,请输入比例分红,范围从0到10000,单位(万分比),如输入5000,表示分红比例为50%,这个比例分红应该如何填?

    回答:分红比例的比例设置越大,分配给委托人的收益就越高,反之一样,当你的分红比例比其他节点高,委托人就更愿意委托到你的节点。

  • 提问:奖励发放的LAT、测试网LAT和主网的LAT这三个是啥关系?

    回答:测试网LAT用于质押、委托及各种测试网活动,主要是测试作用,不具备任何价值

    测试奖励发放的LAT为主网LAT,等未来PlatON主网上线后,会进行发放,所以要提前收集好各位节点伙伴奖励领取地址,并保管好私钥,测试网获得的奖励会发放到该账户地址。

  • 提问:加入验证节点的质押账户可以委托验证节点吗?

    回答:验证节点的质押账户是不能相互委托的,也不能自委托。对质押账户进行了限制。

  • 提问:源码编译的二进制包不显示commitid?

    回答:一、如果直接基于commitid或者分支打包,则针对编译后的二进制包执行platon version时,不能显示commitid。

    二、如果基于commitid签出到一个新分支(git checkout -b “tmp-${build_target}” “${build_target}”),然后对新分支进行打包,那么编译后的二进制包执行platon version时可以显示commitid。

  • 提问:如何确定节点运行状态是否正常?

    回答:首先查看进程是否还在,其次查看节点块高是否在增长。

    
    # 查看进程是否还在
    
    $ ps -ef | grep platon   
    
    # 查看当前块高  
    
    $ platon attach http://localhost:6789 -exec platon.blockNumber   
    
    
3 个赞

FAQ第一波,求关注!!!

1 个赞

操作FAQ持续对社区公布:+1:

1 个赞