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

劇情回顧: 區塊鏈(一) - 建立以太坊私有鏈 區塊鏈(二) - 創建虛擬錢包 區塊鏈(三) - 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

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

安裝套件 在開始建立之前,首先需要安裝管理套件 Homebrew,如果已經安裝過,可以挑過此步驟。 Homebrew 是一個在 macOS 系統上安裝軟體的管理工具,它可以簡化安裝過程並提供易於管理的界面,讓我們更方便地安裝所需的套件。 你可以從 Ethereum GitHub 進入 Go Ethereum 的網站,選擇適合的系統做安裝即可。 $ brew tap ethereum/ethereum $ brew install ethereum 構建Geth (命令行客戶端) 使用 Git 指令將 Ethereum GitHub 專案複製到本地。其中,複製的檔案通常會放在使用者資料夾底下,並命名為 “go-ethereum”。 $ git clone https://github.com/ethereum/go-ethereum 接著在命令提示字元 (cmd) 中切換到該資料夾,並執行以下指令: $ cd go-ethereum $ make geth 現在,你可以直接在命令提示字元上使用與 geth 相關的指令了。 啟動以太坊 在當前路徑下應該會出現 “go-ethereum” 資料夾。經過以上步驟,我們現在可以啟動以太坊,請輸入以下指令: $ geth console 在啟動過程中,會不斷顯示訊息。等待它執行完畢後,再重新啟動命令提示字元。 接下來,我們需要找到啟動的區塊鏈存放的資料夾位置,它位於 $HOME/Library/Ethereum/,而該資料夾中的內容並不是我們所需的,可以刪除整個資料夾。這麼做的原因是想知道輸入 geth console 指令後產生的檔案所存放的位置。 Fig. 1. geth console. 如果是 Windwos 系統的話,則存放於 C:\Users\User\AppData\Local\Ethereum。 Fig. 2. windows geth....

December 1, 2022 · 1 min · 145 words · Xubo