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'
閱讀更多 區塊鏈研究實驗室 的文章