Flowchain 挖礦指南 #3:礦工的重責大任

jollen
Flowchain Taiwan
Published in
5 min readNov 24, 2018
為個人與企業打造的 Flowchain/IPFS 專業主板

使用 [Flowchain Ledger] 開發一個 Flowchain/IPFS 節點應用程式,只需要簡單幾個步驟。

Step 1: 引入 flowchain-ledger 程式庫,這是 Flowchain 區塊鏈的主要 SDK。

var PeerNode = require('flowchain-ledger').PeerNode;

Step 2: 實例化一個 server instance,準備啟動你的 Flowchain 節點。

/**
* Create an WoT.City application instance.
*/
var wotcity = require('wotcity.io');
var app = wotcity({ host: process.env.HOST, port: 8100 });

[wotcity.io] 是 Flowchain 的底層通訊架構,這是一個去中心化的 IoT 軟體框架,非常適合用來開發 Peer-to-Peer 的物聯網應用程式。關於 wotcity.io 的技術細節,可參考 [Decentralized Internet of Things Software Framework for a Peer-to-Peer and Interoperable IoT Device]。

Step 3: 實例化 Flowchain 區塊鏈的 Peer Node,並加入到上述步驟的 server instance。

// Create a Flowchain Ledger instance.
app.node = new PeerNode();

Step 4: 建立 IPFS API 實例化,並加入到步驟 2 所建立的 server instance。

/**
* Create an IPFS Client instance
*/
var IpfsApi = require('ipfs-api');
app.ipfs = IpfsApi({
host: 'localhost',
port: 5001,
protocol: 'http',
headers: {
authorization: 'FLC ' + TOKEN
}
});

Final Step: 啟動 Flowchain/IPFS 挖礦節點。

/**
* Start a Flowchain/IPFS mining node.
*/
app.start();

Flowchain + IPFS 是專為「串流式資料」而生的區塊鏈網路,當 Flowchain/IPFS 節點啟動後,它會加入一個預設的 Validator Node。在 Flowchain network 裡的所有 Flowchain/IPFS 節點,會自動組態成一個 Peer-to-Peer 分散式網路。

目前,Flowchain network 初生的時間,validator node 都是礦池節點(Computing Pool);這個設計的目的,是因為一個網路上線的初期,需要能被信任的節點(trusted nodes)來為我們處理交易。

啟動 Flowchain/IPFS 挖礦節點

最後,要怎麼透過 Flowchain 來做視訊直播呢?Flowchain/IPFS 節點支援 HTTP 與 WebSocket 協定,最簡單的做法,就是使用 HLS 或是 HTTP 206 將即時視訊傳送到任一個 Flowchain/IPFS 節點。

以 Mac 為例,只需要執行以下指令:

$ ffmpeg -s 320x240 -f avfoundation -r 30 -i "0" -f mpeg1video -b:v 800k -s 320x240 http://localhost:8100/video/000/send/320/240

總結來說,FFmpeg 會將即時影像以 chunked data 方式傳送給 Flowchain/IPFS 節點。

網路上的 Flowchain/IPFS 節點(即:Flowchain 礦工)負責處理 chunked data 的交易(transactions),再將交易紀錄在 Flowchain 帳本。Chunked data 則是在「完成記帳」後,儲存到 IPFS 檔案系統。

FLC 是 Flowchain/IPFS 的激勵層

這就是 Flowchain/IPFS 礦工的任務;當礦工接收並完成任務時,就會得到 FlowchainCoin (FLC) 做為獎勵。

--

--