Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

私链eosio.system合约部署

放弃六月们
107 0 0
eosio.system合约部署
+ `( X" S3 W3 S7 z9 ceos版本:v1.0.53 x: K  {+ X' ~) e; q2 Q  y
操作系统:centos 7- J$ ~- x# R- u! O8 @
环境:私有链3 j' W; p, w( Q
目的
" ^0 A6 S  ^% z4 G  V由于正式链的ram,net带宽,cpu带宽太宝贵,对于测试的同学建议先在私链上进行测试,避免浪费EOS币。; k. E$ H  }7 T% i. B# b6 |
部署8 M+ {. ]1 x* N
部署是以私有链并且没有创建任何账号和合约为例,如果已经创建账号和部署智能合约,请对号入座跳着看。9 U: z5 G' a* z+ X, P4 L
, L; U3 q3 L0 ~) J- w
//重复1,2创建必备账号+ p- @4 c+ ^0 j0 Y
//eosio.token* P: }, b+ V. y) m' ]5 F
//eosio.system% @3 i( m1 J; l$ [' f4 _) T# B
//eosio.ram
1 v  @, H1 G+ h//eosio.ramfee
3 V0 C- q/ y+ Q. X0 m//eosio.stake
. A4 N( A( `5 p& u, Z6 B1 q' q//默认在代码根目录下执行
* X9 B, H$ |3 p7 a* J2 Y//1.创建密钥对
- k) n+ W" D: ncleos create key
5 R' c" p! u' `, m3 b+ U+ kPrivate key: 5KKibeZ9KX2bR3MZQnTRVx5aGgpGqtsuitkr21FkpwRERuRk4Ym  _4 M5 m% y* r$ d9 L2 c
Public key: EOS7d1YqzyP52FBkfmyu5pLVPpKjWZ4Ld3DZg8997eFLLZWLb7QUL
5 l  }8 L' T- B0 ^//2.创建账号7 a0 t. l2 F( @! C+ J4 l
cleos create account eosio eosio.token ${publicKey} ${publicKey}2 k+ P, x6 v( b" f3 m
//部署eosio.token,发布代币
6 \4 ^* x0 [9 B! V/ Lcleos set contract eosio.token ../../contracts/eosio.token/5 p9 v& @1 h6 ?( t& J3 H1 t4 Y
cleos push action eosio.token create '["eosio","1000000000.0000 EOS",0,0,0]' -p eosio.token
" S: z" S6 P( T: R& V, ncleos push action eosio.token issue '["eosio","1000000000.0000 EOS","issue"]' -p eosio
4 D- M  t  f" A( ~2 U/ U$ A//部署eosio.system,报错如下,要保证开头注明的四个账号已经创建
* H7 ]% ?/ X8 f" r& s. `; H0 T, Scleos set contract eosio ../../contracts/eosio.system/ -p eosio
) H4 s( D6 b( [' M, U4 R8 PReading WAST/WASM from ../../contracts/eosio.system/eosio.system.wasm...
: R6 ~, }+ `! ZUsing already assembled WASM...
5 N6 M0 [& E$ U6 n/ H" F0 |% |Publishing contract...
7 D$ k& x. h$ Q. i. n8 {9 ^) W" zError 3080006: transaction took too long
0 x$ r( J  ~- T5 C* d. f//注意
! C6 D2 _7 q7 }" p1 p./eosio_build.sh -s "EOS"  购买资源的币种,要使用默认的币种,不写则为SYS
' W& z& q$ b  q4 `: \2 P//创建交易账号
7 `  P3 }  ]. @# E/ hcleos system newaccount --stake-net "10.0000 SYS" --stake-cpu "10.0000 SYS" --buy-ram-kbytes 3 eosio eosiotest EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV  EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
) h+ w1 E- T4 w: S  Q//查看账号信息,输出资源信息则为部署成功/ r1 F! r5 n; [$ M/ R( h9 p; U
cleos get account eosiotest; m) K5 Y2 K( a0 q$ H' G
permissions: " S2 _  a2 Y1 p4 Z$ y' O
     owner     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
* q; [0 Q# g) W% S: W5 K: W& r        active     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
3 K0 W8 f5 M& L7 wmemory: 0 p" x7 ]! u( j/ W. _9 b* C- T. k
     quota:     2.973 KiB    used:     2.926 KiB  
/ j5 a4 J7 s  P: ^/ c. F& S$ _net bandwidth: & U+ |9 W0 d+ P/ `# ?6 ~& z( r
     delegated:      10.0000 EOS           (total staked delegated to account from others)
& E$ S$ T( P" V     used:                 0 bytes; z7 B9 V( O; ~0 p2 E. p3 \
     available:        8.145 TiB  . v( x' L5 s# w/ M
     limit:            8.145 TiB  3 R0 L! _9 r" Q, G
cpu bandwidth:$ u4 y9 A/ S8 M' f6 x
     delegated:      10.0000 EOS           (total staked delegated to account from others)
, P: ?4 m- a; G2 x- W4 [( Z     used:                 0 us     A+ @: @* h0 n) k7 ]
     available:        473.5 hr   - W. A4 ~/ T+ j5 r  F5 |: q
     limit:            473.5 hr( g9 k% O) y& g$ q6 l
     6 D' V% r1 K. [& |
//给账号转账
; i) {2 J6 C; {! r6 R- Ucleos push action eosio.token transfer '["eosio","eosiotest","100.0000 SYS",""]' -p eosio3 K! a. S* a; f3 ]
//再将eosiotest转账到eosio,验证资源是否减少; Z* I: s: q' L3 ?6 V7 k
cleos push action eosio.token transfer '["eosiotest","eosio","100.0000 SYS",""]' -p eosio
* S! t5 a! j3 B" ]! s+ d//再次查看账号信息,发现资源变少
7 x: R) K% ^! X9 ]3 pcleos get account eosiotest
3 \' G; z0 [" \问题汇总
& b% Y4 |4 E! `$ o5 U0 O' [, QQ:部署合约报错:unable to find key
; M6 r& }: [8 YA:4.0以后默认系统币名字是SYS,所以需要发布的代币修改成SYS,或者修改eosio_build.sh脚本中默认名称,重新进行编译(参考下图)0 _. E: V$ O0 ^% t! x) Y& k

) \% i8 x7 r) J7 [' V5 WQ:transaction took too long7 P# i9 d5 W5 O3 l" B3 n& }% ^
A:nodeos程序启动时添加max-transaction-time或者修改config.ini对应属性,重新启动nodeos
  a1 }+ Y  c- U1 u& JQ:to account does not exist
2 H* W- r" _- T! [' b( yA:在部署system合约之前,必须创建三个账号eosio.ram,eosio.ramfee,eosio.stake
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

放弃六月们 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    8