Staking Guide_CN - learnforcode/mypages GitHub Wiki
DPoS委员会节点参与教程
编译gabey
根据平台在下面链接中选择安装指导。
- Mac OS X安装说明
- Windows安装说明
- Linux/Unix的安装说明
- Docker的使用说明
或者直接下载对应平台版本
编译Impawn-CLI
初链Impawn CLI 是一个可以调用质押合约参与pos委员会选举的工具,提供了质押,追加,更新fee,赎回,提取和查询方法。
详情.
验证节点配置
4 CPURAM 16GStorage 200G SSDPublic IP 4Mbps
准备
gabey支持rpc
./gabey --rpc --rpcaddr 127.0.01 --rpcport 8545 --rpcapi "abey,net,web3,impawn" console
参数是--rpcaddr 0.0.0.0,gabey将监听所有的地址,也可以指定一个想要连接的地址,设置--rpcaddr 127.0.01仅需要本地连接gabey.
gabey支持BFT
./gabey --bftip 39.98.251.xx console
bftip必须是公网ip, open 防火墙 端口 8545(rpc),30310(bftport),30311(bftport2)
常规启动参数
$ ./gabey --datadir data --bftip "39.98.251.xxx" --rpc --rpcaddr "127.0.0.1" --rpcapi "eth,abey,net,web3,impawn" console
编译源码
编译impawn需要go和c编译器,如果已经安装好依赖, 运行如下命令。
cd go-abey/cmd/impawn
go build -o impawn main.go query_stake.go impawn.go
运行CLI
abeychain质押流程分为3步,首先保证账户有余额的前提下,发起质押交易impawn,质押量(value)要大于2W abey才可参与委员会竞选,如果
下届准备退出委员会POS共识,在本届发起cancel交易,等待15天后,需要主动发起提取withdraw交易,提取的abey会立即到指定的账户。
竞选质押
$ tree
.
├── impawn
├── impawn.go
├── main.go
├── query_stake.go
├── README.md
└── UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx
$ ./impawn --keystore UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx --rpcaddr 39.100.97.*** --rpcport 8545 --value 20000 --fee 5000
命令解释:
--keystore加载私钥从UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx文件里面.--rpcaddr--rpcport连接节点的ip + port,这个节点必须是一个验证者节点, 将使用本地的bft pk参与委员会竞选.--value质押 >=20000 abey到pos地址, 验证节点才能成为候选委员会节点.--feefee的范围是(0-10000),值越小,委托者分配的收益越低,值越大,收益越高, 费率的公式为fee / 10000.
输出日志
Please enter the password for 'UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxxx':
Connect url http://39.100.97.***:8545 current number 4467994 address 0x7C357530174275Dd30E46319B89f71186256E4f7
Your wallet balance is 1.7779439190971997852e+07 'abey current Total Stake 700401
Fee 5000 Pubkey 04f7a84c02fd576545c102d73cee71097813c255d5791cdcb600b82aedbf6f05dfda801e88985b3bfecc21592a7211ad4b551071f0bed8b357ea949e53fc9c5e8c value 20000000000000000000000
TX data nonce 17 transfer value 20000000000000000000000 gasLimit 826392 gasPrice 1000000 chainID 18928
Please waiting txHash 0xf1532026e8ffe44a1ea85c5e0772ffb7e6210d2f4bceed15c07078ddb48043a4
Transaction Success block Number 4467996 block txs 3 blockhash 0xab6af69d64ff17affa2460a7bd39552463611c09eab2cf5a769889d25e5afb96
Staked 20000000000000000000000 wei = 20000 abey Locked 0 wei = 0 abey Unlocked 0 wei = 0 abey
赎回
$ ./impawn --keystore UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx --rpcaddr 39.100.97.xxx --rpcport 8545 --value 10 cancel
命令解释:
--keystore加载私钥从UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx文件里面.--rpcaddr--rpcport连接节点的ip + port,这个节点必须是一个验证者节点, 将使用本地的bft pk参与委员会竞选.--value想要赎回abey的数量.cancel想要提取abey,首先要先赎回(cancel), 这个命令是要赎回10个abey到锁定状态,可以在下一届开始提取(withdraw),一般是15天后.
输出日志
Please enter the password for 'UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxxx':
Connect url http://39.100.97.xxx:8545 current number 4468624 address 0x7C357530174275Dd30E46319B89f71186256E4f7
TX data nonce 19 transfer value 0 gasLimit 821784 gasPrice 1000000 chainID 18928
Please waiting txHash 0x1bd50e4755cac0b2ae69f080d645c7a78a24c51ad31570f6afcc6f853a820b10
Transaction Success block Number 4468626 block txs 3 blockhash 0x0248f6467a7d50962115a210e815737bb1d0be5012adc96212cf9b458dc65f05
Staked 4999000000000000000000 wei = 49990 abey Locked 10000000000000000000 wei = 10 abey Unlocked 0 wei = 0 abey
查询提取高度
$ ./impawn --keystore UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx --rpcaddr 39.100.97.xxx --rpcport 8545 querystaking
命令解释:
--keystore加载私钥从UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx文件里面.--rpcaddr--rpcport连接节点的ip + port,这个节点必须是一个验证者节点, 将使用本地的bft pk参与委员会竞选.querystakingStaked当前质押的数量,Locked进入锁定状态的数量(调用cancel后进入这个状态),Unlocked可以立即提取的数量.- 打印
withdraw高度, 这个高度后可以发提取交易, 如果lock等于false,可以立即提取. - 如果
Unlocked不等于0, 可以立即提取Unlocked数量的abey.
输出日志
Please enter the password for 'UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxxx':
Connect url http://39.100.97.xxx:8545 current number 4468689 address 0x7C357530174275Dd30E46319B89f71186256E4f7
Staked 49990000000000000000000 wei = 49990 abey Locked 10000000000000000000 wei = 10 abey Unlocked 0 wei = 0 abey
Your can withdraw after height 4471006 count value 10 abey index 0 lock abey
提取
使用query staking 查询Unlocked不为0.
Staked 1000000000000000000 wei = 1 abey Locked 0 wei = 0 abey Unlocked 10000000000000000000 wei = 10 abey
可以提取赎回的abey
$ ./impawn --keystore UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx --rpcaddr 39.100.97.xxx --rpcport 8545 --value 10 withdraw
命令解释:
--keystore加载私钥从UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx文件里面.--rpcaddr--rpcport连接节点的ip + port,这个节点必须是一个验证者节点, 将使用本地的bft pk参与委员会竞选.--value想要提取abey的数量.withdraw子命令表示一笔提取交易到你的地址.
输出日志
Please enter the password for 'UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxxx':
Connect url http://39.100.84.72:8545 current number 4501013 address 0x7C357530174275Dd30E46319B89f71186256E4f7
Your wallet balance is 1.7779438190969483348e+07 'abey current Total Stake 700402
TX data nonce 20 transfer value 0 gasLimit 861784 gasPrice 1000000 chainID 18928
Please waiting txHash 0x659dbaf0a920aceed810647d3e2f113b508e8748dd82d2b0dae067f952214449
Transaction Success block Number 4501014 block txs 3 blockhash 0x177e1c2af3c6dc1eecc6139c1b438fde86cb5c30f015d611d0191af7e96230de
Staked 1000000000000000000 wei = 1 abey Locked 0 wei = 0 abey Unlocked 0 wei = 0 abey
Your wallet balance is 1.7779448190968621564e+07 'abey current Total Stake 700392
追加
$ ./impawn --keystore UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx --rpcaddr 39.100.97.xxx --rpcport 8545 --value 10 append
命令解释:
--keystore加载私钥从UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx文件里面.--rpcaddr--rpcport连接节点的ip + port,这个节点必须是一个验证者节点, 将使用本地的bft pk参与委员会竞选.--value想要追加abey的量,不会更改fee.append子命令已经质押过还要继续质押.
输出日志
Please enter the password for 'UTC--2018-09-07T07-45-16.954721700Z--7c357530174275dd30e46319b89f71186256e4f7':
Connect url http://39.100.84.72:8545 current number 4501430 address 0x7C357530174275Dd30E46319B89f71186256E4f7
TX data nonce 22 transfer value 10000000000000000000 gasLimit 821272 gasPrice 1000000 chainID 18928
Please waiting txHash 0x01a4d6bb8c85113118b47e27373b92dab5914f8103d3a16e46b3b4a65d15bbd3
Transaction Success block Number 4501432 block txs 1 blockhash 0xf78f0d87e4178e22effd6715999368df8af44c1fea08c401cbd2ed23a9d7ccb8
Staked 11000000000000000000 wei = 11 abey Locked 0 wei = 0 abey Unlocked 0 wei = 0 abey
更新Fee
$ ./impawn --keystore UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx --rpcaddr 39.100.97.xxx --rpcport 8545 --fee 10 updatefee
命令解释:
--keystore加载私钥从UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx文件里面.--rpcaddr--rpcport连接节点的ip + port,这个节点必须是一个验证者节点, 将使用本地的bft pk参与委员会竞选.--feefee的范围是(0-10000),值越小,委托者分配的收益越低,值越大,收益越高, 费率的公式为fee / 10000.updatefee子命令更新验证者的fee(0-10000),会改变委托者的收益.
输出日志
Please enter the password for 'UTC--2018-09-07T07-45-16.954721700Z--7c357530174275dd30e46319b89f71186256e4f7':
Connect url http://39.100.84.72:8545 current number 4503733 address 0x7C357530174275Dd30E46319B89f71186256E4f7
Fee 6000
TX data nonce 25 transfer value 0 gasLimit 821528 gasPrice 1000000 chainID 18928
Please waiting txHash 0x9ba1a83f8e4a074d311ef24993cc6a3baf82936c6b73f76b77eac95204bfd772
Transaction Success block Number 4503743 block txs 5 blockhash 0xc3a188dd5da8b47efd239cd0f47fb81ee576242c5c819830cb89fee397fe06fc
更新PK
$ ./impawn --keystore UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx --rpcaddr 39.100.97.xxx --rpcport 8545 --bftkey 647eeeb80193a47a02d31939af29efa006dbe6db45c8806af764c18b262bb90b updatepk
命令解释:
--keystore加载私钥从UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx文件里面.--rpcaddr--rpcport连接节点的ip + port,这个节点必须是一个验证者节点, 将使用本地的bft pk参与委员会竞选.--bftkey647eeeb80193a47a02d31939af29efa006dbe6db45c8806af764c18b262bb90b私钥或使用--pubkey加公钥.updatepk子命令更新验证者的pk,委员会之间通信的标识.
输出日志
Connect url http://localhost:8545 current number 5048960 address 0xDaa07f97034916517afFF28b672A61B0027346a2
Pubkey 045772b765ed192fdd53dd4a579dc53e37682bd975001071ff232f8cdad05734cbbdded8d8fb758845d315115f012e136739f6f3e1e9654eff45b36cb06ce8f9f6
TX data nonce 9155 transfer value 0 gasLimit 2426136 gasPrice 1000000000 chainID 18928
Please waiting txHash 0xe157cbac55796b4a97dd28421fa1621edb562a5b95aadebe5d868879fe51e5e2
Transaction Success block Number 5048961 block txs 1 blockhash 0xf55332105a203d92df53fc5609e8465dbae5a0ef166e3548b1c25d5c4d6e473a
Staked 100020000000000000000000 wei = 100020 abey Locked 0 wei = 0 abey Unlocked 0 wei = 0 abey
查询奖励
$ ./impawn --keystore UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx --rpcaddr 39.100.97.xxx --rpcport 8545 queryreward
命令解释:
--keystore加载私钥从UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx文件里面.--rpcaddr--rpcport连接节点的ip + port,这个节点必须是一个验证者节点, 将使用本地的bft pk参与委员会竞选.queryreward打印可使用(valid)的余额和锁定(lock)的余额,每一个慢链块的奖励.
输出日志
Please enter the password for 'UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxxx':
Connect url http://39.100.97.xxx:8545 current number 4468689 address 0x7C357530174275Dd30E46319B89f71186256E4f7
Your wallet valid balance is 11120.337165556650564 'abey lock balance is 100000 'abey
queryRewardInfo [map[Address:0xa4ab123ab418197ab0b5e3c49269f5d530ef87f0 Amount:2.8086168529799127e+18]]
转账
$ ./impawn --keystore UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx --rpcaddr 39.100.97.xxx --rpcport 8545 --value 10 --address 0x3f944d3f12e904e1A647E5FF9f531B8deE2346B2 send
命令解释:
--keystore加载私钥从UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx文件里面.--rpcaddr--rpcport连接节点的ip + port,这个节点必须是一个验证者节点, 将使用本地的bft pk参与委员会竞选.--address对方的地址.--value转账abey的量.send子命令发送普通转账交易.
输出日志
Please enter the password for 'UTC--2018-09-07T07-45-16.954721700Z--xxxxxxxxxx':
Connect url http://39.100.84.72:8545 current number 4502701 address 0x7C357530174275Dd30E46319B89f71186256E4f7
Your wallet balance is 1.7779429190966933964e+07 'abey current Total Stake 700411
TX data nonce 23 transfer value 10000000000000000000 gasLimit 21000 gasPrice 1000000 chainID 18928
Please waiting txHash 0x09b401884282f32f083d75ad537d1b461dc451c77a25e44f2d1fd859410561d0
Transaction Success block Number 4502702 block txs 5 blockhash 0xc3a188dd5da8b47efd239cd0f47fb81ee576242c5c819830cb89fee397fe06fc
查询交易执行情况
$ ./impawn --rpcaddr 39.100.97.xxx --rpcport 8545 --txhash 0x40c78769add225421c45fa2e9dc206c1d9a03199f78c34644f3c0bf274f3066b querytx
命令解释:
--rpcaddr--rpcport连接节点的ip + port.--txhash查询交易hash.querytx子命令查询交易hash执行结果.
输出日志
Connect url http://39.100.84.xxx:8545 current number 4501518 address 0x0000000000000000000000000000000000000000
Transaction Success block Number 4501432 block txs 1 blockhash 0xf78f0d87e4178e22effd6715999368df8af44c1fea08c401cbd2ed23a9d7ccb8