iT邦幫忙

0

開發環境建置:Hardhat 與 Foundry 實戰比較與安裝

  • 分享至 

  • xImage
  •  

Remix 確實非常方便,隨開即用,但當我們要把專案規模放大,或是進行嚴謹的資安測試與自動化部署時,網頁版就顯得力不從心了。因此,身為未來的專業開發者與資安人員,我們必須在自己的電腦上建立一套強大的本地端開發框架。
目前 Web3 業界最主流的兩大框架分別是 Hardhat 與 Foundry。

老牌霸主:Hardhat
Hardhat 是目前以太坊生態系中市佔率最高、生態最龐大的開發框架。

  • 核心語言:JavaScript / TypeScript。這意味著你的部署腳本、測試腳本,全部都是用 JS/TS 寫的。這對於熟悉前端開發的人來說非常親切,剛好也無縫接軌我們前幾天用 JS 實作輕量級區塊鏈的經驗。
  • 優勢:擁有極度豐富的外掛套件(Plugins 生態系),不管是驗證合約、計算 Gas 消耗,都有現成的工具可以使用。它與 Ethers.js 的整合也堪稱完美。
  • 劣勢:測試腳本需要用 JS 來寫,這代表開發者必須在 Solidity 與 JS 兩種語言之間不斷切換(Context Switch),且測試執行速度相對較慢。

資安界的新星:Foundry
Foundry 是由 Paradigm 團隊使用 Rust 語言全新打造的開發框架,近年來在資安稽核圈與高階 DeFi 開發者中掀起了一陣狂熱的旋風。

  • 核心語言:Solidity。沒錯!在 Foundry 中,你不只用 Solidity 寫合約,你連「測試腳本」跟「部署腳本」都是用 Solidity 寫的!
  • 優勢 1:極致的速度。因為底層是 Rust,它的編譯與測試速度堪稱怪物級,通常比 Hardhat 快上數十倍。
  • 優勢 2:為資安而生。它內建了極其強大的 Fuzzing(模糊測試)功能與作弊碼(Cheatcodes),可以直接操控 EVM 的狀態(例如任意竄改某個地址的餘額、改變區塊時間等),這對於我們後續要模擬駭客攻擊(如重入攻擊、閃電貸)來說,簡直是神兵利器。

實戰抉擇:我們該選誰?
由於本系列的主軸是「Web3 資安實戰」,為了後續能順利展示各種漏洞攻擊與進階的模糊測試,Foundry 將會是我們接下來的主力武器!但別擔心,我們在最後階段開發 DApp 前端時,依然會用到 JS 的觀念。

Foundry 安裝實戰
Foundry 的安裝非常乾淨俐落。打開你的終端機(Terminal),不論你是 macOS 還是 Linux Ubuntu 環境,只要跟著以下步驟:

下載安裝腳本:
在終端機輸入以下指令:
'''
curl -L https://foundry.paradigm.xyz | bash
'''

重新載入環境變數:
重新開啟終端機,或者執行 source ~/.bashrc(或 ~/.zshrc)。

安裝並更新二進位檔:
接著輸入:
'''
foundryup
'''

看到一連串綠色的成功訊息,就代表 Foundry(包含核心工具 forge、cast、anvil)已經安裝完成了!

初始化第一個專案:
讓我們建立一個名為 my_secure_contract 的資料夾並初始化:
'''
forge init my_secure_contract
cd my_secure_contract
forge build
'''

如果看到編譯成功的訊息,恭喜你!你的專業級合約開發環境已經就緒。

工欲善其事,必先利其器。有了 Foundry 這個強大的後盾,我們未來在面對複雜的合約漏洞時,就能有足夠的彈藥來進行測試與攻擊模擬。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言