EOS开发环境搭建

获取代码

下载所有的EOSIO代码,clone eos库和所有的子模块。

shell 命令如下:

git clone https://github.com/EOSIO/eos --recursive

如果忘记加 --recursive 参数也没关系,随后也可以用命令 clone 所有子模块。

git submodule update --init --recursive

安装构建设置

EOSIO可以在多个平台上安装构建,并有各种路径进行安装构建。大多数用户更喜欢使用自动化脚本或docker,而更高级的用户或希望部署公共节点的用户可能需要手动方法。构建内容生成在eos/build文件夹中。可执行文件可以在eos/build/programs文件夹的子文件夹中找到。

  • 自动化脚本 :适合于大多数开发人员,这个脚本是基于Mac OS和许多Linux版本的。
  • docker-compose方式 :到目前为止最快的安装方法,可以在两分钟内启动并运行一个节点。也就是说,它需要一些额外的本地配置来进行开发,以便顺利运行并遵循我们提供的教程。
  • 手动安装构建:适用于那些可能对自动化脚本有冲突的环境,或者希望对其构建进行更多控制的开发者。
  • 可执行文件安装构建:一个可选的make install步骤,可以使本地开发更加友好。

如果你是新手,建议直接看通过docker快速构建安装EOSIO

自动化脚本安装

有一个自动化的构建脚本,可以安装所有依赖项并构建EOSIO。脚本支持以下操作系统。

我们正在支持和将来发布会支持的Linux/UNIX发行版。

  • Amazon 2017.09 和更高版本。
  • Centos 7。
  • Fedora 25和更高版本(推荐 Fedora 27)。
  • Mint 18。
  • Ubuntu 16.04(推荐 Ubuntu 16.10)。
  • MacOS Darwin 10.12和更高版本(推荐 MacOS 10.13.x)。

eos目录运行安装构建脚本:

cd eos
./eosio_build.sh

docker-compose方式构建

如果你只是想跑起来,可能通过docker快速构建安装EOSIO更适合。否则你想了解更高级的构建,那么继续。

安装依赖项
Docker的要求
  • 至少7GB RAM(DOCK->首选项->高级->内存->7GB或以上)
  • 如果安装构建失败,请确保你已经调整了Docker内存设置,然后再试一次。
构建eos镜像
git clone https://github.com/EOSIO/eos.git --recursive  --depth 1
cd eos/Docker
docker build . -t eosio/eos

以上将在默认情况下构建对主分支的最新提交。如果想针对特定的分支/tag,可以使用生成参数。例如,如果希望根据v1.0.0 tag生成Docker镜像,可以执行以下操作:

docker build -t eosio/eos:v1.0.0 --build-arg branch=v1.0.0 .

默认情况下,eosio.system的 symbol 设置为SYS。在构建Docker镜像时,可以使用 symbol 参数来做到这一点。

docker build -t eosio/eos --build-arg symbol=ABC.
在 docker 中启动 nodeos
docker run --name nodeos -p 8888:8888 -p 9876:9876 -t eosio/eos nodeosd.sh -e arg1 arg2

默认情况下,所有数据都保存在docker卷中。如果数据过时或损坏,则可以删除它:

$ docker inspect --format ‘{{ range .Mounts }}{{ .Name }} {{ end }}‘ nodeos
fdc265730a4f697346fa8b078c176e315b959e79365fc9cbd11f090ea0cb5cbc
$ docker volume rm fdc265730a4f697346fa8b078c176e315b959e79365fc9cbd11f090ea0cb5cbc

或者,可以直接将宿主目录安装到docker中。

docker run --name nodeos -v /path-to-data-dir:/opt/eosio/bin/data-dir -p 8888:8888 -p 9876:9876 -t eosio/eos nodeosd.sh -e arg1 arg2
获取区块链信息
curl http://127.0.0.1:8888/v1/chain/get_info
在docker中启动nodeos和keosd
docker volume create --name=nodeos-data-volume
docker volume create --name=keosd-data-volume
docker-compose up -d

docker-compose -d之后,将启动nodeoskeosd两个服务。nodeos服务会将端口8888和9876提供给主机。kesod服务不向主机公开任何端口,只有当在cleos容器中运行cleos时,cleos才可以访问它。

执行cleos命令

你可以运行cloes通过bash别名

alias cleos=‘docker-compose exec keosd /opt/eosio/bin/cleos -u http://nodeosd:8888 --wallet-url http://localhost:8900‘
cleos get info
cleos get account inita

如果你想在任何地方使用cleos命令,你可以在docker-compose.yml指定路径:

alias cleos=‘docker-compose -f path-to-eos-dir/Docker/docker-compose.yml exec keosd /opt/eosio/bin/cleos -u http://nodeosd:8888 --wallet-url http://localhost:8900‘

提交exchange示例合约:

cleos set contract exchange contracts/exchange/

如果你不需要keosd,可以停止使用keosd服务:

docker-compose stop keosd
开发构建客户合约

由于eosio/eos镜像不包含合约开发所需的依赖关系(这样设计是为了保持较小镜像尺寸),所以需要使用 eosio/eos-dev镜像。此镜像包含使用eosiocpp构建合约的所需二进制文件和依赖项。

可以使用Docker Hub上可用的镜像或进入到dev文件夹并手动构建镜像。

cd dev
docker build -t eosio/eos-dev .
修改默认配置

可以使用docker compose更改默认配置。例如,创建一个备用配置文件config2.inidocker-compose.override.yml,内容如下:

version: "2"

services:
  nodeos:
    volumes:
      - nodeos-data-volume:/opt/eosio/bin/data-dir
      - ./config2.ini:/opt/eosio/bin/data-dir/config.ini

然后重启docker:

docker-compose down
docker-compose up
删除data-dir

docker-compose创建的data卷可以被删除:

docker volume rm nodeos-data-volume
docker volume rm keosd-data-volume
Docker Hub

Docker Hub 镜像来自docker hub

建立一个新的docker-compose.yaml文件内容如下:

version: "3"

services:
  nodeosd:
    image: eosio/eos:latest
    command: /opt/eosio/bin/nodeosd.sh --data-dir /opt/eosio/bin/data-dir -e
    hostname: nodeosd
    ports:
      - 8888:8888
      - 9876:9876
    expose:
      - "8888"
    volumes:
      - nodeos-data-volume:/opt/eosio/bin/data-dir

  keosd:
    image: eosio/eos:latest
    command: /opt/eosio/bin/keosd --wallet-dir /opt/eosio/bin/data-dir --http-server-address=127.0.0.1:8900
    hostname: keosd
    links:
      - nodeosd
    volumes:
      - keosd-data-volume:/opt/eosio/bin/data-dir

volumes:
  nodeos-data-volume:
  keosd-data-volume:

注意:默认版本是最新版本,可以将其更改为你想要的版本。

  • 运行: docker pull eosio/eos:latest
  • 运行: docker-compose up
EOSIO 1.0 Testnet

我们可以很容易地建立一个EOSIO 1.0本地Testnet测试链,使用docker镜像。只需运行以下命令:

注意:如果你想使用mongo db插件,你必须首先在data-dir/config.ini启用它。

# pull images
docker pull eosio/eos:v1.0.0

# create volume
docker volume create --name=nodeos-data-volume
docker volume create --name=keosd-data-volume
# start containers
docker-compose -f docker-compose-eosio1.0.yaml up -d
# get chain info
curl http://127.0.0.1:8888/v1/chain/get_info
# get logs
docker-compose logs -f nodeosd
# stop containers
docker-compose -f docker-compose-eosio1.0.yaml down

默认情况下,blocks数据存储在--data-dir下,默认情况下钱包文件存储在--wallet-dir下,当然,你可以根据需要更改这些文件路径。

关于MongoDB插件

目前,MongoDB插件在config.ini中被禁用,默认情况下,必须在config.ini中手动更改它,或者可以在docker-compose文件中将config.ini文件mount到/opt/eosio/bin/data-dir/config.ini

手动安装构建

若要手动生成,请使用以下步骤在eos文件夹中创建build文件夹,然后执行build。下面的步骤假设eos存储库被clone到home(即,~)文件夹中。还假定已经安装了必要的依赖项。请参见手动安装依赖项

cd ~
mkdir -p ~/eos/build && cd ~/eos/build

在Linux平台上,使用这个cmake命令:

cmake -DBINARYEN_BIN=~/binaryen/bin -DWASM_ROOT=~/wasm-compiler/llvm -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib -DBUILD_MONGO_DB_PLUGIN=true ..

在MacOS上,使用这个cmake命令:

cmake -DBINARYEN_BIN=~/binaryen/bin -DWASM_ROOT=/usr/local/wasm -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib -DBUILD_MONGO_DB_PLUGIN=true ..

然后在所在平台上执行:

make -j$( nproc )

也支持Out-of-source安装构建。若要在编译器中重写默认选择,请将这些标志添加到CMake命令:

-DCMAKE_CXX_COMPILER=/path/to/c++ -DCMAKE_C_COMPILER=/path/to/cc

对于调试模式的安装构建,添加-DCMAKE_BUILD_TYPE=Debug。其他常见的构建类型包括ReleaseRelWithDebInfo

可执行文件安装构建

为了便于智能合约开发,可以使用make install将目标内容安装到/usr/local中。此步骤要从build目录下运行的。需要适当的安装权限。

cd build
sudo make install

系统需求(包括所有平台)

  • 内存 7GB
  • 硬盘 20GB

安装构建的验证

可选地,可以对我们的构建运行一组测试,以执行一些基本验证。要在构建后运行测试套件,启动mongod然后运行make test

在 Linux 平台上:

~/opt/mongodb/bin/mongod -f ~/opt/mongodb/mongod.conf &

在 MacOS 平台上:

/usr/local/bin/mongod -f /usr/local/etc/mongod.conf &

然后执行下面的操作:

cd build
make test

另分享个《EOS智能合约与DApp开发入门》教程,欢迎大家关注:

EOS教程

本教程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用React和EOS的各知识点完成一个便签DApp的开发。

原文地址:http://blog.51cto.com/13697184/2152069

时间: 2024-08-30 16:29:56

EOS开发环境搭建的相关文章

Intellij IDEA 14.1.4 Scala开发环境搭建

主要内容 Intellij IDEA开发环境简介 Intellij IDEA Scala开发环境搭建 Intellij IDEA常见问题及解决方案 Intellij IDEA常用快捷键 1. Intellij IDEA开发环境简介 具体介绍请参见:http://baike.baidu.com/link?url=SBY93H3SPkmcmIOmZ8H60O1k4iVLgOmdqoKdGp9xHtU-Pbdsq2cpn75ZPZPWAJxeUlwr0ravraQzOckh777beq Intelli

javacard开发环境搭建 Eclipse+jcop+jcdk 配置完成的开发环境

javacard  开发环境搭建 Eclipse+jcop+jcdk  配置完成的开发环境,下载后安装jdk,并完成环境变量配置,即可开发javacard applet: 虽然有许多大神提供配置说明,但是配置很麻烦.提供一个配置好的环境给大家.如果好用,别忘了评价. 由于csdn上传限制,需要分别下载几个文件 http://download.csdn.net/detail/wyx100/7941899 http://download.csdn.net/detail/wyx100/7941669

Storm使用入门之本地开发环境搭建

本篇博文详细告诉你如何安装Storm的本地开发环境,总体分为两步,具体如下: 1.从官网上下载Storm的发布包,下载完成后将其解压,并将解压后的bin目录添加到环境变量(PATH)中,以方便后续执行Storm的相关命令 2.修改Storm的配置文件(storm.yaml),主要是按照实际情况更新配置文件中的集群信息,然后将修改后的配置文件添加到目录(~/.storm/)中,目的是为了后续能够远程启动和停止集群上的计算任务(即topology) 接下来,咱们来详细地介绍每一个操作步骤. 首先,何

《结对-贪吃蛇游戏-开发环境搭建过程》

贪吃蛇开发环境搭建 Python和pygame的安装过程 成员0:2015035107074-孔令辉 成员1:2015035107067-张旭 1.去官网下载python和pygame.(需注意自己电脑是32位的还是64位的,我的是64位的,就下了个64位的) 2.安装pythone 和 pygame. 3.安装完成后,查看环境变量配置情况:计算机->属性->高级系统设置->环境变量->系统变量->Path. 4.在命令提示符中输入:python,验证是否安装成功,若提示是无

微信开发学习总结(一)—微信开发环境搭建

目前移动App开发领域主要分为以下几种类型: 一.微信开发环境搭建 1.要有一个用来测试的公众号. 2.用来调式代码的开发环境 1.1.注册测试公众号 微信公众号分为服务号.订阅号.企业号,订阅号可以个人申请,服务号和企业号要有企业资质才可以. 我们所说的微信公众号开发指的是订阅号和服务号. 关于订阅号和服务号的区别,官方是这样解释的 服务号:主要偏向于服务交互(功能类似12315,114,银行,提供绑定信息,服务交互),每月可群发4条消息:服务号适用人群:媒体.企业.政府或其他组织. 订阅号:

vue.js开发环境搭建

1.安装node.js,忽略 2.基于node.js,利用淘宝npm镜像安装相关依赖 在cmd里直接输入:npm install -g cnpm –-registry=https://registry.npm.taobao.org,回车,等待安装... 3.安装全局vue,用于帮助搭建所需的模板框架 在cmd里, 1).输入:cnpm install -g vue-cli,回车,等待安装...2).输入:vue -V,回车,若出现vue信息说明表示成功 4.创建vue项目 在cmd里输入:vue

Hive项目开发环境搭建(Eclipse\MyEclipse + Maven)

写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Maven) 我这里,相信,能看此博客的朋友,想必是有一定基础的了.我前期写了大量的基础性博文.可以去补下基础. 步骤一:File  ->  New  -> Project   ->  Maven Project 步骤二:自行设置,待会创建的myHBase工程,放在哪个目录下. 步骤三: 步骤四:

Cordova+ionic 开发hybird App --- 开发环境搭建

Cordova 开发hybird App 开发环境搭建 一.一些基础概念: Ant : 简单说来可以这么理解,如果你用记事本写JAVA程序,然后在cmd里输入javac命令编译它,但是有一天你发现每次手动输入太麻烦而且都是重复劳动,于是你下决心改变这种状况,然后学会了把javac命令写到一个bat文件中,以后编译只需要单击运行即可:然后随着你敲的代码越来越多,而且有了JAVA project概念,于是你手动新建了很多文件夹比如src.bin.lib,你有写了一个bat文件来减少你的重复劳动:再后

转:Qt 嵌入式开发环境搭建

地址: http://www.cnblogs.com/lishixian/articles/3013897.html         作者:lsx_007 这里主要是记录了自己在搭建嵌入式开发环境时阅读的一些有价值的参考文档,文档主要来自于网络,由于是从文库中下载,所以也不知道 文档的出在哪?因为个人觉得总结的比较好,我暂且拿过来记录下,当然在此基础上也会加上我自己的理解!这篇文章主要是以问答的形式来组织. QT嵌入式开发环境是本文所要介绍的内容,我们先看看Qt的各个版本简介: 1.什么是QT