问题标签 [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 回答
53 浏览

hyperledger-fabric - 链码查询交易未在 EC2 Insance 中执行

请找到图像第一次插入成功。我正在尝试在 Amazon-EC2 中查询我的交易,但即使我的插入交易在本地系统中运行良好,它也会返回 NULL 并且背书失败。

这是我得到的错误:

0 投票
0 回答
185 浏览

unit-testing - 使用 InvokeChaincode 进行单元测试链码

我的一个链代码合约中有一个函数,它调用 Golang SDK 的stub.InvokeChaincode函数,以便在继续当前调用的函数之前调用另一个链代码并获得它的响应。

当我尝试使用github.com/hyperledger/fabric/core/chaincode/shim包中的模拟存根对该函数进行单元测试时,由于调用外部辅助链代码函数而出现内存错误。

有没有办法对内置的功能进行单元测试?

0 投票
1 回答
678 浏览

transactions - contract.evaluateTransaction(fcn,args) 在查询背书节点时是否进行交易?

我正在使用 hyperledger fabric 1.4,并面临一个问题,在使用节点 sdk await contract.evaluateTransaction(fcn,args) 进行查询时,我收到此错误:-

我只是很困惑它会创建一个新的交易吗?我在这里读到https://fabric-sdk-node.github.io/release-1.4/module-fabric-network.Contract.html#evaluateTransaction__anchor请看一下,因为我不清楚。

0 投票
2 回答
380 浏览

hyperledger-fabric - 供应商链码具有错误的依赖关系

我有具有以下目录结构的链代码

由于我使用了超级账本cid包,我使用了 vendoring 并将vendor目录放在链代码旁边。现在对于 testablitiy,mycc.go仅包含以下main功能:

实现了链码的chaincode.go其余部分,包括带有,等的MyChaincode结构体。相关的导入与 中的相同:InitInvokemycc.go

在链码的实例化过程中,似乎有些依赖项混淆了,因为我收到了错误消息:

很明显,内部链码包中的导入似乎被错误地解决了,供应商目录在路径中出现了两次。

0 投票
3 回答
2240 浏览

hyperledger-fabric - 当我想实例化我的链码时出错

当我想实例化我的链码时出现以下错误错误:无法组装事务,错误提案响应不成功,错误代码 500,味精链码注册失败:容器退出 254

我检查了 docker 容器日志,发现了这个。ERRO 03c [mychannel][28f17b3d] 未能调用链代码名称:“lscc”,错误:容器以 254 退出 github.com/hyperledger/fabric/core/chaincode.(*RuntimeLauncher).Launch.func1 /opt/gopath/src /github.com/hyperledger/fabric/core/chaincode/runtime_launcher.go:63 runtime.goexit /opt/go/src/runtime/asm_amd64.s:1333 链码注册失败

0 投票
0 回答
980 浏览

hyperledger-fabric - Hyperledger Fabric 背书失败:txid 存在

基于此示例,我目前正在尝试使用 Docker Swarm 在 Hyperledger Fabric 网络上成功调用链代码。我的网络如下:

  • org1 与 peer0.org1.com + 1 CA org1 + CLI org1 + orderer.example.com 来自 PC1 上的 ordererOrg
  • org2 与 peer0.org2.com + PC2 上的 1 个 CA org2

看来我的网络正在工作,但是一旦在对等点上实例化链代码然后调用,该操作就不会传播。例如,我将数据插入分类帐,链码容器日志显示它们处理数据,用于调用链码的对等容器似乎也正确认可并模拟了查询。所有这些都使用 CLI 内部的手动命令。

peer0.org1.com 容器日志

然后对账本的(成功执行)查询显示账本状态没有改变。

但是,如果我使用官方示例存储库(invoke.js) 中 fabcar 示例中提供的节点 SDK 来调用相同的链代码操作,则会收到错误消息:

节点invoke.js的节点sdk错误

peer0.org1.com 节点调用后的容器日志

我尝试了一些在 SO 上找到的解决方案,例如:

  • 为每个组织设置锚点:已经完成
  • 设置CORE_PEER_LISTENADDRESS=org1.example.com:7051-> 对等容器失败。如果我将地址设置为 0.0.0.0:7051 容器再次启动但错误保持不变
  • 重新启动 Docker / 删除卷 / 重新下载图像:没有改变任何事情

进一步的要点:

正如我们在其日志中看到的那样,订购者似乎没有收到通知。

当我使用 node invoke.js 时,有时会出现此错误,当我再次启动该命令时该错误会消失。对等日志不显示错误。

节点invoke.js不一致错误

当我使用节点查询时,有时会收到以下错误:

节点query.js不一致错误

当我再次开始查询时,此错误通常会消失,但会不时弹出。当查询来自 CLIorg1 时,它永远不会发生。

一些可能有用的文件: configtx.yaml

加密配置.yaml

docker-compose-org1.yaml

docker-compose-org2.yaml

编辑:在尝试节点 insert.js 后添加了insert.js 文件和日志(见评论)

配置信息 HLF 1.4.1 ; 码头工人 18.09.7 ; 码头工人组成 1.23.2 ;节点 v8.16.0 ;npm 6.4.1;Ubuntu 18.04.2 LTS

为使问题范围广泛的众多错误道歉,但我认为它们都与背书问题有关。如果没有,请不要犹豫编辑/ ping我以缩小范围。

0 投票
1 回答
55 浏览

hyperledger-fabric - Hyperledger-Fabric 中 APP 之间的集成

我有 2 个应用程序(App1/App2)部署在同一个 Hyperledger-Fabric 网络上,并且都在不同的通道上运行。

我们有简单的要求从 App1 到 App2 共享一些数据。

所以问题是:如何以安全的方式使 App1 和 App2 之间的集成?

我们应该使用 Chaincode 还是 Rest API?

0 投票
2 回答
273 浏览

kubernetes - Kubernetes 中的 Hyperledger Fabric:无法实例化链码

大家好,我正在 kubernetes 中设置结构默认第一网络。但是当我实例化链码时,它给了我错误。请检查以下是我的同行日志。

在 Cli 上出现此错误:-

0 投票
1 回答
235 浏览

hyperledger-fabric - 重启 BYFN 网络后,chaincode 中更改的代码不费力?

我正在使用超级账本结构 V1.4 中提供的byfn 网络编写链代码应用程序。当我添加或删除一些代码时,我关闭了 byfn 网络并删除了 docker 容器,然后重新启动了 byfn 网络,使用与以前相同的名称和版本来安装和实例化代码。我发现如果使用与以前相同的版本,更改的代码并不费力。

我认为这与我预期的不一样,因为我关闭了网络并删除了容器。我使用 docker volume ls 和 inspect 命令,发现 net_peer0.org1.example.com 下的文件在 byfn 网络关闭时被清除,因此没有现有的以前版本的代码。我想知道为什么更改后的代码不费力,以及为什么在我升级到以前未使用过的新版本后它可以工作。

docker compose 文件和 byfn 教程提供的一样:

是 hyperledger fabric 1.4 的特性还是我的操作有问题?目前我通过在代码中添加输出并在 dev_peer.org.example.com 容器中查看它们进行调试,有没有更好的方法在超级账本中开发链代码?


更新

我在 cli 容器中的 peer0.org1 和 peer0.org2 中安装了名为 master 的链代码,版本为 1.0。我从 cli 容器中实例化了 peer0.org2 中的 master。我使用docker logs peerX.orgX.example.com命令来获取每个对等容器的日志。

日志如下:

0 投票
3 回答
1438 浏览

java - 未能调用链代码名称:“lscc”,错误:交易返回失败:调用未定义的合约方法

我正在尝试从 fabric-samples 安装 facar 的 java 链代码,但出现错误。

https://github.com/hyperledger/fabric-samples/tree/release-1.4/chaincode/fabcar/java

在链码的实例化过程中,我正在尝试并得到错误

有人可以帮助我吗,非常感谢并提前感谢。

我正在使用基本网络文件夹和下面的脚本来创建和安装网络,实例化和调用链代码。

下面给出的 docker logs peer0.org1.example.com 命令的输出

2019-08-06 09:54:26.150 UTC [endorser] SimulateProposal -> ERRO 043 [mychannel][e0746cf6] 未能调用链代码名称:“lscc”,错误:交易返回失败:调用未定义的合约方法

下面给出的 docker logs dev-peer0.org1.example.com-mycc-1.0 命令的输出

调用 org.hyperledger.fabric.shim.ChaincodeException:在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect 的 org.hyperledger.fabric.contract.ContractInterface.unknownTransaction(ContractInterface.java:76) 调用未定义的合约方法。 NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.hyperledger.fabric.contract .execution.impl.ContractExecutionService.executeRequest(ContractExecutionService.java:57) 在 org.hyperledger.fabric.contract.ContractRouter.processRequest(ContractRouter.java:87) 在 org.hyperledger.fabric.contract.ContractRouter。init(ContractRouter.java:103) 在 org.hyperledger.fabric.shim.impl.Handler.lambda$handleInit$0(Handler.java:280) 在 java.lang.Thread.run(Thread.java:748)

发送错误