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 監聽數據。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章