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

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 投票
2 回答
778 浏览

hyperledger-fabric - 启动 Hyperledger Explorer 时出现问题

我创建了一个多人网络。我创建了 3 个orgs StancOrgStancOrgAStancOrgB。这是 configtx.yaml 文件。

masterchannel在我的网络上创建了一个。

我正在尝试为创建的结构网络设置 Hyperledger Explorer。我还根据创建的结构网络更新了 config.json。

我得到了成功的构建。但它无法启动资源管理器应用程序。

我得到了以下错误。

我已将 tls 提供为 false 并更新了 grpc。并且网络也在指定的端口上。

帮助表示赞赏。

0 投票
1 回答
736 浏览

node.js - 使用 Hyperledger Fabric 节点 JS 创建通道时出错

我正在尝试使用 Fabric SDK node.js 创建一个通道。当我通过 bash 命令创建通道时,我没有问题(你可以看到下面的代码),但是当我使用 node.js SDK 时,我得到了一些错误。我正在使用 TLS 和客户端身份验证。我无法意识到错误的含义以及如何解决它。任何帮助将不胜感激。

创建 Channel 的 Node JS 代码,它在主机中执行:

当我运行 createChannel.js 时,我在控制台中收到以下错误:

2019-01-17T14:30:42.278Z - 错误:[Remote.js]:错误:在截止日期前无法连接 URL:grpcs://localhost:9101 2019-01-17T14:30:42.283Z - 错误:[ Orderer.js]:Orderer grpcs://localhost:9101 有错误错误:在截止日期前连接失败 URL:grpcs://localhost:9101 (node:31051) UnhandledPromiseRejectionWarning:错误:在截止日期前连接失败 URL: grpcs://localhost:9101 在 checkState (/home/rosalva40/fabric-samples/vote/node_modules/fabric-client/node_modules/grpc/src/client.js:720:16) (node:31051) UnhandledPromiseRejectionWarning: 未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。(拒绝 ID:2)(节点:31051)[DEP0018] 弃用警告:未处理的承诺拒绝已被弃用。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。

这是排序节点日志:

2019-01-17 16:08:40.977 UTC [grpc] Println -> DEBU 13a grpc:Server.Serve 未能创建 ServerTransport:连接错误:desc =“传输:http2Server.HandleStreams 无法从客户端接收前言:EOF” 2019-01-17 16:08:41.987 UTC [grpc] Println -> DEBU 13b grpc:Server.Serve 未能创建 ServerTransport:连接错误:desc =“传输:http2Server.HandleStreams 无法从客户端接收前言:EOF” 2019-01-17 16:08:43.572 UTC [grpc] Println -> DEBU 13c grpc:Server.Serve 未能创建 ServerTransport:连接错误:desc =“传输:http2Server.HandleStreams 无法从客户端接收前言:EOF”

这是在容器中执行的 bash 代码:

0 投票
1 回答
251 浏览

node.js - 网络空闲 15-20 分钟后调用 sendTransaction 失败

我在 GCP 中部署了一个超级账本结构网络。我使用结构节点 sdk 与网络通信。

当 sdk 和网络之间没有活动时,如果我尝试调用链代码,API 调用会在 sendTransaction 到 Orderer 时失败,并显示以下日志。

错误:[Orderer.js]:sendBroadcast - 错误:“错误:14 不可用:TCP 读取失败\n at createStatusError (/usr/src/app/node_modules/grpc/src/client.js:64:15)\n在 ClientDuplexStream._emitStatusIfDone (/usr/src/app/node_modules/grpc/src/client.js:270:19)\n 在 ClientDuplexStream._receiveStatus (/usr/src/app/node_modules/grpc/src/client.js: 248:8)\n 在 /usr/src/app/node_modules/grpc/src/client.js:804:12" 请求失败:POST /channels/stanfinandcredth/chaincodes/sc1547746253:SERVICE_UNAVAILABLE 错误:ClientDuplexStream 处的 SERVICE_UNAVAILABLE。(/usr/src/app/node_modules/fabric-client/lib/Orderer.js:136:21) 在 ClientDuplexStream.emit (events.js:211:7) 在 ClientDuplexStream 的 emitOne (events.js:116:13) ._emitStatusIfDone (/usr/src/app/node_modules/grpc/src/client.js:271: 12) 在 ClientDuplexStream._receiveStatus (/usr/src/app/node_modules/grpc/src/client.js:248:8) 在 /usr/src/app/node_modules/grpc/src/client.js:804:12 错误:ClientDuplexStream 处的SERVICE_UNAVAILABLE。(/usr/src/app/node_modules/fabric-client/lib/Orderer.js:136:21) 在 ClientDuplexStream.emit (events.js:211:7) 在 ClientDuplexStream 的 emitOne (events.js:116:13) ._emitStatusIfDone (/usr/src/app/node_modules/grpc/src/client.js:271:12) 在 ClientDuplexStream._receiveStatus (/usr/src/app/node_modules/grpc/src/client.js:248:8)在 /usr/src/app/node_modules/grpc/src/client.js:804:12

SDK 似乎无法访问 Orderer。立即的下一个调用请求成功。这发生在 15 分钟的空闲时间之后。

我尝试为连接设置 grpc 超时,但似乎没有帮助。

0 投票
1 回答
878 浏览

yaml - 使用 CouchDB 的 Hyperledger Fabric 客户端凭证存储

我正在使用 Hyperledger Fabric SDK for node.js 来注册用户。我正在使用代码在结构中进行部署。它使用 FileKeyValueStore(使用文件来存储键值)来存储客户端的用户凭证。
我想使用 CouchDBKeyValueStore 将用户密钥存储在 CouchDB 数据库实例中。我需要在用于凭据存储的客户端连接配置文件配置文件和代码中进行哪些更改。任何指向示例代码的链接也将有所帮助。

0 投票
1 回答
2241 浏览

hyperledger-fabric - 尝试初始化 Channel 对象以使用服务发现时获取背书计划失败

我正在尝试使用 Fabric 1.4 中的服务发现功能。我的网络是默认的,每个组织有 2 个组织和 2 个对等点。我尝试通过服务发现功能调用链码,而不是设置特定的目标节点。(在使用服务发现之前,我在事务提议请求对象的目标属性中设置了特定的背书者。)

为了使用服务发现,我discover: true在我的连接配置文件中设置了对等点。然后,只需将以下代码添加到我的invoke函数中。

按照 fabric-node-sdk 文档中的教程,我更改了每个对等点的端口以在docker-compose网络中使用服务发现。

一切正常,包括创建通道、安装链码和实例化链码。此外,如果我不使用服务发现功能,调用链代码也可以正常工作。

但是,如果我await channel.initialize({ discover: true, asLocalhost: true })invoke函数中添加,此initialize函数会引发如下错误:

(我在实例化期间设置了我的背书策略)

在对等体中,打印以下日志:

我的调用函数的完整代码如下:

对于这种错误有什么建议吗?我可以在哪里投资来修复此错误并使用服务发现?任何建议将不胜感激。

0 投票
0 回答
77 浏览

hyperledger-fabric - 关于使用 Fabric-CA 节点 sdk 进行用户注册的问题

我创建了我的结构网络,其中包括 2 个组织,每个组织有 2 个对等点,并使用 Fabric-CA 为对等点和订购者生成加密材料。

如何使用 Fabric-CA 节点 sdk 注册和注册将执行交易(调用/查询分类帐)的用户?我已经浏览了“余额转移”示例应用程序,但在该示例中,用于存储用户凭据的密钥库路径是硬编码的,并且密钥是在项目目录中生成的。

我认为,将有一些方法可以注册用户并将他们的凭据存储在组织的对等容器中(因为其他对等相关的证书/密钥也存储在对等的容器中)。

让我知道我的假设是正确还是错误。如果正确,那么如何使用 fabric-ca node sdk 来实现这一点。否则如何将用户凭据安全地存储在容器之外。一种方法可能是使用 HSM?

0 投票
1 回答
86 浏览

hyperledger-fabric - 为什么 channel.getPeers() 不返回所有对等点,而只返回其中一些?

我有一个由 12 个对等点组成的网络(每个 6 个组织有 2 个对等点),但是一旦我尝试使用 channel.getpeers() 检索节点 js 应用程序中的所有通道对等点,它只会返回 2 个对等点,我必须手动添加其余的然后通过所有发送提案进行签名。

我检查了 cli 中的所有对等点,我看到它们都正确加入了频道,你知道为什么这个方法只返回 4 个对等点吗?

0 投票
1 回答
78 浏览

hyperledger-fabric - HLF 1.2 服务发现是否与 HLF 1.1 对等方一起使用?

我有一个网络卡在 1.1 IBP Enterprise 上,并且有一个云上的对等方。我在另一台本地机器上有另一个 1.2 对等体。

我读到了新的 Fabric 1.2 服务发现功能,这听起来很方便。据我了解,这将允许我在不明确指定(认可)的情况下提出请求targets(请澄清是否不是这种情况,因为我还没有找到关于如何更改 SDK 代码以利用服务发现的良好文档)。

如果我将 1.2 SDK 客户端/CLI 与同一通道上的 1.1 对等 + 1.2 对等一起使用,我是否可以访问此新功能?

0 投票
1 回答
83 浏览

hyperledger-fabric - 通过 NodeSDK 动态添加组织时出现策略错误

我正在尝试通过 NodeSDK 将组织动态添加到频道中。我已按照以下步骤操作: - 提取在 protobuffer 中返回的通道配置 - 将其转换为 json 以便读取 - 修改 json - 将其编码为 proto 缓冲区 - 调用库的 updateChannel 方法

所有步骤均已成功执行,但在调用 updateChannel 方法时,它给了我策略错误。请在下面找到订购者的日志:

摘要 = 00000000 b7 4c c6 c7 b4 e4 45 34 00 61 4b 80 51 3d 96 07 |.L....E4.aK.Q=..| 00000010 3f 6f 28 73 99 44 01 d4 44 8a 84 70 27 06 e5 08 |?o(sD.D..p'...| 2019-02-20 13:28:28.471 UTC [msp.identity] 验证 - > DEBU a36 验证:sig = 00000000 30 44 02 20 24 a7 07 ba c9 d7 4b 0d 60 95 eb c1 |0D.$.....K.`...| 00000010 96 d5 43 eb 3c fa 95 4f ce 44 2e 24 cd 2b d6 9b |..C.<..OD$.+..| 00000020 51 81 a6 cd 02 20 1f aa 81 d9 d7 d5 64 b4 36 54 |Q........ .d.6T| 00000030 cf 6b 4b d7 eb 42 51 b3 43 cf 07 99 18 3d 97 6d |.kK..BQ.C....=.m| 00000040 31 97 94 07 70 c0 |1... p.| 2019-02-20 13:28:28.471 UTC [cauthdsl] func2 -> DEBU a37 0xc0002afd50 身份 0 的主体评估成功 2019-02-20 13:28:28.471 UTC [cauthdsl] func1 -> 28:28.471 UTC [comm.grpc.server] 1 -> INFO a49 流式调用已完成 {"grpc.start_time": "2019-02-20T13:28:28.469Z", "grpc.service": "orderer.AtomicBroadcast" ,“grpc.method”:“广播”,“grpc.peer_address”:“192.168.64.1:47666”,“grpc.code”:“OK”,“grpc.call_duration”:“2.221942ms”} 2019-02- 20 13:28:30.655 UTC [grpc] infof -> DEBU a4a 传输:loopyWriter.run 返回。连接错误:desc =“传输正在关闭”

请帮助我解决我的配置中缺少的内容............

0 投票
2 回答
810 浏览

hyperledger-fabric - 错误:[JoinChain][mychannel] 的访问被拒绝:[验证提案的创建者满足 MSP 策略 [Admins] 失败:[此身份不是管理员]]

joinChannel.js给出以下错误:

确切地说,抱怨的错误是什么?我无法确定它是对等管理员私钥、对等管理员证书、对等 tls 证书还是其他配置。我获取了对等管理员证书并将其添加到 IBP 仪表板并执行了“同步证书”。要检查哪些内容以确保我确实为管理员指定了正确的凭据?