Wanchain发布PoS星系共识Alpha测试,诚邀您参与验证节点测试赢取奖励

产业动态·热度: 5337
此次Alpha版的发布,标志着Wanchain的PoS星系共识从理论攻关向工程实践迈出了关键性的一步。


5月18日杭州西子湖畔,Wanchain携公链联盟举办了一场以Staking Economy为主题的线下活动。Wanchain创始人兼CEO吕旭军在会上宣布了Wanchain PoS星系共识(Galaxy Consensus)Alpha版正式开放测试。

星系共识是Wanchain理论与工程团队长期研究探索的智慧成果,此次Alpha版的发布,标志着Wanchain的PoS星系共识从理论攻关向工程实践迈出了关键性的一步。

Alpha测试开放时间自5月18日起至Beta测试上线时止(六月上旬)。Alpha测试提供基于命令行的运行方式,Wanchain诚邀广大区块链公司和开发爱好者参与到测试中来。Wanchain基金会设立了50,000WAN的奖励池,对积极参加验证节点测试并上报缺陷的参与者,我们将根据上报的缺陷严重程度(严重、一般、轻微)给予测试者相应的WAN代币奖励、

我们将在Beta版发布的时候,推出精心设计的Explorer和轻钱包等可视化工具,使验证节点查询、委托人参与更加便捷友好,让更多人有机会参与到星系共识的测试中,共同推动星系共识技术的进步。

关于Wanchain星系共识入门手册,您也可以通过访问Github上的Wanchain官方频道获取相关资料:

英文 https://github.com/wanchain/go-wanchain/blob/pos/docs/WanPoS_getting_started_manual.md

中文 https://github.com/wanchain/go-wanchain/blob/pos/docs/WanPoS_getting_started_manual_CN.md

一、什么是星系共识?

星系共识是Wanchain的PoS共识机制。星系共识借鉴了已有的优秀PoS共识Ouroboros方案,并对多个关键密码学组件进行创新设计,包括随机数生成和出块者选择等。星系共识中,参与质押的权益持有者(WAN Stakeholder)共同组成了社区(Community),社区中的每一名成员都有机会参与共识并获得奖励,获得奖励的几率随WAN币的质押数量和锁定时间的提升而提高,而对加入社区成为普通验证节点的条件,我们设置了WAN币最低质押数量的门槛为10,000 WAN。同时,对可以接受委托的参与者即受托验证节点,我们设置的WAN币最低质押数量门槛为50,000 WAN。

二、如何申请加入Alpha测试,如何申请WAN测试币?

有意向参与Alpha测试的参与者请访问此链接填写Alpha测试申请表:

http://wanchain.mikecrm.com/1O3vnbb

邮件收悉通过后,我们将向申请者的Wan地址随机分配50,000WAN 至150,000WAN 不等的代币。

在Beta版测试阶段,我们将提供Faucet测试币申请网站。届时,测试者将可自由申请WAN测试币。

三、软硬件环境要求有哪些?

1. 硬件环境

此次为Alpha测试,考虑到测试者的服务器成本等原因,我们不对硬件环境做过多要求。请保证使用正常硬件配置或者较高配置的服务器或个人电脑。中国境内的验证节点,请确保其网络能正常访问境外网络。

下图展示的是星系共识正式上线后,验证节点所需要的硬件要求的最低配置和推荐配置,供此次参与Alpha的测试者参考。


2. 软件环境

  • 建议使用Linux或MacOS操作系统。

  • 使用Docker运行需要安装Docker服务。

  • 使用源码编译运行需要安装和配置golang运行环境:https://golang.org/

         配置环境变量 $GOPATH 和$GOROOT

从github获取最新代码:

    $ mkdir -p $GOPATH/src/github.com/wanchain/
    cd $GOPATH/src/github.com/wanchain/
    $ git clone https://github.com/wanchain/go-wanchain.git
    $ cd go-wanchain
    $ git checkout posalpha
    $ git pull
    $ make

    编译得到的gwan在此目录下:build/bin/gwan

    四、如何查询验证节点运行状态及相关数据?

    在Alpha测试阶段,我们同时发布了PoS浏览器Alpha版。通过该浏览器,测试者可监测星系共识的整体数据和每个验证节点的具体参数。

    PoS浏览器地址:http://52.13.64.66/

    五、如何创建成为验证节点和委托人?

    1. 创建成为验证节点

    1)安装 docker(Ubuntu):

      $ sudo wget -qO- https://get.docker.com/ | sh
      $ sudo usermod -aG docker YourUserName
      $ exit

      2)使用docker中的gwan创建keystore账号:

        $ docker pull wanchain/wanpos
        $ docker run -d -v /home/YourUserName/.wanchain:/root/.wanchain wanchain/wanpos /bin/gwan --pluto
        YourContainerID
        $ docker exec -it YourContainerID /bin/bash
        root> gwan attach .wanchain/pluto/gwan.ipc
        > personal.newAccount('YourPassword')
        "YourAccountAddress"
        > personal.showPublicKey("YourAccountAddress", 'YourPassword')
        ["YourPK1", "YourPK2"]
        > exit
        root> echo "YourPassword" > /root/.wanchain/pw.txt
        root> exit

        3)确保您的测试账户地址拥有足额的WAN测试币(运行普通验证节点至少大于10,000WAN,运行受托验证节点至少大于50,000WAN)

        4)创建一个验证节点注册脚本文件

        /home/YourUserName/.wanchain/minerRegister.js

        注:代码中涉及的miner即为验证节点

          //minerRegister.js
          // If you want to register as a miner you can modify and use this script.

          //-------INPUT PARAMS SHOULD BE REPLACED WITH YOURS--------------------
          // tranValue is the value you want to stake - minValue is 100000 var tranValue = "100000"
          // secpub is the miner node's secpub valuevar secpub = "YourPK1"
          // g1pub is the miner node's g1pub valuevar g1pub = "YourPK2"
          // feeRate is the percent of the reward kept by the node in delegation - 100 indicates the node does not accept delegation.var feeRate = 100
          // lockTime is the length of stake locking time measured in epochs - minimum required locking time of 5 epochsvar lockTime = 30
          // baseAddr is the stake funding source accountvar baseAddr = "YourAccountAddress"
          // passwd is the stake funding source account passwordvar passwd = "YourPassword"
          //-------INPUT PARAMS SHOULD BE REPLACED WITH YOURS--------------------

          //------------------RUN CODE DO NOT MODIFY------------------personal.unlockAccount(baseAddr, passwd)var cscDefinition = [{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"lockEpochs","type":"uint256"}],"name":"stakeUpdate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"stakeAppend","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"secPk","type":"bytes"},{"name":"bn256Pk","type":"bytes"},{"name":"lockEpochs","type":"uint256"},{"name":"feeRate","type":"uint256"}],"name":"stakeIn","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"delegateAddress","type":"address"}],"name":"delegateIn","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"delegateAddress","type":"address"}],"name":"delegateOut","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}];

          var contractDef = eth.contract(cscDefinition);var cscContractAddr = "0x00000000000000000000000000000000000000d2";var coinContract = contractDef.at(cscContractAddr);
          var payload = coinContract.stakeIn.getData(secpub, g1pub, lockTime, feeRate)var tx = eth.sendTransaction({from:baseAddr, to:cscContractAddr, value:web3.toWin(tranValue), data:payload, gas: 200000, gasprice:'0x' + (200000000000).toString(16)});console.log("tx=" + tx)//------------------RUN CODE DO NOT MODIFY------------------

           


          脚本中的FeeRate字段为受托验证节点的委托费率,其值为0-100。如果FeeRate字段设为100,则表示受托节点不接受委托。如果FeeRate字段设为10,则表示受托节点收取委托人10%的收益后,再与委托人按共识系统设计的算法进行收益分配。如果FeeRate字段设为0,则表示受托节点不收取委托费率,即与委托人按共识系统的算法将全部收益进行分配。

          5)在gwan中执行脚本

          如果2)中的docker没有关闭,可以直接按下述代码进入执行,如果已关闭,请重新启动:

            $ docker exec -it YourContainerID /bin/gwan attach .wanchain/pluto/gwan.ipc
            > loadScript("/root/.wanchain/minerRegister.js")
            > exit
            $ docker stop YourContainerID
            $ docker run -d -p 17717:17717 -p 17717:17717/udp -v /home/YourUserName/.wanchain:/root/.wanchain wanchain/wanpos /bin/gwan --pluto --etherbase "YourAccountAddress" --unlock "YourAccountAddress" --password /root/.wanchain/pw.txt --mine --minerthreads=1

            执行完上述脚本,即可完成开启验证节点的权益挖矿(Staking)运行。测试者可通过 docker logs -f `docker ps -q` 命令查看工作日志。

            注:权益挖矿工作,将在所有块同步完成后正式开始。

             

            2. 实现委托人的WAN代币委托投注

            在Beta版本发布后,可通过轻钱包可视化界面方便的完成委托投注。

            在Beta版本之前,可按照如下命令执行投注。

            1)安装 docker(Ubuntu):

              $ sudo wget -qO- https://get.docker.com/ | sh
              $ sudo usermod -aG docker YourUserName
              $ exit

              2)创建账号,查找验证节点信息。请注意,在使用pos.getStakerInfo获取验证节点信息前,请确认当前已经同步到最新块。可通过eth.blockNumber来查看。

              验证节点信息可以通过命令行查找,也可以通过浏览器查找。

                $ docker run -d -v /home/YourUserName/.wanchain:/root/.wanchain wanchain/wanpos /bin/gwan --pluto
                YourContainerID
                $ docker exec -it YourContainerID /bin/bash
                root> gwan attach .wanchain/pluto/gwan.ipc
                > personal.newAccount('YourPassword')
                "YourAccountAddress"
                > pos.getStakerInfo(eth.blockNumber)[ {...}, {...}, { Address: "DelegateAddress", Amount: 2e+23, Clients: [], FeeRate: 10, From: "...", LockEpochs: 30, PubBn256: "...", PubSec256: "...", StakingEpoch: 117 }]

                通过上述执行,得到本地账号 YourAccountAddress 和想要投注的具备理想委托费率FeeRate的验证节点地址 DelegateAddress。

                3)确保您的测试账户地址拥有足额的WAN测试币(委托人至少大于100枚)

                4)创建投注脚本 /home/YourUserName/.wanchain/sendDelegate.js

                  //sendDelegate.js
                  // If you want to send to a delegate you can modify and use this script.

                  //-------INPUT PARAMS YOU SHOULD MODIFY TO YOURS--------------------
                  // tranValue is the value you want to stake in minValue is 100var tranValue = "100000"
                  // delegateAddr is the validator address copied from the list of validators generated in Step 4var delegateAddr = "DelegateAddress"
                  // baseAddr is the fund source account.var baseAddr = "YourAccountAddress"
                  // passwd is the fund source account password.var passwd = "YourPassword"
                  //-------INPUT PARAMS SHOULD BE REPLACED WITH YOURS--------------------

                  //------------------RUN CODE DO NOT MODIFY------------------personal.unlockAccount(baseAddr, passwd)var cscDefinition = [{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"lockEpochs","type":"uint256"}],"name":"stakeUpdate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"stakeAppend","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"secPk","type":"bytes"},{"name":"bn256Pk","type":"bytes"},{"name":"lockEpochs","type":"uint256"},{"name":"feeRate","type":"uint256"}],"name":"stakeIn","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"delegateAddress","type":"address"}],"name":"delegateIn","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"delegateAddress","type":"address"}],"name":"delegateOut","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}];

                  var contractDef = eth.contract(cscDefinition);var cscContractAddr = "0x00000000000000000000000000000000000000d2";var coinContract = contractDef.at(cscContractAddr);
                  var payloadDelegate = coinContract.delegateIn.getData(delegateAddr)var tx2 = eth.sendTransaction({from:baseAddr, to:cscContractAddr, value:web3.toWin(tranValue), data:payloadDelegate, gas: 200000, gasprice:'0x' + (200000000000).toString(16)});console.log("tx2=" + tx2)//------------------RUN CODE DO NOT MODIFY------------------

                  5)在gwan中运行投注脚本,完成委托人投注。

                    $ docker exec -it YourContainerID /bin/bash
                    root> gwan attach .wanchain/pluto/gwan.ipc
                    > loadScript("/root/.wanchain/sendDelegate.js")

                    六、常用操作

                    1. 账号创建

                      $ gwan --pluto account new

                      执行上述命令后,keystore文件会存储在默认目录 ~/.wanchain/pluto/keystore/ in Ubuntu 或者 ~/Library/Wanchain/pluto/keystore/ in Mac OS.

                      使用如下命令获取星系共识需要用到的两个公钥。

                        $ gwan --pluto account pubkeys 'YourAddress' 'Your Password'

                        星系共识需要使用key1和key3,作为SecPk和G1PK。

                        2. 查询余额

                          // In ubuntu$ gwan attach ~/.wanchain/pluto/gwan.ipc // In MacOS$ gwan attach~/Library/Wanchain/pluto/gwan.ipc

                          在链同步完成后,可通过下面指令查询余额。

                            $ eth.getBalance("Your Address FillHere") // Such as address example shown above.$eth.getBalance("0x8c35B69AC00EC3dA29a84C40842dfdD594Bf5d27")

                            3. 获取测试币

                            请扫描上文的二维码或登录http://wanchain.mikecrm.com/1O3vnbb进行填表申请。Beta版之后会推出faucet网页,届时可自动发放测试币。

                            4. 如何运行两大节点

                            • 非验证节点(全节点)

                              $ gwan --pluto --rpc --syncmode "full"
                              • 验证节点

                              在下面命令中请替换地址为您的个人地址 0x8d8e7c0813a51d3bd1d08246af2a8a7a57d8922e ,并替换 /tmp/pw.txt 为您地址的密码文本文件。

                                $ gwan --pluto --rpc --etherbase "0x8d8e7c0813a51d3bd1d08246af2a8a7a57d8922e" --unlock "0x8d8e7c0813a51d3bd1d08246af2a8a7a57d8922e" --password /tmp/pw.txt--rpc  --mine --minerthreads=1 --syncmode "full"

                                5. Stake注册和委托投注

                                用户注册一个节点服务器为星系共识验证节点的步骤如下图所示:


                                用户通过Stake register注册成为验证节点。

                                Wanchain提供了基于智能合约的注册和注销功能,合约参数如下:

                                  var cscDefinition =[{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"lockEpochs","type":"uint256"}],"name":"stakeUpdate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"stakeAppend","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"secPk","type":"bytes"},{"name":"bn256Pk","type":"bytes"},{"name":"lockEpochs","type":"uint256"},{"name":"feeRate","type":"uint256"}],"name":"stakeIn","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"delegateAddress","type":"address"}],"name":"delegateIn","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"delegateAddress","type":"address"}],"name":"delegateOut","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

                                   

                                  在智能合约的参数中, feeRate 是委托费率,通过设置合理费率吸引更多的委托人投注。

                                  测试者可以直接修改代码目录下的脚本文件来完成验证节点的注册 loadScript/minerRegister.js,委托人投注脚本loadScript/sendDelegate.js

                                  脚本可在IPC链接到节点后执行。

                                    // This path is a relative path for yourrun.$ loadScript('loadScript/register.js')

                                    测试者可在浏览器中查询收益信息、收益率预测等。

                                    七、团队内测数据展示

                                    下文展示了Wanchain工程团队使用不同的锁定金额,不同的锁定时间的收益实测数据。

                                    锁定时间单位是epoch。测试时,epoch时间为20分钟,每个epoch有120个slot。6个epoch为120分钟。总stake量约为6000000 ~ 8000000 万币。 如果收益为 0, 则意味着概率较低,没有被选中。


                                    下图展示了这四个验证节点在5个连续Epoch时间段内的收益率。

                                     

                                    在Alpha测试阶段,您有任何疑问,欢迎通过邮件联系我们techsupport@wanchain.org,或者通过Wanchain官方电报群、微信群联系我们的团队成员。Wanchain对您的测试参与表示诚挚的谢意。

                                    关于Wanchain

                                    Wanchain是资产跨链+隐私保护+智能合约,三大特性打造跨链数字资产基础设施平台,以去中心化的方式完成不同区块链网络的连接及价值的交换,允许任何个人和机构基于Wanchain创建去中心化的应用。万维链作为首个打通了比特币、以太坊和ERC20通证之间的跨链,正全力推进完全去中心化的PoS共识机制研发,北京时间41日正式发布星系共识技术黄皮书,并计划于2019年底在主网上正式启用。同时,万维链携手欧洲最大移动运营商的西班牙电信集团(Telefónica)和RIVETZ,提供基于区块链的移动安全解决方案。根据计划,Wanchain还将逐步实现与行业主要公链及联盟链的跨链对接。Wanchain采取全球化生态运营,目前在中国北京,美国奥斯汀,英国伦敦均设有办公室。

                                    了解更多Wanchain信息可以查看官网:

                                    https://wanchain.org;  

                                    你也可以通过Medium查看项目进展信息:

                                    https://medium.com/wanchain-foundation

                                    商务合作:

                                    info@wanchain.org

                                    声明:本文为入驻“火星号”作者作品,不代表火星财经官方立场。转载请注明出处、作者和本文链接
                                    提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。
                                    语音技术由科大讯飞提供
                                    关键字:  万维链POS
                                    推广
                                    最近更新
                                    本文来源:产业动态
                                    原文标题:
                                    涨跌幅
                                    排名名称价格(USD)涨幅
                                    您可能感兴趣的内容
                                    暂无内容

                                    评论0