美文网首页
以太坊web3.js文档翻译及说明

以太坊web3.js文档翻译及说明

作者: 深入浅出区块链 | 来源:发表于2018-09-09 09:48 被阅读135次

    这些天,为了录制以太坊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开发实战

    本教程由登链学院翻译,由深入浅出区块链发布。

    相关文章

      网友评论

          本文标题:以太坊web3.js文档翻译及说明

          本文链接:https://www.haomeiwen.com/subject/hourgftx.html