问题标签 [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 投票
0 回答
236 浏览

hyperledger-fabric - 链码实例化错误,日志显示 npm err!缺少脚本:启动,即使存在带有启动脚本的 package.json

我正在尝试在我设置的超级账本结构网络中安装和实例化链代码。我已经在 node.js 中编写了链代码,它可以完美地从 cli 容器的 bash 中安装。但是当我尝试实例化链码时,它会在等待 5 分钟后给出错误。当我检查几秒钟后退出的短寿命链代码容器的日志时,我只看到一行:npm ERR!缺少脚本:开始。

当我第一次遇到这个错误时,我没有在 package.json 中包含启动脚本并立即意识到我的错误。我在 package.json 中包含了启动脚本,但在多次重试后仍然出现此错误。我已经多次重启网络并修剪了 docker 卷。

为什么会出现此错误以及如何解决?

这是安装和实例化(有错误):

0 投票
1 回答
128 浏览

hyperledger-fabric - Hyperledger Fabric Go 链码 - 在链码代码中签名

我正在使用 Golang Chaincode 开发 Hyperledger Fabric,我有以下问题。

是否可以让每个背书人在链码的代码中签名?

例如:我有一个客户提议一笔交易,我不仅希望交易获得批准(并由背书人签名,以便客户将其发送到排序服务),而且还希望在签名的代码中包含一个字符串,以便客户可以接收到这个字符串签名并将其用于其他目的。这可能吗?

谢谢

0 投票
1 回答
135 浏览

hyperledger-fabric - 如何在 Hyperledger Fabric 链码中获取交易提交者

目前,我正在使用 Hyperledger Fabric 链码,并尝试至少获取有关调用/查询链码的当前用户的任何信息。我该如何解决这个问题?

0 投票
1 回答
1073 浏览

go - GetStateByPartialCompositeKey 通过特定键不起作用

目前我正在使用 Hyperledger 链码,我对“GetStateByPartialCompositeKey”方法有疑问。它们的索引由 3 个部分组成(key1~key2~key3)。如果我尝试 GetStateByPartialCompositeKey(index, key1) ,它会完美运行。但是,如果我尝试搜索另一个键,例如 GetStateByPartialCompositeKey(index, key3),则不会返回任何内容。虽然密钥实际上被保存了。我该如何解决这个问题?

0 投票
0 回答
175 浏览

hyperledger-fabric - 根据 MagnetoCorp 示例实例化合约的问题

每当我尝试根据 MagnetoCorp 示例实例化合约时,都会收到以下错误。在终端:

$ docker exec cliMagnetoCorp peer chaincode instantiate -n papercontract -v 0 -l node -c '{"Args":["org.papernet.commercialpaper:instantiate"]}' -C mychannel -P "AND ('Org1MSP.member' )"

2019-05-03 06:00:40.396 UTC [chaincodeCmd] InitCmdFactory -> INFO 001 检索到的通道 (mychannel) 订购者端点:orderer.example.com:7050 2019-05-03 06:00:40.400 UTC [chaincodeCmd] checkChaincodeCmdParams - > INFO 002 使用默认 escc 2019-05-03 06:00:40.400 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 003 使用默认 vscc 错误:无法组装交易,错误提案响应不成功,错误代码 500,msg 链码注册失败: 容器以 1 退出

我已经尝试将 node js 更新到 10.x 版本,但没有帮助。知道我该怎么做吗?

0 投票
2 回答
734 浏览

hyperledger-fabric - Hyperledger Fabric:实现链码级访问控制

我想对某些方法实现链码级别的访问控制。因此,例如,我希望调用的链码方法只有在执行请求的用户具有与世界状态中请求的资产字段匹配的特定身份时才能执行。

https://hyperledger-fabric.readthedocs.io/en/release-1.4/chaincode4ade.html,官方文档说:

“Chaincode 可以通过调用 GetCreator() 函数将客户端(提交者)证书用于访问控制决策。此外,Go shim 提供了扩展 API,可从提交者的证书中提取客户端身份,可用于访问控制决策,无论是基于在客户身份本身、组织身份或客户身份属性上。

例如,表示为键/值的资产可能包括客户端的身份作为值的一部分(例如作为指示资产所有者的 JSON 属性),并且只有该客户端可能被授权对键/值进行更新在将来。客户端身份库扩展 API 可在链代码中使用来检索此提交者信息,以做出此类访问控制决策。”

这完美地反映了我的情况:我的资产包含一个字段所有者,我希望只有作为该资产所有者的用户才能对资产执行删除方法,即如果他的身份 - 用户名 - 与所有者字段匹配。

我的问题是官方文档中提供的解决方案描述了使用“客户端身份(cid)库”的可能性(https://github.com/hyperledger/fabric/tree/master/core/chaincode/shim/ext/ cid ) 从证书中提取用户信息。但在我的情况下,我有 Java 和 Javascript 的链码,并且(我认为)我只能使用 GetCreator() 方法,它将用户证书作为字节数组作为输出。

如何从证书中提取我需要的信息?可能吗?是否可以使用我的 Java 和 Javascript 链代码中的 CID 库?

0 投票
1 回答
117 浏览

javascript - 错误:在超级账本作曲家中需要资源或概念

当我尝试在 composer-playground 中执行事务时,出现错误:预期资源或概念,错误消息显示“预期资源或概念”。事务名称是“HireEmployee”。

/*这是我的 .cto 文件:*/

/** 链码文件 * Hire an Employee * @param {org.example.basic.HireEmployee} 雇佣 - 雇佣 * @transaction */

0 投票
1 回答
199 浏览

hyperledger-fabric - 如何在节点链码中使用 stub.getTransient()

我有一个用 node.js 编写的链码,我正在尝试读取瞬态值,但它无法正常工作:

我的代码:

value是不正确的。出现一些随机字符。

0 投票
1 回答
33 浏览

hyperledger-fabric - 跟踪谁使用数字签名做了什么

目前我正在使用 Hyperledger Fabric。我想跟踪提交交易的信息。有没有人可以帮助我解决这个问题?谁能告诉我该怎么做?

0 投票
1 回答
307 浏览

hyperledger-fabric - 如何从超级账本结构链码中以字符特定字符开头的账本中查询所有状态?

我想查询保存在区块链中的所有值,其键以字符“O”开头并检索它们的列表。