EOS

EOS官方github
EOSIO开发文档
EOS合约编译后生成abi,wasm,wast

1.优点

    1. 百万tps
  • 2.使用免费
  • 3.轻松升级和bug恢复
  • 4.串行性能和并行性能

2.共识算法(aBFT-DPOS(异步BFT))

我们按目前 EOS 的 21 个节点来计算:

每个区块必须由 21 * (2/3 + 1) = 15 个节点确认;

每个节点连续生产12个区块再切换下一个记账人出块,就是 12 * 0.5s = 6s;

节点按确定的顺序记账;

每个节点出块前会等待上一次的块被至少 15 个节点在链上通过出块确认,也就是 90s;

基于BFT的逻辑分为 Pre Commitment 和 Commitment 阶段,各自需要 15 个节点确认,那么完成两个阶段需要 90 * 2 = 180s;
当一笔交易完成打包之后,意味着当前节点已确认,还需要至少21个超级节点中的2/3以上确认,而加上需要两轮确认,因此我们可以做出如下计算:


在这里插入图片描述

而根据一个区块生产的时间为0.5秒计算,从交易执行结束到变为不可逆状态所需要的时间应为168s

但 EOS 并没有用 BFT,而是用 DPOS + aBFT (异步BFT)

DPOS 机制其实已经能够保证在交易进入区块后 99.9% 的概率不可逆,而aBFT保证100%不可逆。
aBFT 大概意思是说可以提前完成其它节点的确认签名,而非等到这个节点出块才能完成签名,所以目前达到不可逆时间是小于 180s 的。

综合来说,当交易出现在一个区块中,并能够被区块浏览器查询到,那么99.9%这笔转账已经成功,剩下0.1%的概率需要等到不可逆块高度达到被打包区块高度时才能最终确认为100%不可逆。

EOS 技术术语

组件 Program
包含了nodeos、cleos等一系列EOS常用的工具

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

cleos
EOS 的命令行工具,负责与区块链系统的交互、管理钱包、管理账户

keosd
操作和管理钱包的服务器端工具(看源代码发现其实也是调用的wallet_api_plugin)

插件 Plugins
外界与EOS链交互由插件提供支持,比如wallet_api_plugin提供钱包接口、chain_api_plugin提供链接口、account_history_api_plugin提供账户历史记录接口

钱包
存储密钥对(公钥和私钥)的仓库,在区块链上执行的操作需要经过钱包的签名。

账户
拥有相应访问权限的链上的安全主体,可以类比为我们计算机上的账户。

智能合约
操作 与 自动化操作处理程序 相结合,便是 EOS 定义的智能合约。

交易 Transaction
一组Action操作的集合,也可以理解为执行智能合约。

操作 Action
一次对区块链的修改,一个Transaction有多个Action组成。
每个账户可以给其它账户发送结构化的操作( structured Actions )。

操作处理程序 Action Handler
其它账户定义代码来处理收到后的操作。EOS为每个账户提供自己的私有数据库,只能由该账户的操作处理程序(Action Handler)访问。操作处理程序还可以发送操作到其它账户。

系统合约
在 EOS 安装包中就默认存在的那些合约,具体包括什么可浏览 eos/contracts 文件夹。

bios 合约
可以直接控制其它账户的资源分配,且可以访问其它的专属API调用(需增加内容)。

currency 合约
提供了代币的发行与转账功能。

eosio
启动EOS区块链的默认账户。

你可能感兴趣的:(EOS)