20+ 種區塊鏈開發工具
作者 Alchemy
根據報告顯示,區塊鏈開發是成長最快的領域之一。隨著建構在區塊鏈上的專案(DeFi、NFT、DAO)大量湧現,對區塊鏈開發者的需求也隨之暴增。
無論你已經在做區塊鏈開發,或是打算免費建立 Alchemy 區塊鏈開發者帳號,這裡整理了一份完整指南,介紹一些用於建立區塊鏈應用程式的最佳工具。
開始吧!
程式語言
要開發區塊鏈應用程式,你需要學習一種程式語言。這些語言讓你能寫出智慧合約程式碼,作為應用程式的後端。
Solidity
目前為止,Solidity是最受歡迎的區塊鏈開發程式語言。Solidity 是一種高階、物件導向的語言,借用了其他語言(特別是 C++)的多項元素。
許多開發者偏好學習 Solidity,因為被視為事實標準的 Ethereum 使用 Solidity 撰寫智慧合約。此外,Solidity 是圖靈完備的,讓你能建立功能豐富的複雜應用程式。

學習 Solidity 是踏上區塊鏈開發者之路的絕佳起點。Solidity 的高人氣代表你能取得許多為新手設計的實用教學、指南和文件。
Solidity 程式也能在其他區塊鏈上運作,只要那些區塊鏈與Ethereum Virtual Machine (EVM)相容即可。這代表你可以將專案部署到與 EVM 相容的區塊鏈上,例如Binance Smart Chain、Avalanche、Polygon、Matic Network 等等。
Vyper
Solidity 並非建立智慧合約的唯一語言。一個常見的替代方案是 Vyper——一種以 Python 為基礎、與 EVM 相容的語言。
雖然Vyper的功能性和普及程度不如 Solidity,但對熟悉 Python 的開發者來說可能是理想選擇。此外,Vyper 的簡潔架構能減少軟體錯誤,也讓智慧合約審查更容易。
Rust
Rust是一種較新的程式語言,在區塊鏈開發社群中日漸普及。這是一種用於撰寫智慧合約的低階語言,以其記憶體效率、簡潔性和可靠性著稱。
問題在於 Rust 不與 EVM 相容,因此你無法將專案部署到 Ethereum 及與 EVM 相容的鏈上。不過像 Solana、Terra、NEAR、Polkadot 和 Elrond 等較新的鏈都使用 Rust,因此學習這個語言仍然是值得的投資。

框架
從零開始建構去中心化應用程式(dApp)可能是件困難的事,尤其是當你必須自己處理每一個細節時。幸運的是,你可以利用提供隨插即用基礎架構的軟體框架,輕鬆建立應用程式。
框架附帶了用於建立、測試和部署程式碼的資源(函式庫和工具)。你不需要從頭撰寫 dApp 程式碼,因為可以拿現成的套件並加上額外功能。此外,大多數框架是由經驗豐富的工程師開發並優化,因此堅固、高效且多功能。
Truffle
在我們的區塊鏈開發框架清單中,首先是 Truffle。Truffle是一個以 JavaScript 為基礎的框架,用於開發、測試和部署智慧合約。它始終是區塊鏈產業中最常用的框架之一——而且原因充分。
Truffle 內建了建立完整功能 dApp 所需的各種資源,從內建的智慧合約建立工具到測試用區塊鏈環境都有。它也內建了函式庫,讓建構 Ethereum dApp 的前端更加容易。

Hardhat
Hardhat是另一個強烈推薦給智慧合約開發者的框架。跟 Truffle 一樣,Hardhat 是一個以 JavaScript 為基礎的框架,用於在 Ethereum 上建立、測試、部署和除錯應用程式。
Hardhat 是一個全面的工具平台,抽象化了大部分與區塊鏈軟體開發相關的低階通用功能。因此,你能專注在更重要的任務上,例如為你的 dApp 建構核心基礎架構。

Embark
Embark是一個全端開發框架,讓你能同時建構 dApp 的前端和後端。雖然排在清單最後,Embark 的優秀程度不亞於本節列出的其他框架。
Embark 提供了 dApp 資料儲存、即時程式碼測試和智慧合約部署等資源。此外,你還能取得像Etherscan、Solc、Solium 等重要外掛程式。
整合開發環境(IDE)
整合開發環境(IDE)藉由將核心開發者工具整合到單一圖形使用者介面(GUI)中,協助應用程式開發。大多數 IDE 都具備程式碼編譯、編輯、語法標示、建置自動化和除錯等功能。
Remix IDE
許多區塊鏈開發者將 Remix 視為 IDE 領域的產業標準。使用Remix IDE,你能在一個直覺的介面中編譯、測試和除錯智慧合約。
Remix IDE 以 JavaScript 撰寫,你可以在任何瀏覽器中使用它,不過你也能在自己的電腦上本機執行(作為桌面應用程式)。它提供了一套完整的函式庫、外掛程式和其他功能,能大幅提升智慧合約開發效率。

EthFiddle
EthFiddle 是一個以瀏覽器為基礎的 IDE,用於撰寫和除錯 Solidity 程式碼。由 Loom Network 開發,如果你正在與其他人協作專案,EthFiddle是一個出色的工具。使用這個軟體,你能輕鬆編輯、尋找程式碼片段並與他人分享以取得回饋。
EthFiddle 的功能不如 Remix IDE 豐富,但很適合在簡報中分享程式碼。它提供設計良好的測試和原型製作功能,對任何區塊鏈開發者來說都是好工具。
Ethcode
我們也推薦 Ethcode,這是一個用於 Ethereum 智慧合約開發的 Visual Studio Code 外掛程式。Ethcode提供了對新手友善的開發環境,用於撰寫、除錯和單元測試合約程式碼。
程式碼是開放原始碼的,新開發者需要時可以尋求支援。Ethcode 同時支援 Vyper 和 Solidity,並能將你的智慧合約部署到 Ethereum Mainnet 和 Goerli 測試網等環境。

API 和 SDK
除了框架和 IDE 之外,API 和 SDK 也是 Web3 開發者最重要的工具之一。兩者都能協助區塊鏈工程師解決開發過程中遇到的特定問題,並輔助 dApp 的建立。
Application Programming Interface(API)的設計目的是簡化不同軟體之間的互動。你可以透過 API 請求資料來改善你的 dApp,藉此在既有功能上進行擴充。
SDK 是「Software Development Kit」的縮寫,指的是一套用於為特定平台建構應用程式的軟體產品集合。區塊鏈開發用的 SDK 能降低建構特定平台應用程式的複雜度。
Alchemy NFT API
隨著non-fungible token(NFT)的價值暴增,許多開發者將注意力轉向這個產業。如果你打算建立 NFT 應用程式,Alchemy 的 NFT API 是理想的工具。
Alchemy NFT API讓開發者能以對使用者友善的介面顯示不同 NFT 的中繼資料。而且它能在多條鏈上運作(Ethereum、Polygon、Flow 等),讓買家在選擇 NFT 時有更大的彈性。
NFT API 抽象化了與 NFT 互動時涉及的大部分技術性任務。將 NFT API 整合到你的平台後,買家在驗證和購買 NFT 之前,不需要閱讀智慧合約。

thirdweb SDK
Thirdweb SDK 適合用於建構 Web3 應用程式,或是將 Web3 功能整合進既有的應用程式中。例如,你可以在應用程式中加入「Connect Wallet」功能,而不需要撰寫程式碼。
Thirdweb 可用於以下用途:
- 建立 NFT 交易市場
- 不寫程式碼即可發行 NFT drops
- 建立用於治理、社群會員資格及其他用途的代幣
- 將版稅拆分寫入 NFT
Thirdweb 目前支援 Fantom、Avalanche、Ethereum 和 Polygon——並承諾未來會支援更多鏈。雖然智慧合約可免費使用,但 Thirdweb 會對代幣合約未來獲得的版稅收取 5% 的手續費來獲利。

Moralis API 和 SDK
Moralis是一個 Web3 開發平台,提供 API 和 SDK 以加速區塊鏈開發流程。Moralis SDK 透過提供現成的功能,降低建構完整功能 dApp 的複雜度,例如:
- 使用者驗證
- 傳送和取得交易
- 監聽智慧合約事件
- 提取使用者餘額
- 與智慧合約互動
Moralis 的跨鏈 Web3 API 也能彙整帳戶餘額、代幣、鏈上交易等各方面的完整資訊。而且它支援最主流的鏈,包括 Avalanche、Polygon、Ethereum 和 Binance Smart Chain。
測試區塊鏈網路
大多數智慧合約預設是不可變的,一旦程式碼部署到區塊鏈上,就無法排除任何修改的可能性。因此,不建議在 Ethereum Mainnet 上進行測試,因為部署後你無法進行變更。
為了解決這個問題,Ethereum 開發者可以使用測試區塊鏈網路(testnet)來測試應用程式。測試網路讓你能看到智慧合約在區塊鏈上如何運作,讓你能在正式上線前找出任何缺陷。
本機區塊鏈(ganache)
Ganache 是一個用於 Ethereum 開發的本機區塊鏈,以命令列工具或桌面應用程式的形式提供。區塊鏈開發者可以使用Ganache來部署智慧合約並執行測試。
Ganache 工具擁有對使用者友善的介面,你可以在其中取得除錯資訊和區塊鏈資料(帳戶、區塊、交易)。你也能設定其他項目,例如區塊時間,以符合你的開發需求。

公開測試網(goerli/sepolia)
你可以使用像 Goerli 這樣的公開測試網來取代 Ganache。主要差異在於 Ganache 可離線使用,不需要連上網路。
有些開發者偏好公開測試網,因為它們能模擬 Ethereum 的行為,對於測試假設可能更為適合。
雖然測試網可免費使用,但你需要在瀏覽器錢包中準備測試用以太幣(ETH)才能完成交易。取得測試用以太幣最簡單的方法是使用水龍頭,例如Alchemy Goerli Faucet。
Oracle
雖然智慧合約有令人振奮的應用方式,但由於它們只能存取儲存在鏈上的資訊,其功能性受到限制。這對任何需要依賴外部資訊來執行功能的智慧合約開發者來說,都是個問題。
這正是 oracle 派上用場的地方。
區塊鏈 oracle 從不同來源蒐集現實世界的資訊,並將其傳遞給運行於區塊鏈上的智慧合約。這些資訊可以有多種形式:即時價格資訊、天氣資訊、體育賽事結果等等。

選擇去中心化的 oracle 很重要,因為它們較難被惡意行為者操控,並能提供(大致上)可靠的資訊。許多常見的應用程式,如 Kyber、Synthetix 和Compound,都使用去中心化 oracle 來執行智慧合約。
Chainlink
目前,就市佔率而言,Chainlink是領先的去中心化 oracle 解決方案。Chainlink於 2017 年推出,為跨多條區塊鏈的智慧合約提供「可靠且防篡改」的資料。
透過 Chainlink,你可以將智慧合約連接到各式各樣的現實世界資料源。例如,你可以建立一個博弈 dApp,讓使用者因預測現實世界事件的結果而獲得獎勵。

其他去中心化 oracle 解決方案包括Band Protocol、Witnet和Universal Market Access (UMA)。這些應用程式激勵所選的 oracle 提供準確資訊,以維護鏈下資料的完整性。
區塊鏈節點供應商
建構 dApp 時,你需要與區塊鏈互動——不論是讀取鏈上資料還是將資料寫入區塊鏈。要做到這一點,就必須連接區塊鏈節點;區塊鏈節點保存了整條區塊鏈的歷史紀錄,並能傳送/查詢區塊鏈資料。
問題在於,維護一個完整的 Ethereum 節點既昂貴、耗時又複雜。因此,建議區塊鏈開發者使用區塊鏈節點供應商(node-as-a-service)。節點供應商為客戶處理區塊鏈基礎架構,讓你能專注在建構和擴展你的 dApp 上。
Alchemy Supernode
如果你正在尋找合適的區塊鏈節點供應商,Alchemy Supernode值得一試。Supernode 提供一套完整開發的 API,用於與區塊鏈互動並取得重要的區塊鏈資料。

使用我們的工具,連接到區塊鏈網路層就如同註冊並取得 API 金鑰一樣簡單。這項服務不僅適用於 Ethereum,也適用於其他專案——因此你在選擇要使用的區塊鏈時擁有充分的彈性。
Alchemy 的 node-as-a-service 工具還提供以下優點:
-
免費註冊:免費開始使用 Supernode,並可升級以取得特殊功能。
-
依需求擴展的基礎架構:隨著你的 dApp 使用量擴大,運行一個專用節點會變得愈來愈困難。你可以嘗試啟動更多節點,但這只會讓問題更加複雜,並增加你的開銷。
Supernode 的設計能適應你的需求,並提供無縫的擴展能力。這樣一來,你就不必為節點基礎架構煩惱,而你的使用者也能享有更好的體驗。
-
強化版 API:Alchemy Supernode 附帶一系列獨特的 API 端點,讓查詢區塊鏈資料比以往更容易。取得交易歷史、代幣識別碼、交易收據、待處理交易等等。
-
可靠性:標準節點經常遇到各種導致應用程式當機的問題。使用 Supernode,你能取得頂級的可靠性,確保你的區塊鏈應用程式能不間斷地運行。
如果你想了解有哪些選項,還有其他節點供應商可供查看。這個產品類別中的其他名稱包括 QuickNode、Infura、GetBlock、BlockDaemon 和 Chainstack。
分析工具
在建構應用程式時,許多 Web3 開發者很快就會發現追蹤鏈上活動並不容易。在大多數情況下,你需要投入大量精力,才能取得諸如即時使用資訊、使用者採用率和代幣指標等重要的應用程式資訊。
然而,如果你想改善 dApp 並擴大使用者群,分析這些資料點是很重要的。為此,你會想使用像Alchemy Monitor這樣的工具,讓取得 Web3 應用程式的分析資訊變得更容易。
Alchemy monitor
Alchemy Monitor 是一個強大的專用工具,用於監控 dApp 基礎架構並深入了解使用者活動。Alchemy Monitor 提供 dApp 健康狀態的即時更新,能顯示 API 呼叫次數、錯誤率和回應時間。
Alchemy Monitor 儀表板也會追蹤 dApp 使用情況,能對使用者行為提供有用的洞察。它還具備一套精巧的自動警示系統,能在 dApp 發生嚴重故障之前及早標記問題。

Alchemy notify
需要 dApp 活動即時資訊的不只是開發者;使用者也需要知道 dApp 中發生了什麼事。舉例來說,使用者可能想知道在 dApp 中執行的某筆交易是否成功。
這就是為什麼使用Alchemy Notify推播通知服務是個絕佳的主意。為你的 dApp 加入推播通知,可能就是優異使用者體驗和不佳使用者體驗之間的差別。Notify 為應用程式使用者提供以下資訊:
- 交易通知;
- 地址活動警示;
- Gas 價格警示等等。
當 Alchemy Monitor 和 Notify 結合使用時,能提供更好的分析,並讓開發者改善區塊鏈應用程式的可用性。你也可以將這些工具與區塊鏈瀏覽器結合,例如Etherscan,它提供有關 Ethereum 區塊鏈本身的資訊(平均 gas 價格、區塊時間等)。

安全工具
如果說今年揭露了什麼,那就是安全性應該是任何區塊鏈專案的第一優先考量。加強智慧合約安全性,是比為你的新 dApp 增添花俏功能更重要的考量。作為背景資訊,以下是今年一些最大規模的漏洞攻擊事件:
- Axie Infinity(遭駭損失 6.15 億美元)
- Inverse Finance(遭駭損失 1500 萬美元)
- Elephant Money(遭駭損失 1120 萬美元)
還有更多駭客攻擊事件,但這些應該足以讓你了解智慧合約安全性是件嚴肅的事。如果沒有適當的安全措施,你將冒著為惡意攻擊創造溫床的風險,這可能會損害你的聲譽並讓使用者卻步。
Octopus
在我們用於強化智慧合約安全性的工具清單中,首先是Octopus,這是一套用於對智慧合約程式碼進行詳細分析的解決方案。Octopus提供符號執行、呼叫流程分析和控制流程分析——這些都能幫助你發現合約中的錯誤,並在為時已晚之前修復它們。

Mythril
接下來是Mythril,一個由 ConsenSys 支持的智慧合約安全工具。Mythril適合用於分析 Ethereum Virtual Machine(EVM)位元組碼,並使用汙點分析、符號執行和汙點求解來找出 Ethereum 軟體中的錯誤。
Securify
清單的最後一項是 Securify——一個由 Ethereum Foundation 支持的智慧合約掃描工具。Securify最多能偵測 37 種不同的軟體漏洞,並針對以 Solidity 為基礎的智慧合約實作特定情境的分析。
錢包
如果你要建構應用程式,就需要一個錢包來持有資金,即使那只是測試用以太幣(ETH)。為此,你可以在幾分鐘內從瀏覽器建立一個加密貨幣錢包。
MetaMask
我們推薦使用MetaMask,因為它提供的功能不只是持有 ETH。以瀏覽器擴充功能的形式提供,MetaMask 會將 Web3js API 注入網站,讓使用者能直接從瀏覽器與應用程式互動。MetaMask 還能執行其他功能,例如金鑰管理、讀取區塊鏈資料等等。

結語
區塊鏈開發可以是一段令人興奮的旅程,但前提是你一開始就擁有正確的工具。建立一套堅實的開發技術堆疊,能讓建立應用程式更輕鬆,也能提升成果的品質。
本文涵蓋了開始建構區塊鏈應用程式所需的頂尖開發者工具,包括框架、IDE、安全工具、測試網路、區塊鏈 oracle 和節點服務。若想開始使用這些工具,免費開通 Alchemy 開發者帳號。
相關總覽

打造區塊鏈魔法
Alchemy 結合最強大的 Web3 開發者產品與工具,並提供資源、社群與卓越的支援。


