FIBOS-EOS入門

giserinchina發表於2018-09-03

fibos簡介

什麼是EOS?

EOS 專案

EOS (Enterprise Operation System)是由 Block.one公司主導開發的一種全新的基於區塊鏈智慧合約平臺,旨在為高效能分散式應用提供底層區塊鏈平臺服務。EOS 專案的目標是實現一個類似作業系統的支撐分散式應用程式的區塊鏈架構。該架構可以提供賬戶,身份認證,資料庫,非同步通訊以及可在數以萬計的 CPU/GPU群集上進行程式排程和並行運算。EOS最終可以支援每秒執行數百萬個交易,同時普通使用者執行智慧合約無需支付使用費用。

EOS的功能:

EOS代幣目前是EOS區塊鏈基礎設施釋出的基於以太坊的代幣,主要有三大應用場景:頻寬和日誌儲存(硬碟),計算和計算儲備(CPU),狀態儲存(RAM)。EOS主網上線後會將ERC20代幣EOS轉換為其主鏈上的代幣。

(延伸閱讀:《OTCBTC 關於支援 EOS 對映的說明》)

具體可解釋為:

  1. 接收方支付: 客戶從該業務中購買特定產品,而這些產品的銷售收入將用於支付業務成本,避免客戶直接為使用區塊鏈支付費用,也不會限制或阻止企業確定其產品的貨幣化策略。

  2. 授權能力:如果一個區塊鏈是基於 EOS 軟體系統開發,而其代幣是由一個代幣持有者所持有,他可能不需要立即消耗全部或部分可用頻寬,這樣的代幣持有者可以選擇將未消耗的頻寬給予或租給他人。

  3. 將交易成本與代幣價值分開:如果應用程式所有者持有相應數量的代幣,那麼應用程式可以在固定的狀態和頻寬使用中持續執行。開發人員和使用者不會受到代幣市場價格波動的影響,因此不會依賴於價格。

4.區塊獎勵:每次生成一個區塊時,EOS都會獎勵該區塊生產者新的代幣用於支付其運維成本。目前EOS設定限制了區塊生產者所得獎勵上限,目前EOS設定給予區塊生產者的獎勵上限為每年最多5%,即代幣新增供應的年總增長不超過5%。

FIBOS 是什麼?

FIBOS 是一個結合 FIBJS 以及 EOS 的 JavaScript 的執行平臺,它使得 EOS 提供可程式設計性,並允許使用 JavaScript 編寫智慧合約。

FIBOS 平臺的出現讓第三代 EOS 智慧合約程式設計變得簡單、快捷!

為什麼要創造 FIBOS ?

  1. 目前 EOS 的環境部署困難

EOS 的編譯環境依賴性強,編譯過程時常遇到很多問題,對於普通一個開發者來說,大多數面對 CMake 的情況是束手無策的。

而 FIBOS 提供一套預編譯開發環境,開發者可以快速實現部署,把更多的時間用在編寫智慧合約上。

  1. 開發門檻高

編寫 EOS 智慧合約需要掌握 C++ 語言,這對於一名開發者來說學習成本非常高,並且我們認為正確的寫出編譯合約的 CMAKELISTS.TXT 才是剛剛開始!

而對於 FIBOS 來說,開發者可以使用 JavaScript 指令碼語言進行編寫智慧合約,而這門語言學習成本很低。

對於一名開發者來說,如果一件事情簡單容易,我們認為他們會更容易接受,並渴望瞭解 FIBOS。

  1. 測試套件原始

EOS 的測試用例編寫也必須使用 C++,高難度的語言學習,高難度的編譯,使得測試這件事在 EOS 上面變得複雜、困難。

FIBOS 整合 FIBJS 服務端開發平臺,擁有成熟的測試套件,在 FIBOS 平臺上編寫的用例,開發者可以使用 JavaScript 編寫測試用例,這一切看起來非常的靈活、輕鬆!

  1. EOS 迭代週期長

一個 EOS 智慧合約要想成功部署釋出,需要經過編寫、編譯、部署、測試、除錯、修復,漫長的等待過程。

FIBOS 支援本地合約模式,隨時修改隨時測試,結合一些 IDE 工具可以做到一鍵研發測試。

  1. 開發生態原始

EOS 使用 C++ 參與編寫研發,並不能做到 NPM 這樣的生態環境,而 FIBOS 支援 NPM 包管理,與龐大的 NPM 生態緊密連線。

  1. 部署釋出合約成本高

EOS 編寫合約需要讓 C++ 程式碼編譯到 WASM,而 WASM 編譯檔案非常龐大,讓釋出部署執行合約成本非常高昂。

FIBOS 編寫的合約可以通過打包指令碼,壓縮檔案極大的降低部署釋出成本。

  1. 合約不可審計

EOS 合約編譯成 WASM 後,對審計閱讀合約程式碼帶來了極大的困難,開發者無法評估合約的安全性。

FIBOS 的合約使用 JavaScript 編寫並且全部開源,方便社群審計,迅速形成共識。

 

實戰操作

安裝fibos

快速安裝: curl -s https://fibos.io/download/installer.sh |sh

 

git clone https://github.com/watemei/fibos-js.git

獲取公私鑰

var FIBOS = require("fibos.js");
var prikey = FIBOS.modules.ecc.randomKeySync(); //私鑰
var pubkey = FIBOS.modules.ecc.privateToPublic(prikey); //公鑰
console.log("公鑰: %s\n私鑰: %s",pubkey,prikey)

線上建立

註冊fibos賬號

curl -l -H "Content-type: application/json" -X POST -d '{"account":"wattm5211314","pubkey":"FO7LEjyZibQyqUNuLMZUWX8ahN8ryxWdhh59NfBD2n2HSAn3vpYd"}' http://tunnel.fibos.io/1.0/app/token/create

tips : account 數字 1-5 字母 a-z 必須12位

註冊EOS賬號

  1. 使用tokenpocket

       EOS註冊賬號小白篇, 使用app註冊EOS賬號

  1. 找已有使用者來啟用

       eos賬戶註冊eos賬號怎麼建立

      OTCBTC如何提幣EOS到主網賬號

配置引數

var config = {
	mainChain:{
		chainId: "6aa7bd33b6b45192465afa3553dedb531acaaff8928cf64b70bd4c5e49b7ec6a",
	    priKey: "FIBOS 私鑰",// 生成方法 fibos getKeys.js
	    httpEndpoint: "http://ca-rpc.fibos.io:8870",
	    verbose: false,
	    logger: {
	            log: null,
	            error: null
	        }
	    },
    foaccount:"fibos賬號",// 
    eosaccount:"eos賬號",
    pubKey:"FIBOS 公鑰",// 生成方法 fibos getKeys.js
    priKey: "FIBOS 私鑰"
}

EOS兌換FO

fibos eos2fo.js

FO兌換EOS

fibos fo2eos.js

 

社群

website: https://fibos.io

telegram: https://t.me/FIBOSIO

twitter: https://twitter.com/fibos_io

medium: https://medium.com/@fibosio

issue: https://github.com/fibosio/fibos/issues

 

歡迎大家一起加入討論!!!