问题标签 [hyperledger-chaincode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
547 浏览

couchdb - 如何计算选择器过滤的记录数

我正在与 Go 签订智能合约,我想使用 Rich Query 从 CouchDB 中获取由某些选择器过滤的记录总数,例如:

{\"selector\":{\"doc_type\": \"person\"}}

它类似于:

select count(*) from tb where ...

作为 SQL 查询,但如何用 CouchDB 来做呢?

0 投票
2 回答
216 浏览

hyperledger-fabric - 在结构链码级别限制成员的调用访问

我试图在链代码级别动态限制成员的调用访问,并在教程 “stub.GetCallerCertificate”中找到了此方法,但出现错误。

错误:stub.GetCallerCertificate 未定义(类型 shim.ChaincodeStubInterface 没有字段或方法 GetCallerCertificate)

您能否告诉我在代码中犯了什么错误,如果可能的话,请提供一些工作示例来限制对链码级别成员的访问(仅用于调用事务,就像检查 msg.sender 一样)?

链码语言:Go

代码:

0 投票
1 回答
8820 浏览

go - 不能在字段值中使用 (type []map[string]interface {}) 作为 type []string

如何将 JSON 数组(字符串格式)存储在 []string(字符串数组的每个索引中的单个 JSON 字符串)中?

在这里我得到了错误

有没有其他方法可以将每个 json 字符串数据存储在字符串数组的每个索引中?

0 投票
1 回答
558 浏览

hyperledger-fabric - 在超级账本链码中提交交易时没有账本上下文错误

我正在使用超级账本链码将证书签名请求转换为自签名证书。但是在存储有关证书的信息时,交易没有成功,它没有给我任何分类帐上下文错误。

Nodejs 版本:8.9.4

我的链码函数是:

虽然事务这是我在对等 docker 日志中得到的内容:

HandleTransaction -> ERRO 09f [ddc81d1b] 无法处理 PUT_STATE。错误:没有分类帐上下文 runtime.goexit /opt/go/src/runtime/asm_amd64.s:1333 PUT_STATE 失败:事务 ID:ddc81d1bcb69eecd6c6bbcf85ba16b2168486d4b232ef3c03fe5bbc7bb2adea1 github.com/hyperledger/fabric/core/chaincode。运行时.goexit

任何帮助将非常感激。

0 投票
2 回答
970 浏览

hyperledger-fabric - 如何在 ClientIdentity 中将 getAttributeValue() 用于织物垫片?

我正在将 nodejs sdk 用于超级账本结构,在我的链代码中,我需要获取正在执行交易的身份 (sam) 的名称。

我使用了下面的代码

但上面的代码没有返回名称或任何其他属性。帮助将不胜感激!!!

0 投票
1 回答
178 浏览

bash - 如何为文件中的参数的链代码调用函数编写shell脚本?

我想调用链​​代码以使用 bash 脚本自动写入 10 条记录的数据,链代码的参数可以从 txt 文件中获取。但是,链代码不会从文件写入分类帐,它只写入值“line1”和“line2” ”。

为什么它不从 txt 文件中获取字符串值?

0 投票
1 回答
2988 浏览

hyperledger-fabric - 无法组装交易,错误提案响应不成功,错误代码 500,msg 链码注册失败:容器以 1 退出

  • 我已经创建了链码包

  • 然后我安装了 ccpack.out
    peer chaincode install ccpack.out

  • 当我实例化那个时候我得到了

错误:无法组装交易,错误提案响应不成功,错误代码 500,msg 链码注册失败:容器退出 1

命令行查询:

谁能告诉我打包的链码实例化过程

0 投票
1 回答
269 浏览

docker - 具有高输入发送率的 Hyperledger Fabric SimulateProposal 错误

您好,我创建了一个 Hyperledger Fabric 网络,当我一次提交几个交易提案时工作正常,但由于我必须进行一些基准测试,所以当我向具有高发送率的对等方发送多个提案时出现错误。该网络具有以下元素:

  • 3 组织
  • 3 个对等点(每个组织一个)
  • 1 订购者
  • 1 个频道
  • 1 使用 fabric-chaincode-shim 1.4.4 编译的 Java 链码
  • 链码的背书策略需要所有对等方的积极回复来验证交易

全部在一台机器上运行:

英特尔 i7-8750H CPU @ 2.20GHz

8 GB 内存 DDR4

带有内核 5.0.0-35-generic 的 Ubuntu 19.04

Docker 版本 19.03.4

码头工人撰写版本 1.21.0

peers 和 orderer 的 Docker 容器使用 1.4.3 版本的 Fabric 镜像,但我尝试了最新的,结果是一样的。

我使用 Hyperledger Caliper 以高发送率提交提案,其中一些被同行接受(数量因执行而异)但其他人因以下错误而失败:

Transaction[901d0036b2] 生命周期错误:

peer0.org1.com 的提案响应错误:事务返回失败:未能提交任务进行处理

我在这里报告了错误的对等日志片段:

正如消息 INFO 1447 所暗示的,对等方未能为提案创建新任务,可能是因为许多请求一起到达。这种考虑正确吗?有什么方法可以更改对等方可以创建的最大并行任务数?因为这种情况即使在 100 rps 的速率下也会发生,我认为我可以进一步推动性能。

解决方案

据此链接报道:

https://jira.hyperledger.org/browse/FAB-17110

当 Java 链码在 1.4.4 版本中使用 fabric-chaincode-shim 编译时,默认线程池设置得太低,使用链接中描述的解决方法我更改了池队列大小以减少高负载条件下丢弃的事务。

感谢 david_k 的回复。

0 投票
1 回答
444 浏览

java - 无法实例化此 java 链码

我正在尝试在“第一网络”示例中部署基于 Java 的链代码。该代码是使用适用于 VSCode 的 IBM Blockchain Platform 插件生成的。它在本地环境中工作(使用 VSCode 插件来安装、调用......),但是当我尝试在“first-network”示例中测试链代码时,它崩溃了。

当地环境:

  • peer0.org1.example.com
  • ca.org1.example.com
  • orderer.example.com

第一个网络环境:

  • cli
  • peer0.org2.example.com
  • peer1.org2.example.com
  • peer0.org1.example.com
  • peer1.org1.example.com
  • orderer.example.com
  • 沙发数据库2
  • 沙发数据库1
  • 沙发数据库3
  • 沙发数据库0
  • ca.example.com

我有两节课:

简单资产.java

SimpleAssetContract.java

我不知道我做得对不对。我正在遵循的步骤是:

我究竟做错了什么?我怎么能解决这个问题?

0 投票
5 回答
694 浏览

hyperledger-fabric - 无法在 orderer 配置中更新批处理超时?

我创建了一个结构网络,它运行良好。我想更新 oderer 配置,例如batchtimeout在运行网络中。我已按照教程在运行时更新通道配置。本教程适用于添加新组织。但是当我更新订购者配置时,我收到错误

错误:出现意外状态:BAD_REQUEST - 将配置更新应用到现有频道“mychannel”时出错:授权更新时出错:验证 DeltaSet 时出错:不满足 [Value] /Channel/Orderer/BatchTimeout 的策略:隐式策略评估失败 - 0 个子已满足策略,但此策略需要满足 1 个“管理员”子策略

我为所有组织管理员(如 org1 和 org2)的信封.pb 文件签名。请帮我解决这个问题。

注意:我为此使用了 fabric-samples first-network。

编辑:我已经用 org1 和 org2 签署了 pb 文件。我还通过导出以下变量用 orderer 签署了它

日志

更新环境