我的位置: 主页 > 数字币群文章 > 数字币群技巧 > Wanchain颁布PoS星系共鸣Alpha测试

Wanchain颁布PoS星系共鸣Alpha测试

发布人:数字币群 发时间:2019-05-19 03:18 热度:
5月18日杭州西子湖畔,Wanchain携公链联盟举办了一场以Staking Economy为主题的线下勾当。Wanchain首创人兼CEO吕旭军在会上

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的PoS共鸣机制。星系共鸣借鉴了已有的优秀PoS共鸣Ouroboros方案,并对多个关键暗码学组件进行创新设计,数字货币的概念股,包孕随机数生成和出块者选择等。星系共鸣中,参预质押的权益持有者(WAN Stakeholder)配合构成了社区(Community),社区中的每一名成员都有机会参预共鸣并获得奖励,获得奖励的几率随WAN币的质押数量和锁按时间的提升而提高,而对插手社区成为普通验证节点的条件,我们设置了WAN币最低质押数量的门槛为10,000 WAN。同时,对可以接受委托的参预者即受托验证节点,我们设置的WAN币最低质押数量门槛为50,000 WAN。
 
二、如何申请插手Alpha测试,如何申请WAN测试币?

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


邮件收悉通过后,我们将向申请者的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浏览器地点:

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

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 value
var secpub    = "YourPK1"
// g1pub is the miner node's g1pub value
var 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 epochs
var lockTime  = 30
// baseAddr is the stake funding source account
var baseAddr  = "YourAccountAddress"
// passwd is the stake funding 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 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------------------

分享给朋友: