深入了解區塊鏈(一) - 如何使用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目前任職於趨勢科技區塊鏈安全研究小組,專注於區塊鏈合約安全與與相關技術,如果喜歡我的文章,或是想獲得更多區塊鏈詐騙事件懶人包,歡迎關注我的帳號
另外,我已經加入由趨勢科技防詐達人所成立的方格子專題-《區塊鏈生存守則》,在那裡我會跟其他優質的創作者一起帶大家深入瞭解區塊鏈,並隨時向大家更新區塊鏈資安事件
> 追蹤《區塊鏈生存守則》學習如何在區塊鏈的世界保護自己
> 關注防詐達人獲得其他最新詐騙情報
avatar-img
33會員
176內容數
我們整理了web3相關的熱門資安問題,包含加密貨幣投資詐騙、盜版NFT、空投釣魚和區塊鏈重大資安事件懶人包等等,並提供最完整的辨識方法教學,讓大家從0到1學習如何保護自己
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
防詐達人的沙龍 的其他內容
想打入幣圈獲得交流與學習,但要小心!詐騙集團其實就在你左右,有時甚至會在社群假裝客服,推出「幣安五週年回饋用戶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
这篇文章主要介绍了以太坊节点是什么意思?以太坊节点有那些类型?的相关资料,需要的朋友可以参考下本文详细内容介绍 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享 20% 手续费返佣 🔑 专属邀请码: R851UX3N 以太坊和其他区块链一样,都具有一个P2P的协
Thumbnail
这篇文章主要介绍了个人电脑怎么挖以太坊?以太坊电脑挖矿详细图解教程,以太坊在币圈是仅次比特币的数字货币,以太坊的获取方式除了直接市面上购买之外,就是挖矿获得,下面跟随小编一起来深入的了解一下个人电脑怎么挖以太坊的吧。 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享
Thumbnail
这篇文章主要介绍了科普:什么是以太坊?以太坊是去中心化的、可以运行可转移计算和数据的自洽经济系统,一个去中心化的区块链平台,用于构建去中心化应用程序(DApp),以太币(Ether)是该平台所使用的加密货币。小编还为大家准备以太坊常见问题,一起来参考一下吧! 🚀 币安 - 全球最大加密货币交易所
以太币(Ethereum)是一种基于区块链技术的数字货币,也是全球最流行的加密货币之一,许多人都希望拥有一些以太币,以便参与以太坊的生态系统和投资,那么,在国内,怎么购买以太坊?下面将为大家详解交易所购买以太币操作教程 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享
Thumbnail
这篇文章主要介绍了以太坊在哪里买?以太坊怎么买?以太坊购买交易操作教程的相关资料,需要的朋友可以参考下本文详细内容介绍 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享 20% 手续费返佣 🔑 专属邀请码: R851UX3N 众所周知,以太坊是一种有着开源的智能
Thumbnail
这篇文章主要介绍了以太坊期货科普:以太坊期货是什么意思?的相关资料,要想知道以太坊期货是什么意思,肯定要先了解什么是期货,下面就让小编来为大家详细的讲解一下,一起来看看吧! 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享 20% 手续费返佣 🔑 专属邀请码: R
Thumbnail
以太坊是一种公开的区块链网络,因此在默认情况下,其交易和账户信息是公开可见的,然而,为了提供更好的隐私保护,一些解决方案已经被开发出来,很多投资者都想要知道这个以太坊隐私解决方案是什么?下面就让小编来为大家详细介绍一下 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享
Thumbnail
金国深入研究 TON 官方开发文档,感觉学习起来还是有些门槛,当前的文档内容似乎更像是一个内部开发文档,对新入门的开发者来说不太友好,因此试着以自己的学习轨迹,梳理一系列关于 TON Chain 项目开发的文章,希望可以对大家快速入门 TON DApp 开发有一些帮助, 🚀 币安 - 全球最大加
Thumbnail
■什麼是區塊鏈技術? 區塊鏈是透過點對點(P2P)運行的網路,這個網路由分散式節點組成,可以把它想成是共享的數據庫,也就是分散式帳本(DLT),分散式帳本技術是一種去中心化的帳本,儲存著網路上進行的所有交易。 中心化帳本:也稱為集中式帳本,由一個中心化的機構去做驗證、記帳、訂立規則。
Thumbnail
區塊鏈原理 什麼是區塊鏈? 區塊鏈(Blockchain)是一種分散式帳本技術,它基於加密學和分散式計算的原理,通過將數據以區塊的形式連接在一起,形成鏈條。每個區塊包含一定時間內的多筆交易記錄,並使用密碼學哈希函數與前一個區塊相連,這種連接保證了數據的不可篡改性。 2. 區塊鏈的基本結構 2
Thumbnail
这篇文章主要介绍了以太坊节点是什么意思?以太坊节点有那些类型?的相关资料,需要的朋友可以参考下本文详细内容介绍 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享 20% 手续费返佣 🔑 专属邀请码: R851UX3N 以太坊和其他区块链一样,都具有一个P2P的协
Thumbnail
这篇文章主要介绍了个人电脑怎么挖以太坊?以太坊电脑挖矿详细图解教程,以太坊在币圈是仅次比特币的数字货币,以太坊的获取方式除了直接市面上购买之外,就是挖矿获得,下面跟随小编一起来深入的了解一下个人电脑怎么挖以太坊的吧。 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享
Thumbnail
这篇文章主要介绍了科普:什么是以太坊?以太坊是去中心化的、可以运行可转移计算和数据的自洽经济系统,一个去中心化的区块链平台,用于构建去中心化应用程序(DApp),以太币(Ether)是该平台所使用的加密货币。小编还为大家准备以太坊常见问题,一起来参考一下吧! 🚀 币安 - 全球最大加密货币交易所
以太币(Ethereum)是一种基于区块链技术的数字货币,也是全球最流行的加密货币之一,许多人都希望拥有一些以太币,以便参与以太坊的生态系统和投资,那么,在国内,怎么购买以太坊?下面将为大家详解交易所购买以太币操作教程 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享
Thumbnail
这篇文章主要介绍了以太坊在哪里买?以太坊怎么买?以太坊购买交易操作教程的相关资料,需要的朋友可以参考下本文详细内容介绍 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享 20% 手续费返佣 🔑 专属邀请码: R851UX3N 众所周知,以太坊是一种有着开源的智能
Thumbnail
这篇文章主要介绍了以太坊期货科普:以太坊期货是什么意思?的相关资料,要想知道以太坊期货是什么意思,肯定要先了解什么是期货,下面就让小编来为大家详细的讲解一下,一起来看看吧! 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享 20% 手续费返佣 🔑 专属邀请码: R
Thumbnail
以太坊是一种公开的区块链网络,因此在默认情况下,其交易和账户信息是公开可见的,然而,为了提供更好的隐私保护,一些解决方案已经被开发出来,很多投资者都想要知道这个以太坊隐私解决方案是什么?下面就让小编来为大家详细介绍一下 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享
Thumbnail
金国深入研究 TON 官方开发文档,感觉学习起来还是有些门槛,当前的文档内容似乎更像是一个内部开发文档,对新入门的开发者来说不太友好,因此试着以自己的学习轨迹,梳理一系列关于 TON Chain 项目开发的文章,希望可以对大家快速入门 TON DApp 开发有一些帮助, 🚀 币安 - 全球最大加
Thumbnail
■什麼是區塊鏈技術? 區塊鏈是透過點對點(P2P)運行的網路,這個網路由分散式節點組成,可以把它想成是共享的數據庫,也就是分散式帳本(DLT),分散式帳本技術是一種去中心化的帳本,儲存著網路上進行的所有交易。 中心化帳本:也稱為集中式帳本,由一個中心化的機構去做驗證、記帳、訂立規則。
Thumbnail
區塊鏈原理 什麼是區塊鏈? 區塊鏈(Blockchain)是一種分散式帳本技術,它基於加密學和分散式計算的原理,通過將數據以區塊的形式連接在一起,形成鏈條。每個區塊包含一定時間內的多筆交易記錄,並使用密碼學哈希函數與前一個區塊相連,這種連接保證了數據的不可篡改性。 2. 區塊鏈的基本結構 2