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学习博客。
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-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上进行搜索。
或者你也可以通过命令来搜索。
docker search eosio
拉取镜像
拉取镜像时,需要指出拉取的tag,相当于版本号,默认是latest。
docker pull eosio/eos-dev@lastest
@latest是指出拉取tag,如果是latest,可缺省。而镜像有哪些tag,可在docker hub的网站上查询到。
其他一些镜像命令
#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开发环境的节点容器。
- –rm 选项是说明该容器在停止后就会立即删除,此处使用是为了进行eos节点数据的恢复,所以是一次性的
- –name 容器名称
- -d 后台运行,即不会在当前命令行的会话中执行
- -p 端口映射,将容器内端口映射到外层环境中,可多次使用
- -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
原文链接[/code]
- python_Day1_基础知识开篇
- 从0开始学大数据-Java基础开篇(1)
- java基础学习总结——开篇
- vue不定时更新之全家桶基础应用
- 黑马程序员-6-java-IO流开篇基础API
- .Net通用基础框架(.Net Common Infrastructure)-开篇
- [.net 面向对象编程基础] (1) 开篇
- 计算机网络基础知识开篇
- 一步步学习javascript基础篇(0):开篇索引
- 《电工实验室基础生存技能》系列教学视频第一季第一集——开篇
- 开源博客QBlog开发者视频教程:开篇-开发基础配置与系统运行(一)
- Android开篇的基础知识归纳(狠基础)
- [开篇]基础算法和数据结构0
- java基础开篇
- Java之多线程(2)--基础开篇
- android基础知识巩固开篇介绍
- WPF 基础到企业应用系列1——开篇有益
- JS基础之开篇
- Java基础查漏补缺:(开篇)为什么要在即将找工作的时候还在看Java基础
- python-面向对象(一)——开篇基础