区块链3.0:拥抱EOS (3)

Deferred Transaction,缩写defTx,延期交易。该交易是有智能合约所创建,会在未来的某个时间被执行。这个交易也能够创建另一个在其之后的交易。因此,延期交易可以创建无限循环的顺序交易。用户授权一个延期交易必须指定到执行的时刻拥有足够的带宽,存储来执行预期交易。

DLTs,分布式账本技术。一种分布式账本(也被称作共享式账本),它是一个基于复制、共享以及同步数字化资产的跨站点、跨国家、跨机构的共识。

DPoS,授权权益证明。此外,也可以代表民主即权益证明。DPoS是共识算法的一种,即区块生产者能够针对交易或区块的真实性,可验证,不可逆等特性达成共识的一种方法。

Key pair,缩写keys,一个密钥对,包括公钥和其对应的私钥。

larimer,一种EOS的计量单位,等于0.0001 EOS。(性质如同以太坊中的Wei)

Master Password,用于解锁,或解密一个钱包文件的密码。

Action,一个对区块链的改变动作。可以是一个或这多个动作组成一个交易。

Non-Producing Node,非生产节点,也可以被理解为普通节点。这是一个完整的区块链节点,但它智能观察和验证区块,以及只能维护自己本地区块链的拷贝。一个普通节点可以在一个“备用池”中,通过投票流程称为生产节点(具备出块权的超级节点)一个超级节点,也会被投票出局,成为一个普通节点。但是值得注意的是,大多数普通节点并不在“备用池”中。

Oracle,在区块链和智能合约的上下文中,它是一个代理,被智能合约使用用来找到和验证实际发生的并提交这个信息到区块链上。

peer-to-peer,p2p,对等计算或网络是一个分布式应用程序架构,在对等环境下,它被分去为任务或者是工作量。对等节点是拥有等价权限,在应用程序中的参与机会均等。他们组成了点对点的网络节点。

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

Private Key,用来签名交易的私钥。

Public Key,缩写pub key,公钥,会在交易间被传输。

Scope,作用域,智能合约的作用域,智能合约智能写入他们同一个作用域的自己的其他合约,而只能够读取其他作用域的合约。

Smart Contract, 智能合约,一个计算机协议,旨在促进、验证或执行谈判。

Standby Pool,100个全节点的集合,渴望被选中为21个超级节点之一,他们实际上已经拥有了超级节点的能力,无论何时链需要替换一个超级节点时,就会从备用池中选择。

Transaction,缩写Tx,Txn。它有事务的含义,一般我们称作交易。它是一个完整的原子的区块链的变化,一个或多个消息的组合,在EOS中通常是由一个智能合约来执行。

Wallet,钱包,会生成一个加密钱包文件或是通过客户端来管理,例如cleos。它管理了私钥以及用一个安全的方式去促进交易的签名。钱包可以被锁定或解锁。

Block Producer, 缩写bp。21个超级节点之一,是目前正在出块轮次的那个超级节点。

构建本地环境

EOS三个组件:

nodeos:服务端区块链节点组件

cleos:命令行接口,与区块链交互,管理钱包,管理账户,在区块链上调用方法。(很重要,相当于以太坊web3)

keosd:管理EOSIO钱包的组件。

接下来,我们将构建这些EOSIO组件,并将它们部署在一个主机,通过单个节点对网络(testnet)进行测试与配置。

构建源码 recursive参数会将所有子组件自动克隆下来,最终我们会在本地得到全部完整的源码。 git clone https://github.com/EOSIO/eos --recursive 自动构建源码。 cd eos && ./eosio_build.sh

构建时间较长,最终构建成功的页面如下:

[100%] Built target cleos Scanning dependencies of target nodeos [100%] Building CXX object programs/nodeos/CMakeFiles/nodeos.dir/main.cpp.o [100%] Linking CXX executable chain_test [100%] Linking CXX executable nodeos [100%] Built target chain_test [100%] Built target nodeos _______ _______ _______ _________ _______ ( ____ \( ___ )( ____ \\__ __/( ___ ) | ( \/| ( ) || ( \/ ) ( | ( ) | | (__ | | | || (_____ | | | | | | | __) | | | |(_____ ) | | | | | | | ( | | | | ) | | | | | | | | (____/\| (___) |/\____) |___) (___| (___) | (_______/(_______)\_______)\_______/(_______) EOS.IO has been successfully built. 0:32:57 To verify your installation run the following commands: /home/liuwenbin/opt/mongodb/bin/mongod -f /home/liuwenbin/opt/mongodb/mongod.conf & cd /home/liuwenbin/eos/build; make test For more information: EOS.IO website: https://eos.io EOS.IO Telegram channel @ https://t.me/EOSProject EOS.IO resources: https://eos.io/resources/ EOS.IO wiki: https://github.com/EOSIO/eos/wiki 手动构建源码 安装开发工具包 sudo apt-get update wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - sudo apt-get install clang-4.0 lldb-4.0 libclang-4.0-dev cmake make \ libbz2-dev libssl-dev libgmp3-dev \ autotools-dev build-essential \ libbz2-dev libicu-dev python-dev \ autoconf libtool git mongodb

wget 下载llvm-key出错,可以按照提示加入参数--no-check-certificate搞定。

依赖

基于我本机是Ubuntu16.04,除了使用上面的自动编译以外,也可以手动安装,不怕折磨的话。

目前EOS当前版本的依赖包括:

Clang 4.0.0

CMake 3.5.1

Boost 1.66

OpenSSL

LLVM 4.0

secp256k1-zkp (Cryptonomex branch)

依赖安装请参照

跑单元测试 cd build && make test

这一步是为了验证源码功能完整度,耗时也较久。

安装命令 sudo make install

命令会被安装在/usr/local。执行完这个命令以后,我们可以在系统任何位置进行命令启用。

启动一个单独节点

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwzpw.html