在Hyperledger Fabric中使用putState不能在ouchdb中反映该值

时间:2019-04-03 05:03:36

标签: node.js couchdb hyperledger-fabric hyperledger

我正在尝试使用NodeJS中的fabric-shim构建一个chaincode应用程序。当我使用putState(key,Buffer.from(value))时,该值不反映在CouchDB中,而key和其他参数(存根等)可以在CouchDB中看到。 有什么理由无法奏效?

1 个答案:

答案 0 :(得分:0)

是的,如果您查看CouchDB文档,它将不会显示相应键的值。但是您会看到文档的附件实际上具有字节数组或键的缓冲区值。

请检查下图以查看示例附件,如果单击该附件将以二进制文件的形式下载。

enter image description here

如果要获取确切值,请使用以下脚本获取数据库转储

https://github.com/danielebailo/couchdb-dump

因此,在数据库转储后,您将看到带有数据的JSON对象,它是其中的关键之一,如下所示

{
  "_id": <<id>>,
  "_rev": <<rev>>,
  "~version": <<version>>,
  "_attachments": {
    "valueBytes": {
      "content_type": "application/octet-stream",
      "revpos": 1,
      "digest": <<key>>,
      "data": "AAAHAQA="  ==> <<value in Base64 format>>
    }
  }
}

使用Base64解码器,您可以解码将以字节数组或缓冲区形式返回值的值。然后,您可以将字节数组或缓冲区转换为相应的对象。