【问题标题】:Hyperledger fabric add index to java chaincodeHyperledger Fabric 向 Java 链码添加索引
【发布时间】:2020-08-31 18:39:04
【问题描述】:

是否可以为用 java 编写的链代码添加索引?看教程和示例项目都只有 GO 或 JS 关于 java 的信息很少。如果我想为资产添加索引,我需要在 GO 中编写链码吗?

我到处都放置了 META-INF 文件夹,但仍然没有创建索引。我开始认为 depolyCC.sh 脚本在 java 的情况下无法处理它,或者需要在 gradle.build 文件中制作一些东西。可能是什么问题以及如何解决?

编辑

我通读了一些部署脚本。似乎对于 java,它在 META-INF 中寻找错误的位置。由于 META-INF 位于 chaingode 的根目录中,而 gradle 不位于 build 文件夹中,因此 packageChaincode 位于 build 目录中,并且永远不会看到 META-INF。感觉我需要以某种方式修改 gradle.build 以使打包程序看到 meta-inf

    elif [ "$CC_SRC_LANGUAGE" = "java" ]; then
  CC_RUNTIME_LANGUAGE=java

  infoln "Compiling Java code..."
  pushd $CC_SRC_PATH
  ./gradlew installDist
  popd
  successln "Finished compiling Java code"
  CC_SRC_PATH=$CC_SRC_PATH/build/install/$CC_NAME



packageChaincode() {
  ORG=$1
  setGlobals $ORG
  set -x
  peer lifecycle chaincode package ${CC_NAME}.tar.gz --path ${CC_SRC_PATH} --lang ${CC_RUNTIME_LANGUAGE} --label ${CC_NAME}_${CC_VERSION} >&log.txt
  res=$?
  { set +x; } 2>/dev/null
  cat log.txt
  verifyResult $res "Chaincode packaging on peer0.org${ORG} has failed"
  successln "Chaincode is packaged on peer0.org${ORG}"

}

【问题讨论】:

    标签: hyperledger-fabric hyperledger-chaincode


    【解决方案1】:

    找到了解决办法。基本上。 gralde installDist 将所有内容放入 build/install/basic 文件夹,但 META-INF 位于根级别。打包时不包含 META-INF 文件夹。我将复制命令添加到 gradle.build 中,以便它将 META-INF 文件夹复制到 build/install/basic 文件夹中。现在,在构建链码时,它包含了 build/install/basic 文件夹中的 META-INF 并创建了索引。这是 gradle build 的问题。

    【讨论】:

      【解决方案2】:

      为 Java 指定 CouchDB 索引与为任何其他链代码指定相同。确保相同的文件放在目录中的相同位置。

      META_INF/statedb/couchdb/indexes 在链码的根目录中。

      【讨论】:

      • 什么是“链码的根”?它与 src 文件夹在同一级别吗?我已经尝试将它移动到不同的地方,但是从 docker 控制台我从来没有找到说索引已经创建的行。另外据我了解,compositeKey 是必需的。但是添加它会破坏 getStateByRange("","")。
      • nvm 复合键,我现在明白它与索引无关。但还是。当我构建 java 链代码时,它不带 META-INF 并且没有创建索引。
      • 我正在尝试修改 hyperledger-fabric 资产转移基本示例。在chaincode-java 下,META-INF 未被读取。并且 src 下的任何 elvel 也不会被读取。甚至尝试将其放入资源文件夹中。这样就达到了将meta inf放入JAR的效果。但它永远不会被处理,因此不会创建索引。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多