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

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

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

原文地址:https://www.cnblogs.com/tinyxiong/p/9612610.html

时间: 2024-08-01 08:56:54

以太坊 web3.js 文档翻译及说明的相关文章

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

第一节 简介 欢迎和我们一起来用以太坊开发构建一个去中心化电商DApp!我们将用区块链.星际文件系统(IPFS).Node.js和MongoDB来构建电商平台类似淘宝的在线电商应用,卖家可以自由地出售商品,买家可以自由地购物: 去中心化: 和淘宝或eBay不同,我们把所有的商业逻辑和核心数据都放在以太坊区块链上,这使 得它成为一个完全去中心化的应用.和淘宝这样中心化的电商平台相比,一个去中心化的P2P电商应用显然有其独特的价值--至少你不用担心被平台封账户了. IPFS: 在以太坊上存储用于商品

以太坊 DApp 开发入门实战! 用Node.js和truffle框架搭建——区块链投票系统!

第一节 概述 面向初学者,内容涵盖以太坊开发相关的基本概念,并将手把手地教大家如何构建一个 基于以太坊的完整去中心化应用 -- 区块链投票系统. 通过学习,你将掌握: 以太坊区块链的基本知识 开发和部署以太坊合约所需的软件环境 使用高级语言(solidity)编写以太坊合约 使用NodeJS编译.部署合约并与之交互 使用Truffle框架开发分布式应用 使用控制台或网页与合约进行交互 前序知识要求 为了顺利完成,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ru

node.js如何发送以太坊交易?

" 注意:在本教程中我使用web3js 1.0版本 " 大家好,我将解释如何从NodeJS后端发送交易.我将使用rinkeby testnet并将创建一个路由器,还添加一些节点模块并使用infura http接口来完成教程. 我们需要web3js,express和ethereumjs-tx模块来执行交易.之后你需要从Infura输入你自己的api key,登录到infura. 开始 首先,你需要为此项目创建一个空文件夹,以便更轻松地访问它.创建文件夹后,你需要在该文件夹中打开命令she

以太坊中文文档翻译-账号

本文原文链接 点击这里获取Etherscan API 中文文档(完整版) 完整内容排版更好,推荐读者前往阅读. 账号(Account) 账号及地址相关的 API,接口的参数说明请参考Etherscan API 约定, 文档中不单独说明. 获取单个账号余额 译者注: 英文 `balance` 有人翻译为`金额`,译者习惯称为`余额`. 账号和地址大部分也是指一个意思. 接口: /api?module=account&action=balance&address=0x&tag=late

以太坊Go、Java、Python、Ruby、JS客户端介绍

作者:HPB_汪晓明(HPB Team) Go Ethereum 简介 go-ethereum客户端通常被称为geth,它是个命令行界面,执行在Go上实现的完整以太坊节点.通过安装和运行geth,可以参与到以太坊前台实时网络并进行以下操作: 挖掘真的以太币 在不同地址间转移资金 创建合约,发送交易 探索区块历史 及很多其他 Go Ethereum 链接: 网站: http://ethereum.github.io/go-ethereum/ Github: https://github.com/e

创建自己的区块链合约java版web3接口——以太坊代币(四)

texas-web3j-solidity项目是一个java版本的,使用web3j包和eth网络交互的小程序. 主要实现了以下功能: 1.发布合约 2.发起转账 3.查询交易 4.调用智能合约方法 texas-web3j-solidity项目在官方例子基础上做了以下几点功能性修改: 1.增加texas合约,用于游戏充值提现等功能 2.以太坊测试网络切换为ropsten,该测试网络更容易获取测试eth,地址为:https://www.ropsten.io/#faucet 3.增加spring-boo

以太坊中文文档翻译-智能合约

本文原文链接 点击这里获取Etherscan API 中文文档(完整版) 完整内容排版更好,推荐读者前往阅读. 智能合约(Contracts) 智能合约相关的 API,接口的参数说明请参考Etherscan API 约定, 文档中不单独说明. Newly verified Contracts are synced to the API servers within 5 minutes or less 获取已经验证代码合约的ABI Verified Contract Source Codes ht

使用 Go-Ethereum 1.7.2搭建以太坊私有链

1.什么是Ethereum(以太坊) 以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约.开源的底层系统,以太坊从诞生到2017年5月,短短3年半时间,全球已有200多个以太坊应用诞生.以太坊是一个平台和一种编程语言,使开发人员能够建立和发布下一代分布式应用. 以太坊可以用来编程,分散,担保和交易任何事物:投票,域名,金融交易所,众筹,公司管理, 合同和大部分的协议,知识产权,还有得益于硬件集成的智能资产. 以太坊的白皮书:https://github.com/ethe

以太坊RPC机制与API实例

上一篇文章介绍了以太坊的基础知识,我们了解了web3.js的调用方式是通过以太坊RPC技术,本篇文章旨在研究如何开发.编译.运行与使用以太坊RPC接口. 关键字:以太坊,RPC,JSON-RPC,client,server,api,web3.js,api实例,Postman 以太坊JSON RPC API geth命令api相关 之前介绍过这些API都可以在geth console中调用,而在实际应用中,纯正完整的RPC的调用方式, geth --rpc --rpcapi "db,eth,net