区块广播:
· 朝鲜Lazarus黑客集团采用PowerShell新方法进行加密攻击
· 经济学家Saifedean Ammous:比特币是有史以来增长最快的资产
· 巴比特早班车 | 隔夜要闻一览
· CME首席执行官:真正推动比特币发展的是实际用例
· 某交易者在QuadrigaCX关闭前几小时存入7.5万美元
· V神:未来将会有更多代表资产的ERC20代币发行
· Stellar加入Coinbase Earn学习平台,提供价值1亿美元的学习基金
· CabbageTech运营商因涉嫌加密诈骗被美国FBI逮捕
· 江卓尔:都在吸筹屯币,没钱吸筹的直接拿用户的币来屯了
· 比特币核心开发者Peter Todd表示:比特币如果不改变上限将可能消亡
· 好时巧克力等公司陆续加入IBM支持的区块链联盟AdLedger
· V神:我是一名坚定的隐私倡导者,应摒弃早期密码朋克的个人主义
· 韩国互联网巨头Kakao与票务初创公司FESTY签署战略合作关系
· BCH网络将于5月15日进行升级,届时将重新配置cleanstack规则
· 酒业公司William Grant&Sons将区块链技术用于威士忌溯源
· 谷歌新增加密货币检索界面
· 直布罗陀足球联队仍未向球员支付加密货币
· 徐明星:区块链才是真正的金融科技,稳定币是区块链和实体经济的链接
· 深安未来董事长阮晓迅:区块链技术的特性天然与公证业务契合
· 火币Prime第二轮抢购结束,4.5亿枚TOP于5秒内抢光
· 朝鲜Lazarus黑客集团采用PowerShell新方法进行加密攻击
· 经济学家Saifedean Ammous:比特币是有史以来增长最快的资产
· 巴比特早班车 | 隔夜要闻一览
· CME首席执行官:真正推动比特币发展的是实际用例
· 某交易者在QuadrigaCX关闭前几小时存入7.5万美元
· V神:未来将会有更多代表资产的ERC20代币发行
· Stellar加入Coinbase Earn学习平台,提供价值1亿美元的学习基金
· CabbageTech运营商因涉嫌加密诈骗被美国FBI逮捕
· 江卓尔:都在吸筹屯币,没钱吸筹的直接拿用户的币来屯了
· 比特币核心开发者Peter Todd表示:比特币如果不改变上限将可能消亡
· 好时巧克力等公司陆续加入IBM支持的区块链联盟AdLedger
· V神:我是一名坚定的隐私倡导者,应摒弃早期密码朋克的个人主义
· 韩国互联网巨头Kakao与票务初创公司FESTY签署战略合作关系
· BCH网络将于5月15日进行升级,届时将重新配置cleanstack规则
· 酒业公司William Grant&Sons将区块链技术用于威士忌溯源
· 谷歌新增加密货币检索界面
· 直布罗陀足球联队仍未向球员支付加密货币
· 徐明星:区块链才是真正的金融科技,稳定币是区块链和实体经济的链接
· 深安未来董事长阮晓迅:区块链技术的特性天然与公证业务契合
· 火币Prime第二轮抢购结束,4.5亿枚TOP于5秒内抢光
· 朝鲜Lazarus黑客集团采用PowerShell新方法进行加密攻击
· 经济学家Saifedean Ammous:比特币是有史以来增长最快的资产
· 巴比特早班车 | 隔夜要闻一览
· CME首席执行官:真正推动比特币发展的是实际用例
· 某交易者在QuadrigaCX关闭前几小时存入7.5万美元
· V神:未来将会有更多代表资产的ERC20代币发行
· Stellar加入Coinbase Earn学习平台,提供价值1亿美元的学习基金
· CabbageTech运营商因涉嫌加密诈骗被美国FBI逮捕
· 江卓尔:都在吸筹屯币,没钱吸筹的直接拿用户的币来屯了
· 比特币核心开发者Peter Todd表示:比特币如果不改变上限将可能消亡
· 好时巧克力等公司陆续加入IBM支持的区块链联盟AdLedger
· V神:我是一名坚定的隐私倡导者,应摒弃早期密码朋克的个人主义
· 韩国互联网巨头Kakao与票务初创公司FESTY签署战略合作关系
· BCH网络将于5月15日进行升级,届时将重新配置cleanstack规则
· 酒业公司William Grant&Sons将区块链技术用于威士忌溯源
· 谷歌新增加密货币检索界面
· 直布罗陀足球联队仍未向球员支付加密货币
· 徐明星:区块链才是真正的金融科技,稳定币是区块链和实体经济的链接
· 深安未来董事长阮晓迅:区块链技术的特性天然与公证业务契合
· 火币Prime第二轮抢购结束,4.5亿枚TOP于5秒内抢光

Hyperledger区块数据的访问

fen_xiao副船长发布在 超级账本/Hyperledger
 2459  0

简介

本文介绍了访问Hyperledger区块数据的几种方法。

REST API

Hyperledger提供了多个REST API (https://hyperledger-fabric.readthedocs.io/en/latest/API/CoreAPI/#rest-api) 用于访问Hyperledger区块数据。

示例1: 获取区块链长度
请求

http://192.168.99.100:7050/chain/

响应

{    "height": 5,    "currentBlockHash": "9UIs99F9Qq0RvwOzCEDG0SHvBrdoOHy0rexOICJ56aiIQbnszEO9y2QpjbMnrzIp3ehGh6W8FWY8eqbBFqaOVA==",    "previousBlockHash": "AABHooEnVMuv4JO4roHqgcNAOf3mcUqOV6sTrCWeuPcKf/ji4tYXJ5cONgcQTwoIowf1wAqhZObFmjkT1QLmsQ=="}

示例2: 获取区块数据
请求

http://192.168.99.100:7050/chain/blocks/4

响应

{    "transactions": [
        {            "type": 2,            "chaincodeID": "EgRteWNj",            "payload": "CigIARIGEgRteWNjGhwKBmludm9rZQoHdGVzdEtleQoJdGVzdFZhbHVl",            "txid": "4a05fbd2-f17d-46eb-abec-a6218b404117",            "timestamp": {                "seconds": 1476704491,                "nanos": 740300402
            },            "nonce": "jYFNo67ks3JhWh3PwxCJG0qK0rnBojwe",            "cert": "MIICQTCCAeegAwIBAgIQMQ6RNvEkQKqWqqMx6vVJujAKBggqhkjOPQQDAzAxMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLSHlwZXJsZWRnZXIxDDAKBgNVBAMTA3RjYTAeFw0xNjEwMDUxMTE5MjdaFw0xNzAxMDMxMTE5MjdaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKEwtIeXBlcmxlZGdlcjEgMB4GA1UEAxMXVHJhbnNhY3Rpb24gQ2VydGlmaWNhdGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASzqDkDtyveHNTcz0tD73PV5xvXFU0JpDxVvN8LEAAKtnP+TfkPT42EmERcSP+oOlzpfjBD8iGaOq4wQGbPckWKo4HMMIHJMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMA0GA1UdDgQGBAQBAgMEMA8GA1UdIwQIMAaABAECAwQwTQYGKgMEBQYHAQH/BECqjFoEQcSb6N1SGRE8uc03WMz4ccjSFfplLUrSXxdUUA81LciUswvKeDz8m3abk8z/pVc06nNFAcRWXkHfqzEJMDoGBioDBAUGCAQwN90tistCDXKOkUCQUjzKbZsrEy2A/iOgGtiHru7yVoIawPIeHfnfdfP+LEtCgMrkMAoGCCqGSM49BAMDA0gAMEUCIQC5ClRb0pPCdL+peOq/Cc6Z+Wy+KTq0mIB6FAEvy5gMcwIgFI1HWhlGGGjeqLTrLvcIeWamck2ISYImcIBZIfE+xlI=",            "signature": "MEUCIHRnWCQmt+4QoiY01aiDU+0567xUgaiEZ6zZr+gDg8D2AiEA+OgCGGxWbQTkmC0IB4nJoiU65Dv/pR27XDirhtXgStU="
        }
    ],    "stateHash": "cxUZAjaQar85ZGvgt4z3soRMpQjJpDrpLBkFbwqQSVb1rebXcMT1kMzNA45MX9ybB/sILXCslN1C9yprmhAVng==",    "previousBlockHash": "9UIs99F9Qq0RvwOzCEDG0SHvBrdoOHy0rexOICJ56aiIQbnszEO9y2QpjbMnrzIp3ehGh6W8FWY8eqbBFqaOVA==",    "nonHashData": {        "localLedgerCommitTimestamp": {            "seconds": 1476704492,            "nanos": 779081508
        },        "chaincodeEvents": [
            {}
        ]
    }

Java Client API

Hyperledger Java Client API (https://github.com/hyperledger/fabric-api)提供较为底层的接口来访问Hyperledger区块数据. 以下示例代码显示如何解析Invocation类的区块中的payload。

private void decodeChaincodeInvocationSpec() {    try {
        String base64String = "CigIARIGEgRteWNjGhwKBmludm9rZQoHdGVzdEtleQoJdGVzdFZhbHVl";        byte[] decoded = javax.xml.bind.DatatypeConverter.parseBase64Binary(base64String);

        Chaincode.ChaincodeInvocationSpec invocationSpec =
                Chaincode.ChaincodeInvocationSpec.parseFrom(decoded);

        Map fields = invocationSpec.getAllFields();        for (Descriptors.FieldDescriptor key : fields.keySet()) {
            Chaincode.ChaincodeSpec value = (Chaincode.ChaincodeSpec) fields.get(key);
            System.out.println("key:" + key);
            System.out.println("value:" + value);
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

相应的输出为:

key:protos.ChaincodeInvocationSpec.chaincodeSpecvalue:type: GOLANGchaincodeID {  name: "mycc"}ctorMsg {  args: "invoke"
  args: "testKey"
  args: "testValue"}

##总结

本文介绍了使用Hyperledger REST和Java Client API访问Hyperledger区块数据的方法。

原文链接:http://t.cn/E28lZ1I

本主题由 Linkea 于 2019-03-16 15:33:56 移动
  • 正序
  • 最新
帖子暂无回复,回帖抢沙发
登录 账号发表你的看法,还没有账号?立即免费 注册
推荐节点 更多
热帖榜 本周最热本月最热