Android使用Insight开发比特币区块链浏览器

如果喜欢这篇文章,欢迎来star下我的安卓笔记哦。

接入BTC、BCH区块链的方式

1、自己搭建节点,终端去访问搭建好的节点获取数据;

2、使用第三方免费的节点Insight-api,省去创建节点的烦恼;

Insight

Insight是一款开源的web端区块链浏览器,支持BTC、BCH等区块链浏览器;并且对外公开了访问区块链的API

如果不想自己搭建节点,使用android开发一款区块链浏览器的话,使用这个官网提供的api就能实现简单的浏览器功能;

如何接入

BTC(比特币) 接入地址:https://insight.bitpay.com/apiBCH(比特币现金) 接入地址:https://bch-insight.bitpay.com/api

查看Insight-api的Readme内提供的接口说明文档,调用相应功能接口;

代码示例

下面均以BTC为例,因为两个区块链本来就是一样的

根据交易Hash获取某一个交易详情

请求方式Get

https://insight.bitpay.com/api/tx/0a37339bfe54474095e96b83ded45aa1f745beee4faf55039f25087858d5c2cf

//使用GET请求 调用地址  https://insight.bitpay.com/api/tx/交易hash
//返回结果

{
    "txid": "0a37339bfe54474095e96b83ded45aa1f745beee4faf55039f25087858d5c2cf",
    "version": 2,
    "locktime": 518049,
    "vin": [{
        "txid": "c9f0b642b566dc2076efe5dc685c3f7655eab05986f9cb6b992e984415489544",
        "vout": 113,
        "sequence": 4294967294,
        "n": 0,
        "scriptSig": {
            "hex": "483045022100ad25609e2a845542f4e47351ef9e9a7256bc40d0d20b617ce2ae083dcfc4a4cd0220238a871042376df11008dc5b5b7a45c09f0a6d29e4faa59e33f1efdb3238af450121038d588053a29779e3c2b10d9be59b9695c091d62268ed05cf5329a58f89373c2b",
            "asm": "3045022100ad25609e2a845542f4e47351ef9e9a7256bc40d0d20b617ce2ae083dcfc4a4cd0220238a871042376df11008dc5b5b7a45c09f0a6d29e4faa59e33f1efdb3238af45[ALL] 038d588053a29779e3c2b10d9be59b9695c091d62268ed05cf5329a58f89373c2b"
        },
        "addr": "1EruNcryxv71TTMvBJC2w7kYm8NPZ8Sapv",
        "valueSat": 5578915,
        "value": 0.05578915,
        "doubleSpentTxID": null
    }, {
        "txid": "ff9f16e26879a71ce1e3ec0c95805db56f30ca120bdfff55dbf9fb6172d26ee1",
        "vout": 1,
        "sequence": 4294967294,
        "n": 1,
        "scriptSig": {
            "hex": "483045022100d195a21eddeb747ae1ca573790b0fe7935f8a229d54dff32781816be63e0af8a0220528548bbea30cb84ceb613d85b8834c910a2aa4c14d2e9adddad055b4ebb9b0b01210338b140b65ac68df0f29dd730b1d50748465651784f3d43b60a740d53ef0ce3f8",
            "asm": "3045022100d195a21eddeb747ae1ca573790b0fe7935f8a229d54dff32781816be63e0af8a0220528548bbea30cb84ceb613d85b8834c910a2aa4c14d2e9adddad055b4ebb9b0b[ALL] 0338b140b65ac68df0f29dd730b1d50748465651784f3d43b60a740d53ef0ce3f8"
        },
        "addr": "1NpmsWtQArECreydtxgZn8n6eseT67PNyn",
        "valueSat": 5000000,
        "value": 0.05,
        "doubleSpentTxID": null
    }],
    "vout": [{
        "value": "0.03946339",
        "n": 0,
        "scriptPubKey": {
            "hex": "76a914bea093f139989dccf7725fb2794efe048ce14f7f88ac",
            "asm": "OP_DUP OP_HASH160 bea093f139989dccf7725fb2794efe048ce14f7f OP_EQUALVERIFY OP_CHECKSIG",
            "addresses": ["1JNwkbZQEtcVcoyeMMk9i9ZtxGk5yWHq2A"],
            "type": "pubkeyhash"
        },
        "spentTxId": "69e08bc96290b00b04d45e77c36912f981bdc3097084e0b5f49c1131ebd05e16",
        "spentIndex": 0,
        "spentHeight": 518051
    }, {
        "value": "0.06353576",
        "n": 1,
        "scriptPubKey": {
            "hex": "a914c56cbaf35f6723ffab76f0a7fc4f3f55beed07ce87",
            "asm": "OP_HASH160 c56cbaf35f6723ffab76f0a7fc4f3f55beed07ce OP_EQUAL",
            "addresses": ["3KguJ3eFC1z8gyiC6kEmDJrsC36BmEPfEm"],
            "type": "scripthash"
        },
        "spentTxId": null,
        "spentIndex": null,
        "spentHeight": null
    }],
    "blockhash": "0000000000000000003492ab1123c56fa769c8fe15005496b402a7d3360f6c0d",
    "blockheight": 518050,
    "confirmations": 1797,
    "time": 1523643926,
    "blocktime": 1523643926,
    "valueOut": 0.10299915,
    "size": 372,
    "valueIn": 0.10578915,
    "fees": 0.00279
}

//返回结果说明:
//txId其实就是交易Hash
//fees是旷工费
//valueIn和valueOut代表的这笔交易的输入总量或者输出总量
//vin数组和vout数组代表的是这些笔交易内的一些参与地址 从xxx转账到xxx

//其实比对数据有个很简单的小技巧,
//就是你可以找市面上已经做好的区块链浏览器,
//因为同一个hash返回的数据跟他们做的应该是一模一样的,
//因为使用的都是区块链内的数据;

我做的区块链软件示例 还在接入其他区块链比如莱特币、以太坊经典币ETC等,后续开源项目方便大家学习

Android使用Insight开发比特币区块链浏览器