iT邦幫忙

2025 iThome 鐵人賽

0
AI & Data

AI 營養師 + Web3 數位健康護照系列 第 36

Day36. 認識「Ganache」:實現 Gas Fee 自由。

  • 分享至 

  • xImage
  •  

原本的標題應該是「Ganache」:實現甜點自由的XDDD

Ganache 的法文原意是「笨蛋」、「傻瓜」。就像過往 Android 版本的代號常以甜點命名一樣,Ganache 也是有故事的~

19世紀中葉的法國,一位糕點學徒在廚房忙碌時,不慎將熱鮮奶油打翻,全部倒入一盆頂級巧克力裡。學徒心知闖下大禍,慌亂不已。這時,師傅看到此情此景,氣得大罵他一聲「Ganache!」。
師傅在盛怒中隨手攪拌了這個「被毀掉」的混合物,嚐了一口之後,卻被那絲滑柔順、濃郁香醇的口感驚豔。這場美麗的意外,讓原本用來罵人的「笨蛋」一詞,搖身一變,成為這款經典甜點的名字。從此,Ganache 不再是嘲諷,而是美味巧合的象徵。

小小聲地說:
Ganache 的中文就是「甘納許」,這樣就親切多了~


一、認識 Ganache

在區塊鏈開發的初期階段,開發者常常需要進行大量的測試與模擬操作,在這個階段使用真實的主網(Mainnet)或公開測試網(Testnet)進行開發,往往會遇到許多不便。例如:

  • 需要領取測試幣(Test Token)才能發送交易
  • 測試網節點可能延遲、壅塞或無法連線
  • 各種驗證機制(例如:Faucet 驗證、GitHub 綁定)增加了等待時間
  • 測試過程無法完全可控

為了讓開發者能在一個適合開發階段的環境中測試智能合約,Truffle Suite 推出了 Ganache。

1. Ganache 的主要功能

Ganache 是一款專為以太坊(Ethereum)開發設計的本地區塊鏈模擬工具。專為智慧合約的本地開發與測試設計。它可以在本機快速啟動一條私有鏈,讓開發者在完全隔離、可控且零成本的環境中,模擬智慧合約的部署與交易流程。

簡單來說,Ganache 是一個「區塊鏈模擬器」。

功能 說明
即時處理交易 無需等待區塊生成,交易立即生效,加快開發效率
免 Gas 費  所有交易免費,無真實成本(無需支付真實 Gas 費)
可控環境 可自訂區塊生成速度、Gas 消耗、甚至重置整條鏈
高度整合 與 Truffle、Hardhat、Remix、MetaMask 等主流工具完美兼容

2. 為什麼需要 Ganache?

傳統的以太坊開發過程中,若想測試一段智慧合約,必須:

  • 連接到公開測試網(例如:Sepolia)
  • 透過水龍頭(Faucet)領取測試用 ETH
  • 設定 MetaMask 網路、部署合約、等待區塊確認

3. Ganache 的優勢

問題 傳統方式 使用 Ganache 的方式
測試幣來源 必須向 Faucet 申請 自動生成虛擬 ETH
交易速度 等待網路確認 即時完成
Gas 成本 雖為測試幣,但仍需支付 免費、無限次執行
環境穩定性 節點延遲或失效 完全可控、離線可用

二、Ganache 的特色

1. 可視化介面(GUI)

Ganache 提供直觀的桌面應用介面,啟動後會自動生成:

  • 10 個預設帳戶(每個帳戶擁有 100 ETH 測試幣)
  • 專屬的 RPC 端點(預設為 http://127.0.0.1:7545
  • 區塊、交易、事件等即時記錄

介面包含多個主要分頁:

分頁名稱 功能說明
Accounts 顯示帳戶地址、私鑰、餘額、交易次數
Blocks 顯示每個生成的區塊與其中的交易內容
Transactions 列出所有已執行過的交易紀錄
Logs 顯示交易日誌、錯誤訊息與偵錯資訊

2. 高速測試與即時回饋

在 Ganache 中,所有交易都會立即被確認,不需要等待區塊生成時間。
這種「即時交易」模式對開發者來說極為便利,能快速驗證:

  • 合約邏輯是否正確
  • 事件(Event)是否正確觸發
  • 錢包餘額是否如預期變化

3. 免費、可重置的測試環境

Ganache 的測試幣是虛擬的,所有交易都不會消耗真實資源。可以無限次重置整條鏈狀態(Reset),回到初始條件,重新開始測試。

4. Ganache 不僅可單獨使用,也可搭配多種開發框架

工具 / 框架 整合方式
Truffle 直接設定 development 網路為 localhost:7545
Hardhat hardhat.config.js 連接 RPC 端點
Remix 使用 Injected Provider(透過 MetaMask)連線
MetaMask 將 RPC 指向 Ganache 網路,即可模擬真實錢包操作

5. 部分參數可以自由設定,例如:

  • 區塊生成時間(Block Time)
  • Gas Price 與 Gas Limit
  • Chain ID 與 Network ID
  • 預設帳戶數量與餘額

三、安裝與操作指南

1. 下載與安裝

前往 Truffle Suite 官方網站
選擇適用的版本(Windows / macOS / Linux),依照指示完成安裝。

2. 啟動 Ganache

開啟 Ganache 後,系統會自動建立一條新的本地區塊鏈,並生成 10 個預設帳戶,每個帳戶內預設擁有 100 ETH(虛擬)。

3. 認識介面

  • Accounts:顯示帳戶地址、私鑰與餘額
  • Blocks:顯示每個生成的區塊與其交易內容
  • Transactions:列出所有執行過的交易紀錄

「Settings」可以自訂設定,如:

  • 修改 RPC Port
  • 變更預設帳戶餘額
  • 設定 Gas Price

4. 連接開發工具

  • Remix IDE:在「Environment」選擇 Injected Provider,確保 MetaMask 已連線至 Ganache(RPC 通常為 http://127.0.0.1:7545)。

  • 應用程式開發:於程式碼中設定 RPC 位址,即可與本地 Ganache 網路互動

  • 任何支援 Ethereum JSON-RPC 的工具都能與其互動,例如:

const Web3 = require("web3");
const web3 = new Web3("http://127.0.0.1:7545");

(async () => {
  const accounts = await web3.eth.getAccounts();
  console.log("本地帳戶列表:", accounts);
})();

程式碼執行後即可取得 Ganache 產生的帳戶資訊。


四、延伸閱讀


上一篇
Day35. 認識「MetaMask」:連接使用者與去中心化世界的橋樑
下一篇
Day37. Web3 的日常:「Remix 寫寫、Ganache 測測、MetaMask 點點」
系列文
AI 營養師 + Web3 數位健康護照37
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言