GitHub安装说明

macOS 下安装

升级系统到macOS High Sierra。

安装Xcode最新版本。

从github克隆代码,执行安装脚本。

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

# 本文发布时master不稳定,切换到dawn-2.x分支

git checkout dawn-2.x

cd eos

./build.sh darwin

# 启动eosd sever进程,首次执行会自动停止,产生data-dir/config.ini文件

./build/eosd/eosd

# 修改config.ini文件,见下方问题区。

# 启动eosd

./build/eosd/eosd

# 启动eosc,命令行工具eosc查看eosd的信息

./build/eosc/eosc get info

注意:版本问题。

eos-build1.png

安装过程中遇到的问题

说在前面

我最早是从master分支直接安装的,中间遇到了一些问题,知道最后启动服务发现没有产生区块,才改成稳定的dawn-2.x版本。所以,如果你直接从dawn-2.x版本开始安装的话,下面的一些问题不一定会遇到。

磁盘空间

磁盘空间要求至少100GB,否则报错。先修改脚本scripts/eosio/build/darwin.sh,先绕过去限制。

# if [ $DISK_AVAIL -lt 100 ]; then

if [ $DISK_AVAIL -lt 10 ]; then # 修改为10GB

printf "\tYou must have at least 100GB of available storage to install EOSIO.\n"

printf "\tExiting now.\n"

exit 1

fi

autoreconf -i 报错

Usage: autoreconf [-f] [-h] [--help] [-m dir] [--macrodir=dir]

[-l dir] [--localdir=dir] [--force] [--verbose] [--version]

解决:更新版本autoconf 到2.69, 原本PATH里有指向低版本autoconf 2.10的路径,删掉。

libtoolize 报错

Can't exec "libtoolize": No such file or directory at /usr/local/share/autoconf/Autom4te/FileUtils.pm line 345, line 5.

autoreconf: failed to run libtoolize: No such file or directory

autoreconf: libtoolize is needed because this package uses Libtool

Error running autogen

#添加PATH /usr/local/Cellar/libtool/2.4.6_1/bin

export PATH=/usr/local/Cellar/libtool/2.4.6_1/bin:$PATH

brew install boost double-conversion gflags glog libevent

sudo ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize

openssl问题

在编译的时候遇到openssl版本问题。报错如下:

CMake Error at /usr/local/Cellar/cmake/3.7.2/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:138 (message):

Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the

system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES

OPENSSL_INCLUDE_DIR)

原因在于安装脚本里为Darwin指定了openssl的路径如下,默认版本为1.1:

if [ $ARCH == "Darwin" ]; then

OPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1

OPENSSL_LIBRARIES=/usr/local/opt/openssl@1.1/lib

但是系统里安装的是1.0.2版本。

eos ansen$ ls -lh /usr/local/opt/openssl@1.0

lrwxr-xr-x 1 ansen admin 24B 2 19 00:47 /usr/local/opt/openssl@1.0 -> ../Cellar/openssl/1.0.2n

用brew安装openssl@1.1后,编译还是有问题,说找不到symbol,google搜了一圈,没找到解决办法。

Undefined symbols for architecture x86_64:

"_BN_is_negative", referenced from:

fc::bigint::is_negative() const in libfc.a(bigint.cpp.o)

fc::bigint::to_int64() const in libfc.a(bigint.cpp.o)

"_BN_is_zero", referenced from:

fc::bigint::operator bool() const in libfc.a(bigint.cpp.o)

"_ECDSA_SIG_get0", referenced from:

fc::crypto::r1::ECDSA_SIG_recover_key_GFp(ec_key_st*, ECDSA_SIG_st*, unsigned char const*, int, int, int) in libfc.a(elliptic_r1.cpp.o)

fc::crypto::r1::private_key::sign_compact(fc::sha256 const&) const in libfc.a(elliptic_r1.cpp.o)

"_ECDSA_SIG_set0", referenced from:

fc::crypto::r1::public_key::public_key(fc::array const&, fc::sha256 const&, bool) in libfc.a(elliptic_r1.cpp.o)

"_OPENSSL_init_crypto", referenced from:

fc::openssl_scope::openssl_scope() in libfc.a(openssl.cpp.o)

ld: symbol(s) not found for architecture x86_64

clang-4.0: error: linker command failed with exit code 1 (use -v to see invocation)

解决: 修改安装脚本,使用1.0版本,编译就成功了。

if [ $ARCH == "Darwin" ]; then

OPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.0

OPENSSL_LIBRARIES=/usr/local/opt/openssl@1.0/lib

安装成功,显示如下:

[100%] Linking CXX executable eosiod

cd /Users/ansen/eos/eos/build/programs/eosiod && /usr/local/Cellar/cmake/3.7.2/bin/cmake -E cmake_link_script CMakeFiles/eosiod.dir/link.txt --verbose=0

[100%] Built target eosiod

/usr/local/Cellar/cmake/3.7.2/bin/cmake -E cmake_progress_start /Users/ansen/eos/eos/build/CMakeFiles 0

EOSIO has been successfully installed.

修改config.ini

在自动生成的config.ini的基础上修改下面这些配置项。 genesis就是eos根目录的genesis.json。

# Load the testnet genesis state, which creates some initial block producers with the default key

genesis-json = /path/to/eos/source/genesis.json

# Enable production on a stale chain, since a single-node test chain is pretty much always stale

enable-stale-production = true

# Enable block production with the testnet producers

producer-name = inita

producer-name = initb

producer-name = initc

producer-name = initd

producer-name = inite

producer-name = initf

producer-name = initg

producer-name = inith

producer-name = initi

producer-name = initj

producer-name = initk

producer-name = initl

producer-name = initm

producer-name = initn

producer-name = inito

producer-name = initp

producer-name = initq

producer-name = initr

producer-name = inits

producer-name = initt

producer-name = initu

# Load the block producer plugin, so you can produce blocks

plugin = eosio::producer_plugin

# Wallet plugin

plugin = eosio::wallet_api_plugin

# As well as API and HTTP plugins

plugin = eosio::chain_api_plugin

plugin = eosio::http_plugin

代码分支版本问题

最早是从master开始编译的,解决了上面的问题后,最后运行起来确发现没有产生区块。

1046000ms thread-0 producer_plugin.cpp:227 block_production_loo ] Not producing block because it isn't my turn, its eosio

1046500ms thread-0 producer_plugin.cpp:227 block_production_loo ] Not producing block because it isn't my turn, its eosio

1047000ms thread-0 producer_plugin.cpp:227 block_production_loo ] Not producing block because it isn't my turn, its eosio

1047500ms thread-0 producer_plugin.cpp:227 block_production_loo ] Not producing block because it isn't my turn, its eosio

看到有篇文章里写到,master版本不稳定,建议切换会dawn-2.x版本。

dawn-2.x版本执行build/eosd/eosd。然后会有区块产生。

2390002ms chain_controller.cpp:208 _push_block ] initl #2614 @2018-02-19T05:39:50 | 0 trx, 0 pending, exectime_ms=1

2390003ms producer_plugin.cpp:246 block_production_loo ] initl generated block #2614 @ 2018-02-19T05:39:50 with 0 trxs 0 pending

2391002ms chain_controller.cpp:208 _push_block ] inits #2615 @2018-02-19T05:39:51 | 0 trx, 0 pending, exectime_ms=0

2391002ms producer_plugin.cpp:246 block_production_loo ] inits generated block #2615 @ 2018-02-19T05:39:51 with 0 trxs 0 pending

eosc执行

查询当前区块链概况:

eos ansen$ ./build/programs/eosc/eosc get info

{

"server_version": "d051c1b6",

"head_block_num": 2920,

"last_irreversible_block_num": 2905,

"head_block_id": "00000b68623d835911d8d8d67e8fae041ddc522e4412e2f742c7fd52c462fa53",

"head_block_time": "2018-02-19T05:44:56",

"head_block_producer": "initu",

"recent_slots": "1111111111111111111111111111111111111111111111111111111111111111",

"participation_rate": "1.00000000000000000"

}

参考文献

eos.io+java+客户端_eos.io环境搭建相关推荐

  1. Docker java项目发布/开发环境搭建

    Docker java项目发布/开发环境搭建 线上部署项目/开发环境搭建命令大全 关闭windows10 指定应用 安装Docker 安装 docker-compose 关于docker容器导致硬盘耗 ...

  2. Java语言概述以及环境搭建

    Java语言概述以及环境搭建 计算机系结构 硬件 软件 人机交互方式 常见的DOS命令 Java语言的概述 Java语言的背景 Java语言的特点 Java的主要版本 JDK下载 <1>J ...

  3. 测试小白基于java的selenium自动化测试环境搭建

    本人是一个软件测试小白,自己在研究自动化测试时,真的入了不少坑,直到现在,才勉强将环境搭建了起来. 在此,我随随便便总结了一下基于java的selenium自动化测试环境搭建,送给正在学习软件测试的你 ...

  4. Java JDK 8u221开发环境搭建

    Java JDK 8u221开发环境搭建 Java JDK 8u221下载 1.java SE8u221的下载 搭建环境 更改路径 现在我们来搭建Java开发环境 Java JDK 8u221下载 1 ...

  5. Java自动化测试(app自动化环境搭建 31)

    Appium 官网:http://appium.io/ github:https://github.com/appium/appium Appium is an open source test au ...

  6. 单点登录cas综述之cas4.2.7服务端+cas客户端+示例程序+环境搭建说明-陈杰

    1环境搭建以及把示例程序跑起来 1.1  安装jdk1.8 1.2 下载tomcat8+cas4.2.7服务端war+cas客户端war 1.2.1下载经过配置的Tomcat8和本教程配套文件 1.2 ...

  7. Java+Selenium3.3.1环境搭建

    一.背景和目的 selenium从2.0开始,加入了webdriver,实际上,我们说的selenium自动化测试,大部分情况都是在使用webdriver的API.现在去Selenium官网,发现最新 ...

  8. Java及Android开发环境搭建

    前言 自从接触java以来,配置环境变量折腾了好几次,也几次被搞得晕头转向,后来常常是上网查阅相关资料才解决.但是过一段时间后一些细节就会记不清了,当要在其他机子上配置时又得上网查或者查阅相关书籍,如 ...

  9. eclipse java swt_Eclipse swt开发环境搭建

    原料: eclipse swt.下载链接为: 配置说明: 步骤: 1.下载swt,格式为.zip 2.将swt**.zip导入到eclipse中,file-->import-->Impor ...

最新文章

  1. cadence原理图封装pin名称重复_硬件工程师必备技巧--如何快速制作PCB封装
  2. ​iOS的界面触摸事件处理机制,然后用一个实例来说明下应用场景.
  3. c 语言重载参数类型不同重载和,C++基础学习之函数重载的简单介绍
  4. 实现Windows和Linux之间的文件共享
  5. matlab LSTM序列分类的官方示例
  6. 坑了我一个小时的脚本执行
  7. CleanCodeHandbook Chapter 9: Binary Search(48-50)
  8. SAR空间自回归模型
  9. 会声会影如何使用覆叠滤镜
  10. 电脑系统pe去广告及恶意软件安装
  11. 撤消 git rebase
  12. 【kafka】kafka创建topic如何确定分区,如何计算kafka机器台数
  13. IP与域名之间的相互转换
  14. 数据库第十四次作业 电子商城项目
  15. 美仲裁协会大力推进网络仲裁 AI或直接助力仲裁裁决
  16. 使用docker安装zookeeper
  17. Rog 幻14 2020 安装ubuntu20.04/一些小问题和美化
  18. PCB工艺设计规范-02
  19. 【AI作画】当梵高遇上东方明珠——梵高画风迁移全纪录
  20. 美人松的高度(二分查找)

热门文章

  1. 微信锦鲤活动php模板,如何制作微信锦鲤抽奖?
  2. Ubuntu英文系统设置中文UTF-8支持
  3. 住宅区和住宅建筑内光纤到户通信设施工程设计规范_光纤入户的配置原则及设计案例...
  4. 实体类作为另一个实体类的属性
  5. 时间序列预测的7种方法
  6. vscode 翻译神器
  7. (附源码)计算机毕业设计SSM智慧后勤app
  8. Excel 函数学习使用
  9. 嵌入式 ARM 编译器
  10. zynq7000系列移植—JRE移植到嵌入式ARM平台(java运行在嵌入式linux)