教程 | 微软Azure搭建联盟链
文 / Hsieh Yung-chen
台北以太坊 meetup组织者 成员
『 部署聯盟鏈 』
這陣子有幸拿到Azure的測試帳號,便利用這個機會來部署Ethereum blockchain。一查之下發現Azure有給每個新的帳戶,每位6300點的試用。有興趣的讀者也可去試試。(建立免費的Azure帳戶)
不同於公有鏈,聯盟鏈只允許部分節點加入挖礦。有其應用的必要,舉例來說,最近Ethereum公有鏈上的Ether水漲船高,交易手續費也越來越高。不少專案開始轉向發行自己的聯盟鏈/公有鏈來做服務。又或是有隱私需求的廠商,像是銀行等等,也需要自己開發一條聯盟鏈來做智能合約。
Azure提供了一鍵部署聯盟練的功能,讓使用者自己定義分散式網路大小,挖礦節點強度以及數量。這份文件會記錄怎麼部署,以及部署如何撰寫智能合約。
第一步註冊Azure且登入後,來到主界面。
Azure主界面
點左邊新增按鈕,搜尋“Ethereum Consortium Blockchain”。
點選進入“Ethereum Consortium Blockchain”後,可以看到一些關於Ethereum, Blockchain 的介紹。拉到最底下點選”建立”。
等待一下會跳出聯盟鏈部署的一些參數選項。第一步會是基本選項,包括資源命名,密碼等等。都填上後選擇下一步。
下一步會需要開始選擇聯盟鏈的網路大小,Azure提供讓使用者輸入參數的方式,背後自動建置節點。因為只是測試用,這裡的參數都先走預設值。後頭如果有多餘的篇幅再來一一描述每個選項。
第三步會是Ethereum Blockchain 使用上的一些參數。包括Network ID, 以及區塊鏈上使用者帳戶(Account/Address)之秘密,此秘密用來加密區塊鏈主帳戶,另一個秘密用來加密其他的帳戶。
填完後他會有個摘要做最後確認。接著跳到使用者合約,打勾後按購買便開始部署聯盟鍊。等待一段時間之後,便完成部署。
『 觀察節點網路 』
利用前面的教學(其實就是一直按下一步)部署完後。可以到”概觀“裡選擇最新的部署。選擇“microsoft-azure-blockchain…” 進去有三個URL。
其中的”ADMIN-SITE”,複製後開新網頁貼上。可以到admin page。從這個網頁上可以看到各節點的資訊。包括他們各自的peer數量,block數量等等。最底下也有水龍頭,輸入一個帳戶(account/address),系統會自動從admin的帳戶轉1000個聯盟鏈上的ether給他。
因爲部署的時候都用預設值,所以會看到有三個節點。其中一個用來commit tx到網路上。另外兩個為經過認證的miner,其participant ID分別為1跟2。還可以看到個節點各自有連上幾個節點。也有個節點區塊數量。
底下有ether水龍頭。輸入address後,系統會轉1000個聯盟鏈上的ether給該address。
使用MetaMask在聯盟鏈上創建新的帳戶,並轉帳。
聯盟鏈部署完後,我們要開始活絡這個網路。第一步便是創造新的帳戶(account/address)。創造新的帳戶有很多種,可以透過MyEthereWallet, 或是geth原生的cmd都可以很方便的產生。這裡會使用一個叫做MetaMask的工具,相關說明及更多的使用方式在yaohsin的這篇(教練,我”只”想學Solidity)寫得很詳細,可以參考。
比較特別的地方是,我們不是在任何的公有鏈上。所以在連接的地方需要額外設定。使用前面三個URL的第二個:”Ethereum-rpc-endpoint”。
在metamask裡,右上角選擇Setting。填上ethereum-rpc-endpoint之後的url。點選save,完成設定。
將新產生的帳戶(account/address)貼上admin-page裡的水龍頭裡(前面有描述)。系統會自動打1000 ether 到該帳戶。等待交易確認後,便可以開始以yaoshin文章的方式部署智能合約。
『 結語 』
Azure的服務讓我們可以很快得利用其雲端資源建立聯盟鏈。這篇文章提供最簡單的使用方式,像是MetaMask連接Azure聯盟鏈,利用網頁版solidity editer 透過rpc直接部署智能合約等,可以快速地驗證你的智能合約。但要做到更複雜的邏輯,還是需要其他工具的幫忙。之後有時間會再慢慢寫更多的教學。
如果您想更深入地了解以太坊,以下小密圈欢迎您免费加入: