Hyperledger Fabric私有数据收集

时间:2018-07-20 05:27:48

标签: hyperledger-fabric blockchain hyperledger

我正在将BYFN(默认)作为网络运行,这是我的chaincode用于测试目的 Chaincode link我的收藏集配置为Config File Link。 现在,让我解释一下这个问题。当我从授权对等方查询时,ORG1的任何对等方都会给我正确结果

{
  "public_data": {
    "docType": "car",
    "name": "Honda Amaze",
    "color": "blue",
    "size": 35,
    "owner": "tom"
  },
  "privatedata": {
    "docType": "car",
    "name": "Honda Amaze",
    "owner_address": "Vill anyari url alinagar Moradabad"
  }
}

但是,当我从未经授权的对等方查询时,意味着组织2的任何对等方都会发出错误消息,表明我们无法访问数据。我得到的回应是

{
  "public_data": {
    "docType": "car",
    "name": "Honda Amaze",
    "color": "blue",
    "size": 35,
    "owner": "tom"
  },
  "privatedata": {
    "docType": "",
    "name": "",
    "owner_address": ""
  }
}

您可以看到不存在私有数据。 如果我运行marbels私人数据,这会给我来自未经授权的同伴的错误

  

{“错误”:“无法获取大理石1的私人详细信息:GET_STATE失败:   交易编号:   b04adebbf165ddc90b4ab897171e1daa7d360079ac18e65fa15d84ddfebfae90:   与私有哈希匹配的私有数据不可用。上市   哈希版本=&version.Height {BlockNum:0x6,TxNum:0x0},私有数据   版本=(* version.Height)(nil)“}”

没有Marbels私有示例,它们不是从简单分类帐中获取数据,但在我的chaincode中,它们是从普通分类帐和私有数据中获取数据。

有很多帮助。

谢谢。

1 个答案:

答案 0 :(得分:2)

我希望区别只是与链码中的错误处理代码有关。您需要处理GetPrivateData()返回的错误。