EOS基础全家桶(一)开篇

简介

那么首先我们在开始学习EOS之前,需要先了解一下EOS开发所需的预备知识和环境。

EOS开发准备

EOSIO的开发,你最好具有以下经验:

C/C++的开发经验

Linux/Mac的使用经验

命令行的使用经验,最好是bash命令的

在开始前,我们需要准备运行环境,目前EOSIO还不支持Windows环境,所以如果我们要使用Windows来进行开发或者测试时,只能通过虚拟技术运行Linux或者Mac环境。

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

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

Centos7

Fedora25andhigher(Fedora27recommed)

Mint18

()

()

C/C++

因为EOS是使用c编写,并且智能合约也使用c编写,所以你会需要掌握一定的c的编程基础,如果你不打算深入了解EOS源码,只是为了能看懂或能编写智能合约,那你需要了解基本的c的文件结构、基本数据类型、引用和指针还有就是multi-index和面向对象的基本编程。有一定英语基础的朋友可以考虑直接观看这本电子书LearnEOS-c/c++教程英文版,这个文章是ChristophMichel写的EOS开发的书的C++样章,如果喜欢改内容,请购买书籍。LearnEOS书籍官网

Docker

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

Docker安装

可视化Docker程序有两个版本,早先的Windows/Mac系统支持的是DockerToolbox,Win10、后支持新的DockerDesktop。

具体安装步骤我这里就不做展示和说明了,如果大家对于这块儿有问题的话欢迎留言,我会提供指导和帮助。

Docker基本使用

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

推荐Docker学习博客。

Images-镜像

镜像更像是系统快照,可方便的在任意时刻由镜像来创建容器。Docker自身提供了DockerHub,用于管理公共镜像,我们可以搜索所需的镜像,也可以上传自己的镜像。国内在访问Docker官方的镜像库时可能存在网络延迟甚至无法连接,导致镜像无法拉取,所以在国内我们需要配置国内的Docker镜像加速器。

国内镜像地址

下面我会具体说明如何配置国内镜像,我以docker-cn的地址为例。

Windows/Mac

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

docker-machinecreate--engine-registry-mirror=

查看机器的环境配置,并配置到本地,并通过Docker客户端访问Docker服务。

docker-machineenvdefaulteval"$(docker-machineenvdefault)"dockerinfo

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

{"registry-mirrors":[""]}

CentOS/Ubuntu

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

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

sudomkdir-p/etc/dockersudotee/etc/docker/'EOF'{"registry-mirrors":[""]}EOFsudosystemctldaemon-reloadsudosystemctlrestartdocker
搜索镜像

如果你正在找eosio的镜像,那么你可以在dockerhub上进行搜索。

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

dockersearcheosio

拉取镜像

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

dockerpulleosio/eos-dev@lastest

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

其他一些镜像命令
removedockerrmi-feosio/eos-dev
Container-容器

创建容器

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

dockerruneosio/eos

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

dockerrun--rm--nameeosio-d\-p8888:8888-p9876: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-peosio--plugineosio::wallet_api_plugin--plugineosio::wallet_plugin--plugineosio::producer_plugin--plugineosio::history_plugin--plugineosio::chain_api_plugin--plugineosio::history_api_plugin--plugineosio::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开发环境的节点容器。

–rm选项是说明该容器在停止后就会立即删除,此处使用是为了进行eos节点数据的恢复,所以是一次性的

–name容器名称

-d后台运行,即不会在当前命令行的会话中执行

-p端口映射,将容器内端口映射到外层环境中,可多次使用

-v挂载,将外层环境的目录挂载到容器中,可多次使用

删除容器

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

dockerrmeosio

启动/停止/重启容器

停止dockerstopeosio#重启dockerrestarteosio

查看容器列表

dockerps

如果需要查看所有容器,包括已停止的,可以带上-a参数。

执行命令

使用以下命令,可以进入eosio中调起bash,并等待输入。

dockerexec-iteosio/bin/bash
Log

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

dockerlogs--tail100eosio

版权声明:本站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请举报,一经查实,本站将立刻删除。

相关推荐