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

  1. 以太坊Web3.js开发基础

    简介 web3.js是一个通过RPC调用和本地以太坊节点进行通信的js库.web3.js可以与任何暴露了RPC接口的以太坊节点连接 .web3中提供了eth对象 - web3.eth来与以太坊区块链进 ...

  2. 以太坊PHP离线交易签名生成,以太坊web3.sendRawTransaction离线签名交易

    工作中需要复现短地址攻击和thedao重入攻击,重入攻击可以直接通过eth.sendTransaction和remix来发送交易,但是短地址攻击由于钱包和remix这些都对input做了长度检测,无法 ...

  3. 以太坊开发者工具的最新清单

    以太坊开发者工具的最新终极清单,用于在以太坊上开发应用程序的可用工具,组件,框架和平台的指南. 对于任何开发者,无论你是一个睁大眼睛的Web3新手还是一个头发灰白的OG加密无政府主义技术霸主,Gith ...

  4. 《以太坊攻略》,小白如何逆袭成为技术大咖?要学的全在这里了

    作者/ Daniel Que 编译/ kou 昨天,营长一直在劝诫小编,熊市不可怕,小编不能慌,小编也要学技术. 只有这样,天上掉"牛肉味"馅饼的时候,馅饼才能砸到站在第一排的小编 ...

  5. 刺猬文│以太坊交易信息解析方法

    (图片出自网络,版权归原作者所有) 上一篇刺猬文中,提到了合约进行编码后的abi码问题.之后有朋友问我,abi码是干啥的?这个问题问的我无从回答--大家只要在百度上搜索一下,就有一大把一大把的现成答案 ...

  6. 以太坊存储Swarm的开发指南

    swarm是一个分布式存储平台以及内容分发服务,是一个以太坊Web3栈的一个本土服务层.swarm的最主要目标是为以太坊公共记录,尤其是Dapp代码与数据以及区块数据提供一个足够去中心化以及足够重复的 ...

  7. 【以太坊】web3.js的1.0版本和0.2.0版本的安装及区别

    一.前言 博主在安装web3.js的时候,偶然间安装了不同版本的web3.js,API操作也不相同,虽然都能达到目标,但是到底区别在哪呢?网上查找半天并没有人专门总结一下这块,所以今天斗胆总结一下,也 ...

  8. [译] 使用 Web3 和 Vue.js 来创建你的第一个以太坊 dAPP(第二部分)

    原文地址:Create your first Ethereum dAPP with Web3 and Vue.JS (Part 2) 原文作者:Alt Street 译文出自:掘金翻译计划 本文永久链 ...

  9. 如何用web3.js在以太坊区块链上保存数据?

    2019独角兽企业重金招聘Python工程师标准>>> 虽然有北大博士讲,95%的区块链项目都没有前途,但我们知道区块链还是有它的优势,比如数据的不可篡改性对于版权保护有相当大的意义 ...

最新文章

  1. 人脸识别被玩坏?别急,“护脸计划”即将开启
  2. final和static
  3. 每日一皮:这翻译...真辛苦老外看纪录片纯靠脑补 ...
  4. 【C010】Python - 基础教程学习(一)
  5. VTK:相互作用之TrackballCamera
  6. python学习笔记(十四)标准库urllib
  7. mysql提供了表示日期和时间的数据类型_MySQL数据类型 - 日期和时间类型(1)
  8. 征稿 | “健康知识图谱”投稿通道开启
  9. ios uiview 如何刷新_2020最新迅雷苹果版如何下载?
  10. CentOS7 安装MongoDB 3.0服务
  11. 几个文件vtp格式转stl格式
  12. 微信营销与博客营销的区别
  13. win10系统解决office16的VBE6EXT.OLB不能被加载的问题
  14. SQL练习题_ 查询每个部门工资最高的前两名的姓名和部门名称【多测师_何sir】
  15. escape的主要用途
  16. JAVA毕业设计Vue网上书籍购买商城登录计算机源码+lw文档+系统+调试部署+数据库
  17. mysql查询某字段包含手机号
  18. 为什么好学生,学不好编程?
  19. BZOJ 1202-狡猾的商人(带权并查集)
  20. 解决Windows11/10本地账户改用Microsoft账户登录显示“发生了错误”的问题

热门文章

  1. BP(反向传播)神经网络
  2. HTTP/3 都来了,你却还在用 HTTP/1.1?
  3. 文本获取和搜索引擎中的反馈模型
  4. ajax----serialize()方法注意事项
  5. LeetCode刷题(1)
  6. 反向传播算法的详细解释(上)
  7. 我的世界工业服务器透视修改,教程/透视镜 - Minecraft Wiki,最详细的官方我的世界百科...
  8. java工具类,常用的那些方法
  9. JavaScript创建与读写本地文件(IEFirefox)
  10. oracle的一些常见问题及处理