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: