Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

私链eosio.system合约部署

放弃六月们
151 0 0
eosio.system合约部署
. E9 P* f, `5 H- |4 w' Weos版本:v1.0.53 G+ l0 k0 b- K% H' |
操作系统:centos 7- z' i0 O- J3 s# J, E8 [& s
环境:私有链0 H# N# D9 z- M$ k
目的
( T7 D. l0 A, Z) q# {/ T$ i3 R由于正式链的ram,net带宽,cpu带宽太宝贵,对于测试的同学建议先在私链上进行测试,避免浪费EOS币。+ j6 C% W" g& e
部署5 |8 _4 c  W8 ]1 h' g. v" u3 Z( g
部署是以私有链并且没有创建任何账号和合约为例,如果已经创建账号和部署智能合约,请对号入座跳着看。
" `, w0 E$ O9 w8 S6 E3 Q/ {4 A. D; |! e; n( Z0 s* R
//重复1,2创建必备账号2 X- o4 U2 L( r& k' y
//eosio.token1 r* G  {/ {& j- ]! h1 L. m6 D+ ~( X
//eosio.system- i. e! C7 I. {) I& S* E6 A2 b
//eosio.ram
! a  }4 ^; Q* E% Z/ h" t+ \//eosio.ramfee$ R6 q8 a5 s$ O
//eosio.stake
* C& R7 j. c7 \' ]/ D//默认在代码根目录下执行# M1 u5 ~! X  H% l+ Q
//1.创建密钥对7 }( X* D9 \" E5 w& e
cleos create key
7 A( I8 i# h; A% b3 l" P: Z5 TPrivate key: 5KKibeZ9KX2bR3MZQnTRVx5aGgpGqtsuitkr21FkpwRERuRk4Ym
* T4 B1 t: Y- z* l) }! rPublic key: EOS7d1YqzyP52FBkfmyu5pLVPpKjWZ4Ld3DZg8997eFLLZWLb7QUL
+ A0 Z3 f! u" g//2.创建账号7 [2 D2 `9 {2 d% y) N( v
cleos create account eosio eosio.token ${publicKey} ${publicKey}
* u/ p4 X5 K6 Y//部署eosio.token,发布代币2 b( z( j: G6 m4 k. ^
cleos set contract eosio.token ../../contracts/eosio.token/
3 U  ?( \6 b/ Q5 H- fcleos push action eosio.token create '["eosio","1000000000.0000 EOS",0,0,0]' -p eosio.token& T* m. h& A* v- _! v( m/ G# C
cleos push action eosio.token issue '["eosio","1000000000.0000 EOS","issue"]' -p eosio
1 J5 E2 ]& g! K5 y# J- U//部署eosio.system,报错如下,要保证开头注明的四个账号已经创建" P# J4 Y0 a& C! t
cleos set contract eosio ../../contracts/eosio.system/ -p eosio
5 W; \+ b% \5 ^4 H& @4 {5 bReading WAST/WASM from ../../contracts/eosio.system/eosio.system.wasm...
* b7 \  ^) p6 ?7 |) _Using already assembled WASM...7 O1 J- u6 W2 D& m( c, @2 z
Publishing contract...9 n5 u& x( w( W. T/ `
Error 3080006: transaction took too long0 e/ E; G/ z' m7 l. b' p$ h# ~1 \
//注意
) G) G" U  f. V8 j+ v1 r8 K./eosio_build.sh -s "EOS"  购买资源的币种,要使用默认的币种,不写则为SYS& ^3 }6 s6 D, E  L% f% P
//创建交易账号
3 q4 u8 m: g5 s# _6 p1 S8 }4 xcleos system newaccount --stake-net "10.0000 SYS" --stake-cpu "10.0000 SYS" --buy-ram-kbytes 3 eosio eosiotest EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV  EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV : |1 n6 X- h/ E; d& E
//查看账号信息,输出资源信息则为部署成功
) A8 m, b- K  x0 ?2 Y1 Ncleos get account eosiotest/ K# x. X" G4 Q( {) h+ S
permissions:
' j$ w6 S; @; n& E( B     owner     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
2 v/ _% z9 K7 O9 T' J        active     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV9 _: L, M0 p/ V9 F
memory: 1 @) p! S7 S4 U0 y% y0 |
     quota:     2.973 KiB    used:     2.926 KiB  
6 c$ ]4 E) Z9 _7 Bnet bandwidth: 3 `. O; ^( M7 H  U2 O: g" N* F
     delegated:      10.0000 EOS           (total staked delegated to account from others). n9 v3 v  M- V, A" z% @
     used:                 0 bytes& \1 }. X( v/ o. q7 k3 C
     available:        8.145 TiB  8 }( X% ?% G+ X1 t6 ~$ ~( t% b4 M& U
     limit:            8.145 TiB  ! I- F4 _& s* Z! I0 w- x
cpu bandwidth:
- L9 I$ C( ~& d     delegated:      10.0000 EOS           (total staked delegated to account from others)
8 g; O" ^0 a, ^     used:                 0 us   % R7 J# _, x7 x/ z9 U7 U# n
     available:        473.5 hr   5 W  j$ @9 b8 h. ~# @4 S, i+ u
     limit:            473.5 hr
9 d! L# n1 u& Z* x: @$ _. n9 N     
* B0 d7 A9 o- F* S//给账号转账* f: B1 [' z* s  h2 L
cleos push action eosio.token transfer '["eosio","eosiotest","100.0000 SYS",""]' -p eosio
  D. W8 M- M0 t% j. I//再将eosiotest转账到eosio,验证资源是否减少
1 u3 q6 c) O0 T' p! J2 ycleos push action eosio.token transfer '["eosiotest","eosio","100.0000 SYS",""]' -p eosio
) P$ _7 k8 A% [+ v  E//再次查看账号信息,发现资源变少0 Q$ G4 v" e2 e$ t
cleos get account eosiotest
7 _! V8 U' u; P: T( h+ O问题汇总9 P: b, p1 Y" e  x' p1 {
Q:部署合约报错:unable to find key
/ d# w( _- W- x' _- D# OA:4.0以后默认系统币名字是SYS,所以需要发布的代币修改成SYS,或者修改eosio_build.sh脚本中默认名称,重新进行编译(参考下图)
8 S0 D4 M8 e8 i
8 N' Z, V5 i2 s$ s8 f1 L  PQ:transaction took too long
4 _  J* C6 ]3 R7 {7 sA:nodeos程序启动时添加max-transaction-time或者修改config.ini对应属性,重新启动nodeos8 K8 l5 J0 t- ^
Q:to account does not exist
! ^6 F0 n$ _3 n! s4 uA:在部署system合约之前,必须创建三个账号eosio.ram,eosio.ramfee,eosio.stake
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

放弃六月们 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    8