Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

私链eosio.system合约部署

放弃六月们
114 0 0
eosio.system合约部署
6 M# J6 ]1 e' F# B8 _eos版本:v1.0.5& f% X  n  a$ }  j2 i1 @1 t$ R
操作系统:centos 7
" s* j+ b- M; i' ^- p9 c环境:私有链
1 S( V, [* f  c5 l目的
& e" x8 I2 q& J% ~由于正式链的ram,net带宽,cpu带宽太宝贵,对于测试的同学建议先在私链上进行测试,避免浪费EOS币。2 E; u( ]. g$ q7 Q" b7 i
部署* B4 x" j7 @, D, E5 F
部署是以私有链并且没有创建任何账号和合约为例,如果已经创建账号和部署智能合约,请对号入座跳着看。/ ]/ S! ^. ?- o* ~+ S) w# I. A
" `# _; T3 g$ E+ n( d9 t- v4 u
//重复1,2创建必备账号3 {2 N) G" e6 ~, s
//eosio.token
: S9 J! _" ?) T6 K9 e6 h3 O7 D//eosio.system
$ O! f3 T* V( N# O- R//eosio.ram
  i: y" I! [0 g4 X//eosio.ramfee
; i' u3 B* q- @* ^# n. T! N//eosio.stake$ v7 f6 s* h* X+ M: U* j& U" x
//默认在代码根目录下执行# q/ y" f( r5 K% S( M& U
//1.创建密钥对
( }+ ?  K. b. d; Z- gcleos create key' r1 V% {* @* I) u7 ]
Private key: 5KKibeZ9KX2bR3MZQnTRVx5aGgpGqtsuitkr21FkpwRERuRk4Ym
8 x1 g: A! C6 h# L) Q' W0 ePublic key: EOS7d1YqzyP52FBkfmyu5pLVPpKjWZ4Ld3DZg8997eFLLZWLb7QUL
( d  c2 ?8 k0 G& B9 V0 e//2.创建账号! m% b/ K/ B6 q& s5 `, J
cleos create account eosio eosio.token ${publicKey} ${publicKey}' l/ _6 J' Q5 V: ~0 w/ A$ q. R9 @& q
//部署eosio.token,发布代币
% Y  M8 f' Q- R( E# j" C$ acleos set contract eosio.token ../../contracts/eosio.token/
* P5 D  e7 u8 u# V8 `5 Kcleos push action eosio.token create '["eosio","1000000000.0000 EOS",0,0,0]' -p eosio.token7 y$ v# B8 u3 S
cleos push action eosio.token issue '["eosio","1000000000.0000 EOS","issue"]' -p eosio# e- ^# T5 p- F8 r; X( d" W0 o
//部署eosio.system,报错如下,要保证开头注明的四个账号已经创建3 b+ o; q+ F. i0 r% t
cleos set contract eosio ../../contracts/eosio.system/ -p eosio6 o  ]5 z: {+ P: P0 E% k: }
Reading WAST/WASM from ../../contracts/eosio.system/eosio.system.wasm...- F7 e. K. z4 Z8 S# O$ y
Using already assembled WASM...4 W8 ]6 J) M; a; T. O- s& I
Publishing contract...
% c! Y3 A' V9 k! d3 ?4 e* Y+ UError 3080006: transaction took too long9 J& C& W9 y/ M0 \% `9 f
//注意
& M' p2 c$ L( o./eosio_build.sh -s "EOS"  购买资源的币种,要使用默认的币种,不写则为SYS
- e: K1 x* a! g* x) A//创建交易账号
% Y1 W( b' z- s* d9 ~cleos system newaccount --stake-net "10.0000 SYS" --stake-cpu "10.0000 SYS" --buy-ram-kbytes 3 eosio eosiotest EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV  EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
4 [: c8 E8 p7 K//查看账号信息,输出资源信息则为部署成功! m5 t( a$ [  b$ h  z2 R
cleos get account eosiotest
& M' q" e+ a* U% P- h1 Wpermissions:
) f, w4 ]1 o6 Q) u  w+ h     owner     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
! D* v% r* Q6 k# A        active     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV* ]+ [0 j- @; m' ^: m
memory:
0 ?7 k4 Q# b  }: `. o0 p' _     quota:     2.973 KiB    used:     2.926 KiB  # J- @/ Z" F8 k' ^. q. Z
net bandwidth: 4 ]7 E# `" t. S$ o
     delegated:      10.0000 EOS           (total staked delegated to account from others)
0 I3 S1 D; ?* S" Q     used:                 0 bytes
1 `( t0 v# Y* o& A+ T     available:        8.145 TiB  5 E( X0 Q# `3 M6 R7 u3 ]
     limit:            8.145 TiB  . N( u; |2 a  a+ q
cpu bandwidth:
- d* [8 Z# O  x     delegated:      10.0000 EOS           (total staked delegated to account from others)& ]6 s5 U1 P6 p: {. e, R
     used:                 0 us   
$ T3 u+ J/ m. E/ T# C  U     available:        473.5 hr   8 ?6 ^$ |/ O" ]
     limit:            473.5 hr
) \$ t' Y0 B2 O& U; _! M     
6 ]5 ^" n$ W& K; E3 Y% ^, a//给账号转账
% l& t4 G$ S7 Dcleos push action eosio.token transfer '["eosio","eosiotest","100.0000 SYS",""]' -p eosio
& z8 f+ ~. ]3 u, c6 I1 f8 p& o//再将eosiotest转账到eosio,验证资源是否减少* M( i4 p+ ~) u
cleos push action eosio.token transfer '["eosiotest","eosio","100.0000 SYS",""]' -p eosio6 W3 g! \  S* }9 J2 f! c
//再次查看账号信息,发现资源变少# N; ?: l% [  F' _. k3 q4 s3 l  H
cleos get account eosiotest
) R; \& U: W& O( ^% J* p3 t问题汇总
- Z" Y/ U8 F- gQ:部署合约报错:unable to find key
# [- D6 Z" A, @3 WA:4.0以后默认系统币名字是SYS,所以需要发布的代币修改成SYS,或者修改eosio_build.sh脚本中默认名称,重新进行编译(参考下图)
! O/ ?9 M9 k4 y0 c- j* t5 ^$ i6 w' x# r
Q:transaction took too long6 g$ q9 b! J% ^8 e& T) z
A:nodeos程序启动时添加max-transaction-time或者修改config.ini对应属性,重新启动nodeos
" \( g# l# f2 S6 D* y7 wQ:to account does not exist" r3 d6 c9 L, G- `
A:在部署system合约之前,必须创建三个账号eosio.ram,eosio.ramfee,eosio.stake
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

放弃六月们 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    8