iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
Web 3

從 區塊鏈 到 去中心化應用程式(DApp)系列 第 24

DApp建立: Web3.js、Ethers.js 介紹

  • 分享至 

  • xImage
  •  

Web3.js、Ethers.js 介紹

開發 去中化應用程序(DApp) 該如何開始呢?

Web3.js 和 Ethers.js

二者都是在區塊鏈開發中極為重要的 JavaScript 函式庫
而且也是在開發 去中化應用程序(DApp) 重要工具

這篇將以以下重點進行講述

  1. 甚麼是 Web3.js
  2. 甚麼是 Ethers.js
  3. Web3.js 與 Ethers.js 比較

甚麼是 Web3.js

Github 位置: https://github.com/web3/web3.js/


圖片取自於(https://github.com/web3/web3.js/)網頁畫面

npm 下載位置: https://www.npmjs.com/package/web3


圖片取自於(https://www.npmjs.com/package/web3)網頁畫面

Web3.js 是一個廣泛使用的 JavaScript 函式庫,
用於與乙太坊區塊鏈進行互動。

它提供了豐富的工具和函數
以便開發者能夠輕鬆地建立去中心化應用程式(DApps)和智慧合約。

以下是 Web3.js 的主要特點和功能:

1. 乙太坊互動

Web3.js 允許你直接連接到乙太坊節點,
並發送交易、查詢合約狀態、獲取區塊鏈資料等。

這使得你可以在應用程式中實現各種功能,
例如轉帳乙太幣、查詢帳戶餘額,以及互動式地與智慧合約互動。

2. 智能合約交互

Web3.js 提供了一系列的函數,用於與智慧合約進行交互。

你可以部署、調用和交互乙太坊智慧合約,
這是建立 DApps 的關鍵部分。

這些函數讓你能夠發送交易到智慧合約,以執行特定的操作。

3. 錢包集成

Web3.js 支援與各種乙太坊錢包集成,
包括 MetaMask、Trust Wallet 和 Coinbase Wallet 等。

這意味著使用者可以使用他們喜歡的錢包來與你的 DApp 互動,
而無需額外的安裝或註冊過程。

4. 事件監聽

你可以使用 Web3.js 監聽乙太坊區塊鏈上的事件,這對於即時跟蹤合約操作非常有用。例如,你可以設定事件監聽器以檢測新區塊的創建、合約事件的觸發等。

4. TypeScript 支持

Web3.js的4.x版本已經用TypeScript進行了重寫

這將使得在TypeScript項目中使用Web3.js
變得更加方便和直觀。

甚麼是 Ethers.js

Github 位置: https://github.com/ethers-io/ethers.js/

圖片取自於(https://github.com/ethers-io/ethers.js/)網頁畫面

npm 下載位置: https://www.npmjs.com/package/ethers

圖片取自於(https://www.npmjs.com/package/ethers)網頁畫面

Ethers.js 也是是一個流行的 JavaScript 函式庫,
用於與乙太坊區塊鏈進行互動。

它的設計目標是提供一個簡單、強大且安全的介面,
使開發者能夠輕鬆地建立 DApps 和與智慧合約互動。

以下是 Ethers.js 的主要特點和功能:

1. 簡單易用的 API

Ethers.js 提供了一個簡單且直觀的 API,
使開發者能夠快速上手。

它的設計使得執行常見操作變得容易,
並且提供了豐富的文檔和示例代碼。

2. 安全性

Ethers.js 設計時注重安全性,
並提供了內置的安全檢查和防護機制,
以幫助開發者減少潛在的安全風險。

這對於處理加密資產非常重要。

3. 支援多種簽名演算法

Ethers.js 支援多種簽名演算法,
包括乙太坊的經典私密金鑰簽名、硬體錢包簽名,
以及 MetaMask 等錢包的集成。

4. TypeScript 支持

Ethers.js 是用 TypeScript 編寫的,
這意味著它具有靜態類型檢查的優勢,
有助於減少錯誤並提高代碼的可維護性。

Web3.js 與 Ethers.js 比較

從功能上來看:

功能/特點 Web3.js Ethers.js
廣泛使用 Web3.js 是一個較早的函式庫,用於與以太坊區塊鏈互動。 Ethers.js 是一個相對較新的函式庫,同樣用於與以太坊區塊鏈互動。
簡單易用的 API Web3.js 具有較為複雜的 API,對於新手開發者可能需要更多學習。 Ethers.js 提供了一個簡單且直觀的 API,對於快速上手很有幫助。
安全性 Web3.js 需要開發者自行處理安全性問題,容易出現錯誤。 Ethers.js 設計時注重安全性,提供了內置的安全檢查和防護機制。
錢包集成 Web3.js 支援與多種錢包集成,但需要額外的配置和處理。 Ethers.js 也支援多種錢包集成,但更容易配置和使用。
簽名算法支持 Web3.js 支援多種簽名算法,包括私鑰簽名、硬體錢包簽名等。 Ethers.js 也支援多種簽名算法,提供彈性的選擇。
事件監聽 Web3.js 提供了事件監聽功能,用於監測區塊鏈上的事件。 Ethers.js 同樣提供了事件監聽功能,使得實時跟蹤合約操作變得容易。
區塊鏈數據查詢 Web3.js 允許查詢區塊資訊、交易歷史和帳戶餘額等區塊鏈數據。 Ethers.js 也允許查詢區塊資訊、交易等區塊鏈數據。

若是從數據上來看:

數據 Web3.js Ethers.js
Start 17.9k 7.1k
Week Downloads 50萬 100萬
unpacked size 3.46mb 11.8mb

結言

這兩個套件都是在 開發去中心化應用程序中 非常強大的套件

兩個套件各自有自己的優缺點

那究竟要選擇 哪一種作為開發的套件呢?
我想我的答案是 "我全都要"

小孩才做選擇呢 哈哈哈哈哈~~~

希望透過這篇能理解

  1. 甚麼是 web3.js
  2. 甚麼是 ethers.js
  3. Web3.js 與 Ethers.js 比較

下回預告

介紹完 這兩個套件後 是不是躍躍欲試阿~

好想趕緊來實踐看看喔

到底要如何撰寫呢 它們又可以做到甚麼呢?

那麼 就先來連上錢包吧!

下回 "DApp建立: 錢包(MetaMask) 結合運作""


上一篇
智能合約開發: 建立合約-區塊鏈上的群眾募資
下一篇
DApp建立: 錢包(MetaMask) 結合運作
系列文
從 區塊鏈 到 去中心化應用程式(DApp)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言