Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

私链eosio.system合约部署

放弃六月们
106 0 0
eosio.system合约部署( h3 P. |! Y" w" Z* v! A. A' U
eos版本:v1.0.5/ w' b8 A1 M7 \5 L
操作系统:centos 7
2 Y" J/ k# d. {" l5 H- B环境:私有链0 a. J* U) d, H6 g/ f' d  ^/ `
目的
  S5 {8 y- J8 M# m- i由于正式链的ram,net带宽,cpu带宽太宝贵,对于测试的同学建议先在私链上进行测试,避免浪费EOS币。
& f6 T6 C5 {! ^/ l+ p) f) h2 B4 S, w部署
' z1 ~$ a6 c" E! F. V部署是以私有链并且没有创建任何账号和合约为例,如果已经创建账号和部署智能合约,请对号入座跳着看。7 ]# C" o/ B; m5 p: l, ]: s

9 y/ u/ v% V( T2 w' q//重复1,2创建必备账号
& A: t: Y9 S0 Z, Y3 b//eosio.token
& W  b& i" E; d; l. z//eosio.system
0 {) W0 B% O' y, w//eosio.ram4 `( F* h5 a, `: ?; [
//eosio.ramfee
( @4 B9 l5 Z& D/ x( u//eosio.stake9 u. _$ N' C" t% g( f6 P4 H
//默认在代码根目录下执行. V, J+ G7 K( s8 `0 G
//1.创建密钥对- s& s7 e! l4 X# Y
cleos create key/ d3 b' \: O# x3 n! w
Private key: 5KKibeZ9KX2bR3MZQnTRVx5aGgpGqtsuitkr21FkpwRERuRk4Ym
+ P1 E: G* k8 q, V3 [$ z, @5 tPublic key: EOS7d1YqzyP52FBkfmyu5pLVPpKjWZ4Ld3DZg8997eFLLZWLb7QUL, a5 Z. \# `" B4 t' j  x* [
//2.创建账号$ r! K: N- E) e8 f
cleos create account eosio eosio.token ${publicKey} ${publicKey}. r. ?: X! a3 @1 y9 q0 i
//部署eosio.token,发布代币# E5 ?0 |) a: z$ \7 P) L
cleos set contract eosio.token ../../contracts/eosio.token/
) X' {$ T3 V) o! M- J1 fcleos push action eosio.token create '["eosio","1000000000.0000 EOS",0,0,0]' -p eosio.token
% k9 y. c  Z: F4 I/ l, _cleos push action eosio.token issue '["eosio","1000000000.0000 EOS","issue"]' -p eosio
" {# M6 B5 q* x0 Y( @$ A& q: X//部署eosio.system,报错如下,要保证开头注明的四个账号已经创建; [% ^8 c  ~6 p3 h8 ~# }
cleos set contract eosio ../../contracts/eosio.system/ -p eosio. X) \* e6 f# _" D; U3 Q4 W$ y
Reading WAST/WASM from ../../contracts/eosio.system/eosio.system.wasm...1 F, R' x& r9 Z! a6 s; w
Using already assembled WASM...% ~, p- B& S6 X. l& r! q
Publishing contract...% U2 O4 I( l+ [" c
Error 3080006: transaction took too long* [6 d/ X0 R1 E2 D  M
//注意
) D! J) p+ p* C" t8 L0 G" O./eosio_build.sh -s "EOS"  购买资源的币种,要使用默认的币种,不写则为SYS6 t, D, w. Y% Q8 F4 Y
//创建交易账号
) D: a2 F# q( y! ecleos system newaccount --stake-net "10.0000 SYS" --stake-cpu "10.0000 SYS" --buy-ram-kbytes 3 eosio eosiotest EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV  EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
! j% _4 d8 K8 i5 R* n, ^1 d6 z//查看账号信息,输出资源信息则为部署成功$ p/ }$ W; i: ?( C, n
cleos get account eosiotest+ a8 T. w0 k/ o5 v# O5 E) y. x
permissions:   D0 q4 A5 o% N" A" }
     owner     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV4 ?0 }$ A6 E# P  W( U3 ^1 w+ v
        active     1:    1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV9 ^$ J* b4 U$ z' q
memory:
0 e- ?9 U8 M2 d5 f     quota:     2.973 KiB    used:     2.926 KiB  ) G+ f: {  s# C$ J6 z8 B, a- P
net bandwidth:
6 W$ H8 `# u2 v     delegated:      10.0000 EOS           (total staked delegated to account from others)
# O7 v; i# N! ^0 s( E6 o# d, h2 E     used:                 0 bytes
) H1 |* f4 _& q) S     available:        8.145 TiB  6 i3 a8 D4 E" e5 T1 x. d4 s
     limit:            8.145 TiB  
% |: [& B% Q) L* w; {* Ecpu bandwidth:& t! [5 l6 ?, ~& L  a+ a
     delegated:      10.0000 EOS           (total staked delegated to account from others)
) m# }" q. {8 M6 ~) v4 u/ f     used:                 0 us   9 O5 m3 C1 V3 R
     available:        473.5 hr     i' m$ A8 d, ]
     limit:            473.5 hr% x, J$ h. }5 n
     
4 ]+ g4 {, l9 b- r! e2 H//给账号转账) b) F& |  d( F( Z  x1 n
cleos push action eosio.token transfer '["eosio","eosiotest","100.0000 SYS",""]' -p eosio
( T0 P8 q0 @. V5 }" A//再将eosiotest转账到eosio,验证资源是否减少. `* f/ i9 e, \7 T6 D
cleos push action eosio.token transfer '["eosiotest","eosio","100.0000 SYS",""]' -p eosio7 Z- C) C3 y) L6 j3 Y& E9 l. m$ Z
//再次查看账号信息,发现资源变少
, l. u- ^+ E1 q: X9 c$ M5 ~cleos get account eosiotest# y) ]& D2 x3 U, w  r% e
问题汇总
+ l/ M' e, ?& A) V3 v# [  HQ:部署合约报错:unable to find key
) W- z! Z) i, A# ?1 r- p, g; CA:4.0以后默认系统币名字是SYS,所以需要发布的代币修改成SYS,或者修改eosio_build.sh脚本中默认名称,重新进行编译(参考下图)- n& [0 {( Q$ V: j' i# r0 j

  z; k6 i5 y/ K" w+ c# CQ:transaction took too long
* F4 d* i1 P. t  ^: p" `! ]3 NA:nodeos程序启动时添加max-transaction-time或者修改config.ini对应属性,重新启动nodeos. c/ ~/ v7 z9 k. T
Q:to account does not exist+ k1 G# N0 q- X7 m  U5 B
A:在部署system合约之前,必须创建三个账号eosio.ram,eosio.ramfee,eosio.stake
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

放弃六月们 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    8