1. 程式人生 > >以太坊 web3.js 文檔翻譯及說明

以太坊 web3.js 文檔翻譯及說明

說明 app 合約 ref -o 教程 虛擬 引入 轉賬

這些天,為了錄制以太坊DAPP開發實戰課程,我準備把web3文檔全部翻譯一下(並做適當的補充),目前web3.js 0.20.x 版本 已經翻譯完成,歡迎大家前往查閱。

這裏還幾個實用DEMO,供大家參考:

  • 使用web3.js API在頁面中轉賬
  • web3.js 0.20 API 使用Demo

web3.js 1.0 文檔中文版 正在翻譯中,請大家關註更新。

web3介紹

Web3是一套和以太坊節點進行通信的API,如果我們需要基於以太坊來開發去中心化應用,則web3是必須要了解的內容,例如需要通過Web3來獲取節點狀態,獲取賬號信息,調用合約、監聽合約事件等等。

註: 智能合約是運行在節點提供的虛擬機上,因此調用智能合約也需要像節點發送請求。

Web3其實是對節點暴露出來的JSON-RPC接口進行了封裝,它有多個語言版本的實現:

  • JavaScript Web3.js
  • Python Web3.py
  • Haskell hs-web3
  • Java web3j
  • Scala web3j-scala
  • Purescript purescript-web3
  • PHP web3.php
  • PHP ethereum-php

web3.js版本說明

web3.js 有兩個不兼容的版本:0.20.x 及 1.0beta,1.0對0.20版本做了重構,並且引入了Promise來簡化異步編程,避免層層的回調嵌套。

做一個對比,下面使用兩個版本來獲取當前塊號:

// 0.20 版本
web3.eth.getBlockNumber(function callback(err, value) {
     console.log("BlockNumber:" + value)
});
// 1.0 版本
web3.eth.getBlockNumber().then(console.log);

在來看看獲取賬號余額:

// 0.20 版本
web3.eth.getAccounts(function callback1(error, result){
    web3.eth.getBalance(result[0], function callback2(error, value) {
        console.log("value" + value);
    });
 })
// 1.0 版本
web3.eth.getAccounts()
   .then((res) => web3.eth.getBalance(res[0]))
   .then((value) => console.log(value) );

使用1.0版本代碼上要比0.2版本簡潔一些,有一點需要特別註意,web3的多數接口都是異步調用形式,通常最後一個參數是回調函數。

再次厚臉皮的給大家推薦,
想要學習去中心化應用開發,這門課程不容錯過區塊鏈全棧-以太坊DAPP開發實戰

本教程由登鏈學院翻譯,由深入淺出區塊鏈發布。

以太坊 web3.js 文檔翻譯及說明