Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

私链eosio.system合约部署

放弃六月们
153 0 0
eosio.system合约部署
4 {3 h0 }* V2 K; S2 w% h1 Beos版本:v1.0.50 f" d( s0 U  f
操作系统:centos 79 |' G% F( [. l% I
环境:私有链. d6 Y& T! P& Q  {
目的
. L" b# l4 p0 ~; R: s( e由于正式链的ram,net带宽,cpu带宽太宝贵,对于测试的同学建议先在私链上进行测试,避免浪费EOS币。8 ~# i& i3 [. `9 \8 ~3 V: T
部署
' G5 ]9 a0 O! S  K部署是以私有链并且没有创建任何账号和合约为例,如果已经创建账号和部署智能合约,请对号入座跳着看。2 d& A! d0 F4 Q. }
8 }( A+ _, o4 h" c$ e: v
//重复1,2创建必备账号9 d4 _( R0 C! x. N  T) r0 d* Y
//eosio.token5 V5 r) p* C3 C& m0 V
//eosio.system8 h  \6 S' z4 D7 S/ ]- q# c& t$ c
//eosio.ram
1 P5 ^9 ]/ K, t! Z" ^; `- Z//eosio.ramfee
) p7 U( X/ Z" k3 Y& f) U; d1 ^//eosio.stake! _( F( `$ V+ E1 m8 g6 O% F4 n
//默认在代码根目录下执行
  P1 F% G% b) {2 ]3 Z//1.创建密钥对/ d  ^4 ^; n' K# @
cleos create key/ ?) Q5 ?7 o7 F# S. w; d6 |+ F
Private key: 5KKibeZ9KX2bR3MZQnTRVx5aGgpGqtsuitkr21FkpwRERuRk4Ym
  A4 F2 l  K+ p- i1 y+ w7 M# U* uPublic key: EOS7d1YqzyP52FBkfmyu5pLVPpKjWZ4Ld3DZg8997eFLLZWLb7QUL
% F& h! T6 m) w- p' v. k* Z! E, L//2.创建账号
1 Z1 U/ g$ U$ Y) o7 E8 X7 w4 Ccleos create account eosio eosio.token ${publicKey} ${publicKey}
' P! X8 y5 d. v) M( Y//部署eosio.token,发布代币
5 ^7 ?$ {; B" v6 }9 ?# Zcleos set contract eosio.token ../../contracts/eosio.token/
+ p" c+ v  }4 }1 bcleos push action eosio.token create '["eosio","1000000000.0000 EOS",0,0,0]' -p eosio.token8 Y5 ~0 g8 @  X3 h# y$ S8 ^
cleos push action eosio.token issue '["eosio","1000000000.0000 EOS","issue"]' -p eosio, O2 g1 ?3 q) g3 E$ I
//部署eosio.system,报错如下,要保证开头注明的四个账号已经创建
: e7 _% A2 s1 y) bcleos set contract eosio ../../contracts/eosio.system/ -p eosio1 J9 q9 H* ]' u6 n/ x% U
Reading WAST/WASM from ../../contracts/eosio.system/eosio.system.wasm.../ {* a# g! m6 N0 B% P
Using already assembled WASM...+ S! R* i  U- h$ b! v  u( ?
Publishing contract...
: s, A- |+ R& n! ^Error 3080006: transaction took too long0 \4 C( E" Q1 @0 \
//注意8 o6 ]9 R. E7 F4 f4 }
./eosio_build.sh -s "EOS"  购买资源的币种,要使用默认的币种,不写则为SYS
4 r& D# ?7 L) G$ a0 h( a) Z//创建交易账号  [0 r/ A/ |! I9 U" C+ a
cleos system newaccount --stake-net "10.0000 SYS" --stake-cpu "10.0000 SYS" --buy-ram-kbytes 3 eosio eosiotest EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV  EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV % _# J# m8 n1 ~- N( [, A
//查看账号信息,输出资源信息则为部署成功2 v+ |3 e% ]+ T) C* h
cleos get account eosiotest
9 o- F) w! ?; [; v4 F" v! Opermissions:
9 N# Z& B) \. ?3 m& P6 V     owner     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV0 [7 N9 a$ \& d. J$ u$ t- D( e
        active     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV6 C3 P( G) P1 V& `  b- ~/ L) E
memory:
8 l3 }, @8 @& g% P8 w. I3 {     quota:     2.973 KiB    used:     2.926 KiB  / K9 s) x$ h8 e$ m$ I
net bandwidth:
/ x3 }, ~  @( n. \" d  J     delegated:      10.0000 EOS           (total staked delegated to account from others)/ E  N* Y; o7 F" N/ R; _  ~( B; J
     used:                 0 bytes1 L7 W9 A4 R4 b
     available:        8.145 TiB  1 O  l- _. P2 O# `( L. W
     limit:            8.145 TiB  : t+ h0 q4 A3 d. B) Z
cpu bandwidth:- r; r: X0 x  T- d3 C& d! m! l
     delegated:      10.0000 EOS           (total staked delegated to account from others)
) n6 @3 V% p, T) V' v" R     used:                 0 us   6 N' w$ B# e5 B  z
     available:        473.5 hr   - w& Q4 b, L0 c% a7 g. M
     limit:            473.5 hr1 ?6 k1 M3 Y/ f  A/ n
     
  d) B% T- G' \2 o. R//给账号转账
2 C! A. T+ \% W9 l6 |: W8 Ucleos push action eosio.token transfer '["eosio","eosiotest","100.0000 SYS",""]' -p eosio
: Z& ~4 D" s8 b5 S. Q: K7 l//再将eosiotest转账到eosio,验证资源是否减少
- ~0 M" d. i& K7 L* B) acleos push action eosio.token transfer '["eosiotest","eosio","100.0000 SYS",""]' -p eosio
: _" a1 x0 p- ]/ ?. c  I//再次查看账号信息,发现资源变少
5 f4 r" D: P; N/ s# Lcleos get account eosiotest" M" Q6 b2 D/ A; Q9 o7 m) S! i! i
问题汇总- t" _' U7 m+ @3 \$ `
Q:部署合约报错:unable to find key
; `, @3 ]9 Z% O0 fA:4.0以后默认系统币名字是SYS,所以需要发布的代币修改成SYS,或者修改eosio_build.sh脚本中默认名称,重新进行编译(参考下图)' ?, @  J  _9 s: F$ d

% j2 s0 k" G3 W9 g' S2 X& BQ:transaction took too long
$ F' c+ s' y. u, ^- _. N- OA:nodeos程序启动时添加max-transaction-time或者修改config.ini对应属性,重新启动nodeos' T0 O7 v/ [+ Y4 J" h
Q:to account does not exist
$ o7 |; y; |, K2 d6 DA:在部署system合约之前,必须创建三个账号eosio.ram,eosio.ramfee,eosio.stake
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

放弃六月们 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    8