Ethereum 使用的是 PoW 共识机制,将来几年里将会换成 PoS 共识机制。Ethereum 区块是由矿工计算哈希产生,在 PoW 共识机制中区块须要获得全网络超过51%的节点确认才可以正式被区块链承认。在 Ethereum 网路中,任何人均可以成为矿工。javascript
FIBOS 使用的是 DPoS 共识机制。FIBOS 区块的产生是由21个 BP 轮流出块,产生的区块须要2/3以上的 BP 确认才可以被区块链承认。21个 BP 是由 FO 通证持有者投票选举出。java
Ethereum 的用户使用的是地址,一个长达40位的的16进制数。编程
FIBOS 使用的是帐户管理,帐户名采用12位数字与字母组合,可自定义,方便用户记忆。网络
Ethereum 的权限是由地址惟一对应的私钥管理,而且这个私钥是随机生成的,在须要使用的权限的时候用户只能经过私钥受权。app
FIBOS 帐户默认有2种原生权限: owner、active,一个帐户必须“关联” owner、active 权限。框架
另外还能够根据本身需求自定义权限。编程语言
在 Ethereum 中使用区块链上的资源须要消耗 gas,消耗的 gas 做为区块打包的费用支付给矿工。函数
FIBOS的资源分为两种类型:工具
开发者发布一个合约必须拥有足够的资源,包括 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 中若是合约发布后发现问题,现有两种解决方案:
这两种方法都须要预先的设置,以及发布合约的帐号丢失后,也将失去对合约的控制权。
FIBOS 合约帐户名就是发布帐户的帐户名。发布合约时须要发布帐号的资源,包括足够的 RAM、CPU 和 NET。
在 FIBOS 中开发者可使用发布帐户随时更新合约代码。相较于以太坊的合约,FIBOS 的合约后期的维护和更新在技术上容易不少,在成本上低了不少。
Ethereum:
开发框架: Truffle 具备如下功能:
在 Truffle 框架中,能够根据须要编译、部署合约,Truffle 也提供一键启动测试链的工具。
托管节点: Infura Ethereum 的合约能够经过使用 Infura 提供的节点发布合约。
FIBOS: