问题标签 [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.
hyperledger-fabric - 对等点崩溃:运行时错误:无效的内存地址或 nil 指针取消引用
很长一段时间后,每当我遇到以下错误 hf 版本时,我的同行都会崩溃:1.4.2 go version go1.12.6 linux/amd64 ubuntu TLS 16.04
对等日志
链码日志
我很长一段时间都面临这个错误,但无法调试它。
java - Hyperledger Fabric:如何在 Java 链码中返回错误,以便返回到 fabrik-java-sdk 客户端
假设我的 Java 链代码(在 Fabric 1.4.4 上运行)想要抛出异常以表明要创建的新资产已经存在。我抛出一个带有问题或错误的 RunTimeException(在这种情况下,“合同 LL00001 已注册”),它记录在执行事务的对等节点中:
但是,在堆栈跟踪之后,我看到对等节点将其作为 500 错误返回,而没有包含我的错误描述或对 java 中的错误异常的任何引用(这是有道理的,因为该错误与语言无关):
记录在我的客户端 java 应用程序(使用 fabrik-java-sdk)中:
所以我只知道链码有问题,但我不知道问题是什么。如何获取错误类型和描述,以便向用户显示问题?现在我需要去对等节点检查那里的日志以查看问题所在。
注意:我在我的链码类中扩展了新的 org.hyperledger.fabric.contract.ContractInterface。
更新:对等节点记录错误异常(org.hyperledger.fabric.shim.ChaincodeException),并且似乎在 500 响应中正确返回错误消息(“未找到文档”),如日志所示,但此消息没有获取 Java SDK
编辑:这似乎是 Java SDK 中的一个错误。我在 Fabric 的 JIRA 中创建了一个 JIRA 问题: https ://jira.hyperledger.org/browse/FABJ-508
java - getStateByRange() 在 Hyperledger Fabric Java SDK 中返回空迭代器
我正在尝试获取分类帐中的所有条目(Fabric 1.4.4,使用 Java Chaincode):
但我总是得到一个空的迭代器。这是获取所有条目的正确方法吗?
(至少一种获取所有密钥的方法对我有用,因为我可以一个一个地获取状态,但为此我需要所有密钥)
hyperledger-fabric - Hyperledger Fabric 调用链代码
我想使用 ctx.stub.invokeChaincode("被调用的链代码名称",["被调用的链代码的函数(事务)的名称",args])在链代码中调用另一个链代码,并且我的两个链代码都已实例化相同的频道,但我收到以下错误:
调用链代码 Invoke() 返回错误响应 [错误:您要求调用不存在的函数:Confirm.confirmData]。将错误消息发送回对等方。
我不确定定义列表链代码参数是否有误。
hyperledger-fabric - 如何获取历史状态的传递给事务的参数
我正在尝试获取负责新状态的操作。简而言之,我想获取传递给调用方法的函数名。当我查看历史状态时,我能够获取其值、时间戳、事务 ID 等,但不能获取负责该事务的参数。
我知道我们可以从区块历史中获取参数,但我需要它来处理状态。
有没有办法从链码方面实现这一点?
hyperledger-fabric - Hyperledger Fabric 链码升级
我已经设置了具有 2 个组织的超级账本结构网络,并在对等方上安装了 v1.1 版本的 fabcar 链代码,并且我正在保留区块链的存储。
接下来我在 fabcar 上添加了更多方法,尝试将现有的 fabcar 升级到 v1.2,但我遇到了错误。
错误:无法组装交易,错误提案响应不成功,错误代码 500,msg 无法获取链码的包(fabcar:1.2)
我正在使用以下命令来升级链码
hyperledger-fabric - hyperledger-fabric 可以在不进入docker容器的情况下获取peer节点运行状态吗?
hyperledger-fabric 可以在不进入docker容器的情况下获取peer节点运行状态吗?如果是这样,我应该如何获得它?
hyperledger - 如何更改 Hyperledger 锯齿供应链 API(FishNet 示例)中的共识算法?
我正在尝试在 FishNet 示例中更改我的共识算法。
在/sawtooth-supply-chain-master/fish_client/public/dist/bundle.js
文件中我发现了这个:
consensus":{"type":"bytes","id":5}
有谁知道锯齿中的共识ID映射是什么?
默认情况下它是开发模式。但我想改变共识类型。这可能吗 ?
在 /sawtooth-supply-chain-master/docker/compose/supply-chain-default.yaml
入口点:| bash -c " if [ ! -f /etc/sawtooth/keys/validator.priv ]; 然后 sawadm keygen && 锯齿密钥生成 my_key && sawset genesis -k /root/.sawtooth/keys/my_key.priv && sawadm genesis config-genesis .batch fi; 锯齿验证器 -v \ --endpoint tcp://validator:8800 \ --bind 组件:tcp://eth0:4004 \ --bind 网络:tcp://eth0:8800 \ --bind共识:tcp://eth0:5050 "
devmode-engine:图像:hyperledger/sawtooth-devmode-engine-rust:1.1 容器名称:sawtooth-devmode-engine-rust-defaultdepends_on:-验证器入口点:devmode-engine-rust -C tcp://validator:5050
hyperledger-fabric - 除了fabric-shim和fabric-contract-api之外,我们可以在链码中使用npm模块吗?
我们可以在链码中使用除 fabric-shim 和 fabric-contract-api 之外的 NPM 模块吗?
如果是这样,在实例化时如何安装包?
hyperledger-fabric - 超级账本——合约实例化问题
我正在尝试在商业票据教程中实例化 java 联系人,并在监视器中出现以下错误。
安装链码时没有问题。
命令运行:docker exec cliMagnetoCorp peer chaincode instantiate -n papercontract -v 0 -l java -c '{"Args":["org.papernet.commercialpaper:instantiate"]}' -C mychannel -P "AND ('Org1MSP.成员')”
错误:
peer0.org1.example.com|2019-12-19 00:10:10.220 UTC [endorser] SimulateProposal -> ERRO 045 [mychannel][7cd11866] 未能调用链代码名称:“lscc”,错误:容器以 1 退出
请帮助我应该做些什么来解决错误。