深入了解區塊鏈(一) - 如何使用Ganache來模擬一個真實的以太坊

更新於 發佈於 閱讀時間約 7 分鐘

引言

關於以太坊上的交易,通常我們都會到etherscan.io這個網站來進行確認。但初入區塊鏈的朋友們往往看到裡面一大堆的資訊,除了from和to外可能都是一頭霧水。想多了解些相關知識又不知如何下手才好,因此動念寫下一些本人當初步入區塊鏈時可能用來切入的一些工具,來和各位同好分享。

本系列文章可能會需要您的一些...

  1. Python/Linux/Docker基礎
  2. 一點點對區塊鏈本身的認識或操作經驗
  3. 對資料探索的熱情

Gananche介紹

Ganache (甘納許)

Ganache (甘納許)

這套有著可愛命名的工具,就是本文要和各位分享的重點。它可以為我們Fork以太坊上的真實資料,讓我們在本地端進行交易的模擬操作。除此之外還提供了一些特異功能,如解鎖以太坊上的任意帳號...等,讓我們可以實驗一些真實以太坊上沒有辦法實現的操作。就讓這套聽起來甜滋滋又適合搭配下午茶的工具來陪伴我們進行區塊鏈的研究吧。

Ganache的官方網站是:https://trufflesuite.com/ganache/

是有名的開發框架Truffle的其中一員 (該成員的命名都是甜品...)。您可以將Ganache視為一個模擬的區塊鏈節點,但不需要等待礦工挖礦出塊,您可以在自己的電腦裡面模擬網路的交易行為。同時也支援大部分節點的 JSON-RPC呼叫,您可以像平常操作節點相同的方式使用它。

Ganache有提供了有UI版和無UI版可以使用,若您使用的是Windows環境,您可以選用它的UI版本。個人偏好是使用無UI版本的,接下來再跟各位分享一下安裝方式。


安裝Ganache

  • For Linux

您可以到它的專案頁面得到相關安裝、啟動參數等資訊。若您已有建置Node.js環境,可以透過NPM進行安裝:

npm install ganache --global

您也可以使用Docker執行包裝好的映象檔,更為簡單

docker pull trufflesuite/ganache:latest
  • For Windows

您可以從官方頁面取得Windows版本的安裝檔,依指引安裝完畢即可


啟動Ganache

安裝完成後,我們就可以來執行一個模擬的以太坊網路了。

我們先來模擬一個以太坊主網(mainnet)的環境試試,常用的幾個參數為:

--fork.network mainnet

指定從infura.io做為中的mainnet資料進行fork

--chain.chainId 1

設定chainid id,如需模擬mainnet則設為1,不需要時可任意指定

--chain.networkId 1

設定network id,如需模擬mainnet則設為1,不需要時可任意指定

--accounts 10

建立10個裡面有1000ETH的錢包供您測試

--wallet.seed 1337

生成錢包的隨機種子,設為固定的話,每次重啟Ganache都可以獲得相同的錢包地址 (但錢包的餘額和紀錄仍會被重置)

--port 8545

Ganache啟動使用的Port,預設為8545,可依需求修改

  • For Linux

由NPM安裝的啟動方式

ganache --fork.network mainnet --chain.networkId 1 --accounts 10 \
--wallet.seed 1337 --port 8545

由Docker安裝的啟動方式

docker run --rm -it --publish 8545:8545 trufflesuite/ganache:latest \
--fork.network mainnet \
--chain.networkId 1 \
--accounts 10 \
--wallet.seed 1337 \
--port 8545
  • For Windows
啟動程式後,選取NEW WORKSPACE

啟動程式後,選取NEW WORKSPACE

設定相關參數後,點選右上SAVE WORKSPACE開始模擬

設定相關參數後,點選右上SAVE WORKSPACE開始模擬

看到這個畫面就代表正常運作中了

看到這個畫面就代表正常運作中了


連結您的Metamask錢包

Metamask錢包預設是連結到真正的區塊鏈網路上,但它也支援連結到各種私有網路。同理,您也可以將錢包連結到剛剛建好的Ganache服務上。連結方式如下:

打開您的Metamask錢包,找到:右上按鈕 → 設定 → 網路  → 新增網路

打開您的Metamask錢包,找到:右上按鈕 → 設定 → 網路  → 新增網路

選擇 Add a network manually

選擇 Add a network manually

依照以下進行設定,有出現和mainnet衝突的提示可以不管他,直接點儲存即可

依照以下進行設定,有出現和mainnet衝突的提示可以不管他,直接點儲存即可


確認錢包可以切換到Ganache網路

確認錢包可以切換到Ganache網路

使用Metamask匯入私鑰:右上按鈕 → 匯入帳戶

使用Metamask匯入私鑰:右上按鈕 → 匯入帳戶

從Ganache中複製一把喜歡的私鑰

從Ganache中複製一把喜歡的私鑰



將Ganache生成的任意一把私鑰貼進來後選擇匯入即可完成

將Ganache生成的任意一把私鑰貼進來後選擇匯入即可完成


切換到該帳號,可以看到有預設的1000ETH

切換到該帳號,可以看到有預設的1000ETH












來實際交易看看吧

Ganache為我們生成的錢包中,當中都沒有任何的Token存在(如USDT/USDC...等等),我們來試著用剛剛生成的1000ETH到Uniswap來購買這些幣看看吧。

我們嘗試買個1000USDT看看吧,設定完成後點選兌換

我們嘗試買個1000USDT看看吧,設定完成後點選兌換

等待一下下,錢包會跳出確認訊息,點選確認

等待一下下,錢包會跳出確認訊息,點選確認


交易成功! 可以看到ETH成功兌換成USDT了 (錢包需要自行設定幣種才能顯示喔)

交易成功! 可以看到ETH成功兌換成USDT了 (錢包需要自行設定幣種才能顯示喔)















常見問題

Q: 每次重啟Ganache Session後,新發起的交易都會卡住沒法成功

A: 因為Metamask內部會自己存一份nonce,但重啟Ganache後Metamask中該帳號的nonce不會被歸0,所以導致新交易卡死,重置該帳戶即可

raw-image










後記

感謝您看到最後,這篇文章僅有介紹Ganache工具的環境建置與基本設定部分,這工具還有很多可玩的功能還來不及和各位介紹,之後的系列文章會再慢慢和各位分享。


作者Steve目前任職於趨勢科技區塊鏈安全研究小組,專注於區塊鏈合約安全與與相關技術,如果喜歡我的文章,或是想獲得更多區塊鏈詐騙事件懶人包,歡迎關注我的帳號

另外,我已經加入由趨勢科技防詐達人所成立的方格子專題-《區塊鏈生存守則》,在那裡我會跟其他優質的創作者一起帶大家深入瞭解區塊鏈,並隨時向大家更新區塊鏈資安事件

> 追蹤《區塊鏈生存守則》學習如何在區塊鏈的世界保護自己

> 關注防詐達人獲得其他最新詐騙情報



留言
avatar-img
留言分享你的想法!
avatar-img
防詐達人的沙龍
36會員
176內容數
我們整理了web3相關的熱門資安問題,包含加密貨幣投資詐騙、盜版NFT、空投釣魚和區塊鏈重大資安事件懶人包等等,並提供最完整的辨識方法教學,讓大家從0到1學習如何保護自己
你可能也想看
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
當你邊吃粽子邊看龍舟競賽直播的時候,可能會順道悼念一下2300多年前投江的屈原。但你知道端午節及其活動原先都與屈原毫無關係嗎?這是怎麼回事呢? 本文深入探討端午節設立初衷、粽子、龍舟競渡與屈原自沉四者。看完這篇文章,你就會對端午、粽子、龍舟和屈原的四角關係有新的認識喔。那就讓我們一起解開謎團吧!
Thumbnail
當你邊吃粽子邊看龍舟競賽直播的時候,可能會順道悼念一下2300多年前投江的屈原。但你知道端午節及其活動原先都與屈原毫無關係嗎?這是怎麼回事呢? 本文深入探討端午節設立初衷、粽子、龍舟競渡與屈原自沉四者。看完這篇文章,你就會對端午、粽子、龍舟和屈原的四角關係有新的認識喔。那就讓我們一起解開謎團吧!
Thumbnail
今天我們會開始深入探討到EVM(以太坊虛擬機)上的一點點基礎知識。 若您是一個常常在etherscan.io上追蹤交易的朋友,一定對上面提到的各項資訊並不陌生。但我們觀察一筆交易時會發現,etherscan.io又額外提供了Internel Txns,這又是什麼呢?本篇將一同來探討。
Thumbnail
今天我們會開始深入探討到EVM(以太坊虛擬機)上的一點點基礎知識。 若您是一個常常在etherscan.io上追蹤交易的朋友,一定對上面提到的各項資訊並不陌生。但我們觀察一筆交易時會發現,etherscan.io又額外提供了Internel Txns,這又是什麼呢?本篇將一同來探討。
Thumbnail
在前幾篇的文章中。有和各位分享了使用Ganache來模擬一個以太坊主網進行交易,也嘗試使用了web3.py來開發區塊鏈互動程式。相信對您而言,一定有更深入探索區塊鏈交易的需求。本篇想和各位介紹一個Ganache的神奇功能:解鎖任意帳號
Thumbnail
在前幾篇的文章中。有和各位分享了使用Ganache來模擬一個以太坊主網進行交易,也嘗試使用了web3.py來開發區塊鏈互動程式。相信對您而言,一定有更深入探索區塊鏈交易的需求。本篇想和各位介紹一個Ganache的神奇功能:解鎖任意帳號
Thumbnail
在上一篇文章中,有和您分享了使用Ganache模擬了一個以太坊主網。想必您已經迫不及待的想對它進行更深入的了解了。本篇預計會使用Python來和您建立好的模擬網路進行互動。在開發套件的細節上我們並不會很深入的地為您進行解釋,而會透過一些簡單的例子來引導一個學習的方向。
Thumbnail
在上一篇文章中,有和您分享了使用Ganache模擬了一個以太坊主網。想必您已經迫不及待的想對它進行更深入的了解了。本篇預計會使用Python來和您建立好的模擬網路進行互動。在開發套件的細節上我們並不會很深入的地為您進行解釋,而會透過一些簡單的例子來引導一個學習的方向。
Thumbnail
關於乙太坊上的交易,通常我們都會到etherscan.io這個網站來進行確認。但初入區塊鏈的朋友們往往看到裡面一大堆的資訊,除了from和to外可能都是一頭霧水。想多了解些相關知識又不知如何下手才好,因此動念寫下一些本人初學區塊鏈時可能用來切入的一些工具,來和各位同好分享。
Thumbnail
關於乙太坊上的交易,通常我們都會到etherscan.io這個網站來進行確認。但初入區塊鏈的朋友們往往看到裡面一大堆的資訊,除了from和to外可能都是一頭霧水。想多了解些相關知識又不知如何下手才好,因此動念寫下一些本人初學區塊鏈時可能用來切入的一些工具,來和各位同好分享。
Thumbnail
開發工具與環境設置 安裝所需要工具 啟動 ganache-cli來啟動乙太坊測試環境 建立智能合約 HelloWorld.sol: 編譯 編譯成功的話,在build/contracts/目錄下會多出HelloWorld.json這個檔案 部署 2\_deploy\_contracts.js: 測試
Thumbnail
開發工具與環境設置 安裝所需要工具 啟動 ganache-cli來啟動乙太坊測試環境 建立智能合約 HelloWorld.sol: 編譯 編譯成功的話,在build/contracts/目錄下會多出HelloWorld.json這個檔案 部署 2\_deploy\_contracts.js: 測試
Thumbnail
如果你即將需要鏈上操作或是與智能合約互動的朋友,貝瑞大叔介紹個你一定得懂的超好用工具:以太坊區塊鏈瀏覽器 Ethersan.io。 不知道大家是否除了交易所買賣加密貨幣外,也有進行鏈上操作了呢? |什麼是Etherscan? |為什麼我們需要Etherscan ?
Thumbnail
如果你即將需要鏈上操作或是與智能合約互動的朋友,貝瑞大叔介紹個你一定得懂的超好用工具:以太坊區塊鏈瀏覽器 Ethersan.io。 不知道大家是否除了交易所買賣加密貨幣外,也有進行鏈上操作了呢? |什麼是Etherscan? |為什麼我們需要Etherscan ?
Thumbnail
在撰寫此篇文章前兩天,知名去中心化金融交易平台wormhole才剛發生了史上第四大加密貨幣洗劫案,共被竊走三億兩千多萬美金。去中心化交易平台帶來新的金融交易模式,也帶走了交易的安全...
Thumbnail
在撰寫此篇文章前兩天,知名去中心化金融交易平台wormhole才剛發生了史上第四大加密貨幣洗劫案,共被竊走三億兩千多萬美金。去中心化交易平台帶來新的金融交易模式,也帶走了交易的安全...
Thumbnail
這是新年企劃的最終章,在這個月我們花了四篇文章的篇幅,慢慢討論如何利用Remix撰寫最簡單的Solidity智能合約,期望大家真的都能順利發行自己的加密貨幣,並在過年期間發送給親友們,讓他們體驗一下甚麼是錢包,並領取他們人生中第一顆加密貨幣。
Thumbnail
這是新年企劃的最終章,在這個月我們花了四篇文章的篇幅,慢慢討論如何利用Remix撰寫最簡單的Solidity智能合約,期望大家真的都能順利發行自己的加密貨幣,並在過年期間發送給親友們,讓他們體驗一下甚麼是錢包,並領取他們人生中第一顆加密貨幣。
Thumbnail
2022年的農曆新年在一月底就要登場了!說到新年或多或少一定免不了要家族團聚吃個團圓飯,又到了這個時間了,身為社畜的你想好今年要包多少紅包給家人了嗎?這次過年就逼親戚下載錢包,直接把你設計的發財幣、紅包幣、坐以待幣、大學延幣通通在過年的時候射給他們吧!
Thumbnail
2022年的農曆新年在一月底就要登場了!說到新年或多或少一定免不了要家族團聚吃個團圓飯,又到了這個時間了,身為社畜的你想好今年要包多少紅包給家人了嗎?這次過年就逼親戚下載錢包,直接把你設計的發財幣、紅包幣、坐以待幣、大學延幣通通在過年的時候射給他們吧!
Thumbnail
如果你還不知道怎麼創建錢包,怎麼把幣轉入錢包的話,請先看這邊👉dapp怎麼玩?cake流動性挖礦?btcst算力幣挖礦?手機黨快看這邊     當我們點完發現後,就會看到pancakeswap在推薦裡,直接點進去 如果沒看到也沒關係,在最上邊的地方直接搜索“pancakeswap"也可以找得
Thumbnail
如果你還不知道怎麼創建錢包,怎麼把幣轉入錢包的話,請先看這邊👉dapp怎麼玩?cake流動性挖礦?btcst算力幣挖礦?手機黨快看這邊     當我們點完發現後,就會看到pancakeswap在推薦裡,直接點進去 如果沒看到也沒關係,在最上邊的地方直接搜索“pancakeswap"也可以找得
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News