Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

私链eosio.system合约部署

放弃六月们
95 0 0
eosio.system合约部署
- n" ^- R3 T1 }eos版本:v1.0.5; ^9 W( m; b$ x2 l6 D$ j5 ]
操作系统:centos 77 f. S2 a8 L; }4 }
环境:私有链2 o: v% g" R( M7 d
目的& }0 S/ C' K0 Z5 T- |
由于正式链的ram,net带宽,cpu带宽太宝贵,对于测试的同学建议先在私链上进行测试,避免浪费EOS币。
3 t1 h/ G- d2 {' a  c部署! {. B( ^* X! T8 N6 l
部署是以私有链并且没有创建任何账号和合约为例,如果已经创建账号和部署智能合约,请对号入座跳着看。
' H3 \7 {( }" I8 J! D. ]1 ~3 D( @! p1 c! D
//重复1,2创建必备账号) w5 e6 _0 d( i1 ]& L3 \( N( p3 Z
//eosio.token* Q: P/ O( l6 e, I' L& a0 w  M! `
//eosio.system
9 M9 k: b& B( ^9 P5 V: N" k7 u//eosio.ram
% N# {( W& _7 J7 L" Q% K! f" j//eosio.ramfee5 j9 Y6 m$ s* k0 _1 D" A
//eosio.stake
  u3 b( Z: ?/ L) I3 w* X//默认在代码根目录下执行
' q; |% m# `' ]; I$ X1 {( @( p//1.创建密钥对7 @* j, D. Y: L+ r
cleos create key# r0 c. V0 j, Z/ J& M3 N
Private key: 5KKibeZ9KX2bR3MZQnTRVx5aGgpGqtsuitkr21FkpwRERuRk4Ym& t, x8 [0 }4 u! u, }! e7 z
Public key: EOS7d1YqzyP52FBkfmyu5pLVPpKjWZ4Ld3DZg8997eFLLZWLb7QUL/ x0 K  t' U( m2 W# A1 D3 _; p
//2.创建账号7 a9 `, n9 V6 f* Y
cleos create account eosio eosio.token ${publicKey} ${publicKey}; G  G* P1 {& B" q0 R! K( e
//部署eosio.token,发布代币; x3 n; s% Z& {( C: Q4 Z
cleos set contract eosio.token ../../contracts/eosio.token/
( [: }# c5 c3 s0 ?* Hcleos push action eosio.token create '["eosio","1000000000.0000 EOS",0,0,0]' -p eosio.token
& X9 T" P' j" _2 r7 dcleos push action eosio.token issue '["eosio","1000000000.0000 EOS","issue"]' -p eosio" X/ L9 L5 O( A) s3 D* r! J1 m
//部署eosio.system,报错如下,要保证开头注明的四个账号已经创建
" X- ?$ e4 L5 P  |) m) _4 y% xcleos set contract eosio ../../contracts/eosio.system/ -p eosio
3 @! Y3 o9 b! JReading WAST/WASM from ../../contracts/eosio.system/eosio.system.wasm...
; ~) E; k% b8 r  M0 e. GUsing already assembled WASM...8 S& A. j* w% l
Publishing contract...
' Y$ E$ o$ \8 d" S. PError 3080006: transaction took too long( n2 y5 D4 h! K2 f2 X# p: A! a9 X
//注意
/ W* W) M: x, h0 [! ]./eosio_build.sh -s "EOS"  购买资源的币种,要使用默认的币种,不写则为SYS
: T" n6 \& m6 G6 m3 d: u5 A& D1 v//创建交易账号
6 Z+ o, B. G$ o5 g9 ?5 }: n/ vcleos system newaccount --stake-net "10.0000 SYS" --stake-cpu "10.0000 SYS" --buy-ram-kbytes 3 eosio eosiotest EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV  EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
( Z8 T- a* C$ T2 ]3 s//查看账号信息,输出资源信息则为部署成功
( b' W$ t* _/ U  V$ j, K( ocleos get account eosiotest0 m2 R' M% _& R8 ?( H
permissions: ! C. I, C1 R. l) F' C$ z& ^" O
     owner     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
* }; d, R! J/ J" j' H( u        active     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
4 ~! i0 r5 B5 y) I9 Rmemory: ! l! D2 Y7 [# ?4 v
     quota:     2.973 KiB    used:     2.926 KiB  4 H1 e! {. Z' \6 r* F
net bandwidth: & s* N/ X! Z; p2 z
     delegated:      10.0000 EOS           (total staked delegated to account from others), f2 g) w0 {9 Y* k! }% @0 {/ \
     used:                 0 bytes
% }6 I6 d$ S3 F% X, m     available:        8.145 TiB  
) ]3 z2 U) g( J     limit:            8.145 TiB  7 i8 O( [1 s- \' K
cpu bandwidth:
: u6 Z$ ?7 A% {. V5 r     delegated:      10.0000 EOS           (total staked delegated to account from others)
; E- n1 M1 q( F5 [     used:                 0 us   
+ a  v8 P! `( P% w0 C# Q     available:        473.5 hr   * F* H1 V  y* q, w
     limit:            473.5 hr$ j4 Q6 A; s6 m$ Y4 h
     2 t0 w" B4 M1 N+ W& n" J+ J
//给账号转账. @+ V9 N/ x: V. `' k3 K( e& F8 P* j
cleos push action eosio.token transfer '["eosio","eosiotest","100.0000 SYS",""]' -p eosio
/ S: A, S5 {3 Q$ O' p; r//再将eosiotest转账到eosio,验证资源是否减少3 F: A, Q, Q/ o$ k/ r
cleos push action eosio.token transfer '["eosiotest","eosio","100.0000 SYS",""]' -p eosio
) M; s, v! Q- o  p9 Z//再次查看账号信息,发现资源变少( |! _5 q4 A, T. ~4 H' N2 q" g
cleos get account eosiotest
( Z$ S0 e; t) ?$ ]1 T4 c$ s问题汇总1 ]" ]* q8 W& H) ^8 F
Q:部署合约报错:unable to find key  R# A1 O- t# M4 p+ @' ?, @
A:4.0以后默认系统币名字是SYS,所以需要发布的代币修改成SYS,或者修改eosio_build.sh脚本中默认名称,重新进行编译(参考下图)1 O* m( i7 Z0 b2 J1 w$ z' a

; u5 Q& ^# E; e( h6 FQ:transaction took too long3 \, x* b( m/ H/ H
A:nodeos程序启动时添加max-transaction-time或者修改config.ini对应属性,重新启动nodeos
8 F3 E. O% H! G+ z* C* sQ:to account does not exist
. ?) O, ]- R. pA:在部署system合约之前,必须创建三个账号eosio.ram,eosio.ramfee,eosio.stake
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

放弃六月们 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    8