美文网首页互联网科技区块链研习社区块链大学
Infura API 使用哈希查询以太坊区块信息 - 区块链数据

Infura API 使用哈希查询以太坊区块信息 - 区块链数据

作者: 极客红石 | 来源:发表于2019-05-21 11:00 被阅读18次

    简介:Infura 是以太坊和 IPFS 的 API 服务提供商。Infura 一开始只是为 ConsenSys 内部项目提供稳定可靠的 RPC 访问,后来随着以太坊生态发展,他们意识到自己可以起到更大作用,于是开始面向开发者提供公共 API 服务。本文整理使用 Infura API 通过哈希查询以太坊区块信息。

    Infura 是以太坊和 IPFS 的 API 服务提供商。Infura 一开始只是为 ConsenSys 内部项目提供稳定可靠的 RPC 访问,后来随着以太坊生态发展,他们意识到自己可以起到更大作用,于是开始面向开发者提供公共 API 服务。

    本文整理使用 Infura API 通过哈希查询以太坊区块信息。

    Infura API 官方文档:https://infura.io/docs

    使用 API 需要申请 Project ID,ID 是免费申请的,申请流程为“注册 - 登录 - 创建新项目”,不需要审核,几分钟就能搞定。

    Infura API 标准请求端口格式:

    https://<network>.infura.io/v3/{Your Project ID}

    本例中我们使用基于 HTTP 的以太坊主网 JSON-RPC 端口:

    https://mainnet.infura.io/v3/{Your Project ID}

    Infura API 使用哈希查询以太坊区块信息:

    请求参数:

    BLOCK HASH [必需] - 表示块的散列(32字节)的字符串
    SHOW TRANSACTION DETAILS FLAG [必需] - 如果设置为true,则返回完整的事务对象,如果为false则仅返回事务的哈希值。

    Curl 示例:

    ## JSON-RPC over HTTPS POST
    ## Replace YOUR-PROJECT-ID with a Project ID from your Infura Dashboard
    ## You can also replace mainnet with a different supported network
    curl https://mainnet.infura.io/v3/YOUR-PROJECT-ID \
        -X POST \
        -H "Content-Type: application/json" \
        -d '{"jsonrpc":"2.0","method":"eth_getBlockByHash","params": ["0xb3b20624f8f0f86eb50dd04688409e5cea4bd02d700bf6e79e9384d47d6a5a35",false],"id":1}'
    

    Node.js 示例:

    const fetch = require('node-fetch');
    
    fetch('https://mainnet.infura.io/v3/{Your Project ID}', {
        method: 'post',
        body: JSON.stringify({
            jsonrpc:2.0,
            method:'eth_getBlockByHash',
            params:["0xb3b20624f8f0f86eb50dd04688409e5cea4bd02d700bf6e79e9384d47d6a5a35",false],
            id:1
        })
    }).then(response => response.json()
        .then(data => console.log(data)));
    

    返回的 JSON 示例:

    { jsonrpc: '2.0',
      id: 1,
      result: 
       { difficulty: '0xbfabcdbd93dda',
         extraData: '0x737061726b706f6f6c2d636e2d6e6f64652d3132',
         gasLimit: '0x79f39e',
         gasUsed: '0x79ccd3',
         hash: '0xb3b20624f8f0f86eb50dd04688409e5cea4bd02d700bf6e79e9384d47d6a5a35',
         logsBloom: '0x4848112002a2020aaa0812180045840210020005281600c80104264300080008000491220144461026015300100000128005018401002090a824a4150015410020140400d808440106689b29d0280b1005200007480ca950b15b010908814e01911000054202a020b05880b914642a0000300003010044044082075290283516be82504082003008c4d8d14462a8800c2990c88002a030140180036c220205201860402001014040180002006860810ec0a1100a14144148408118608200060461821802c081000042d0810104a8004510020211c088200420822a082040e10104c00d010064004c122692020c408a1aa2348020445403814002c800888208b1',
         miner: '0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c',
         mixHash: '0x3d1fdd16f15aeab72e7db1013b9f034ee33641d92f71c0736beab4e67d34c7a7',
         nonce: '0x4db7a1c01d8a8072',
         number: '0x5bad55',
         parentHash: '0x61a8ad530a8a43e3583f8ec163f773ad370329b2375d66433eb82f005e1d6202',
         receiptsRoot: '0x5eced534b3d84d3d732ddbc714f5fd51d98a941b28182b6efe6df3a0fe90004b',
         sha3Uncles: '0x8a562e7634774d3e3a36698ac4915e37fc84a2cd0044cb84fa5d80263d2af4f6',
         size: '0x41c7',
         stateRoot: '0xf5208fffa2ba5a3f3a2f64ebd5ca3d098978bedd75f335f56b705d8715ee2305',
         timestamp: '0x5b541449',
         totalDifficulty: '0x12ac11391a2f3872fcd',
         transactions: 
          [ '0x8784d99762bccd03b2086eabccee0d77f14d05463281e121a62abfebcf0d2d5f',
            '0x311be6a9b58748717ac0f70eb801d29973661aaf1365960d159e4ec4f4aa2d7f',
            '0xe42b0256058b7cad8a14b136a0364acda0b4c36f5b02dea7e69bfd82cef252a2',
            '0x4eb05376055c6456ed883fc843bc43df1dcf739c321ba431d518aecd7f98ca11',
            '0x994dd9e72b212b7dc5fd0466ab75adf7d391cf4f206a65b7ad2a1fd032bb06d7',
            '0x241d89f7888fbcfadfd415ee967882fec6fdd67c07ca8a00f2ca4c910a84c7dd' ],
         transactionsRoot: '0xf98631e290e88f58a46b7032f025969039aa9b5696498efc76baf436fa69b262',
         uncles: 
          [ '0x824cce7c7c2ec6874b9fa9a9a898eb5f27cbaf3991dfa81084c3af60d1db618c' ] } }
    
    

    Infura API 服务思维导图:

    Infura API

    我们有一个区块链知识星球,做区块链前沿资料的归纳整理以方便大家检索查询使用,也是国内顶尖区块链技术社区,欢迎感兴趣的朋友加入。如果你对上面内容有疑问,也可以加入知识星球提问我:

    区块链社群 知识星球

    相关文章

      网友评论

        本文标题:Infura API 使用哈希查询以太坊区块信息 - 区块链数据

        本文链接:https://www.haomeiwen.com/subject/patwwqtx.html