以太坊web3.js文档翻译及说明
这些天,为了录制以太坊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文档翻译及说明相关推荐
- 以太坊Web3.js开发基础
简介 web3.js是一个通过RPC调用和本地以太坊节点进行通信的js库.web3.js可以与任何暴露了RPC接口的以太坊节点连接 .web3中提供了eth对象 - web3.eth来与以太坊区块链进 ...
- 以太坊PHP离线交易签名生成,以太坊web3.sendRawTransaction离线签名交易
工作中需要复现短地址攻击和thedao重入攻击,重入攻击可以直接通过eth.sendTransaction和remix来发送交易,但是短地址攻击由于钱包和remix这些都对input做了长度检测,无法 ...
- 以太坊开发者工具的最新清单
以太坊开发者工具的最新终极清单,用于在以太坊上开发应用程序的可用工具,组件,框架和平台的指南. 对于任何开发者,无论你是一个睁大眼睛的Web3新手还是一个头发灰白的OG加密无政府主义技术霸主,Gith ...
- 《以太坊攻略》,小白如何逆袭成为技术大咖?要学的全在这里了
作者/ Daniel Que 编译/ kou 昨天,营长一直在劝诫小编,熊市不可怕,小编不能慌,小编也要学技术. 只有这样,天上掉"牛肉味"馅饼的时候,馅饼才能砸到站在第一排的小编 ...
- 刺猬文│以太坊交易信息解析方法
(图片出自网络,版权归原作者所有) 上一篇刺猬文中,提到了合约进行编码后的abi码问题.之后有朋友问我,abi码是干啥的?这个问题问的我无从回答--大家只要在百度上搜索一下,就有一大把一大把的现成答案 ...
- 以太坊存储Swarm的开发指南
swarm是一个分布式存储平台以及内容分发服务,是一个以太坊Web3栈的一个本土服务层.swarm的最主要目标是为以太坊公共记录,尤其是Dapp代码与数据以及区块数据提供一个足够去中心化以及足够重复的 ...
- 【以太坊】web3.js的1.0版本和0.2.0版本的安装及区别
一.前言 博主在安装web3.js的时候,偶然间安装了不同版本的web3.js,API操作也不相同,虽然都能达到目标,但是到底区别在哪呢?网上查找半天并没有人专门总结一下这块,所以今天斗胆总结一下,也 ...
- [译] 使用 Web3 和 Vue.js 来创建你的第一个以太坊 dAPP(第二部分)
原文地址:Create your first Ethereum dAPP with Web3 and Vue.JS (Part 2) 原文作者:Alt Street 译文出自:掘金翻译计划 本文永久链 ...
- 如何用web3.js在以太坊区块链上保存数据?
2019独角兽企业重金招聘Python工程师标准>>> 虽然有北大博士讲,95%的区块链项目都没有前途,但我们知道区块链还是有它的优势,比如数据的不可篡改性对于版权保护有相当大的意义 ...
最新文章
- 人脸识别被玩坏?别急,“护脸计划”即将开启
- final和static
- 每日一皮:这翻译...真辛苦老外看纪录片纯靠脑补 ...
- 【C010】Python - 基础教程学习(一)
- VTK:相互作用之TrackballCamera
- python学习笔记(十四)标准库urllib
- mysql提供了表示日期和时间的数据类型_MySQL数据类型 - 日期和时间类型(1)
- 征稿 | “健康知识图谱”投稿通道开启
- ios uiview 如何刷新_2020最新迅雷苹果版如何下载?
- CentOS7 安装MongoDB 3.0服务
- 几个文件vtp格式转stl格式
- 微信营销与博客营销的区别
- win10系统解决office16的VBE6EXT.OLB不能被加载的问题
- SQL练习题_ 查询每个部门工资最高的前两名的姓名和部门名称【多测师_何sir】
- escape的主要用途
- JAVA毕业设计Vue网上书籍购买商城登录计算机源码+lw文档+系统+调试部署+数据库
- mysql查询某字段包含手机号
- 为什么好学生,学不好编程?
- BZOJ 1202-狡猾的商人(带权并查集)
- 解决Windows11/10本地账户改用Microsoft账户登录显示“发生了错误”的问题