Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

私链eosio.system合约部署

放弃六月们
105 0 0
eosio.system合约部署
0 f: Q( j  q% Y6 |- `4 M2 Teos版本:v1.0.5
1 h- C; m. H1 ]$ M/ E操作系统:centos 73 q7 c& h. z# Q; N4 C& O3 b
环境:私有链
: r; z( T* y( K2 F9 s目的! K1 K* p& X' x) }/ n% d
由于正式链的ram,net带宽,cpu带宽太宝贵,对于测试的同学建议先在私链上进行测试,避免浪费EOS币。9 \  O' j0 e) ^% D; P7 R6 W) J
部署, R" J$ r' U3 P( i* K* q
部署是以私有链并且没有创建任何账号和合约为例,如果已经创建账号和部署智能合约,请对号入座跳着看。: O; e: Z0 }) Q
5 X" c) G: Y# z' H, P
//重复1,2创建必备账号
+ b: f2 t- F& Z/ X5 z7 e//eosio.token. A3 H* u; J7 G! T+ O; J- x
//eosio.system
/ G5 z! B3 g5 I- o1 P- o& b//eosio.ram6 Q) j2 e! ~6 Y! `. y
//eosio.ramfee
: Y2 N8 a1 Q7 L* [4 a. U( A1 O" ?( u//eosio.stake
# q0 O: H  f4 z) K//默认在代码根目录下执行
0 [) E2 y4 A/ C+ l/ o( r# v//1.创建密钥对
3 J+ O8 r5 |, R/ ?* @cleos create key
/ o) E4 V  y, f/ ], Y% }Private key: 5KKibeZ9KX2bR3MZQnTRVx5aGgpGqtsuitkr21FkpwRERuRk4Ym
" R* q8 e$ [& L+ V7 tPublic key: EOS7d1YqzyP52FBkfmyu5pLVPpKjWZ4Ld3DZg8997eFLLZWLb7QUL8 n9 Q  z, w& @6 g% D7 I
//2.创建账号/ b& g% F  `3 J: P2 T% c
cleos create account eosio eosio.token ${publicKey} ${publicKey}
% I! B' s, d; z7 O" p//部署eosio.token,发布代币
* e) }. [- L1 s3 A7 T+ k- W# z; c2 n8 jcleos set contract eosio.token ../../contracts/eosio.token/" {+ n6 C' H- V: Q9 y3 u
cleos push action eosio.token create '["eosio","1000000000.0000 EOS",0,0,0]' -p eosio.token
5 i, X& M3 O0 u/ dcleos push action eosio.token issue '["eosio","1000000000.0000 EOS","issue"]' -p eosio
( w( k, t+ j' O//部署eosio.system,报错如下,要保证开头注明的四个账号已经创建
- [0 ?0 M& L" B) rcleos set contract eosio ../../contracts/eosio.system/ -p eosio9 D1 W$ z' k/ T$ X6 M+ }2 y: \
Reading WAST/WASM from ../../contracts/eosio.system/eosio.system.wasm...; x1 k/ c/ B! C1 t7 g
Using already assembled WASM...) I& T' Q( P5 K& V4 S0 U/ B
Publishing contract...
' v) y  {+ y4 K# i- I- ]Error 3080006: transaction took too long
4 S& ]/ J" h5 C6 Y( R: L6 O//注意
8 R/ Q  R" b8 d) N! r+ d9 U./eosio_build.sh -s "EOS"  购买资源的币种,要使用默认的币种,不写则为SYS
# r% y* e6 D  J4 T' P& D, F//创建交易账号
% O  e+ w+ n/ ]0 `' a4 o9 ]* C" m3 Icleos system newaccount --stake-net "10.0000 SYS" --stake-cpu "10.0000 SYS" --buy-ram-kbytes 3 eosio eosiotest EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV  EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
3 i  s; H8 |& T& }8 `& ^//查看账号信息,输出资源信息则为部署成功
3 [1 o3 Y; I& N7 x3 {) \4 S, fcleos get account eosiotest
9 U" C- _. F7 H9 D4 I* \  spermissions: & o3 }! j% `  `: S2 _1 H; B
     owner     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
' v5 X6 l( M+ w: Y        active     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
- ]# z4 X' @% N2 A$ Rmemory:
+ X. G! M( Z  o     quota:     2.973 KiB    used:     2.926 KiB  + z; Y( U4 {2 F3 ?0 z# g$ T0 _# e. t" f# T
net bandwidth:
/ K& d  E. i9 H. n     delegated:      10.0000 EOS           (total staked delegated to account from others)
/ Y& m7 G& s  z! x2 b4 F. J     used:                 0 bytes* o" p) m+ M$ i3 l- H: K: P
     available:        8.145 TiB  
$ O( N) j2 m4 t$ |4 Q     limit:            8.145 TiB  ; ~9 Z8 i  q3 |8 l: x
cpu bandwidth:
* A8 j  b, I3 y# @! G5 O5 j0 Z     delegated:      10.0000 EOS           (total staked delegated to account from others)
0 f4 E" o. \2 O; L     used:                 0 us   
6 p. v0 v5 v' P. P) o5 f     available:        473.5 hr   
+ O  }( I" x6 L# O0 L; Q     limit:            473.5 hr
- {+ i5 b2 e. s. a, M9 ~     " Z7 E0 y3 J$ z. y/ O# k
//给账号转账
; Z: I- S' P, f# e) |5 ~cleos push action eosio.token transfer '["eosio","eosiotest","100.0000 SYS",""]' -p eosio4 ?: ~% A9 h) s6 W
//再将eosiotest转账到eosio,验证资源是否减少
: I6 b( p! `. |; k$ U' ?: }cleos push action eosio.token transfer '["eosiotest","eosio","100.0000 SYS",""]' -p eosio
4 f8 P0 B6 i  v- Z- U//再次查看账号信息,发现资源变少
/ ~- `" _& ?9 ]; j# mcleos get account eosiotest5 V1 Q# |" ^$ K* L7 T
问题汇总
) s: e! {0 }5 e* k4 o" LQ:部署合约报错:unable to find key
; r9 j' Q! ~" ?, z  R2 {  f" uA:4.0以后默认系统币名字是SYS,所以需要发布的代币修改成SYS,或者修改eosio_build.sh脚本中默认名称,重新进行编译(参考下图)
( i8 ~) q* }  i8 S( d0 g5 R- F; [) Y1 b0 P; ?. m
Q:transaction took too long
3 c3 u) ^# v7 W' Z9 DA:nodeos程序启动时添加max-transaction-time或者修改config.ini对应属性,重新启动nodeos
6 G  F1 c1 a/ ]) j4 T) O/ @2 Y1 xQ:to account does not exist
. @8 B/ j: Z4 i: N# N3 YA:在部署system合约之前,必须创建三个账号eosio.ram,eosio.ramfee,eosio.stake
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

放弃六月们 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    8