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

Tiny熊發表於2018-09-09

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

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

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

web3介紹

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

注: 智慧合約是執行在節點提供的虛擬機器上,因此呼叫智慧合約也需要像節點傳送請求。

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

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

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

相關文章