iT邦幫忙

2022 iThome 鐵人賽

DAY 15
0
自我挑戰組

區塊鏈 Blockchain系列 第 15

Day15 DApp 就從web3.js開始吧!

  • 分享至 

  • xImage
  •  

we3.js 是一個JavaScript的套裝library,允許開發者利用HTTP, IPC 或WebSocket與本地或遠程以太坊節點進行交互。常用於 Dapp 網站的前端部分。

web3.js的模組

web3-eth :用於以太坊(Ethereum)區塊鏈和智能合約。

  • web3.eth.subscribe :與訂閱相關
  • web3.eth.Contract :與至智能合約相關
  • web3.eth.accounts :與錢包帳戶相關
  • web3.eth.personal :與以太坊節點的帳戶進行交互
  • web3.eth.ens :與 ENS 進行交互。
  • web3.eth.Iban :將以太坊地址轉換為 IBAN 和 BBAN。
  • web3.eth.abi :將參數編碼和解碼為 ABI,以便對 EVM(以太坊虛擬機)進行函數調用。

web3-shh :用於whisper協議,用於p2p(Peer-to-Peer)和廣播通信。
web3-bzz :用於swarm協議,去中心化文件存儲。
web3-utils :包含對 Dapp 開發人員有用的幫助函數。


名詞介紹:

ENS(Ethereum Name Service)
ENS是一個基以以太坊區塊鏈的分散式、開放和可擴展的命名系統。
https://ens.domains/
http://docs.ens.domains/en/latest/

whisper通訊協議
是完全基於ID的訊息系統,它的設計目的是形成一套p2p節點間的非同步廣播系統。
whisper網路上的訊息是加密傳送的,完全可以暴露在公網進行傳輸。
為了防範DDos攻擊,它使用了proof-of-work(PoW)工作量證明提高訊息傳送門檻。

Swarm(去中心化的内容儲存和分發網路)
是建立在以太坊區塊鏈之上的社交網絡。它允許用戶使用智能合約相互交互,並提供一個接口來訪問運行在以太坊主網上的dApps。

Promise
代表一個即將完成、或失敗的非同步操作,以及它所產生的值。
API 有分成同步和非同步的呼叫,非同步呼叫採用的是 Error-First Callback 的方式。

ABI (Application Binary Interface)
指兩程式模組間的介面。通常其中一個程式模組會是函式庫或作業系統所提供的服務,而另一邊的模組則是使用者所執行的程式。

EIP-1193
一個 JavaScript Ethereum Provider API,用於跨客戶端和應用程序的一致性。
https://eips.ethereum.org/EIPS/eip-1193


添加 web3.js
首先,需要將 web3.js 放入項目中。這可以使用以下方法完成:

npm:npm install web3
yarn:yarn add web3
pure js::連接 dist/web3.min.js

之後,需要創建一個 web3 實例並設置一個提供程序。

大多數以太坊支持的瀏覽器(如:MetaMask小狐狸錢包)都有一個符合EIP-1193的提供程序,位於window.ethereum

對於 web3.js,檢查 Web3.givenProvider
如果此屬性是null(空),你應該連接到遠程/本地節點。

https://ithelp.ithome.com.tw/upload/images/20221016/20152174L4kH5dOD4J.png
現在可以使用該web3對象了。


web3.js 官方網站
https://web3js.readthedocs.io/en/v1.8.0/


上一篇
Day14 什麼! DApp是什麼?
下一篇
Day16 web3.js 環境設置
系列文
區塊鏈 Blockchain30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言