我爱编程

EOS区块链开发零基础入门

2018-05-28  本文已影响234人  积木库

获取安装源代码

环境: Mac OS

1. 通过git下载克隆eos源码和子模块,--recursive 是同时下载附加子模块

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

如果没有 附加 --recursive 参数,可以检索升级子模块

git submodule update --init --recursive

构建EOSIO

环境要求:8MB 内存,20GB以上空闲磁盘空间

cd eos && ./eosio_build.sh

eos源代码下载克隆后,eos文件夹即在当前所在位置

过程会相当长,耐心等待... 在等待的过程中,让我们先来补充一下区块链的相关词汇和知识。翻译欠佳,欢迎斧正。


小问题: 提示 Error: python 2.7.13 is already installed
解决:运行,brew upgrade python 升级 python 环境


词汇表(知识补充)

Account 帐户
由本地或自定义权限组成的链上标识符,分配有一个或多个密钥的帐户。

Authority 认证授权
一个权限摘要,表示如何将权限组织到实际中,并绑定到一个或多个个人组。

Block 区块
区块链的可确认单位。每个块包含零个或多个事务,以及与所有先前块的加密连接。当一个区块变得“不可逆转地确认”时,这是因为绝大多数区块生产者已经同意给定区块包含正确的交易。一旦Block得到不可逆转的确认,它就成为永久不可改变Blockchain的一部分。

DAC 分布式自治公司 (Distributed Autonomous Corporation)
通过一系列公开公正的规则,可以在无人干预和管理的情况下自主运行的组织形式。知乎解释

DAO 分布式自治组织 (Distributed Autonomous Organization)
DAO是一种全新的机构形态,可能是未来互联网上组织形态的雏形,不受任何单个人的控制却有明确的目标,能够自己进化和发展。

Deferred Transaction 延期交易
由智能合约创建的事务,以便在以后的特定时间稍后执行。这个未来的交易也可以创造另一个未来的交易。因此,延期交易打开了创造无限循环的大门。授权延期交易的用户必须拥有执行该未来交易的带宽(这是在计划时进行评估)以及存储直至执行的存储。

DLTs
分布式账本技术。分布式账本(也称为共享账本,或称为分布式账本技术)是在地理位置跨多个站点,国家或机构复制,共享和同步数字数据的共识。维基百科

DPoS 授权权益证明机制
DPOS由Daniel Larimer所创造,并且和POS有很大不同。在DPOS中,代币持有者自己不投票来验证区块,而是投票选举出代表人(delegates)去验证区块。在DPOS中通常有21-100个选举出来的代表人。代表人每隔一段时间会轮换,按顺序传递和验证区块。拥有少量的代表人允许他们高效的自我组织并且创造指定的时间间隙来让每个代表人公布区块。如果代表人持续的错失区块或者公布无效交易,代币持有者便投票让它出局,选出一个更好的代表人。

在DPOS中,矿工能够凝聚在一起创造区块而不是像POW或POS那样去竞争区块。通过部分中心化(partially centralizing)创造区块的过程,DPOS能够高速运转,高于其他共识机制几个数量级(orders of magnitude)。EOS被设定为第一个区块时间小于1秒的区块链。

Key pair 密钥对
公钥和其对应的私钥

larimer
EOS(令牌)的1/10000 0.0001 EOS

Master Password 主密码
用于解锁(解密)钱包文件的密码

Action 执行
对区块链的更改。一个或多个操作组成交易。

Non-Producing Node 非生产节点
一个运行nodeos的完整节点,只监视和验证每个块,并维护自己本地完整的区块链副本。处于“备用池”中的非生产节点可以通过投票进程成为生产节点。生产节点如果被投票出去,将成为非生产节点。大多数非生产节点不在“待机池”中。

Oracle 
“在区块链和智能合约的背景下,甲骨文是一个能够发现和验证真实世界事件并将这些信息提交给区块链以供智能合约使用的代理。

peer-to-peer P2P 点对点
点对点计算或联网是一种分布式应用程序体系结构,可在同级之间分配任务或工作负载。同行同样享有特权,在应用程序中等同参与者。据说它们形成了一个点对点的节点网络。维基百科

Permission 安全机制
一个加权安全机制,通过评估它的签名权限来确定一个消息是否被正确授权

Private Key 私钥
用于签署交易的密钥

Public Key 公钥
与交易一起传输的公开可用密钥

Scope
Scope是合同中的一个数据区域。合同只能写入自己合同中的区域,但可以从任何合同的区域读取。适当的Scope设定允许事务对同一个合约并行运行,因为它们不写入相同的区域。Scope不与帐户名称相混淆,但为了方便起见,合同可以使用相同的值。

Smart Contract 智能合约
智能合约是旨在促进,验证或执行谈判或履行合同的计算机协议。

Standby Pool 备用池
一组约100个完整的节点表达了希望被选为区块生产者的愿望,并且能够根据需要这样做。无论什么时候链需要用新的替换现有的BP,新的一个是从备用池中提取的。

Transaction 交易
对区块链进行全面或全面改变。一个或多个消息的组合。通常,执行智能合约。

Wallet 钱包
由客户端(例如cleos)生成和/或管理的加密文件,用于管理私钥并便于以安全方式签署交易。钱包可能处于锁定或解锁状态。

Block Producer 区块生产者
目前正在轮流生成区块链的“立即”区块的节点。或者,已经被选为轮流的节点组的成员。与“块生产者”同义

安装完成后,正式开始,请等待更新...  

2018-05-28 更


编译源码生成可执行文件

进入 eos 根目录,执行命令:

./eosio_build.sh darwin full

小问题:系统可能会升级,Homebrew  提示:Updating Homebrew... ,等待升级完成

小问题2:系统可能会提升,没有安装 MongoDB C++ driver,执行以下操作:

1: 下载最新安装源码

$ curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.10.0/mongo-c-driver-1.10.0.tar.gz
$ tar xzf mongo-c-driver-1.10.0.tar.gz
$ cd mongo-c-driver-1.10.0

2:构建和安装驱动

$ mkdir cmake-build
$ cd cmake-build
$ cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF ..

等待安装完成,再次回到 /users/你的用户名/eos 目录,执行: 

./eosio_build.sh darwin full

编译过程,会要求输入管理员密码,开始漫长的等待...

2018-05-29 更


上一篇下一篇

猜你喜欢

热点阅读