EOS小白学习(二)部署系统合约 EOS小白学习(一)从docker启动eos节点 EOS小白学习(三)创建一个EOS的账户

欢迎来到EOS小白学习系列,本系列会记录EOS学习过程中的一些操作和细节,大饼果子非C++出身,如有错误,欢迎指出

接上一篇:

EOS小白学习(一)从docker启动eos节点

我们已经用docker把EOS的节点启动起来了,现在我们要做的是对系统合约的部署,本篇会比较长,有一些概念会在之后的篇幅中慢慢介绍

1. 启动cleos命令

alias cleos='docker exec nodeos /opt/eosio/bin/cleos -u http://127.0.0.1:8888 --wallet-url http://127.0.0.1:8900' 

cleos是对接上一篇启动的nodeos的REST API的命令,暂且可以理解为可以对节点和钱包进行操作的命令,那么这个命令可以做什么呢?

让我们尝试cleos一下

说我们cleos的命令缺少subcommand,如果cleos命令格式不对,cleos命令会提示我们一些详细的内容,subcommand会在之后的系列中慢慢用到,我们先有个概念就好

2. 下面我们进行钱包的创建

相信很多人看了eosio的官网都熟悉这样一张图

简单的说,我们上一篇使用docker启动的节点其实包含了keosd和nodeos,这两个实现的功能分别是:

keosd:操作本地钱包,本地钱包的功能包括管理钱包账户,管理密钥对的存储等

nodeos:操作与链上数据的对接

而cleos就是对这两部分的调用

⚠️注意:

  相信很多人知道eos也是有账户(account)的,那么钱包账户与eos账户什么关系呢?答案是没有关系

  eos的账户是人类可读的格式,例如:eosio,eosio.token,dabingguozi1

  每个账户有一些密钥对来标明所属和访问权限,比如public key1 对应private key1

  wallet是用来帮助管理记忆这些密钥对的,比如我的default钱包中存着我的private key1和public key1,我不需要记住我的private key,只需要使用wallet来帮我记录就好,当然为了防止本地的wallet出问题,还是强烈建议大家备份自己的密钥对

啰嗦过后,开始创建wallet啦

cleos wallet create

结果如下

我们首先看到了 /opt/eosio/bin/keosd launched,也就是说cleos调用了钱包功能

之后我们看到了creating wallet: default,也就是说我们创建了一个名字叫做default的钱包,keosd可以创建很多钱包,如果没有指定名字,那么名字就是default

下面的一句提醒我们可以用以下密码来解锁钱包,什么意思呢?钱包的访问也是有密码的,如果钱包被锁,那么没有密码也是没有办法去拿到里面存放的私钥的

所以密码要存下来,就可以用下面的方式解锁了(我已经解锁过,所以会报错,如果钱包是锁的就不会报错)

那么私钥怎么存进钱包的嘞?我们来执行一下

cleos wallet import --private-key 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3 

这个私钥是测试环境eosio的固定私钥,,⚠️如果是生产环境,请使用自己的私钥

eosio是啥?eosio就是系统账户,系统账户能干啥?可以cleos get abi eosio看一下,具体信息以后的篇幅里会讲到

我们可以查看自己已经倒入的私钥

这个数据是一个列表,那么也就是说我们还可以导入很多私钥到钱包里进行管理

3. 我们现在要创建其他的一些系统账户了

cleos create account eosio eosio.system EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
cleos create account eosio eosio.bpay EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
cleos create account eosio eosio.msig EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
cleos create account eosio eosio.names EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
cleos create account eosio eosio.ram EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
cleos create account eosio eosio.ramfee EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
cleos create account eosio eosio.saving EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
cleos create account eosio eosio.stake EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
cleos create account eosio eosio.vpay EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
cleos create account eosio eosio.token EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV 

这些系统账户有些很容易从名字知道其作用,比如eosio.ramfee就是用来收取ram的费用的,一部分账户的作用会在之后的篇幅讲到

eos的账户都是可以部署合约的,比如eos的币也是一种合约,这个合约是由eosio.token部署的,那么下面我们就要部署一些基本合约

cleos set contract eosio contracts/eosio.bios -p eosio
cleos set contract eosio.token contracts/eosio.token -p eosio.token
cleos push action eosio.token create '["eosio", "52000000000.0000 SYS", 0, 0, 0]' -p eosio.token
cleos push action eosio.token issue '["eosio", "52000000000.0000 SYS", "test"]' -p eosio
cleos set contract eosio.msig contracts/eosio.msig -p eosio.msig
cleos set contract eosio contracts/eosio.system -p eosio
cleos push action eosio setpriv '["eosio.msig",1]' -p eosio
cleos system buyram eosio eosio "5200000 SYS"
cleos system delegatebw eosio eosio "520000 SYS" "520000 SYS"

这其中包括了部署合约,发行系统币等一系列操作,详细内容会在之后篇幅讲到,本篇希望大家有一个概念,EOS的思想就是一切皆合约

完成到了这里,就完成系统合约的部署,我们只是对系统做一些设定,producer的一些设置在这里先不会讲,毕竟是小白学习系列,在实践的过程加深对概念的理解

下一篇会本果子会带大家创建测试环境的账户,接下篇:

EOS小白学习(三)创建一个EOS的账户

ps. 大家可以cleos wallet以下,自己试试看钱包都可以做什么

猜你喜欢

转载自www.cnblogs.com/dabingguozi/p/9343049.html
今日推荐