以太坊 web3.js 文檔翻譯及說明
阿新 • • 發佈:2018-09-09
說明 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 文檔翻譯及說明