这些天,为了录制以太坊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 文档翻译及说明的更多相关文章

  1. 以太坊web3开发初步学习

    以太坊web3开发初步学习 此文是对https://learnblockchain.cn/2018/04/15/web3-html/的学习再理解. 以太坊智能合约通过使用web3.js前端和智能合约交 ...

  2. 使用web3.js监听以太坊智能合约event

    传送门: 柏链项目学院 使用web3.js监听以太坊智能合约event   当我们在前端页面调用合约时发现有些数据不会立即返回,这时还需要再调用更新数据的函数.那么这样的方法使用起来非常不便,监听ev ...

  3. 以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明

    以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明 为了让你的Ðapp运行上以太坊,一种选择是使用web3.js library提供的web3.对象.底层实 ...

  4. 从零构建以太坊(Ethereum)智能合约到项目实战——第22章 玩转truffle framework 、Web3.js 框架

    P84 .1-玩转truffle framework.Web3.js 框架 内容介绍 truffle官方网站:https://truffleframework.com/ P85 .2-truffle ...

  5. 以太坊开发DApp实战教程——用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台(一)

    第一节 简介 欢迎和我们一起来用以太坊开发构建一个去中心化电商DApp!我们将用区块链.星际文件系统(IPFS).Node.js和MongoDB来构建电商平台类似淘宝的在线电商应用,卖家可以自由地出售 ...

  6. 以太坊(Ethereum)智能合约NodeJS/Web3 使用

    一.概述 运行环境:Node.js.npm.Truffle.Solidity等 root@keke:~/go-ethereum# node -v v8.9.4 root@keke:~/go-ether ...

  7. 基于Vue、web3的以太坊项目开发及交易内幕初探 错误解决总结

    基于Vue.web3的以太坊项目开发及交易内幕初探 本文通过宏观和微观两个层面窥探以太坊底层执行逻辑. 宏观层面描述创建并运行一个小型带钱包的发币APP的过程,微观层面是顺藤摸瓜从http api深入 ...

  8. 青山不遮,毕竟东流,集成Web3.0身份钱包MetaMask以太坊一键登录(Tornado6+Vue.js3)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_213 上世纪九十年代,海湾战争的时候,一位美军军官担心他们的五角大楼会被敌人的一枚导弹干掉,从而导致在全球的美军基地处于瘫痪状态. ...

  9. 以太坊系列之十七: 使用web3进行合约部署调用以及监听

    以太坊系列之十七: 使用web3进行智能合约的部署调用以及监听事件(Event) 上一篇介绍了使用golang进行智能合约的部署以及调用,但是使用go语言最大的一个问题是没法持续监听事件的发生. 比如 ...

随机推荐

  1. innerHTML和 innerText的区别

    共同点:innerHTML和innerText都会把元素内内容替换掉.不同点:1,innerHTML: 也就是从对象的起始位置到终止位置的全部内容,包括Html标签. 上例中的test.innerHT ...

  2. vue学习【第三篇】:vue之node.js的简单介绍

    什么是node.js 它是可以运行JavaScript的服务平台,可以吧它当做一门后端程序,只是它的开发语言是JavaScript 安装node.js node.js的特性 - 非阻塞IO模型 - 时 ...

  3. eMMC之分区管理、总线协议和工作模式【转】

    本文转载自:https://blog.csdn.net/u013686019/article/details/66472291 一.eMMC 简介 eMMC 是 embedded MultiMedia ...

  4. Spring Boot 项目初始化

    Spring Boot 项目创建 File->New->New Project->Spring Initializr 勾选 Web Spring Boot 版本选择稳定版,本文选择 ...

  5. Java中substring函数的简单应用

    1.删掉一个字符串中的某个字符 /* * 使用Java 中的 substring()函数删掉字符串中的某个字符 * deleteAssignChar函数的参数说明: * str:被操作的字符串 * o ...

  6. Hadoop【单机安装-测试程序WordCount】

    Hadoop程序说明,就是创建一个文本文件,然后统计这个文本文件中单词出现过多少次! (MapReduce 运行在本地   启动JVM ) 第一步    创建需要的文件目录,然后进入该文件中进行编辑 ...

  7. Docker 开发最佳实践

    Docker development best practices The following development patterns have proven to be helpful for p ...

  8. sticky-footer的三种解决方案

    在网页设计中,Sticky footers设计是最古老和最常见的效果之一,大多数人都曾经经历过.它可以概括如下:如果页面内容不够长的时候,页脚块粘贴在视窗底部:如果内容足够长时,页脚块会被内容向下推送 ...

  9. 【BZOJ】3140: [Hnoi2013]消毒

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3140 猜一发(显然)有结论:每次一定选择一个平面,即每次操作对答案的贡献都为$1$ 首先可 ...

  10. jquery.js 3.0报错, Uncaught TypeError: url.indexOf is not a function

    转载自:http://majing.io/questions/432   问题描述 jQuery升级到3.0.0后类型错误 jquery.js:9612 Uncaught TypeError: url ...