区块链100讲:EOS环境安装和智能合约部署实战

论坛 期权论坛 区块链     
宇宙永恒   2018-11-20 23:38   3504   0
            
image1硬件配置操作系统要求
1.Amazon 2017.09 and higher
2.Centos 7
3.Fedora 25 and higher (Fedora 27 recommended)
4. Mint 18
5. Ubuntu 16.04 LTS (Ubuntu 16.10 recommended)
6. Ubuntu 18.04 LTS7. MacOS Darwin 10.12 and higher (MacOS 10.13.x recommended)
系统需求
1.8G内存
2.20G空闲硬盘
这是官方给出的支持的操作系统,个人建议,尽量不要在windows安装linux虚拟机,会出现很多意想不到的C++安装包的问题。我用的mac版本是10.13.4。
2安装EOS环境克隆代码
  1. git clone https://github.com/EOSIO/eos --recursive
复制代码
如果克隆代码时,没加–recursive属性,克隆完之后,需要在命令行中cd到下载的eos目录,再次执行如下命令:
  1. git submodule update --init --recursive
复制代码
执行编译脚本
在命令行中进入到eos目录,执行编译脚本:
  1. ./eosio_build.sh
复制代码
大概需要10分钟,看网速情况了。编译完成后,出现如下所示log:

image请仔细看这里的error日志,提示build下面的hello.wast找不到,如果只有这个error,请忽略它(这是官方的bug,以前编译是没有的,而且,这个error也并不会影响后面的正常操作)
安装可执行脚本
cd build
sudo make install
这个安装速度会有点慢,我的是1小时左右。安装成功后,应该能看到如下所示log:
如果编译脚本或者安装可执行脚本时,出现部分安装包安装不了的情况,请重新执行命令,或者删除build目录,再次执行编译命令。如果这两种也都没法解决的,请留言给我,或者带着error日志移步到官方issue,目前来说,官方issue是解决问题最多的地方,百度和google并没有卵用。
3启动本地私有节点在控制台中任意目录执行如下命令
  1. nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --replay-blockchain --max-irreversible-block-age 1801
复制代码
启动成功后,会在本地产生区块,log如下:

image通过log分析,可以看到eosio root,也就是区块生成后的本地存放地点,以及ip,端口,还有一些RPC形式的API。cd到eosio root目录下:
  1. luoxiaohui:~ luoxiaohui$ cd /Users/luoxiaohui/Library/Application\ Support/eosio/luoxiaohui:eosio luoxiaohui$ lsnodeosluoxiaohui:eosio luoxiaohui$ open nodeos/
复制代码
可以看到如下目录:

image其中的config.ini,就是本地节点的配置文件了,里面有各个属性参数,这里不一一讲了,有想法的自己去改了玩玩。
开启keosd服务
另外打开一个命令行,执行如下命令:
keosd --http-server-address=127.0.0.1:8900
4使用cleos命令创建钱包/密钥对/账户/部署合约等创建钱包
  1. luoxiaohui:~ luoxiaohui$ cleos wallet createCreating wallet: defaultSave password to use in the future to unlock this wallet.Without password imported keys will not be retrievable."PW5J37EZS54NyQSugYtW6LQsERgUNB9xCpCiEpnauR9qzsJGcN8vQ"
复制代码
创建密钥对
  1. luoxiaohui:~ luoxiaohui$ cleos create keyPrivate key: 5JohgswbXLNLFukkLHe8Na5uPBDi7TZBTRTrkLgbfDqwo7ZCA4XPublic key: EOS6YnSB38qj7Z6ERet1rF6r4Z9azarPADMAGzrTCrCqjanw9fzXC
复制代码
创建账户
先强调下,我目前所在的EOS版本是1.0.5,EOS几乎每升级一个小的版本,都会有蛮大的改变。目前1.0.5的坑我是躺平了,后面如果还有升级,升级后执行cleos命令有bug,请第一时间拷贝error日志到官方issue去找答案。
目前,1.0.5版本去部署bios合约时,有了大的改版,在前面提到的config.ini文件中屏蔽掉private-key,并设置如下属性:
  1. signature-provider=EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
复制代码
然后,创建eos的账户需要用到密钥对中的公钥,而在使用cleos命令创建账户之前,需要将此公钥所对应的私钥导入到钱包中,才能创建账户,否则会报错。最最重要的,就是只有部署了合约的账号,才能去创建账号,具体命令如下:
[code]luoxiaohui:eos luoxiaohui$ cleos wallet createCreating wallet: defaultSave password to use in the future to unlock this wallet.Without password imported keys will not be retrievable."PW5Kjfs7MYmbFtN4dFKoNUh1nKMvYV3nvyMcnDpLW3ZbfH7P8VSzn"luoxiaohui:eosluoxiaohui$ cleos wallet import EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CVError 3010003: Invalid private keyPrivate key should be encoded in base58 WIFError Details:Invalid private key: EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CVluoxiaohui:eos luoxiaohui$ cleos wallet import 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3imported private key for: EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CVluoxiaohui:eos luoxiaohui$ cleos set contract eosio build/contracts/eosio.bios -p eosioReading WAST/WASM from build/contracts/eosio.bios/eosio.bios.wasm...Using already assembled WASM...Publishing contract...executed transaction: ce79d77c59edcafffea30cc94661785c07a89a576e8dc6448745f4812c09548b  3720 bytes  7414 us#         eosio
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:40
帖子:314
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP