什么是EOS?
Eos是一个区块链操作系统,它提供了数据库,账号许可,调度,认证和互联网应用通信,这极大地提高了智能商业开发的效率,它使用了并行计算使得把区块链拓展到百万用户和每秒百万次交易成为可能。
入门
以下说明概述了获取EOS、构建以及运行生成块的简单测试过程。
建立构建/开发环境
该项目主要以C++ 14编写,并使用CMake作为其构建系统。推荐使用最新的C++工具(如Clang或GCC)和最新版本的CMake。在撰写本文时,疯狂的小猫使用Clang 4.0.0和CMake 3.8.0。
安装依赖关系
EOS具有以下外部依赖关系,系统上必须安装:
Boost 1.64
OpenSSL
LLVM 4.0
secp256k1-zkp (Cryptonomex branch)
git clone https://github.com/cryptonomex/secp256k1-zkp.git
./autogen.sh
./configure
make
sudo make install
注意:此处如果出现not found错误很可能是因为没有安装automake工具所致。
sudo apt-get install autoconf automake libtool
获取代码
要下载所有代码,请下载EOS和一个递归或两个子模块。所有这一切的最简单方法是执行递归克隆:
git clone https://github.com/eosio/eos --recursive
如果在没有--recursive参数的情况下克隆了一个repo,那么可以通过在repo内运行此命令,在时间之后检索子模块:
git submodule update --init --recursive
配置和构建
要做一个源代码生成,只需从顶级目录运行cmake。还支持源代码外构建。要在编译器中覆盖clang的默认选择,请将这些参数添加到CMake命令中:
-DCMAKE_CXX_COMPILER=/path/to/c++ -DCMAKE_C_COMPILER=/path/to/cc
对于调试版本,添加-DCMAKE_BUILD_TYPE=Debug。其他常见的构建类型包括Release和RelWithDebInfo。
在成功运行cmake之后,只需运行make即可构建所有内容。要在构建后运行测试套件,请在test文件夹中运行chain_test可执行文件。
创建并启动单节点testnet
项目构建成功后,eosd二进制文件应该存在于programs/eosd目录中。继续运行eosd他可能会出现一个错误,但如果没有请Ctrl+C关闭。请注意eosd将创建一个名为data-dir包含默认配置(config.ini)和一些其他内部的目录。这个默认数据存储路径可以通过传递--data-dir /path/to/data 来覆盖eosd。
编辑config.ini文件,将以下配置添加到已经存在的默认配置中:
# Load the testnet genesis state, which creates some initial block producers with the default keygenesis-json = /path/to/eos/source/genesis.json
# Enable production on a stale chain, since a single-node test chain is pretty much always staleenable-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 we can produce blocks
plugin = eos::producer_plugin
现在可以允许eosd并看到它开始生成块。目前,P2P代码没有实现,所以只有单节点配置是可执行的。当实现P2P网络时,将更新该指令以显示如何创建示例多节点testnet。
在docker中运行
操作简便快捷EOS:
构建 eos images
cd eos/Docker
cp ../genesis.json .
docker build -t eosio/eos .
开始 Docker
sudo mkdir -p /data/store/eos
docker-compose -f docker-compose.yml up