问题标签 [hyperledger-fabric-sdk-java]

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 回答
160 浏览

hyperledger-fabric - 如何在没有键值存储或钱包的情况下强制设置用户上下文?

出于测试目的,我手头已经有公钥 + 私钥 + 证书(可以硬编码),我可以通过连接配置文件设置 CA,但是如何在不设置文件系统密钥值的情况下调用事务商店/钱包?

0 投票
0 回答
262 浏览

hyperledger-fabric - 如何检查链码是否已实例化

我的应用程序使用 fabric-sdk-java 将新的对等点加入现有的结构网络。加入对等点时,我想在对等点上安装链代码并实例化它(以防它没有在通道上实例化)。

如果在通道上实例化了特定的链码,有什么方法可以使用 sdk 检查?

0 投票
2 回答
393 浏览

hyperledger-fabric - 在超级账本结构中散布私人数据的问题

我的网络结构非常简单,有两个对等组织和一个订购者。

  • orderer.org0
  • peer0.org1
  • peer1.org1
  • peer0.org2

私有数据集合定义如下:

因此,它应该只允许 org1 成员允许使用私有数据。

实际上,如果我在 org1 的对等点上运行一些与 PrivateData 相关的操作,会在对等点日志中引发以下错误:

为什么会这样?据我了解, requiredPeerCount: 1 应该成立,因为我在 org0 中有两个同行。

PS 内部八卦已配置,日志中可以看到以下消息

0 投票
1 回答
535 浏览

hyperledger-fabric - 来自 Hyperledger Fabric JAVA SDK 的多个组织的认可

我正在使用Hyperledger Fabric v1.4 first-network 示例来设置具有两个组织和四个对等点的区块链网络。是使用设置运行的 docker 进程的屏幕截图。

第一个网络示例使用背书策略,AND ('Org1MSP.peer','Org2MSP.peer')默认链码为chaincode_example02

为了与网络通信,我使用的是 JAVA SDK v1.4.1。我能够注册创建 HF 客户端和频道等,还能够创建用户和查询(读取)区块链而没有任何问题。

我面临的问题是尝试使用“调用”功能更新区块链时。

这是我在 JAVA 端看到的堆栈跟踪

就是每个对等节点中出现的内容

在调查中,我发现这个问题是有效的,因为背书期望交易由每个组织的至少一个同行签署。这就是我初始化频道的方式。

现在我意识到,如果只是在通道中添加来自 org2 的另一个对等点,问题就会得到解决,即,只需在初始化通道之前添加下面的代码

有了这个,我有几个问题

  1. 如果仅通过在通道初始化中添加所需的背书节点来实现交易的有效性,那么执行背书规则的意义何在?如果 org1 以某种方式设法获取 org2 的对等详细信息,那么 org1 是否可以在未经 org2 同意的情况下提交事务?
  2. 设置向 HFClient 提交交易的用户有什么意义?在交易过程中,用户上下文及其注册在哪里以及如何由结构验证?
  3. 理想情况下,我希望如果我有AND ('Org1MSP.peer','Org2MSP.peer')背书策略并且有一个 UI 来提交交易,在 HFClient 中设置的用户上下文应该具有“Org1MSP.peer”签名,并且 org2 中具有“Org2MSP.peer”的用户应该得到通知提交的交易。仅当具有签名“Org2MSP.peer”的任何用户签名时才应提交事务。无论我使用多少对等方来初始化通道,所有这些都应该发生。我的期望有效吗?如果是这样如何用fabric JAVA SDK实现它?
0 投票
1 回答
192 浏览

dependencies - Gradle 不会下载 fabric-sdk-java 的依赖项

我是 Gradle 的新手,正在尝试在超账本结构上集成和运行我的 java 应用程序。

我添加了此代码来下载依赖项。

刷新build.gradle文件成功执行,但不下载任何内容。请让我知道什么是解决方案。谢谢

0 投票
1 回答
577 浏览

java - 使用 Java SDK 的 Hyperledger Fabric 背书策略错误

我正在研究 golang 版本的 fabcar 智能合约,同时寻求实现一个 Java-SDK API,它可以注册管理员、注册用户并基于https://github.com/hyperledger/fabric-samples/执行查询更新值操作树/主/fabcar/java

我已经成功建立了一个 3 org-9 peers 区块链网络,在 peers 上安装、实例化和调用链码。

但是,当我正在实施相关 API 时,我只能成功查询区块链数据库,同时获得“无法满足链码 mycc 的背书政策”

请在下面找到相对错误的屏幕截图

在此处输入图像描述

背书政策是“OR ('Org1MSP.member','Org2MSP.member', 'Org3MSP.member')”。

注册用户是否应该以某种方式获得 Org1/Org2/Org3.member 属性?任何线索将不胜感激!

0 投票
0 回答
275 浏览

hyperledger-fabric - Hyperledger Fabric 的 Idemix 使用

我想试试 Fabric 1.3 版本引入的 idemix 功能。基于回购。为了支持 idemix,我做了一些更改。但是当我运行时java -cp blockchain-client.jar org.example.chaincode.invocation.InvokeChaincode ,顺便说一句,我省略了注册和注册用户的步骤 5,我遇到了

我用最少的组件建立了一个结构网络。两个组织,每个组织都有两个对等点和一个 CA。该演示来自repo。不支持 idemix 功能的演示网络运行良好。当我将 idemix 部分添加到 configtx.yaml 时,重新生成加密材料,创建通道等。网络终于启动了。所有容器都运行良好。但是我使用 java-sdk 与 fab car 链代码进行交互,抛出了上述错误信息。

以下来自 configtx.yaml 文件(此处仅显示关键部分):

组织:

能力:频道:&ChannelCapabilities V1_3:真

应用程序:&ApplicationDefaults 组织:通道:&ChannelDefaults 策略:读者:类型:ImplicitMeta 规则:“任何读者”

配置文件:TwoOrgsOrdererGenesis:功能:<<:*ChannelCapabilities 订购者:<<:*OrdererDefaults 组织:- *OrdererOrg 功能:<<:*OrdererCapabilities 联盟:SampleConsortium:组织:- *Org1 - *Org2 - *Org1Idemix - *Org2Idemix 应用程序: <<: *ApplicationDefaults Organizations: - *OrdererOrg Capabilities: <<: *ApplicationCapabilities TwoOrgsChannel: Consortium: SampleConsortium Application: <<: *ApplicationDefaults Organizations:- *Org1 - *Org2 - *Org1Idemix - *Org2Idemix 功能:<<: *ApplicationCapabilities

在创建通道客户端之前,我在 InvokeChaincode.java 中添加的代码如下:

配置文件添加代码:

并且 docker-composer.yaml 文件保持不变。使用的所有图像都是 1.4.1

我希望背书节点能够在启用 idemix 的情况下验证来自客户端的 tx 提案。但现在同行方报告2019-10-18 03:20:10.312 UTC [protoutils] ValidateProposalMessage -> WARN 049 channel [mychannel]: creator certificate is not valid: Failed verifing with opts [&{<nil> <nil> [] [{1 [111 114 103 49]} {2 1} {0 <nil>} {0 <nil>}] 3 [] 0 0xc00000fab8 0}]: signature invalid: APrime and ABar don't have the expected structure 2019-10-18 03:20:10.312 UTC [comm.grpc.server] 1 -> INFO 04a unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.22.0.1:33960 error="access denied: channel [mychannel] creator org [idemixMSPID1]" grpc.code=Unknown grpc.call_duration=82.6484ms

我不知道为什么。我猜如果对等点不支持 idemix tx 验证。是否有一些开关未在对等点上打开?帮助。任何答复将不胜感激。

0 投票
1 回答
545 浏览

hyperledger-fabric - Hyperledger Fabric: Channel configuration has no channels defined

I got to the project that is based on BYFN sample, but limited to one organization only.

In the app when I call following code:

#xA;

following error is produced:

#xA;

...the app recovers somehow itself, but I suspect this error to slow down the whole interaction with the ledger.

Also I'd love to keep my logs clean from any exceptions if possible.

Anyone encountered and resolved the same error?

0 投票
3 回答
983 浏览

hyperledger-fabric - 该通道未配置任何具有“发现”角色的对等方

我正在尝试从 java fabric SDK 进行交易。我能够从节点正确查询数据,但在执行事务时出现以下错误:

如何配置具有“发现”角色的对等方?

0 投票
1 回答
405 浏览

java - Hyperledger Fabric:使用 java-gateway-sdk 的异步/并行事务

我正在尝试使用 java gateway sdk 将异步事务发送到我的 Fabric 网络,但我收到错误消息Channel [CHANNEL NAME] has been shutdown

这里有一些示例代码:

这里有一个例外:

准确地说,异常是在方法中抛出的checkChannelState()。我有一种感觉,我没有正确处理多线程。