Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

私链eosio.system合约部署

放弃六月们
156 0 0
eosio.system合约部署9 }6 Y8 g+ {+ p6 Y5 U8 [. {
eos版本:v1.0.5$ E' _$ v5 ?: O( R0 \8 P
操作系统:centos 7
6 I) \+ I) S; q8 V( N: x) q( u环境:私有链
. ^5 [8 u3 T! i* t4 p目的
/ [' b% v0 E+ @/ T' c2 f由于正式链的ram,net带宽,cpu带宽太宝贵,对于测试的同学建议先在私链上进行测试,避免浪费EOS币。9 c& x' E. W' Q- I
部署
$ U0 F. m; Z3 x# e9 h0 O  C. j% D部署是以私有链并且没有创建任何账号和合约为例,如果已经创建账号和部署智能合约,请对号入座跳着看。% M+ _3 n4 w: q# @9 ?4 b
6 ~, d1 T' B. I" a
//重复1,2创建必备账号$ x! Z0 ]& P4 Z- G/ N3 M8 u9 l$ {
//eosio.token6 Y* F2 G& V8 e$ \
//eosio.system
7 b0 a& M3 b& e  `6 f0 c//eosio.ram2 F6 o0 M* }1 w' e0 m
//eosio.ramfee
! I1 W$ `# W  l, m//eosio.stake
" d% f& A, L% Q5 m1 a* p  F, ]//默认在代码根目录下执行
5 b2 v* z2 t/ Y0 B5 O$ X8 r//1.创建密钥对
) {: X* ^+ p# L% o/ P6 Q5 q" `/ y4 Vcleos create key7 M' I0 X! b+ k* ?% _
Private key: 5KKibeZ9KX2bR3MZQnTRVx5aGgpGqtsuitkr21FkpwRERuRk4Ym8 D& D" B' _; V+ ?' m% D
Public key: EOS7d1YqzyP52FBkfmyu5pLVPpKjWZ4Ld3DZg8997eFLLZWLb7QUL
" ^$ m- H$ e  s6 X( P2 F, D/ ~9 X6 G//2.创建账号
0 P5 V& s8 F- \4 ^; ~/ a  z. W9 ncleos create account eosio eosio.token ${publicKey} ${publicKey}! I; Z' ]6 c$ l
//部署eosio.token,发布代币
  i- p/ _8 R) x* G$ ocleos set contract eosio.token ../../contracts/eosio.token/
* m2 v: y4 c4 f/ Y8 O8 ]cleos push action eosio.token create '["eosio","1000000000.0000 EOS",0,0,0]' -p eosio.token+ V& f" F, B, u" e6 t5 ~# Z- h1 g2 F
cleos push action eosio.token issue '["eosio","1000000000.0000 EOS","issue"]' -p eosio6 Q5 n( p7 R+ `; C% Z
//部署eosio.system,报错如下,要保证开头注明的四个账号已经创建; R* W. F9 K9 e: [0 i  C2 R+ }) c
cleos set contract eosio ../../contracts/eosio.system/ -p eosio
2 {. X# I# V# T+ B0 D# v" \" XReading WAST/WASM from ../../contracts/eosio.system/eosio.system.wasm...' p$ b7 C2 ~6 y7 @- d5 G6 r
Using already assembled WASM...
4 @/ X( |/ T# M6 I4 \2 oPublishing contract...
8 q7 A  W6 u' r# UError 3080006: transaction took too long  i9 y2 n3 y+ D) v( K
//注意0 e  N0 Z0 p/ A. t6 C: R8 z- L
./eosio_build.sh -s "EOS"  购买资源的币种,要使用默认的币种,不写则为SYS
2 g/ W9 @5 s( F, m//创建交易账号
  M% k* C+ J3 \6 g# ]cleos system newaccount --stake-net "10.0000 SYS" --stake-cpu "10.0000 SYS" --buy-ram-kbytes 3 eosio eosiotest EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV  EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
6 {  U, W1 A; S//查看账号信息,输出资源信息则为部署成功9 M8 p, \" G, z/ P  [* n
cleos get account eosiotest
+ D1 m/ g. [  Ipermissions: . N2 l/ X: d! p
     owner     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
( z# X5 A4 Y% ?  v- W9 _        active     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
; [: S2 P( Z: X8 o6 m  {$ vmemory:
) z. `# O) O" T# S! u- ^     quota:     2.973 KiB    used:     2.926 KiB  . x9 z2 d; G! e: c5 p; ~- y& B
net bandwidth:
. b1 ]$ D7 a3 x4 e; ?$ x: l6 S     delegated:      10.0000 EOS           (total staked delegated to account from others)7 e4 H9 I, @2 D7 g' p. D. n3 o: x
     used:                 0 bytes
0 _4 Y8 o. C: T( D8 ]& K0 u     available:        8.145 TiB  
9 |* [+ b3 y/ v     limit:            8.145 TiB  
; k& {' {" I8 h, j. b/ A6 A9 }cpu bandwidth:
' A# ^, B' |/ A" m     delegated:      10.0000 EOS           (total staked delegated to account from others)
  U. E  o9 c$ }7 C     used:                 0 us   2 L1 E8 u9 x  y0 ], {9 @+ E
     available:        473.5 hr   1 t' ?7 h( a" K, U4 j2 {, c
     limit:            473.5 hr3 B" w* {# P' [0 q2 h: ?  _
     " U$ P3 K4 @3 R0 K' b: z1 ?+ e' K
//给账号转账
9 g  ?: K3 g. |$ s  K0 fcleos push action eosio.token transfer '["eosio","eosiotest","100.0000 SYS",""]' -p eosio7 I, w! E: S( V9 C. N1 r% u
//再将eosiotest转账到eosio,验证资源是否减少
& n1 h) I9 |* C" o9 g3 M. Ocleos push action eosio.token transfer '["eosiotest","eosio","100.0000 SYS",""]' -p eosio
  [+ p  Y+ u' j. H' h$ K! F7 {7 U//再次查看账号信息,发现资源变少- x. `! D; G+ O2 z5 F( c$ {
cleos get account eosiotest0 S) [% `5 d. [
问题汇总
$ B2 N2 y; s$ Z0 \1 X/ M+ E- yQ:部署合约报错:unable to find key) Z! {; r$ i5 K& T
A:4.0以后默认系统币名字是SYS,所以需要发布的代币修改成SYS,或者修改eosio_build.sh脚本中默认名称,重新进行编译(参考下图)- {) F8 X! e  R5 y1 z4 `
& G3 ]+ a% X3 C
Q:transaction took too long
+ c1 `0 Y+ C4 h( r6 n7 r5 eA:nodeos程序启动时添加max-transaction-time或者修改config.ini对应属性,重新启动nodeos
6 s2 ~7 q7 h+ K0 Y5 ~# ~Q:to account does not exist" p: l7 @7 E  I) G
A:在部署system合约之前,必须创建三个账号eosio.ram,eosio.ramfee,eosio.stake
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

放弃六月们 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    8