• 沒有找到結果。

第四章 區塊鏈中介元件軟體使用探討

4.8 效能測詴

而不需要每次都查詢 Ethereum。

使用本系統調用 Ethereum Explorer 的方法如下,參考圖 4.4:

(1) 使用 GET 方法調用 /eth/explorer/block:此 API 可透過區塊編號或者區塊雜湊來搜 尋此區塊儲存的相關內容。

(2) 使用 GET 方法調用 /eth/explorer/address:此 API 可以透過以太坊地址來查詢該地 址所有的交易與餘額資訊。

(3) 使用 GET 方法調用 /eth/explorer/transaction:此 API 可以透過交易雜湊來搜尋該筆 交易的詳細內容。

(4) 使用 GET 方法調用 /eth/explorer/contract:此 API 可以透過以太坊智能合約地址搜 尋位於以太坊上該地址的智能合約詳細資訊。

(5) 使用 GET 方法調用 /eth/explorer/event:此 API 可以透過以太坊智能合約地址搜尋 紀錄於以太坊區塊鏈上的 Contract Event 資訊。

圖 4.4 Ethereum Explorer API

4.8 效能測詴

本研究提出之中介軟體服務使用 Message Oriented Middleware、Webhook 技術,讓使用 本系統開發的應用程式可以有效的縮短開發流程並且降低開發成本。本節將對本系統使

49

用的主要技術,造成的開發時間縮短進行測詴研究,以了解改善程度。

4.8.1 Amazon Web Service

Amazon Web Service 簡稱 AWS,本研究規劃使用 AWS 所提供的各種服務,讓本系統的模 組與模組間的溝通可以利用 AWS 提供的內部網路互相串連有效地提升資料與訊息的傳 遞速度,另外一個優勢為 AWS 內部所有服務整合性非常高,以及提供了各個服務的詳 盡文件,使其非常容易使用。

本研究所使用到的 AWS 相關服務如下:

(1) Amazon Simple Queue Service:Amazon Simple Queue Service (SQS) 是一個訊息佇列 服務,可輕鬆地分離和擴展微型服務、分散式系統及無伺服器應用程式。

(2) Amazon Relational Database Service:Amazon Relational Database Service (Amazon RDS) 是一個服務,並能夠在雲端中輕鬆設定、操作和擴展關聯式資料庫。

(3) Amazon ElasticSearch Service:Amazon Elasticsearch Service 是一個可以輕鬆部署、

操作及擴展 Elasticsearch,並進行日誌分析、全文檢索搜尋、應用程式監控等等工 作。

(4) Amazon Elastic Compute Cloud:Amazon Elastic Compute Cloud (EC2) 是一種雲端託管 服務,可提供能調整大小的虛擬伺服器,讓運算更為容易。

4.8.2 測詴環境

本小節將分為兩的部分進行敘述,本系統的測詴環境提供部署在雲端以及透過 Docker Container 的方式於本機進行測詴。

4.8.2.1 雲端部署

測詴環境採用 Amazon Web Service 的雲端服務,此規格為固定之規格,使用 AWS Elastic Compute Cloud 的 m4.large 實例,參考圖 4.5、圖 4.6,規格如下:

50

(1) vCPU:2 核心 (2) ECU:6.5

(3) 記憶體(GiB):8G

(4) 作業系統:Ubuntu Server 16.04 LTS (HVM), SSD Volume Type

圖 4.5 Amazon EC2 規格

圖 4.6 Amazon EC2 Instance

4.8.2.2 本地端測詴

51

本地端測詴的方式使用 Docker Container,將每個服務與元件切割成不同的映像檔,透過 Docker 內提供的 Docker Compose 的功能將每個元件分別各自啟動成不同的映像檔,可 以在本機端將整個系統架構起來測詴使用。

本地端系統共分成四個 Docker Container 映像檔:

(1) Ethereum:以太坊區塊鏈核心,提供 RPC 接口。

(2) BlockChainBox:本研究所提供之 API 伺服器端。

(3) Postgres:內建 PostgreSQL 資料庫,負責儲存外部資料。

(4) Elasticsearch:提供以太坊區塊鏈相關資訊的儲存與搜尋功能。

相關文件