EOS基础全家桶(一)开篇

简介

从今天最先我会在FishoPark上与人人分享EOS的一些手艺履历和基础,若是人人在看文章的历程中有任何问题,迎接在网站下方的谈论里留言,我会全力为人人解答,若是发现我内容中所写有错,迎接指正,谢谢。

那么首先我们在最先学习EOS之前,需要先领会一下EOS开发所需的准备知识和环境。

EOS开发准备

EOSIO的开发,你最好具有以下履历:

  • C/C++的开发履历
  • Linux/Mac的使用履历
  • 下令行的使用履历,最好是bash下令的

在最先前,我们需要准备运行环境,现在EOSIO还不支持Windows环境,以是若是我们要使用Windows来举行开发或者测试时,只能通过虚拟手艺运行Linux或者Mac环境。

若是你还没有安装虚拟机,那么我建议你直接安装docker,在docker中运行linux系统容器甚至EOSIO的容器会是一个不错的选择。若是你使用的是Win10系统的话,你需要下载Docker Desktop,这是docker的桌面版,Win10系统将只支持这一种安装方式。更多docker的内容,请阅读Docker专栏(后续更新)。

若是你使用的是以下系统,那么可以直接进入下一章节:

  • Amazon 2017.09 and higher
  • Centos 7
  • Fedora 25 and higher (Fedora 27 recommended)
  • Mint 18
  • Ubuntu 16.04 (Ubuntu 16.10 recommended)
  • Ubuntu 18.04
  • MacOS Darwin 10.12 and higher (MacOS 10.13.x recommended)

C/C++

由于EOS是使用c编写,而且智能合约也使用c编写,以是你会需要掌握一定的c的编程基础,若是你不计划深入领会EOS源码,只是为了能看懂或能编写智能合约,那你需要领会基本的c的文件结构、基本数据类型、引用和指针另有就是multi-index和面向对象的基本编程。有一定英语基础的同伙可以思量直接旁观这本电子书Learn EOS – c/c++ 教程英文版
这个文章是Christoph Michel写的EOS开发的书的C++样章,若是喜欢改内容,请购置书籍。LearnEOS书籍官网

Docker

对于没有Mac或者Linux环境的同伙,就需要安装Docker了,固然,Docker自己提供了与运行系统很好的系统环境隔离,也可作为开发中的辅助,在EOS节点章节和智能合约章节我会更近一步展示使用Docker能为我们带来的便利。

Docker安装

可视化Docker程序有两个版本,早先的Windows/Mac系统支持的是Docker Toolbox, Win10、macOS Sierra 10.12后支持新的Docker Desktop

详细安装步骤我这里就不做展示和说明晰,若是人人对于这块儿有问题的话迎接留言,我会提供指导和辅助。

Docker基本使用

Docker自己也是虚拟手艺的一种,只是在虚拟机上抽象出来的一层,将底层共享,隔离出上层。相比于虚拟机,资源占用更少,更轻量,构建容器也更容易,也更适合用于隔离环境下,被大量用于微服务架构和SaaS(Software-as-a-Service)的设计架构中。

推荐Docker学习博客

EOS基础全家桶(一)开篇

Images-镜像

镜像更像是系统快照,可利便的在随便时刻由镜像来建立容器。Docker自身提供了Docker Hub,用于治理公共镜像,我们可以搜索所需的镜像,也可以上传自己的镜像。
海内在接见Docker官方的镜像库时可能存在网络延迟甚至无法毗邻,导致镜像无法拉取,以是在海内我们需要设置海内的Docker镜像加速器。

海内镜像地址

docker-cn加速器地址 https://registry.docker-cn.com
网易加速器地址 http://hub-mirror.c.163.com
Docker中国区官方镜像https://registry.docker-cn.com
ustc https://docker.mirrors.ustc.edu.cn
中国科技大学https://docker.mirrors.ustc.edu.cn
阿里云容器服务,通过建立地址首页点击“建立我的容器镜像”,获得一个专属的镜像加速地址,类似于https://1234abcd.mirror.aliyuncs.com

下面我会详细说明若何设置海内镜像,我以docker-cn的地址为例。

  • Windows/Mac

针对安装了Docker Toolbox的用户,您可以参考以下设置步骤:
建立一台安装有Docker环境的Linux虚拟机,指定机械名称为default,同时设置Docker加速器地址。

docker-machine create --engine-registry-mirror=https://registry.docker-cn.com -d virtualbox default

查看机械的环境设置,并设置到内陆,并通过Docker客户端接见Docker服务。

两个奇技淫巧,将 Docker 镜像体积减小 99%

docker-machine env default
eval "$(docker-machine env default)"
docker info

针对安装了Docker for Windows的用户,您可以参考以下设置步骤:
在系统右下角托盘图标内右键菜单选择 Settings,打开设置窗口后左侧导航菜单选择 Docker Daemon。编辑窗口内的JSON串,填写下方加速器地址:

{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}

编辑完成后点击 Apply 保留按钮,守候Docker重启并应用设置的镜像加速器。

  • CentOS/Ubuntu

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon设置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
搜索镜像

若是你正在找eosio的镜像,那么你可以在docker hub上举行搜索。

EOS基础全家桶(一)开篇

或者你也可以通过下令来搜索。

docker search eosio

EOS基础全家桶(一)开篇

拉取镜像

拉取镜像时,需要指出拉取的tag,相当于版本号,默认是latest。

docker pull eosio/eos-dev@lastest

@latest是指出拉取tag,若是是latest,可缺省。而镜像有哪些tag,可在docker hub的网站上查询到。

EOS基础全家桶(一)开篇

其他一些镜像下令
#list
docker images

#remove
docker rmi -f eosio/eos-dev

Container-容器

  • 建立容器

以下是最基本的用法,直接就在当前会话中运行并输出。

docker run eosio/eos

docker的容器其实有许多功效,我们先看下面这个下令:

docker run --rm --name eosio -d \
-p 8888:8888 -p 9876:9876 \
-v /tmp/work:/work -v /tmp/eosio/data:/mnt/dev/data \
-v /tmp/eosio/config:/mnt/dev/config \
eosio/eos-dev  \
/bin/bash -c "nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::wallet_plugin --plugin eosio::producer_plugin --plugin eosio::history_plugin --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --plugin eosio::http_plugin -d /mnt/dev/data --config-dir /mnt/dev/config --http-server-address=0.0.0.0:8888 --access-control-allow-origin=* --contracts-console  --hard-replay"

这个指令是建立一个eosio开发环境的节点容器。

  1. –rm 选项是说明该容器在住手后就会立刻删除,此处使用是为了举行eos节点数据的恢复,以是是一次性的
  2. –name 容器名称
  3. -d 后台运行,即不会在当前下令行的会话中执行
  4. -p 端口映射,将容器内端口映射到外层环境中,可多次使用
  5. -v 挂载,将外层环境的目录挂载到容器中,可多次使用
  • 删除容器

若是容器已命名,可以直接通过名称删除,否则只能通过容器id删除。

docker rm eosio
  • 启动/住手/重启容器
#启动
docker start eosio
#住手
docker stop eosio
#重启
docker restart eosio
  • 查看容器列表
docker ps

若是需要查看所有容器,包罗已住手的,可以带上-a参数。

  • 执行下令

使用以下下令,可以进入eosio中调起bash,并守候输入。

docker exec -it eosio /bin/bash

Log

以下下令是输出eosio容器的最后100行控制台内容。

docker logs --tail 100 eosio

原文链接

原创文章,作者:28x0新闻网,如若转载,请注明出处:https://www.28x0.com/archives/2452.html