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

這些天,爲了錄製以太坊DAPP開發實戰課程,我準備把web3文檔所有翻譯一下(並作適當的補充),目前**web3.js 0.20.x 版本** 已經翻譯完成,歡迎你們前往查閱。php

這裏還幾個實用DEMO,供你們參考:html

web3.js 1.0 文檔中文版 正在翻譯中,請你們關注更新。git

web3介紹

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

注: 智能合約是運行在節點提供的虛擬機上,所以調用智能合約也須要像節點發送請求。web

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

web3.js版本說明

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

作一個對比,下面使用兩個版原本獲取當前塊號:異步

// 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開發實戰

本教程由**登鏈學院翻譯,由深刻淺出區塊鏈**發佈。

相關文章
相關標籤/搜索