FIBOS 与 Ethereum 技术对比

news/2024/7/7 14:31:43 标签: javascript, 区块链

共识机制

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 合约示例:

javascript">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 监听数据。

http://www.niftyadmin.cn/n/1040024.html

相关文章

XMLBEANS的使用总结

原文地址:http://youlong05.iteye.com/blog/87324在本文中,我们将详细了解最好的数据对象XMLBean。从传统角度来说,在Java应用程序中使用XML,就是在从XML文档向Java导入数据的技术或从数据模型层向XML导出数据技术之间架起了一座桥…

图片和视频编辑之Matrix大法好

最近在做图片和视频编辑时,大量使用了Matrix,这里记录下相关知识点,希望可以起到抛砖引玉的作用。 概述 Matrix的使用范围非常广泛,我们平时使用的Tween Animation,其在进行位移、缩放、旋转时,都是通过Mat…

使用 XMLBeans 进行编程

深入考察 XMLBeans 的特性和功能。本文通过一个简单的例子介绍 XMLBeans 技术,然后一步一步地介绍编译和绑定的过程,讨论 XML 游标、标记和 XQuery 表达式等高级特性。本文还将讨论 XMLBeans 与其他 XML-Java 数据绑定技术相比所具有的优点。随着企业应用…

GDI+ 画刷、矩阵、基本绘图函数、文字、图像

本文转自:http://blog.csdn.net/andywangcn/article/details/6270285 主要画刷 单色画刷SolidBrush SolidBrush(const Color& color ); 网格画刷HatchBrush HatchBrush( HatchStyle hatchStyle, const Color& foreColor, const Color& backCo…

Uber提出有创造力的POET:自行开发更困难环境和解决方案

近日,Uber 发文介绍了一种开放式方法 POET(Paired Open-Ended Trailblazer),可自行开发难度递增的环境及其解决方案,还可以实现不同环境中的智能体迁移,促进进化。Uber AI 实验室注重开放性(ope…

hibernate.cfg.xml配置总结

Hibernate的描述文件可以是一个properties属性文件,也可以是一个xml文件。下面讲一下Hibernate.cfg.xml的配置。配置格式如下: 1. 配置数据源 在Hibernate.cfg.xml中既可以配置JDBC,也可以配置JNDI。在本小节中讲述数据源如何配置。 hibe…

从0开始搭建rxjava+retrofit+mvp+dagger2整合基础框架(rxjava+retrofit网络层搭建)

从0开始搭建rxjavaretrofitmvpdagger2整合基础框架(rxjavaretrofit网络层搭建)2016年12月20日 12:00:16阅读数:2619古语有云,没有规矩,就不成方圆。其实做什么事都一样,做什么事都要有自己熟悉且大家都认同…

前端基础入门一(HTML)

学习目标 了解常用浏览器掌握WEB标准理解标签语义化掌握常用的排版标签掌握常用的文本格式化图像链接等标签掌握三种列表标签掌握表格标签掌握表格标签掌握表单标签HTML第一天目标 能够写出基本的页面(里面包含图片、各种标签和链接) 开发工具 我们主要用…