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

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

引言

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

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

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

Gananche介紹

raw-image

這套有著可愛命名的工具,就是本文要和各位分享的重點。它可以為我們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
raw-image
raw-image
raw-image

連結您的Metamask錢包

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

raw-image
raw-image
raw-image


raw-image
raw-image
raw-image



raw-image


raw-image












來實際交易看看吧

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

raw-image
raw-image


raw-image















常見問題

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
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
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智能合約,期望大家真的都能順利發行自己的加密貨幣,並在過年期間發送給親友們,讓他們體驗一下甚麼是錢包,並領取他們人生中第一顆加密貨幣。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News