Web3j客户端获取区块链数据示例

该代码示例展示了如何通过Web3j库连接到BinanceSmartChain的节点,获取最新的区块号并详细查询指定区块的信息。使用HttpService构建Web3j客户端,然后调用ethBlockNumber()获取区块号,ethGetBlockByNumber()获取区块详情,最后关闭客户端。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

依赖:

    <dependency>
      <groupId>org.web3j</groupId>
      <artifactId>core</artifactId>
      <version>5.0.0</version>
    </dependency>

代码:

package com.mathieu.blockchain;

import com.alibaba.fastjson.JSONObject;
import org.web3j.protocol.Web3j;
import org.web3j.protocol.core.DefaultBlockParameterNumber;
import org.web3j.protocol.core.methods.response.EthBlock;
import org.web3j.protocol.http.HttpService;

import java.io.IOException;
import java.math.BigInteger;

public class Web3jClientDemo {
  public static void main(String[] args) throws IOException {
    String url = "https://bsc-mainnet.nodereal.io/v1/64a9df0874fb4a93b9d0a3849de012d3";

    // 第二个参数表示是否返回原始response数据,原始response中的数据为16进制
    Web3j web3j = Web3j.build(new HttpService(url, false));
    // 获取最新block id
    BigInteger latestBlockNum = web3j.ethBlockNumber().send().getBlockNumber();
    System.out.println(latestBlockNum);

    // 查询指定block 信息(这里用刚刚获取的blockId示范)
    // 第二个参数表示是否返回区块中的交易数据
    EthBlock.Block block = web3j.ethGetBlockByNumber(new DefaultBlockParameterNumber(latestBlockNum), true)
        .send()
        .getBlock();

    System.out.println(JSONObject.toJSONString(block));

    // 关闭客户端
    web3j.shutdown();
  }
}

代码地址:

https://github.com/wangxianghu/learn-blockchain/blob/main/src/main/java/com/mathieu/blockchain/Web3jClientDemo.java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值