FIBOS 与 Ethereum 技术对比

共识机制

Ethereum 使用的是 PoW 共识机制,未来几年里将会换成 PoS 共识机制。Ethereum 区块是由矿工计算哈希产生,在 PoW 共识机制中区块需要得到全网络超过51%的节点确认才能够正式被区块链认可。在 Ethereum 网路中,任何人都可以成为矿工。

FIBOS 使用的是 DPoS 共识机制。FIBOS 区块的产生是由21个 BP 轮流出块,产生的区块需要2/3以上的 BP 确认才能够被区块链认可。21个 BP 是由 FO 通证持有者投票选举出。

账户/地址

Ethereum 的用户使用的是地址,一个长达40位的的16进制数。

FIBOS 使用的是账户管理,账户名采用12位数字与字母组合,可自定义,方便用户记忆。

权限

Ethereum 的权限是由地址唯一对应的私钥管理,并且这个私钥是随机生成的,在需要使用的权限的时候用户只能通过私钥授权。

FIBOS 账户默认有2种原生权限: owner、active,一个账户必须“关联” owner、active 权限。

  • owner 拥有超级权限,代表着账户的归属者,因为拥有此权限者可以用于操作其他权限配置,该权限常用事务中(转账、合约 action 等)一般不会使用。
  • active 常用业务的权限,比如:转账、投票等。

另外还可以根据自己需求自定义权限。

手续费/资源

Ethereum gas

在 Ethereum 中使用区块链上的资源需要消耗 gas,消耗的 gas 作为区块打包的费用支付给矿工。

FIBOS 资源

FIBOS的资源分为两种类型:

  • 抵押型资源,包括 CPU 和 NET;
  • 消耗性资源,叫做 RAM,也称存储。

开发者发布一个合约必须拥有足够的资源,包括 RAM、CPU 和 NET。

智能合约

编程语言的区别

Ethereum 上开发智能合约使用的语言为 Solidity,这是一门专为 EVM 而开发的语言,对于一般没有接触过 Ethereum 或智能合约的开发者来说,该语言的研发门槛很高。

Ethereum 合约示例:

pragma solidity ^0.4.0;

contract hello {
    function hello(uint i){

    }
}

FIBOS 使用 JavaScript 编写智能合约,开发成本极低。这让开发智能合约的门槛降低了许多。

FIBOS 合约示例:

exports.hi = user => console.error('in contract:', user);

合约的发布和更新

Ethereum 合约发布成功后会得到一个合约地址。合约地址格式长并且没有规律记忆起来十分困难。Ethereum 合约发布后无法更改。

在 Ethereum 中如果合约发布后发现问题,现有两种解决方案:

  • 一个是在合约中预先设置销毁函数,并设置权限只有合约发布者可以调用,在需要的时候调用销毁函数销毁合约。
  • 另一个方法是在合约中预先设置 delegatecall,由于 delegatecall 保留了函数调用的状态,因此可以更新目标合约的逻辑,并且状态将保留在代理合约中以供更新后的目标合约的逻辑使用。

这两种方法都需要预先的设置,以及发布合约的账号丢失后,也将失去对合约的控制权。

FIBOS 合约账户名就是发布账户的账户名。发布合约时需要发布账号的资源,包括足够的 RAM、CPU 和 NET。

在 FIBOS 中开发者可以使用发布账户随时更新合约代码。相较于以太坊的合约,FIBOS 的合约后期的维护和更新在技术上容易很多,在成本上低了很多。

生态支持

Ethereum:

  1. 开发框架: Truffle 具有以下功能:

    • 内置的智能合约编译,链接,部署和二进制文件的管理。
    • 快速开发下的自动合约测试。
    • 脚本化的,可扩展的部署与发布框架。
    • 部署到公网或私网的网络环境管理功能
    • 使用 EthPM&NPM 提供的包管理,使用 ERC190 标准。
    • 与合约直接通信的直接交互控制台(写完合约就可以命令行里验证了)。
    • 可配的构建流程,支持紧密集成。
    • 在 Truffle 环境里支持执行外部的脚本。

在 Truffle 框架中,可以根据需要编译、部署合约,Truffle 也提供一键启动测试链的工具。

  1. 托管节点: Infura
    Ethereum 的合约可以通过使用 Infura 提供的节点发布合约。

FIBOS:

  1. fibos.js 是 FIBOS 区块链的通用库,具有以下功能:

    • 使用 NPM 提供的包管理。
    • 快速开发下的自动合约测试。
    • 提供合约与客户端交互接口。
    • 提供合约内部所需的 API 接口。
  2. 节点: FIBOS 提供一键脚本发布十分简单易用。
  3. FIBOS-tracker 是一个 FIBOS 区块链数据 API 服务框架,基于 fib-app 框架实现。

    • 提供对 FIBOS 区块数据的 emitter 监听事件。
    • 提供 http 服务,支持 GraphQL 调用。
    • 支持使用 ORM 定制自己的数据模型 model,自定义数据表以及自定义 hook 监听数据。
    原文作者:fibos
    原文地址: https://segmentfault.com/a/1190000017907916
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞