Ethereum以太坊儲存資料 - 以客戶資料為例(一):部署Ethereum環境
2017/10/17 08:10:53
0
1562
一、目的
這次要跟各位介紹利用Ethereum以太坊來儲存資料,在開始之前要先讓各位知道一個名詞「區塊鏈」,「區塊鏈」這個名詞對一部份的讀者來說可能很陌生,但要是說到「比特幣」相信每個讀者耳熟能詳,其實「區塊鏈」在「比特幣」與「以太坊」中扮演著核心技術的腳色,確保資料無法被竄改,保障交易正確性。
區塊鏈不只可以應用在比特幣上,還可以應用實體資產或是虛擬資產上,例如:病歷資料、身份辨識、債券、許可證、生產履歷、遺囑...等。
本文不會涉及數學公式與艱深的技術用詞,會以淺顯易懂方式讓各位讀者都能了解區塊鏈背後的邏輯和機制。
二、區塊鏈運作 - 以金融轉帳為例
區塊鏈裡會有一本帳本,它記錄著所有交易紀錄的電子檔案。這本帳本不會存放在一個資料庫或是某一台電腦裡。區塊鏈會散佈無數份副本到區塊鏈網路上的每一台電腦裡,而每一台電腦都稱為節點(node)。
在區塊鏈網路裡進行交易,會需要一個錢包(wallet),裡面存放交易資料,並且會有加密演算法保護wallet,必須搭配公鑰和私鑰才能使用wallet。
底下是以金融轉帳為例,可以幫助讀者更了解區塊鏈運作機制:

Step 1: A使用wallet匯款給B。
Step 2:A匯款給B的交易紀錄透過網路,傳送到區塊鏈網路上所有node,全部node會使用各自的帳本共同對此交易進行驗證真偽。
Step 3: 若通驗證會將此交易,會將交易傳遞到區塊鏈網路上所有node的帳本記錄。若驗證有問題,將不會傳遞出去。
Step 4:B成功收到A匯的錢並存進自己的wallet。
從上圖可以看出區塊鏈有兩個特性:
a.去中心化:每個node都有帳本,並沒有只存放在某一個node上。
b.資料無法被竄改:每筆交易紀錄需要多數的node使用帳本驗證過,才是合法交易,不可能同時竄改多數的node上帳本。
從以金融轉帳為例中來看,區塊鏈網路中每個node就像是各家銀行的分行一樣,跟現有銀行體系的「集中式」來比較,區塊鏈是「分散式」透過網路互相溝通自主管理。 區塊鏈的介紹到這邊,相信各位讀者對區塊鏈運作機制有一定的了解了,而Azure上的Blockchain區塊鏈服務,就是幫助我們建立區塊鏈網路並管理node、wallet、帳本。
三、Azure雲端 -「Ethereum以太坊」環境部署
這次會利用Azure雲端上的「Azure Blockchain Service」服務來幫我們部署「Ethereum以太坊」。 先登入Azure雲端,點選左上角的「新增」。

輸入「Ethereum Consortium Blockchain」關鍵字搜尋,並按下搜尋出來的「Ethereum Consortium Blockchain」項目。

點選「建立」。

輸入相關資料在按「確定」,請記住gethadmin的密碼,在後續會使用到。

直接按下「確定」,不須做任何修改,使用預設值既可。

輸入相關資料在按「確定」,請記住Ethereum account的密碼,在後續會使用到。

直接按下「確定」按鈕既可。

直接按下「購買」按鈕既可。

四、Ethereum以太坊的設定資訊
要找出ETHEREUM-RPC-ENDPOINT與ETHEREUMNETWORKID,在後續會使用到。 進入「資源群組」-->「thinkopwer」。

進入「部署」-->「microsoft-azure-blockchain.azure-blockchain」。

進入「部署」-->「microsoft-azure-blockchain.azure-blockchain」。

找到ETHEREUMNETWORKID項目並記錄下編號。

五、重要資訊整理
在下一篇文章會使用到下列資訊,所以請讀者要特別記下:
a:gethadmin的密碼
b:Ethereum account的密碼
c:ETHEREUM-RPC-ENDPOINT的url
d:ETHEREUMNETWORKID的編號 e:SSH-TO-FIRST-TX-NODE項目