什么是 EOS?
首先,EOS 并不是官方(https://eos.io/)的缩写,我们可以理解为 Enterprise Operation System,即为商用分布式应用设计的一款区块链操作系统。很多人都把 EOS 当成区块链 3.0 技术(区块链 1.0 是比特币,区块链 2.0 是以太坊),目前区块链世界有以下几个痛点没有解决:难以扩展、代价昂贵、缺乏互操作性等等。EOS 是 EOS.IO 软件引入的一种新的区块链架构,旨在实现分布式应用的性能扩展。根据 EOS Github 官方的解释:
EOS.IO software enables developers to create and deploy high-performance, horizontally scalable, blockchain infrastructure upon which decentralized applications can be built.
可以看出,EOS 使得区块链开发人员可以创建和部署高性能、可以水平扩展的区块链应用,为开发者提供底层模块,并且降低开发门槛,有点类似于 Windows。
EOS 的优势
EOS 通过并行链和 DPOS( Delegated Proof of Stake :授权股权证明机制)的方式解决了延迟和数据吞吐量的难题。EOS 能够实现每秒百万级的处理量,而目前比特币是每秒 7 笔,以太坊是 30-40 笔,EOS 的这一超强能力吊打比特币和以太坊。
搭建 EOS 测试环境
EOS 当前支持的操作系统有:
Amazon 2017.09 and higher.
Centos 7.
Fedora 25 and higher (Fedora 27 recommended).
Mint 18.
Ubuntu 16.04 (Ubuntu 16.10 recommended).
MacOS Darwin 10.12 and higher (MacOS 10.13.x recommended).
本次我们使用 CentOS 7 作为 EOS 的部署环境。
当前 EOS 主网(mainnet)暂未上线,官方提供了 local testnet 和 public testnet 两种部署方式(部署方法基本一样)。下面介绍具体的部署 local testnet 的方法。
下载源码并执行部署脚本
git clone https://github.com/eosio/eos --recursive
cd eos
./eosio_build.sh
需要注意的是,由于这次部署的是 local testnet,使用的 master 分支,如果部署 public localtest 的话,切换到 DAWN-2018-02-14 分支,执行下面的命令后在执行 eosio_build.sh 即可:
git checkout DAWN-2018-02-14
在执行安装脚本的过程中会提示是否安装缺少的依赖包,选『yes』即可。
启动一个 local testnet
在经过漫长的等待后,我们的 EOS 终于编译完成,接下来是启动 local testnet,根据官方文档上的说明(https://github.com/EOSIO/eos#singlenode),我们需要进入到 build/programs/eosiod ,找到二进制文件 eosiod 并执行它,按照文档上的说明,第一次执行它的时候程序会异常退出,并且会在当前目录生成 data-dir 文件夹,但是在我的环境中并没有异常退出,反而是卡在了这里:
因此我们手动创建这个 data-dir 文件夹即可,在再次执行 eosiod 之前,我们需要找到源码中的 etc 目录,在这个目录中有两个文件:config.ini 和 genesis.json ,我们修改 config.ini 文件中的相应内容,如下:
修改完成后,再次执行 eosiod ,发现报错:
经过查阅相关资料,需要在 config.ini 中添加下面的红色配置即可:
再次执行 nodeos ,已经可以创建 block:
使用下面的命令测试是否部署成功:
API 返回正常,部署成功。
关于 EOS 部署的注意事项
由于当前的 EOS 源码正在快速的更新中,因此当你根据这篇文档部署 EOS 的时候,其中的一些术语可能已经不是本文档中描述的名称了(比如,本文档中说的 eosiod 现在已经是 nodeos 了)。但是最终的部署方式都是类似的。
领取专属 10元无门槛券
私享最新 技术干货