[區塊鏈] 利用Truffle框架建構一個簡單的以太坊應用程式 — Part 1. 前置作業

Chiwen Lai
6 min readApr 2, 2018

--

目標

假設公司預計舉辦聚餐,但地點將讓員工票選,口袋名單已有三家,由員工們選出一家。預計採用區塊鏈技術,製作一個簡單的投票系統。我們可以先看一下最終成品,如下圖,按下「投票」按鈕後,扣除帳號內的ETH交易費用才能投票,由區塊鏈技術達成計票功能。

餐廳投票:以太坊區塊鏈應用

階段

  • Part 1 — 前置作業
  • Part 2 —利用 Truffle box: React框架,先完成一個以ReactJS為前台,搭配Node、web.js的網站,用區塊鏈技術可以更新前端的變數值。
  • Part 3 — 以React框架為基礎,製作我們的投票系統。

Part 1. 前置作業

▼安裝Truffle

$ npm install -g truffle

▼安裝EthereumJS TestRPC

$ npm install -g ethereumjs-testrpc

▼開啟終端機,執行testrpc。看到「Listening on localhost: 8545」就表示成功啟動。TestRPC預設會給10個帳號,每個帳號會先給100 ETH作測試用。將第一個帳號0x25278916090832d134042e8563a627ef66edb513對應的Private Key記起來。

$ testrpc
EthereumJS TestRPC v6.0.3 (ganache-core: 2.0.2)
eth_getBlockByNumber
Available Accounts
==================
(0) 0x25278916090832d134042e8563a627ef66edb513
(1) 0xd3d7677ba5fcf5262de1c94c0be0edc9e7e082e3
(2) 0xb50976364434337567c3234dd69d5aecbb022c7c
(3) 0x4d42279038f00547ea5f5aef0ec8b200c2eb1805
(4) 0x07e8046d000bfbfa242fe0b160706015c51f2f7b
(5) 0x29e295d23a1f13b9a2ad07e42feb3693d6344906
(6) 0x53308872944fe5feb2bff0ec678912979b602730
(7) 0x4c4cb0a65268b2b1a0e0ebab60b16c10f4e18672
(8) 0x22b129e68f557f6b138d9b29e2b1dbb41dbe5c22
(9) 0x1fa6028be779be92246e0acc8b278604efdddf24
Private Keys
==================
(0) e0f46e7219d35acc38a73dfe7201983c5b7ae94f18d2e98c92a822faee9e95cf
(1) 597f92aac992eae223db481e006d8455d8088c501431812363bfd9bfd9bd3179
(2) e8fc03bafb3ced76a000949a8a6cd65917b45b6261db45c1339b3c00b2a8693e
(3) 606b40446819c42efdb9fd118741c04ae78f3f2da91d694a1f58a5b59ca41c19
(4) 3ae1a801f511da338817375ac7eb0f271cf814181c6613113fd1a0cc0093d575
(5) 32d816486bc0c2381944042e15201559fec836b430a923523a1b9490b2d04ef5
(6) 73835afa64d0a53c349d0b931f6e1bcf9ec1f1fbc4c7c3d04196a7df1ae35f54
(7) 70d1d79646daa57169c58ca4ea7096cf805828073c7b8ce661f926a2ff004030
(8) b0be197738a564db615f3eeeb70ce40b74d6e3de572e1f90c1935ba73b8e6730
(9) ba6e40de8fca1023b4f5827bea665ecfcda9bcfe171ebf3f9cecfdf424fba930
HD Wallet
==================
Mnemonic: aisle surround deny voyage blossom exercise drive matrix caution again detect divert
Base HD Path: m/44'/60'/0'/0/{account_index}
Listening on localhost:8545
eth_getBlockByNumber
eth_getBlockByNumber

▼安裝MetaMask: 用Chrome瀏覽器開啟https://metamask.io/,點下「GET CHROME EXTENSION」,即可安裝。

▼安裝完畢之後,MetaMask的圖示會出現在網址列右方,第一次登入需要先設定密碼,之後需要先輸入密碼才能登入,所以請記好密碼。

▼將MetaMask網路切換到Localhost 8545,也就是我們正在執行中的testrpc。

▼切換到Private Network後作登入。

▼將testrpc的帳號在MetaMask作登入。選擇Import Account後,將我們前面記住的Private Key在這邊輸入後按Import,可以發現原本帳號內的100 ETH被扣除了一點點。

--

--