「区块链研究实验室」EOSIO dawn4.0注册、投票技术开发教程

「区块链研究实验室」EOSIO dawn4.0注册、投票技术开发教程

EOS 的网络带宽和计算资源是通过抵押代币的方式获得,如果不需要了可以解除抵押收回原先的代币。

投票的权重和抵押代币所获得的带宽和计算资源相关,抵押了越多,投票的权重越大。同时投票的权重会随着时间的推移减少,这个设定鼓励用户持续更新自己的投票。

1.启动节点,创建钱包

$./cleos wallet create PW5KHHECv4bJxXsLocmsSnkdMvMBood5Tnd3KYmWEySfnvY1bqe9b

$./cleos wallet unlock --password PW5KHHECv4bJxXsLocmsSnkdMvMBood5Tnd3KYmWEySfnvY1bqe9b

2.部署eosio合约

系统部署合约之前都需要部署一个bios合约

$./cleos set contract eosio ../../contracts/eosio.bios -p eosio

3.导入私钥,创建eosio.token账户,部署合约

$./cleos wallet import 5JkgLHjSHmT8pWD5vKfH6vjW5jRtekx37rqZpbwF2Au251xqT41

$./cleos create account eosio eosio.token EOS8cMSi7eiGXC8oWcNfYFf83BRToBoKS4Dp46ERA6Hkb1cCwMn42 EOS8cMSi7eiGXC8oWcNfYFf83BRToBoKS4Dp46ERA6Hkb1cCwMn42

注:代码部分可以滑动

部署eosio.token合约

$./cleos set contract eosio.token ../../contracts/eosio.token/ -p eosio.token

4.创建账户,获得代币

$./cleos create account eosio bp1 EOS8cMSi7eiGXC8oWcNfYFf83BRToBoKS4Dp46ERA6Hkb1cCwMn42 EOS8cMSi7eiGXC8oWcNfYFf83BRToBoKS4Dp46ERA6Hkb1cCwMn42

给bp1发布eos币

$./cleos push action eosio.token create '{"issuer":"eosio", "maximum_supply": "100000000000.0000 EOS", "can_freeze": 0, "can_recall": 0, "can_whitelist": 0}' -p eosio.token

$./cleos push action eosio.token issue '{"to":"bp1","quantity":"100000000.0000 EOS","memo":"issue"}' -p eosio

$./cleos set contract eosio ../../contracts/eosio.system -p eosio

5.创建voter

如果创建账户报下面的错误

Error 3080001: account using more than allotted RAM usage

Error Details:

account voter has insufficient ram bytes; needs 2996 has 0

可以用newaccount 创建账户

$./cleos system newaccount eosio voter EOS8cMSi7eiGXC8oWcNfYFf83BRToBoKS4Dp46ERA6Hkb1cCwMn42 EOS8cMSi7eiGXC8oWcNfYFf83BRToBoKS4Dp46ERA6Hkb1cCwMn42 --stake-net '50.00 EOS' --stake-cpu '50.00 EOS'

创建账户之后最好通过命令查看一下当前账户中的资源是否充足

$./cleos get table eosio voter userres

如果资源不足可以通过buyram命令买资源

$./cleos system buyram voter voter '1000 EOS'

或者

$./cleos system buyram eosio voter '1000 EOS'

6.给voter发布eos币

$./cleos push action eosio.token issue '{"to":"voter","quantity":"10000000000.0000 EOS","memo":"issue"}' -p eosio

7.注册bp

$./cleos system regproducer bp1 EOS8cMSi7eiGXC8oWcNfYFf83BRToBoKS4Dp46ERA6Hkb1cCwMn42

8.锁定代币,换取票数

投票之前必须先换取票数

$./cleos system delegatebw voter voter '25000000.0000 EOS' '25000000.0000 EOS' --transfer

9.投票

$./cleos system voteproducer prods voter bp1

查询余额

$./cleos get currency balance eosio.token voter

注:代码部分可以滑动

10.解锁eos

解锁的时候要注意:数量不能大于之前锁定的数量

$./cleos system undelegatebw voter voter '5000000.0000 EOS' '5000000.0000 EOS'


分享到:


相關文章: