EOS開發(fā)(轉載)使用cleos通過連接第三方節(jié)點,在主網(wǎng)/測試網(wǎng)創(chuàng)建賬戶和發(fā)幣代幣

1.前言

在上一篇文章中,我們已經通過連接第三方節(jié)點的方式加入到了主網(wǎng)或者測試網(wǎng)絡。這篇文章主要是關于在主網(wǎng)/測試網(wǎng)創(chuàng)建賬號,發(fā)布代幣,以及關于一些轉賬手續(xù)費的講解。

2.測試網(wǎng)絡

2.1 準備工作

生成兩組公私鑰對,創(chuàng)建賬戶的時候需要:

yuyangdeMacBook-Pro:cleos yuyang$ cleos create key --to-console
Private key: 5Kbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Public key: EOS7RkP6aevKjN1CiKSqo44Gi1HhPYBczGFgSduBXBD7uHUFhg2qC
yuyangdeMacBook-Pro:cleos yuyang$ cleos create key --to-console
Private key: 5Hrxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Public key: EOS7sGb8DfutGgpuMmnDhG1d2stVETfpkrHQ6HhVRJJaPXRqLay2E

2.2 創(chuàng)建賬戶

之前,我們是通過http://jungle.cryptolions.ioCreate account選項創(chuàng)建的賬戶testnetyy111。這里我們使用cleos,通過testnetyy111來創(chuàng)建一個新的賬戶。

在主網(wǎng)和測試網(wǎng)絡中,創(chuàng)建賬號不像之前本地私鏈那樣可以隨意創(chuàng)建,而是需要為新賬戶購買和抵押一定的資源,使得新賬號可以進行一定的操作,例如轉賬等。需要購買的資源是RAM,需要抵押的資源是NETCPU。創(chuàng)建賬號時,使用以下參數(shù)指定要購買和抵押的資源數(shù)量:

  • --stake-net:抵押的網(wǎng)絡帶寬資源,單位為EOS

  • --stake-cpu:抵押的CPU帶寬資源,單位為EOS

  • --buy-ram-kbytes:購買的內存資源,單位為KB

  • --buy-ram:購買的內存資源,單位為EOS

創(chuàng)建賬戶:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u "http://jungle.cryptolions.io:18888" create account --stake-net '100 EOS' --stake-cpu '100 EOS' --buy-ram-kbytes 1000 testnetyy111 testneths111 EOS7RkP6aevKjN1CiKSqo44Gi1HhPYBczGFgSduBXBD7uHUFhg2qC EOS7sGb8DfutGgpuMmnDhG1d2stVETfpkrHQ6HhVRJJaPXRqLay2E
ERROR: ExtrasError: [--stake-net --stake-cpu --buy-ram-kbytes testneths111 EOS7RkP6aevKjN1CiKSqo44Gi1HhPYBczGFgSduBXBD7uHUFhg2qC EOS7sGb8DfutGgpuMmnDhG1d2stVETfpkrHQ6HhVRJJaPXRqLay2E]
Create an account, buy ram, stake for bandwidth for the account
Usage: cleos create account [OPTIONS] creator name OwnerKey [ActiveKey]

Positionals:
  creator TEXT                The name of the account creating the new account (required)
  name TEXT                   The name of the new account (required)
  OwnerKey TEXT               The owner public key for the new account (required)
  ActiveKey TEXT              The active public key for the new account

Options:
  -h,--help                   Print this help message and exit
  -x,--expiration             set the time in seconds before a transaction expires, defaults to 30s
  -f,--force-unique           force the transaction to be unique. this will consume extra bandwidth and remove any protections against accidently issuing the same transaction multiple times
  -s,--skip-sign              Specify if unlocked wallet keys should be used to sign transaction
  -j,--json                   print result as json
  -d,--dont-broadcast         don't broadcast transaction to the network (just print to stdout)
  --return-packed             used in conjunction with --dont-broadcast to get the packed transaction
  -r,--ref-block TEXT         set the reference block num or block id used for TAPOS (Transaction as Proof-of-Stake)
  -p,--permission TEXT ...    An account and permission level to authorize, as in 'account@permission'
  --max-cpu-usage-ms UINT     set an upper limit on the milliseconds of cpu usage budget, for the execution of the transaction (defaults to 0 which means no limit)
  --max-net-usage UINT        set an upper limit on the net usage budget, in bytes, for the transaction (defaults to 0 which means no limit)

發(fā)現(xiàn)報錯了。通過查看cleos的文檔https://developers.eos.io/eosio-cleos/reference#cleos-create-account,發(fā)現(xiàn)在生產環(huán)境中,創(chuàng)建賬號需要使用cleos system newaccount(https://developers.eos.io/eosio-cleos/reference#cleos-system-newaccount)命令替代。

再來:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u "http://jungle.cryptolions.io:18888" system newaccount --stake-net '100 EOS' --stake-cpu '100 EOS' --buy-ram-kbytes 1000 testnetyy111 testneths111 EOS7RkP6aevKjN1CiKSqo44Gi1HhPYBczGFgSduBXBD7uHUFhg2qC EOS7sGb8DfutGgpuMmnDhG1d2stVETfpkrHQ6HhVRJJaPXRqLay2E
executed transaction: 28cbc19117ec5c09edd90da7e25b1e742c5a954f7d0a1b2c88be91eceb4b5880  336 bytes  9736 us
#         eosio <= eosio::newaccount            {"creator":"testnetyy111","name":"testneths111","owner":{"threshold":1,"keys":[{"key":"EOS7RkP6aevKj...
#         eosio <= eosio::buyrambytes           {"payer":"testnetyy111","receiver":"testneths111","bytes":1024000}
#   eosio.token <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.ram","quantity":"58.0495 EOS","memo":"buy ram"}
#  testnetyy111 <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.ram","quantity":"58.0495 EOS","memo":"buy ram"}
#     eosio.ram <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.ram","quantity":"58.0495 EOS","memo":"buy ram"}
#   eosio.token <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.ramfee","quantity":"0.2918 EOS","memo":"ram fee"}
#  testnetyy111 <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.ramfee","quantity":"0.2918 EOS","memo":"ram fee"}
#  eosio.ramfee <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.ramfee","quantity":"0.2918 EOS","memo":"ram fee"}
#         eosio <= eosio::delegatebw            {"from":"testnetyy111","receiver":"testneths111","stake_net_quantity":"100.0000 EOS","stake_cpu_quan...
#   eosio.token <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.stake","quantity":"200.0000 EOS","memo":"stake bandwidth"}
#  testnetyy111 <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.stake","quantity":"200.0000 EOS","memo":"stake bandwidth"}
#   eosio.stake <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.stake","quantity":"200.0000 EOS","memo":"stake bandwidth"}
2018-09-05T06:09:44.828 thread-0   main.cpp:455                  print_result   warning: transaction executed locally, but may not be confirmed by the network yet

成功!我們查詢下新賬戶testneths111的情況:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 get account testneths111
permissions: 
     owner     1:    1 EOS7RkP6aevKjN1CiKSqo44Gi1HhPYBczGFgSduBXBD7uHUFhg2qC
        active     1:    1 EOS7sGb8DfutGgpuMmnDhG1d2stVETfpkrHQ6HhVRJJaPXRqLay2E
memory: 
     quota:     994.9 KiB    used:     2.926 KiB  

net bandwidth: 
     delegated:     100.0000 EOS           (total staked delegated to account from others)
     used:                 0 bytes
     available:        18.32 MiB  
     limit:            18.32 MiB  

cpu bandwidth:
     delegated:     100.0000 EOS           (total staked delegated to account from others)
     used:                 0 us   
     available:        3.661 sec  
     limit:            3.661 sec  

我們剛才創(chuàng)建了新賬戶testneths111,并為其購買了1000kbRAMNETCPU各抵押了100個eos。

再查查testnetyy111的賬戶情況:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 get account testnetyy111
permissions: 
     owner     1:    1 EOS6cnhSLTn4eSUEqS4nC8frYTsVsjeH2M3hos1TUeCgme2Yim5Q5
        active     1:    1 EOS6Z7mUQeFC2cQTT3xMyZh2wsLQoHih1bTMgRhr3dbichprTi7Rc
memory: 
     quota:     170.8 KiB    used:     3.646 KiB  

net bandwidth: 
     staked:        100.0000 EOS           (total stake delegated from account to self)
     delegated:       0.0000 EOS           (total staked delegated to account from others)
     used:               337 bytes
     available:        18.32 MiB  
     limit:            18.32 MiB  

cpu bandwidth:
     staked:        100.0000 EOS           (total stake delegated from account to self)
     delegated:       0.0000 EOS           (total staked delegated to account from others)
     used:             9.041 ms   
     available:        3.652 sec  
     limit:            3.661 sec  

EOS balances: 
     liquid:         9741.6587 EOS
     staked:          200.0000 EOS
     unstaking:         0.0000 EOS
     total:          9941.6587 EOS

producers:     <not voted>

之前這個賬號有10000eos的可用余額,現(xiàn)在剩余9741.6587eos的可用余額,剛才創(chuàng)建賬號花費了大約258.3413eos,我們來看看花費明細:

  • 各抵押了100eos的NETCPU,總共200eos

  • 購買了1000kb的RAM,花費58.0495eos??梢詮膭?chuàng)建賬號時的返回日記查看:

#   eosio.token <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.ram","quantity":"58.0495 EOS","memo":"buy ram"}

  • 購買RAM時,系統(tǒng)收取了0.2918eos的RAM交易手續(xù)費??梢詮膭?chuàng)建賬號時的返回日記查看:
#   eosio.token <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.ramfee","quantity":"0.2918 EOS","memo":"ram fee"}

合計:

200 + 58.0495 + 0.2918 = 258.3413

正好吻合

staked和delegated

這里注意看下這兩個賬號的信息。testnetyy111的網(wǎng)絡資源和CPU資源都為staked 100 eos,而delegated 0 eostestneths111的網(wǎng)絡資源和CPU資源都為delegated 100 eos,而沒有staked選項。

這表示的是,testnetyy111的網(wǎng)絡資源和CPU資源都是此賬號自己抵押的,如果申請贖回,那這200 eos將會退給testnetyy111。

testneths111的網(wǎng)絡資源和CPU資源都是由testnetyy111抵押的。testneths111無法申請贖回,只能由testnetyy111申請贖回,并且這200 eos將會退給testnetyy111而不是testneths111。

2.3 EOS轉賬

給新賬戶轉點EOS:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 transfer testnetyy111 testneths111 "100 EOS" "hi there"
executed transaction: a2a4d081bf5af18c3f74a3fecb0dd9c65db1490aaeeee00433c9a9a2b83868bc  136 bytes  1540 us
#   eosio.token <= eosio.token::transfer        {"from":"testnetyy111","to":"testneths111","quantity":"100.0000 EOS","memo":"hi there"}
#  testnetyy111 <= eosio.token::transfer        {"from":"testnetyy111","to":"testneths111","quantity":"100.0000 EOS","memo":"hi there"}
#  testneths111 <= eosio.token::transfer        {"from":"testnetyy111","to":"testneths111","quantity":"100.0000 EOS","memo":"hi there"}
warning: transaction executed locally, but may not be confirmed by the network yet    ] 

查看testneths111賬戶信息:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 get account testneths111
permissions: 
     owner     1:    1 EOS7RkP6aevKjN1CiKSqo44Gi1HhPYBczGFgSduBXBD7uHUFhg2qC
        active     1:    1 EOS7sGb8DfutGgpuMmnDhG1d2stVETfpkrHQ6HhVRJJaPXRqLay2E
memory: 
     quota:     994.9 KiB    used:     2.926 KiB  

net bandwidth: 
     delegated:     100.0000 EOS           (total staked delegated to account from others)
     used:                 0 bytes
     available:        18.32 MiB  
     limit:            18.32 MiB  

cpu bandwidth:
     delegated:     100.0000 EOS           (total staked delegated to account from others)
     used:                 0 us   
     available:        3.661 sec  
     limit:            3.661 sec  

EOS balances: 
     liquid:          100.0000 EOS
     staked:            0.0000 EOS
     unstaking:         0.0000 EOS
     total:           100.0000 EOS

已經有100eos的余額了

也可以使用下面的方法獲取余額:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 get currency balance eosio.token testnetyy111
9641.6587 EOS
10000.0000 JUNGLE
yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 get currency balance eosio.token testneths111
100.0000 EOS

JUNGLE是由于testnetyy111賬戶是通過Jungle Testnet網(wǎng)頁創(chuàng)建的,所以默認還給了10000JUNGLE代幣

2.4 轉賬手續(xù)費

我們再來查看下testnetyy111賬戶的情況:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 get account testnetyy111
permissions: 
     owner     1:    1 EOS6cnhSLTn4eSUEqS4nC8frYTsVsjeH2M3hos1TUeCgme2Yim5Q5
        active     1:    1 EOS6Z7mUQeFC2cQTT3xMyZh2wsLQoHih1bTMgRhr3dbichprTi7Rc
memory: 
     quota:     170.8 KiB    used:     3.881 KiB  

net bandwidth: 
     staked:        100.0000 EOS           (total stake delegated from account to self)
     delegated:       0.0000 EOS           (total staked delegated to account from others)
     used:               455 bytes
     available:        18.32 MiB  
     limit:            18.32 MiB  

cpu bandwidth:
     staked:        100.0000 EOS           (total stake delegated from account to self)
     delegated:       0.0000 EOS           (total staked delegated to account from others)
     used:             10.13 ms   
     available:        3.651 sec  
     limit:            3.661 sec  

EOS balances: 
     liquid:         9641.6587 EOS
     staked:          200.0000 EOS
     unstaking:         0.0000 EOS
     total:          9841.6587 EOS

producers:     <not voted>

對比下轉賬前RAM、NET、CPU的使用情況:

  • RAM:轉賬前3.646 KiB used,轉賬后3.881 KiB used

  • NET:轉賬前337 bytes used,轉賬后455 bytes used

  • CPU:轉賬前9.041 ms used,轉賬后10.13 ms used

可以看到,轉賬后testnetyy111各項資源的使用都增加了。轉賬需要消耗使用EOS抵押的網(wǎng)絡和CPU資源,并且需要將testneths111持有了EOS的信息記錄到內存上。雖然網(wǎng)絡和CPU資源會由系統(tǒng)定期自動釋放,也就是恢復,并且可以贖回成EOS,但是內存是使用EOS購買的,雖然可以賣出,但是系統(tǒng)不會定期釋放。所以第一次向沒有EOS代幣的testneths111賬戶轉賬多少會有一些(因為使用了內存的)手續(xù)費。

為什么說只有第一次轉賬EOS沒有手續(xù)費呢?因為經過后續(xù)實驗,如果testnetyy111再給testneths111轉賬EOS,testnetyy111的內存消耗并不會增加。原因是,首先,之前內存上已經記錄了testneths111持有EOS的信息,轉賬不會再次記錄。其次,雖然轉賬方testnetyy111的網(wǎng)絡和CPU消耗再次增加,但是由于兩者的恢復機制,消耗的網(wǎng)絡和CPU會再次恢復。所以此時實現(xiàn)了真正意義上的轉賬無手續(xù)費。

我們繼續(xù)試驗。將testneths111的私鑰導入testnet.wallet錢包,然后將所有EOS轉回給testnetyy111。然后再次查看testnetyy111的賬戶,這時可以發(fā)現(xiàn),testnetyy111的內存使用降低了。原因是testneths111不再持有EOS,所以系統(tǒng)刪除了testneths111持有EOS的這條記錄,并將之前的記錄此信息的內存退回給了testnetyy111

2.5 創(chuàng)建、發(fā)行、轉賬代幣

之前的文章已經詳細講解過代幣的創(chuàng)建、發(fā)行和轉賬了,這里不再詳細說明了

testnetyy111賬戶部署代幣合約:

uyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 set contract testnetyy111 ../../../build/contracts/eosio.token -p testnetyy111@active
Reading WASM from ../../../build/contracts/eosio.token/eosio.token.wasm...
Publishing contract...
Error 3080001: Account using more than allotted RAM usage
Error Details:
account testnetyy111 has insufficient ram; needs 194060 bytes has 174927 bytes

查看報錯信息,發(fā)現(xiàn)部署代幣合約需要194kb的內存,當前只有174kb。我們?yōu)?code>testnetyy111再購買些內存:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 system buyram testnetyy111 testnetyy111 "100 EOS"
executed transaction: 695beb8644042b44b10dcf2028964996c864f9804d7df5182f32ddda92ff8fd4  128 bytes  5017 us
#         eosio <= eosio::buyram                {"payer":"testnetyy111","receiver":"testnetyy111","quant":"100.0000 EOS"}
#   eosio.token <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.ram","quantity":"99.5000 EOS","memo":"buy ram"}
#  testnetyy111 <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.ram","quantity":"99.5000 EOS","memo":"buy ram"}
#     eosio.ram <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.ram","quantity":"99.5000 EOS","memo":"buy ram"}
#   eosio.token <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.ramfee","quantity":"0.5000 EOS","memo":"ram fee"}
#  testnetyy111 <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.ramfee","quantity":"0.5000 EOS","memo":"ram fee"}
#  eosio.ramfee <= eosio.token::transfer        {"from":"testnetyy111","to":"eosio.ramfee","quantity":"0.5000 EOS","memo":"ram fee"}
warning: transaction executed locally, but may not be confirmed by the network yet    ] 

買了100eos的內存,實際只買到了99.5eos的內存,因為被系統(tǒng)扣了%0.5的交易手續(xù)費??聪卢F(xiàn)在有多少內存了:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 get account testnetyy111
permissions: 
     owner     1:    1 EOS6cnhSLTn4eSUEqS4nC8frYTsVsjeH2M3hos1TUeCgme2Yim5Q5
        active     1:    1 EOS6Z7mUQeFC2cQTT3xMyZh2wsLQoHih1bTMgRhr3dbichprTi7Rc
memory: 
     quota:     1.831 MiB    used:     3.881 KiB  

net bandwidth: 
     staked:        100.0000 EOS           (total stake delegated from account to self)
     delegated:       0.0000 EOS           (total staked delegated to account from others)
     used:               549 bytes
     available:        18.32 MiB  
     limit:            18.32 MiB  

cpu bandwidth:
     staked:        100.0000 EOS           (total stake delegated from account to self)
     delegated:       0.0000 EOS           (total staked delegated to account from others)
     used:             12.96 ms   
     available:        3.648 sec  
     limit:            3.661 sec  

EOS balances: 
     liquid:         9541.6587 EOS
     staked:          200.0000 EOS
     unstaking:         0.0000 EOS
     total:          9741.6587 EOS

producers:     <not voted>

足夠了。我們重新部署代幣合約:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 set contract testnetyy111 ../../../build/contracts/eosio.token -p testnetyy111@active
Reading WASM from ../../../build/contracts/eosio.token/eosio.token.wasm...
Publishing contract...
executed transaction: 7cff6eac58075d3bc12c0479b8bf420f36b7ec2c136a832a007efa48cea57591  8112 bytes  3438 us
#         eosio <= eosio::setcode               {"account":"testnetyy111","vmtype":0,"vmversion":0,"code":"0061736d01000000017e1560037f7e7f0060057f7...
#         eosio <= eosio::setabi                {"account":"testnetyy111","abi":"0e656f73696f3a3a6162692f312e30010c6163636f756e745f6e616d65046e616d6...
warning: transaction executed locally, but may not be confirmed by the network yet    ] 

查看一下testnetyy111的賬戶情況,剛才部署代幣合約使用了大約186kb的內存。

完整的創(chuàng)建代幣的命令:

cleos -u http://jungle.cryptolions.io:18888 push action testnetyy111 create '{"issuer":"testnetyy111", "maximum_supply": "100000000.0000 RAY", "can_freeze": 0, "can_recall": 0, "can_whitelist": 0}' -p testnetyy111@active

can_freeze,can_recallcan_whitelist為布爾值,表示這個代幣是否可以被發(fā)行人凍結,收回,或者白名單。

我們可以也使用更簡略的命令創(chuàng)建代幣:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 push action testnetyy111 create '[ "testnetyy111", "100000000.0000 RAY", 0, 0, 0]' -p testnetyy111
executed transaction: dfc45b660f42beca5bb0a6dbe081d1d37b4931d004a59bac0801304db6a84ffb  120 bytes  765 us
#  testnetyy111 <= testnetyy111::create         {"issuer":"testnetyy111","maximum_supply":"100000000.0000 RAY"}
warning: transaction executed locally, but may not be confirmed by the network yet    ] 

我們指定的發(fā)行人為testnetyy111。現(xiàn)在將全部代幣都發(fā)行給testnetyy111

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 push action testnetyy111 issue '[ "testnetyy111", "100000000.0000 RAY", "issue" ]' -p testnetyy111
executed transaction: b0c71715e9dc3284513d6fc29e4c2fc130ff2a54eb621cc472cdc037c63a1124  128 bytes  1303 us
#  testnetyy111 <= testnetyy111::issue          {"to":"testnetyy111","quantity":"100000000.0000 RAY","memo":"issue"}
warning: transaction executed locally, but may not be confirmed by the network yet    ]

查看下余額:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 get currency balance testnetyy111 testnetyy111
100000000.0000 RAY

現(xiàn)在testnetyy111賬戶中已經有100000000.0000 RAY,我們轉點代幣給testneths111

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 push action testnetyy111 transfer '[ "testnetyy111", "testneths111", "100.0000 RAY", "transfer to hs" ]' -p testnetyy111
executed transaction: cc2dd7d3a52f753cf139c4076cfecaa61e4cb853fc91ec9490e26cdaa4052513  144 bytes  1489 us
#  testnetyy111 <= testnetyy111::transfer       {"from":"testnetyy111","to":"testneths111","quantity":"100.0000 RAY","memo":"transfer to hs"}
#  testneths111 <= testnetyy111::transfer       {"from":"testnetyy111","to":"testneths111","quantity":"100.0000 RAY","memo":"transfer to hs"}
warning: transaction executed locally, but may not be confirmed by the network yet    ]

查看下雙方的代幣余額:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 get currency balance testnetyy111 testnetyy111
99999900.0000 RAY
yuyangdeMacBook-Pro:cleos yuyang$ cleos -u http://jungle.cryptolions.io:18888 get currency balance testnetyy111 testneths111
100.0000 RAY

沒毛病

3. 主網(wǎng)

3.1 準備工作

主網(wǎng)的流程和測試網(wǎng)絡基本一樣

創(chuàng)建一個錢包,管理主網(wǎng)的私鑰

創(chuàng)建一個名為mainnet.wallet的錢包

yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet create -n mainnet --to-console
Creating wallet: mainnet
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

將我之前在主網(wǎng)申請的賬戶yuyangray222的私鑰導入錢包

yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet import --private-key 5JLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -n mainnet
imported private key for: EOS69mwiYuMhfWtwLVXxaXfao7YXF2Kh39nZurdDw6RF1ntQy6DnW

生成兩個私鑰,創(chuàng)建賬戶的時候需要:

yuyangdeMacBook-Pro:cleos yuyang$ cleos create key --to-console
Private key: 5Jwhxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Public key: EOS66griGzoa99n2mjGacBKEndMFAACrmJi7zn1xJ6jieDv4K1SB9
yuyangdeMacBook-Pro:cleos yuyang$ cleos create key --to-console
Private key: 5JdJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Public key: EOS6x1ZXjAJLrHy67hCdM13ue2t4BCvNp55qMcqtvyfPULFQAAtRG

3.2 創(chuàng)建賬戶

先確認下是否連接的是主網(wǎng):

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u "https://api.eosnewyork.io" get info
{
  "server_version": "e87d245d",
  "chain_id": "aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906",
  "head_block_num": 14959813,
  "last_irreversible_block_num": 14959477,
  "last_irreversible_block_id": "00e443756eed3ed6a238b63cf87897b069ec84ffb82adceffc3ae0a9469e0b16",
  "head_block_id": "00e444c5fec4a19e4b524c4d84140edb18106b5562cd22d7d7b34fdc90fc1e15",
  "head_block_time": "2018-09-06T03:24:17.500",
  "head_block_producer": "libertyblock",
  "virtual_block_cpu_limit": 200000000,
  "virtual_block_net_limit": 1048576000,
  "block_cpu_limit": 197819,
  "block_net_limit": 1048432,
  "server_version_string": "v1.2.3-dirty"
}

使用yuyangray222創(chuàng)建一個新賬戶huashangtech

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u "https://api.eosnewyork.io" system newaccount --stake-net '1 EOS' --stake-cpu '1 EOS' --buy-ram-kbytes 20 yuyangray222 huashangtech EOS66griGzoa99n2mjGacBKEndMFAACrmJi7zn1xJ6jieDv4K1SB9 EOS6x1ZXjAJLrHy67hCdM13ue2t4BCvNp55qMcqtvyfPULFQAAtRG
executed transaction: e10f0e02c963c7b49e939c82ca34917b5607e8925e685d6b48bed27ea372e0a7  336 bytes  5765 us
#         eosio <= eosio::newaccount            {"creator":"yuyangray222","name":"huashangtech","owner":{"threshold":1,"keys":[{"key":"EOS66griGzoa9...
#         eosio <= eosio::buyrambytes           {"payer":"yuyangray222","receiver":"huashangtech","bytes":20480}
#   eosio.token <= eosio.token::transfer        {"from":"yuyangray222","to":"eosio.ram","quantity":"2.2453 EOS","memo":"buy ram"}
#  yuyangray222 <= eosio.token::transfer        {"from":"yuyangray222","to":"eosio.ram","quantity":"2.2453 EOS","memo":"buy ram"}
#     eosio.ram <= eosio.token::transfer        {"from":"yuyangray222","to":"eosio.ram","quantity":"2.2453 EOS","memo":"buy ram"}
#   eosio.token <= eosio.token::transfer        {"from":"yuyangray222","to":"eosio.ramfee","quantity":"0.0113 EOS","memo":"ram fee"}
#  yuyangray222 <= eosio.token::transfer        {"from":"yuyangray222","to":"eosio.ramfee","quantity":"0.0113 EOS","memo":"ram fee"}
#  eosio.ramfee <= eosio.token::transfer        {"from":"yuyangray222","to":"eosio.ramfee","quantity":"0.0113 EOS","memo":"ram fee"}
#         eosio <= eosio::delegatebw            {"from":"yuyangray222","receiver":"huashangtech","stake_net_quantity":"1.0000 EOS","stake_cpu_quanti...
#   eosio.token <= eosio.token::transfer        {"from":"yuyangray222","to":"eosio.stake","quantity":"2.0000 EOS","memo":"stake bandwidth"}
#  yuyangray222 <= eosio.token::transfer        {"from":"yuyangray222","to":"eosio.stake","quantity":"2.0000 EOS","memo":"stake bandwidth"}
#   eosio.stake <= eosio.token::transfer        {"from":"yuyangray222","to":"eosio.stake","quantity":"2.0000 EOS","memo":"stake bandwidth"}
warning: transaction executed locally, but may not be confirmed by the network yet    ] 

抵押了1eosNET1eosCPU,購買了20K的內存

查看新賬戶huashangtech信息:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u "https://api.eosnewyork.io" get account huashangtech
permissions: 
     owner     1:    1 EOS66griGzoa99n2mjGacBKEndMFAACrmJi7zn1xJ6jieDv4K1SB9
        active     1:    1 EOS6x1ZXjAJLrHy67hCdM13ue2t4BCvNp55qMcqtvyfPULFQAAtRG
memory: 
     quota:     21.27 KiB    used:     2.926 KiB  

net bandwidth: 
     delegated:       1.0000 EOS           (total staked delegated to account from others)
     used:                 0 bytes
     available:        668.9 KiB  
     limit:            668.9 KiB  

cpu bandwidth:
     delegated:       1.0000 EOS           (total staked delegated to account from others)
     used:                 0 us   
     available:        126.1 ms   
     limit:            126.1 ms   

3.3 EOS轉賬

yuyangray222轉一個EOS給huashangtech

cleos -u "https://api.eosnewyork.io" transfer yuyangray222 huashangtech "1 EOS" "hi huashangtech"
yuyangdeMacBook-Pro:cleos yuyang$ cleos -u "https://api.eosnewyork.io" transfer yuyangray222 huashangtech "1 EOS" "hi huashangtech"
executed transaction: d8fd505b3bbce4416ee390587f758a804218d1057657f189013a62107d6f64a4  144 bytes  1206 us
#   eosio.token <= eosio.token::transfer        {"from":"yuyangray222","to":"huashangtech","quantity":"1.0000 EOS","memo":"hi huashangtech"}
#  yuyangray222 <= eosio.token::transfer        {"from":"yuyangray222","to":"huashangtech","quantity":"1.0000 EOS","memo":"hi huashangtech"}
#  huashangtech <= eosio.token::transfer        {"from":"yuyangray222","to":"huashangtech","quantity":"1.0000 EOS","memo":"hi huashangtech"}
warning: transaction executed locally, but may not be confirmed by the network yet    ] 

再次查看huashangtech賬戶信息:

yuyangdeMacBook-Pro:cleos yuyang$ cleos -u "https://api.eosnewyork.io" get account huashangtech
permissions: 
     owner     1:    1 EOS66griGzoa99n2mjGacBKEndMFAACrmJi7zn1xJ6jieDv4K1SB9
        active     1:    1 EOS6x1ZXjAJLrHy67hCdM13ue2t4BCvNp55qMcqtvyfPULFQAAtRG
memory: 
     quota:     21.27 KiB    used:     2.926 KiB  

net bandwidth: 
     delegated:       1.0000 EOS           (total staked delegated to account from others)
     used:                 0 bytes
     available:        668.9 KiB  
     limit:            668.9 KiB  

cpu bandwidth:
     delegated:       1.0000 EOS           (total staked delegated to account from others)
     used:                 0 us   
     available:        126.1 ms   
     limit:            126.1 ms   

EOS balances: 
     liquid:            1.0000 EOS
     staked:            0.0000 EOS
     unstaking:         0.0000 EOS
     total:             1.0000 EOS

余額已有1EOS

3.4 創(chuàng)建、發(fā)行、轉賬代幣

由于在主網(wǎng)部署代幣合約至少需要賬戶內有200k的內存,以現(xiàn)在內存的價格,大概需要23個EOS以上,后面有機會再補充,不過流程都和在測試網(wǎng)上基本一致。

作者:yuyangray
鏈接:http://www.itdecent.cn/p/a5d631043822
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯(lián)系作者獲得授權并注明出處。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容