作者:Jollen
上一篇和大家介紹在區塊鏈裡小礦工(詳情請見:區塊鏈裡挖礦的小礦工們)的工作了~那這次就要來教大家如何挖礦,挖礦又有哪一些需要注意的地方呢?首先我們就先來好好認識一下什麼是IPFS,以及和Flowchain之間的關係吧!
認識 IPFS
IPFS 社群的願景之一,就是期待 IPFS 能完全取代 HTTP。做為全球資訊網(World Wide Web — WWW)通訊協定教主的 HTTP 如果有朝一日,真的被 IPFS 擠下這個教主的寶座,最大的受益者,當然就是身為網路使用者的我們。但大家有想過,為什麼最大的受益者是我們這些網路使用者呢?

本系列文章的目標:實現 IPFS + HLS + FFmpeg + Flowchain 的直播(Live)系統(圖片來源:Flowchain Taiwan)
IPFS 首頁上,直白的定義它的用途:「Distributed Web(分散式全球資源網)」。下圖很清楚描繪出 Distributed Web 的網路拓撲邏輯。
WWW 本身就是一個大型的分散式系統(Distributed System),這個龐大的分散式系統由千百萬計的 Clients 與 Servers 所共同組成,並以文件做為基礎(Document-based)來交換資訊,每個文件都以專屬的 URL(Uniform Resource Locator)來索引,HTTP 就是這個龐大系統的通訊協定。分散式系統又可以分為垂直分散(Vertical Distribution)與水平分散(Horizontal Distribution)二種做法,而早已融入我們日常生活的「WWW + HTTP」就是屬於水平式分散式系統。
水平式分散式系統再分為 2 種架構,第一種架構只讓 Servers 間複製(Replication)與同步資料,這種架構就是知名的 Client-Server 架構;第二種架構就是讓 Client 也分散化,讓 Client 也複製並同步資料,這種架構就是 Peer-to-Peer。WWW + IPFS 同樣是水平式分散式系統,但有別於 WWW + HTTP 的 Client-Server 架構,其採用的就是 Peer-to-Peer 架構。下圖很清楚地區分 HTTP 與 IPFS 的技術差異。

HTTP vs. IPFS(圖片來源:What is the InterPlanetary File System?)
HTTP 讓 Client 端都向 Server 請求文件,IPFS 則是讓 Client 直接向「臨近」的 Client 請求文件;更進一步來說,因為 Client 也能保存文件並提供文件,因此就不需要 Server 了。Flowchain 最想做的事情,就是實現 Peer-to-Peer 架構的區塊鏈網路,因此底層結合 IPFS 是很自然不過的選擇。我們在下面一個段落將會說明「Flowchain/IPFS 是什麼?」。
認識 Flowchain+IPFS

Flowchain/IPFS 礦機在做什麼?(圖片來源:Flowchain Taiwan 提供)
雖然 HTTP 是當今最成功的 Distributed System,但是未來(AI + 5G)的新網路時代,將會面臨許多重大挑戰:
- 如何有效儲存並且分發 P 級的資料量(petabyte datasets)
- Real-time media streams 取代 File downloads 成為主要的網路使用場景
- 確保資料的安全與正確性
- 以及其它更多技術挑戰
IPFS 社群正努力解決這些問題。
先前介紹到,IPFS 是一個 Peer-to-Peer 的分散式檔案系統,它可以應用在各種不同的領域,其中之一就是 Blockchain。IPFS + Blockchain 的基本原理,就是將資料(Data)的交易紀錄(Transactions)儲存在 Blockchain 中(即:記帳),然後將資料本身儲存在 IPFS 裡。然而,面對未來 5G + AI 的時代,一個「適合結合 IPFS 」的 Blockchain 技術,就必須克服上述提及的技術問題;Flowchain 就是針對上述技術難題而生的 Blockchain 技術。

Flowchain 處理 Chunked Data 示意圖(圖片來源:Flowchain Taiwan 提供)
Flowchain 區塊鏈最具特色的技術,就是「處理數據流(Dataflow)」;這非常適合結合 IPFS 的數據碎塊(Data Chunks)技術。當 IoT Devices 裝載 Flowchain OS 後,這些裝置就可以「自組態」為一個 Peer-to-Peer 網路,每個 Peer 都可以處理 Data Chunks 的交易。
引用 [区块链与数据存储周报(2018年9月17日-2018年9月23日)] 對 Flowchain 技術的總結:
Flowchain 是定位 IoT 场景的区块链项目,完全使用 js (nodejs)开发。Flowchain 提供了 IoT 场景需要的时间序列数据和数据流两种数据能力,并且每个数据切片都是单独的 transaction,每个 transaction 都通过 p2p 网络传输。
這些技術特點對 media streams 是非常重要的基礎建議。以直播技術來說,視訊串流可以被切割為 data chunks,Flowchain 區塊鏈的設計,能提供 near real-time 的能力來處理 data chunks 交易。當 data chunks 的交易(transactions)被驗證並紀錄於區塊鏈後,Flowchain/IPFS 挖礦節點,就會將這些交易加上 timestamp 並生成對應的 Merkle DAG,並將 media streams 的內容儲存在 IPFS 網路上。
未來,在 IPFS 網路中將有千百萬計的 Peers 節點,你的 Flowchain/IPFS 礦機也會是其中的一個節點;但不同的是,你的 Flowchain/IPFS 礦機節點,將協助全球的網路使用者,進行串流媒體播放與儲存。對 Flowchain/IPFS 的基本原理有初步了解後,就能知道「Flowchain/IPFS 礦機倒底在 mining 什麼了?」Flowchain/IPFS 區塊鏈專門處理串流式的媒體服務,至於單純的檔案儲存,就交給其它 IPFS 區塊鏈囉。
延伸閱讀
[1] Chen, J. (2017). Flowchain: A Distributed Ledger Designed for Peer-to-Peer IoT Networks and Real-time Data Transactions. In: 2nd International Workshop on Linked Data and Distributed Ledgers. Portoroz.
(本文經作者同意轉載自 Flowchain Foundation、原文連結1&原文連結2;責任編輯:葉于甄)
- 【Blockchain入門】Flowchain 挖礦指南:Flowchain + IPFS - 2019/02/18
- 【Blockchain入門】挖礦指南— IPFS - 2019/01/02
- 【Blockchain 入門】區塊鏈裡挖礦的小礦工們 - 2018/12/12
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!