使用Node.js和Web3.js查询以太坊区块链的相关信息是一项基础操作。这篇文章将介绍如何使用Node.js和Web3.js来获取当前区块高度、获取当前gas价格以及获取pending交易。
首先,我们需要安装Node.js和Web3.js。通过Node.js安装包和npm包管理器,我们可以轻松安装Node.js。Web3.js可以通过npm包管理器进行安装。
接下来,我们将创建一个Node.js应用程序并使用Web3.js库来连接到以太坊区块链。 我们将使用Infura API提供的公共节点来连接以太坊主网,该节点不需要进行身份验证过程。在Infura上注册并获取API密钥是免费的,这使我们可以使用Infura公共节点与以太坊交互。
使用以下命令创建一个新的Node.js应用程序:
mkdir myApp
cd myApp
npm init -y
安装Web3.js库:
npm install web3
接下来,打开一个文本编辑器,创建一个新文件,将其保存为“app.js”。
使用以下代码,我们将建立与Infura公共节点的连接,并使用Web3.js库从以太坊区块链中获取信息。
const Web3 = require('web3');
const infuraUrl = "https://mainnet.infura.io/v3/YOUR_PROJECT_ID";
const web3 = new Web3(new Web3.providers.HttpProvider(infuraUrl));
//获取当前块的高度
web3.eth.getBlockNumber((err, blockNumber) => {
if (err) {
console.log(err);
} else {
console.log("Current block number: " + blockNumber);
}
});
//获取当前gas价格
web3.eth.getGasPrice((err, gasPrice) => {
if (err) {
console.log(err);
} else {
console.log("Current gas price: " + gasPrice);
}
});
//获取所有未确认的交易
web3.eth.getPendingTransactions((err, pendingTxns) => {
if (err) {
console.log(err);
} else {
console.log("Pending transactions: " + pendingTxns.length);
}
});
在以上代码中,我们创建了一个新的Web3.js实例,并将其连接到Infura公共节点。 然后,我们通过调用web3.eth.getBlockNumber()来获取当前区块高度,并将其打印到控制台。同样,我们调用web3.eth.getGasPrice()以获取当前gas价格,并使用web3.eth.getPendingTransactions()获取所有未确认的交易。
最后,运行以下命令来启动应用程序:
node app.js
以上代码将输出当前区块高度、当前gas价格以及未确认交易数量。这些是基础的操作,使用Web3.js可以轻松实现与以太坊区块链的交互。