• 沒有找到結果。

系統框架實作及其運作方式

第四章 應用區塊鏈技術設計研發記錄系統

第三節 系統框架實作及其運作方式

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

第三節 系統框架實作及其運作方式

開發一套去中心化應用程式(Decentralized Applications),所牽涉到的技 術層面甚廣,從網頁前端到後端資料庫再到區塊鏈技術,無法一一詳盡地介 紹,本研究僅說明本系統實作時所採用之核心技術:

一、區塊鏈技術:以太坊(Ethereum)搭配私有鏈開發

因為開發去中心化應用程式需要用到圖靈完備的區塊鏈系統,所以本研究 選擇以太坊(Ethereum)為底層區塊鏈技術。然而如果要實際開發並運行於現 有的公有鏈上,其成本無論是開發程式或是測試上效率都會比較低落,所以本 研究的實作上採取以私有鏈的方式作為開發,採用私有鏈並不但不會使得系統 錯誤 反而在實務上都會首先以私有鏈作為概念性驗證(Proof of Concept),待 開發成功而又沒有太大的問題時再加以修正搬到公有鏈上運行,為比較有效率 的開發方式。而在演算法上本研究採用較為節省能源跟算力的權威証明PoA

(Proof of Authority)以取代PoW。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

二、以太坊Ethereum客戶端程式:Parity26

以太坊的去中心化應用程式開發上主要有兩大用戶端介面程式,Parity 和 Geth,兩者皆可以完成目標系統的開發,而對比起Parity擁有圖形使用者介面

(Graphical User Interface), Geth只擁有命令列介面(Command line

interface),對於概念性驗證的開發上比較不適用,故本研究採以Parity作為開 發智能合約的核心。

11:成功運行 partiy 示意圖

三、伺服器端應用:Node.js

為世人所熟悉的Javascript 一開始只能運行在網頁的前端,而往往 JS 工程 師要跨到後端的話一定要再學一種後端的語言跟框架(PHP 跟 Laravel, Ruby 跟 Ruby on rails, Python 跟 Flask)。Node.js 的出現改變了以往一個網站前後端要 以不同的程式語言開發的觀念,只要熟悉Javascript,將會很容易的學會

Node.js。而且也可以很方便的只利用 Javascript 就可以建立起完善的網站,而前

26 https://github.com/paritytech/parity

後端都用Javascript 的優點是溝通會十分方便。簡單來說,Node.js 就是運行在 伺服器端的JavaScript。Node.js 採用 Google 開發的 Chrome V8 引擎,V8 在執 行之前將JavaScript 編譯成了機器碼,以此提升效能,JavaScript 程式與 V8 引 擎的速度配合下媲美二進制編譯。而Node.js 使用事件驅動、非阻塞和異步函數

四、Javascript Front-End Framework:React.js

React.js 是由 Facebook 的工程師 Jordan Walke 於 2011 年部署於 Facebook 的newsfeed,在 2013 年在美國的 Javascript 研討會上正式開源。因為隨著網頁 的功能越多,觸發頁面的事件越多,前端資料狀態的變化也越頻繁,因此改變 文件物件模型(Document Object Model, DOM)結構也會越頻繁。而 HTML DOM 是一個很大的樹狀資料,每當一個事件發生,而需要進行更新、修改、刪 除時,底層的程式就必須先從這一棵DOM 樹中,一直從上而下直到找到那一片 要更改的葉子,而React 的改善方法為把資料一律重繪,只要資料變動一次,

React 就根據資料重新的填充資料,並且顯示給使用者。而背後用的技術為 Virtual Dom,因為改變 DOM 是很耗效能的一件事,而一律重繪將會改變一整

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

棵DOM 樹,但是如果開發者跟 DOM 中間有一個中間件,可以幫我們改變最小 幅度的DOM,將能大幅提升開發速度。而這個中間件就是 Virtual DOM,一律 重繪改的事實上是記憶體中的DOM 物件,而 React 會在根據舊狀態和新狀態的 排版和資料進行比對,將確切有需要更動的DOM 真實反映在瀏覽器的 DOM 上。而除了效能上的選擇外,React.js 跟 web3.js 相容上也比較高,所以本研究 選擇React.js。

五、後端雲端服務平台:Firebase

Firebase 原本是 2011 年開始的一家提供雲端服務的公司,2014 年被 Google 收購後,被 Google 改善併提供服務的雲端資料庫,同時支援各種跨平 台的開發(包含Android、iOS 及網頁),協助使用 Firebase 平台的開發人員在 雲端快速建置後端資料庫服務,本研究選擇Firebase 是希望能更專注在去中心 化應用程式的開發跟前端的優化,背後的資料庫一切從簡,而Firebase 能提供 即時資料庫的運用,有效縮短開發時間。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

相關文件