iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 14
0
Blockchain

區塊鏈應用開發實戰系列 第 14

14. DApps 開發環境 Web3.js

https://ithelp.ithome.com.tw/upload/images/20181108/20111706datdfe7EqV.png
小明在研究 MetaMask, Cipher Browser, Trust Wallet 等可執行 DApps 的錢包時,發現網頁都是用 Web3.js 這個 JavaScript 庫來整合錢包。那什麼是 Web3.js 呢?

Web3.js

web3.js是一組用來和本地或遠程以太坊節點進行連接的js庫,以便讓 DApps 能夠訪問區塊鏈上的數據。在底層的實現上,它是通過 RPC 協議與節點通信,web3.js可以與任何對外公開 RPC 介面 的區塊鏈節點連接。

web3.js 目前最新的開發版本為尚未正式釋出的1.0版,官方文件在https://web3js.readthedocs.io/en/1.0/index.html

而在網頁中的調用非常容易上手,只要引入 web3.js 後即可創建一個實例來供調用以太坊的介面

var Web3 = require('web3');

if (typeof web3 !== 'undefined') {
    web3 = new Web3(web3.currentProvider);
} else {
    web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}

通常若有安裝 MetaMask 或在 Cipher Browser 跟 Turst Wallet 的 DApps 瀏覽器中,錢包會自動識別為 currentProvider。

web3.js 主要提供了下列幾大類的模組:

  • web3.eth
    web3.eth這個包用來和以太坊區塊鏈與智能合約交互。

  • web3.eth.subscribe
    web3.eth.subscribe函數係列的作用是訂閱區塊鏈上的事件。

  • web3.eth.Contract
    web3.eth.Contract 簡化了與以太坊區塊鏈上合約的呼叫,web3會自動幫你將所有介面的調用轉化為底層基於 RPC的調用。這使得網頁與智能合約的整合,和呼叫其他 JavaScript 功能一樣簡單。

  • web3.eth.accounts
    web3.eth.accounts 包含了與以太坊錢包地址創建、交易和數據簽名相關的函式。

  • web3.eth.abi
    web3.eth.abi 用於將函數呼叫編碼為 ABI 格式。

  • web3.bzz
    web3-bzz 用來與去中心化文件存儲系統 Swarm 進行整合。

  • web3.shh
    web3-shh 用來與 Whisper 協議進行交互,以便進行廣播。

  • web3.utils
    web3.utils 提供以太坊 Dapps 開發相關的工具函數等。

本文同時發佈於作者部落格:https://www.bdetw.com/blockchain-dapps-web3-js/


/images/emoticon/emoticon34.gif想找區塊鏈人才或想學習區塊鏈知識的夥伴。歡迎參加社群小聚,一起來輕鬆交流、互相學習成長、認識新朋友、發現新機會!
 
台北區塊鏈社群
https://bitlly.co/Q4dIK
 
BDE 區塊鏈學院 - 提供專業的區塊鏈培訓與顧問服務。
https://bitlly.co/mbDwX


上一篇
13. 智能合約開發環境 Trust Wallet App
下一篇
15. DApps 開發環境 Truffle
系列文
區塊鏈應用開發實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言