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

閱讀時間約 6 分鐘

引言

關於以太坊上的交易,通常我們都會到etherscan.io這個網站來進行確認。但初入區塊鏈的朋友們往往看到裡面一大堆的資訊,除了from和to外可能都是一頭霧水。想多了解些相關知識又不知如何下手才好,因此動念寫下一些本人當初步入區塊鏈時可能用來切入的一些工具,來和各位同好分享。
本系列文章可能會需要您的一些...
  1. Python/Linux/Docker基礎
  2. 一點點對區塊鏈本身的認識或操作經驗
  3. 對資料探索的熱情

Gananche介紹

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
設定相關參數後,點選右上SAVE WORKSPACE開始模擬
看到這個畫面就代表正常運作中了

連結您的Metamask錢包

Metamask錢包預設是連結到真正的區塊鏈網路上,但它也支援連結到各種私有網路。同理,您也可以將錢包連結到剛剛建好的Ganache服務上。連結方式如下:
打開您的Metamask錢包,找到:右上按鈕 → 設定 → 網路  → 新增網路
選擇 Add a network manually
依照以下進行設定,有出現和mainnet衝突的提示可以不管他,直接點儲存即可
確認錢包可以切換到Ganache網路
使用Metamask匯入私鑰:右上按鈕 → 匯入帳戶
從Ganache中複製一把喜歡的私鑰
將Ganache生成的任意一把私鑰貼進來後選擇匯入即可完成
切換到該帳號,可以看到有預設的1000ETH

來實際交易看看吧

Ganache為我們生成的錢包中,當中都沒有任何的Token存在(如USDT/USDC...等等),我們來試著用剛剛生成的1000ETH到Uniswap來購買這些幣看看吧。
我們嘗試買個1000USDT看看吧,設定完成後點選兌換
等待一下下,錢包會跳出確認訊息,點選確認
交易成功! 可以看到ETH成功兌換成USDT了
(錢包需要自行設定幣種才能顯示喔)

常見問題

Q: 每次重啟Ganache Session後,新發起的交易都會卡住沒法成功
A: 因為Metamask內部會自己存一份nonce,但重啟Ganache後Metamask中該帳號的nonce不會被歸0,所以導致新交易卡死,重置該帳戶即可

後記

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

作者Steve目前任職於趨勢科技區塊鏈安全研究小組,專注於區塊鏈合約安全與與相關技術,如果喜歡我的文章,或是想獲得更多區塊鏈詐騙事件懶人包,歡迎關注我的帳號
另外,我已經加入由趨勢科技防詐達人所成立的方格子專題-《區塊鏈生存守則》,在那裡我會跟其他優質的創作者一起帶大家深入瞭解區塊鏈,並隨時向大家更新區塊鏈資安事件
> 追蹤《區塊鏈生存守則》學習如何在區塊鏈的世界保護自己
> 關注防詐達人獲得其他最新詐騙情報
31會員
176內容數
我們整理了web3相關的熱門資安問題,包含加密貨幣投資詐騙、盜版NFT、空投釣魚和區塊鏈重大資安事件懶人包等等,並提供最完整的辨識方法教學,讓大家從0到1學習如何保護自己
留言0
查看全部
發表第一個留言支持創作者!
防詐達人的沙龍 的其他內容
想打入幣圈獲得交流與學習,但要小心!詐騙集團其實就在你左右,有時甚至會在社群假裝客服,推出「幣安五週年回饋用戶BNB限時活動」,你以為你是客服選中的幸運兒,你正受到資產被洗劫的風險
全球疫情持續延燒,經濟下滑,導致很多人收入銳減,開始在積極尋找打工兼職補貼收入,但網路上其實夾雜許多詐騙集團製造的假工作,稱只需要幫忙領貨、領錢、跑跑腿就可以賺高薪,實則是騙你成為不法份子的車手、運毒犯…最後甚至落得被檢察官起訴的下場 疫情期間許多店家紛紛倒閉,物價也一直漲,就只有薪水沒有漲,有房貸
許多人想要嘗試踏入鏈上的金流分析,但繁複又沉冗的金流資料讓人霧裡看花,讓人不知道要從哪裡下手。為了練就像柯南一樣的偵探思維,本篇章阿原將以2021年麻吉大哥的被駭事件為例,帶大家一起還原當時鏈上金流發生了什麼~~
Twitter上出現藍勾勾帳號分享USDC發行商Circle準備發送USDCGift token的活動連結,事實上點擊連結錢包後是將自己的USDC轉給詐騙集團,目前受害資產價值已達上百萬美金!
Mythril 是可以對Solidity 程式碼及EVM 字節碼的安全分析工具,使用符號執行等方式檢測合約,可以幫助開發和安全人員發現合約中潛在的漏洞和弱點。
要怎麼用CNN來便是智能合約的漏洞呢?上回介紹了能認知文章脈絡的RNN,這是介紹結合word embedding的方法,加上強大的CNN分類器可以讓自然語言分類處理擦出怎麼樣的火花~
想打入幣圈獲得交流與學習,但要小心!詐騙集團其實就在你左右,有時甚至會在社群假裝客服,推出「幣安五週年回饋用戶BNB限時活動」,你以為你是客服選中的幸運兒,你正受到資產被洗劫的風險
全球疫情持續延燒,經濟下滑,導致很多人收入銳減,開始在積極尋找打工兼職補貼收入,但網路上其實夾雜許多詐騙集團製造的假工作,稱只需要幫忙領貨、領錢、跑跑腿就可以賺高薪,實則是騙你成為不法份子的車手、運毒犯…最後甚至落得被檢察官起訴的下場 疫情期間許多店家紛紛倒閉,物價也一直漲,就只有薪水沒有漲,有房貸
許多人想要嘗試踏入鏈上的金流分析,但繁複又沉冗的金流資料讓人霧裡看花,讓人不知道要從哪裡下手。為了練就像柯南一樣的偵探思維,本篇章阿原將以2021年麻吉大哥的被駭事件為例,帶大家一起還原當時鏈上金流發生了什麼~~
Twitter上出現藍勾勾帳號分享USDC發行商Circle準備發送USDCGift token的活動連結,事實上點擊連結錢包後是將自己的USDC轉給詐騙集團,目前受害資產價值已達上百萬美金!
Mythril 是可以對Solidity 程式碼及EVM 字節碼的安全分析工具,使用符號執行等方式檢測合約,可以幫助開發和安全人員發現合約中潛在的漏洞和弱點。
要怎麼用CNN來便是智能合約的漏洞呢?上回介紹了能認知文章脈絡的RNN,這是介紹結合word embedding的方法,加上強大的CNN分類器可以讓自然語言分類處理擦出怎麼樣的火花~
你可能也想看
Google News 追蹤
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
在現今充斥著智慧型手機的世界裡,孩子對手機成癮的風險正在增加。一項臺灣大型研究指出,有近40%的高中生具有手機成癮風險,此問題同樣發生在國中和國小生當中。此外,該研究也發現青少年和兒童成癮者有些共同特徵,當學生出現這些特徵時,家長和教師就要留心了!
Thumbnail
「空白」的伊斯蘭史?真正空白的是我們貧乏的腦袋 本書講伊斯蘭發展史,是從創始者穆罕莫德的崛起談起,經歷了麥加、麥地那的戰鬥,與歷代哈里發(伊斯蘭的宗教及世俗的最高統治者)的擴張與轉型,打敗了拜占庭帝國和薩珊波斯帝國之後,取得了敘利亞、伊拉克、埃及、北非、伊比利半島,最後成為定都巴格達的伊斯蘭帝國…
Thumbnail
生成式AI(Generative AI)是近年來人工智慧領域中備受矚目的技術之一。它以機器學習為基礎,通過學習大量數據中的模式和關係,能夠生成各種新的內容,涵蓋文字、圖像、音訊等多個領域。本文將深入探討生成式AI的原理、優缺點以及應用範疇。
Thumbnail
什麼是慶餘年代儲? 在當今充滿刺激的手機遊戲世界中,慶餘年已經成為了眾多玩家的心頭好。然而,遊戲充值和購買虛擬貨幣等遊戲內物品有時可能讓玩家感到煩惱。為了讓遊戲變得更有趣且輕鬆,石頭手遊代儲網提供了慶餘年代儲服務。 為什麼選擇慶餘年代儲? 現在,您可能會想知道為什麼要選擇慶餘年代儲服務。以下是
Thumbnail
黃金作為投資資產的重要地位 黃金作為投資資產在金融市場中佔有重要地位,被廣泛用來達到多種投資目標,黃金具有以下的特性: 避險資產: 黃金被認為是一種避險資產,當其他市場(如股票、債券)波動性增加時,投資者可能轉向黃金以保值和分散風險。在經濟不穩定時期,投資者傾向於尋求相對較安全的投資選擇。 通
Thumbnail
在工業 4.0 中的敏捷思維是製造業的大腦,負責做出決策;精實生產是製造業的骨架,支撐整個系統;資訊系統整合是製造業的神經,傳遞資訊;工業物聯網是製造業的肌肉,執行實際操作。如同人體中的各個組成部分需要協作才能運作正常,工業 4.0 中的各個元素也需要協作才能達到最佳的生產效果。
Thumbnail
讓我們來聊聊驅動行為的三大本能 §自保本能的一型人 §社會本能的一型人 §性本能的一型人 §總括來說
Thumbnail
當你覺察到自己有某項側翼的特質,你應當開心, 因為,與世界連結的方式又增加了另一種可能性。 § 側翼 § 具有四型側翼的五型人 § 具有六型側翼的五型人
Thumbnail
當你覺察到自己有某項側翼的特質,你應當開心, 因為,與世界連結的方式又增加了另一種可能性。 § 側翼 § 具有三型側翼的四型人 § 具有五型側翼的四型人
Thumbnail
當你覺察到自己有某項側翼的特質,你應當開心, 因為,與世界連結的方式又增加了另一種可能性。 § 側翼 § 具有二型側翼的三型人 § 具有四型側翼的三型人
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
在現今充斥著智慧型手機的世界裡,孩子對手機成癮的風險正在增加。一項臺灣大型研究指出,有近40%的高中生具有手機成癮風險,此問題同樣發生在國中和國小生當中。此外,該研究也發現青少年和兒童成癮者有些共同特徵,當學生出現這些特徵時,家長和教師就要留心了!
Thumbnail
「空白」的伊斯蘭史?真正空白的是我們貧乏的腦袋 本書講伊斯蘭發展史,是從創始者穆罕莫德的崛起談起,經歷了麥加、麥地那的戰鬥,與歷代哈里發(伊斯蘭的宗教及世俗的最高統治者)的擴張與轉型,打敗了拜占庭帝國和薩珊波斯帝國之後,取得了敘利亞、伊拉克、埃及、北非、伊比利半島,最後成為定都巴格達的伊斯蘭帝國…
Thumbnail
生成式AI(Generative AI)是近年來人工智慧領域中備受矚目的技術之一。它以機器學習為基礎,通過學習大量數據中的模式和關係,能夠生成各種新的內容,涵蓋文字、圖像、音訊等多個領域。本文將深入探討生成式AI的原理、優缺點以及應用範疇。
Thumbnail
什麼是慶餘年代儲? 在當今充滿刺激的手機遊戲世界中,慶餘年已經成為了眾多玩家的心頭好。然而,遊戲充值和購買虛擬貨幣等遊戲內物品有時可能讓玩家感到煩惱。為了讓遊戲變得更有趣且輕鬆,石頭手遊代儲網提供了慶餘年代儲服務。 為什麼選擇慶餘年代儲? 現在,您可能會想知道為什麼要選擇慶餘年代儲服務。以下是
Thumbnail
黃金作為投資資產的重要地位 黃金作為投資資產在金融市場中佔有重要地位,被廣泛用來達到多種投資目標,黃金具有以下的特性: 避險資產: 黃金被認為是一種避險資產,當其他市場(如股票、債券)波動性增加時,投資者可能轉向黃金以保值和分散風險。在經濟不穩定時期,投資者傾向於尋求相對較安全的投資選擇。 通
Thumbnail
在工業 4.0 中的敏捷思維是製造業的大腦,負責做出決策;精實生產是製造業的骨架,支撐整個系統;資訊系統整合是製造業的神經,傳遞資訊;工業物聯網是製造業的肌肉,執行實際操作。如同人體中的各個組成部分需要協作才能運作正常,工業 4.0 中的各個元素也需要協作才能達到最佳的生產效果。
Thumbnail
讓我們來聊聊驅動行為的三大本能 §自保本能的一型人 §社會本能的一型人 §性本能的一型人 §總括來說
Thumbnail
當你覺察到自己有某項側翼的特質,你應當開心, 因為,與世界連結的方式又增加了另一種可能性。 § 側翼 § 具有四型側翼的五型人 § 具有六型側翼的五型人
Thumbnail
當你覺察到自己有某項側翼的特質,你應當開心, 因為,與世界連結的方式又增加了另一種可能性。 § 側翼 § 具有三型側翼的四型人 § 具有五型側翼的四型人
Thumbnail
當你覺察到自己有某項側翼的特質,你應當開心, 因為,與世界連結的方式又增加了另一種可能性。 § 側翼 § 具有二型側翼的三型人 § 具有四型側翼的三型人