區塊鏈(八) - 以太坊私有鏈多個節點連結

劇情回顧: 區塊鏈(一) - 建立以太坊私有鏈 區塊鏈(二) - 創建虛擬錢包 區塊鏈(三) - MetaMask 加密貨幣錢包 區塊鏈(四) - 智能合約的開發工具 區塊鏈(五) - 在私有鏈上部署智能合約 Part 1 區塊鏈(六) - 在私有鏈上部署智能合約 Part 2 區塊鏈(七) - Windows10 建立以太坊私有鏈 獲取節點資訊 已經在 MacOS 和 Windows10 上架設好私有鏈,接下來要做的事情就是使兩個節點連接到同一個鏈上,這樣就可以模擬不同的使用者在公有鏈上交易的環境與過程。 取得本機端節點資訊的指令如下: $ admin.nodeInfo.enode Fig. 1. nodeInfo. 在兩個冒號 :: 後面的連接是該節點電腦的 IP,30303 是端口號。 要讓兩個節點連接在一起,需要使用以下指令: $ admin.addPeer("enode://...") 在連接之前,先確認一下節點情況。如果還沒有連接,會顯示 -> [ ]。 $ admin.peers Fig. 2. peers. 兩台測試機連線 以下是兩台測試機連結的情況,當兩台節點連接後,請注意將 @ 後面的 IP 更換為本機連接網絡的 IP。 MacOS 節點連接資訊: enode://5db35aae54803ead9be476db5b7b20633c13ba129fd040c9520731f85f845bf52fbb24da46b3c48eb1a5672b36c3713fc880ebad0c0d2b58f478dbbf55dcd3cc@127.0.0.1:30303?discport=0 Windows10 節點連接資訊: enode://f06ecc138441e7a61076c9bc5f1d149b5f4907a96b3f630b64574facfd30342b5a3d6f660c9450dce39108bbb06210847b809482e67c7a9c639890c61583c9db@127.0.0.1:30303?discport=0 連接成功後,你可以使用以下方法測試連接情況:...

December 8, 2022 · 1 min · 76 words · Xubo

區塊鏈(七) - Windows10 建立以太坊私有鏈

劇情回顧: 區塊鏈(一) - 建立以太坊私有鏈 區塊鏈(二) - 創建虛擬錢包 區塊鏈(三) - MetaMask 加密貨幣錢包 區塊鏈(四) - 智能合約的開發工具 區塊鏈(五) - 在私有鏈上部署智能合約 Part 1 區塊鏈(六) - 在私有鏈上部署智能合約 Part 2 對於多數人使用的系統是 Windows,所以本篇將描述如何在 Windows 上建立以太坊私有鏈。 下載 Go Ethereum Windows 版本 下載方式和 MacOS 是一樣的,可以到 Go Ethereum網站 下載,這部分可以參考第一篇文章。 Fig. 1. go-ethereum for windows. 啟動以太坊 安裝完成後,打開命令提示字元(CMD),輸入以下指令來啟動以太坊節點。 $ geth 在資訊欄中找到 dir,這是存放鏈數據的位置。 接下來的步驟是創建一個「創世區塊」。 你可以根據需要進行細部修改,將下面的內容保存到 genesis.json 文件中,並將該文件放入鏈數據目錄中。 # genesis.json { "config": { "chainId": 10, "homesteadBlock": 0, "eip150Block": 0, "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", "eip155Block": 0, "eip158Block": 0, "byzantiumBlock": 0, "constantinopleBlock": 0, "petersburgBlock": 0, "istanbulBlock": 0, "ethash": {} }, "nonce": "0x0", "timestamp": "0x5e4a53b2", "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000", "gasLimit": "0x47b760", "difficulty": "0x80000", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "coinbase": "0x0000000000000000000000000000000000000000", "alloc": { "0000000000000000000000000000000000000088": { "balance": "0x200000000000000000000000000000000000000000000000000000000000000" } }, "number": "0x0", "gasUsed": "0x0", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000" } 啟動私有鏈 從 CMD 切換到鏈數據目錄下,並輸入以下指令來初始化私有鏈。...

December 8, 2022 · 1 min · 142 words · Xubo

區塊鏈(六) - 在私有鏈上部署智能合約 Part 2

劇情回顧: 區塊鏈(一) - 建立以太坊私有鏈 區塊鏈(二) - 創建虛擬錢包 區塊鏈(三) - MetaMask 加密貨幣錢包 區塊鏈(四) - 智能合約的開發工具 區塊鏈(五) - 在私有鏈上部署智能合約 Part 1 此篇是第五集的延伸,希望從 Remix 上測試好智能合約以後,就直接部署到私有鏈中。還記不記得前幾集,我們安裝了 MetaMask 的錢包,這時候我們可以利用它當作 Remix 和私有鏈之間的橋樑。 說得簡單一點,就是 Remix 透過 MetaMask 錢包替我們發送 智能合約 到私有鏈中等待驗證。 完成編譯後的智能合約,可以到部署的頁面先選擇環境「Injected Web3」,然後按下「Deploy」。 Fig. 1. injected web3. Google Chrome 會自動彈出 MetaMask 的視窗,這是要我們授權它使用 MetaMask 錢包。 Fig. 2. google chrome extension metamask. 請記得選擇從私有鏈建立的帳戶(Account)。 確認部署資訊後,可以按下「Confirm」。這樣在你的 Cmd 端就會看到有一項交易正在等待驗證。 Fig. 3. confirm-transaction. 只需要進行挖礦來驗證這筆交易,即可完成部署。 Fig. 4. miner. 當這個合約成功加入區塊後,從 Remix 網頁的下方會出現一個智能合約。這個區域就像上集介紹的部分,可以操作合約。 Fig. 5. remix smart contract....

December 6, 2022 · 1 min · 84 words · Xubo

區塊鏈(五) - 在私有鏈上部署智能合約 Part 1

劇情回顧: 區塊鏈(一) - 建立以太坊私有鏈 區塊鏈(二) - 創建虛擬錢包 區塊鏈(三) - MetaMask 加密貨幣錢包 區塊鏈(四) - 智能合約的開發工具 上一集提到可以利用 Remix-Ethereum IDE 來撰寫智能合約以及測試智能合約,如果還不熟悉過程的快去看看喔! 首先,這是很多人的疑問,就是雖然可以在線上進行智能合約的測試,但如果要將寫好的合約部署到私有鏈上該怎麼做呢? 其中,有兩個方法可以進行: 第一種部署智能合約的方法 當我們寫好一個智能合約時,就像寫一段程式碼一樣,需要將這段程式碼進行編譯。完成編譯後,可以將目光轉移到下方的三個按鈕。 最下面一個「Compilation Details」點擊後會出現有關這項合約的詳細資訊。 Fig. 1. compilation details. 在這裡,我們可以找到「WEB3DEPLOY」的標題。 下方所寫的內容其實就是這項合約部署的指令。根據這些指令,我們可以在開啟私有鏈的 CMD 環境中執行來部署合約。 Fig. 2. WEB3DEPLOY. 部屬時可能會發生的錯誤訊息 請注意,如果你輸入指令後出現錯誤訊息,可以嘗試以下步驟進行修改,來完成「透過指令來部署合約」。 當你遇到相同的錯誤時,需要更正指令為 new web3.eth.contract。請注意,new 需要刪除,同時 C 需要改為小寫。最後,只需要輸入以下指令: var testContract = web3.eth.contract([...]) Fig. 3. var testContract. 可以呼叫 testContract 出來查看合約。 Fig. 4. testContract. 再來 testContract.deploy 需要改成 testContract.new,然後將註解部分移動到正確位置。 var test = testContract.new({ data: '0x60806...(數字太長省略)', arguments: [], // 將 from 和 gas 移動上來,其餘不變。 from: web3....

December 5, 2022 · 1 min · 178 words · Xubo

區塊鏈(三) - MetaMask 加密貨幣錢包

根據前兩集的私有鏈介紹和教學應該有更充分的認識以太坊了吧! 此時的你應該已經擁有一個以太坊私有鏈平台還有無數的虛擬錢包地址,如果你還沒擁有這些趕快到下面的連結去做一個吧! 區塊鏈(一) - 建立以太坊私有鏈 區塊鏈(二) - 創建虛擬錢包 這次將會更詳細的說明所謂的「虛擬錢包」,以及在私有鏈的環境下可以如何使用和應用。 畢竟如果都依靠終端機來操作實在有點乏味,現在就來透過一個管理虛擬錢包的工具,試試看吧! 以太坊虛擬錢包 (Account) 如果還記得,當我們建立好一條「以太坊私有鏈」時,需要在鏈中去創建一個帳戶,此帳戶的用途,大多數是在鏈中進行「發送交易」、「部署智能合約」和「挖礦」的用途。 當我們打開 Ethereum 的資料夾後,可以看到有一個名為「keystore」的資料夾,在裡面所存放的就是「私鑰」,而檔案名稱後面就是你的「公鑰」。 Fig. 1. keystore. MetaMask 當我們透過命令提示字元(CMD)的方式操作以太坊,這樣的動作實在是非常的麻煩,因為不論是交易也好,亦或是查看虛擬貨幣的數量,都需要依靠指令來查詢。 除了 MetaMask 還有很多不同的錢包軟體,可以根據自己上手的使用就可以了。 官方網站中,可以直接下載 Google Chrome 擴充功能,現在更開放 iOS 和 Android 版本提供使用,當擴充功能安裝好以後,就可以開啟了。 Fig. 2. MetaMask. 現在還蠻人性化的,會詢問你是否已經擁有帳戶了,如果沒有,也可以幫你建立一個新的。 Fig. 3. new to MetaMask. 這邊需要你先行建立一個帳號,而這個類似主帳號的概念。 切記,當你創建好一個新帳戶以後,千萬不可以把私鑰給別人,如果別人取得私鑰是可以直接使用你的錢包的。 Fig. 4. secret backup phrase. 登入以後,就是要把我們在私有鏈所創建的帳號給匯入,往後可以透過 MetaMask 來直接對私有鏈進行操作。 先點選右上角頭像,選擇「Import Account」,選擇「JSON File」來把原先存放在 Ethereum 內的 keystore 資料夾檔案放進去。 Fig. 5. import account. 根據經驗來說,匯入之後會等一段時間,匯入以後只需要重開就會看到私有鏈的帳號匯入。 如果還有印象,我們在上集建立好私有鏈以後,有進行挖礦的動作,獲得了 2 塊以太幣,而我們匯入帳戶到 MetaMask 中,也會看到,這邊要注意一下,頭像左邊是選擇伺服器,需要選擇到「Localhost 8545」才會讀取到自己本機端的私有鏈。 Fig. 6....

December 3, 2022 · 1 min · 74 words · Xubo