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

hyperledger-fabric - fabric-ca-client 找不到 ./utils.js

我正在尝试测试 IBM 的 fabcar 示例(https://github.com/IBM/fabcar-blockchain-sample)。这是我以前在我的电脑上做过的事情,它奏效了。我已经安装了 windows-build-tools 并且可以看到 Python 2.7 已安装。Npm install in web-app -> server 给出以下响应:

当我运行 nodeenrollAdmin.js ( https://github.com/IBM/fabcar-blockchain-sample/tree/master/web-app/server ) 时,会显示以下错误消息:

package.json 中的依赖项如下:

节点版本:10.17.0 Npm 版本:6.13.7

关于如何解决此问题的任何想法?

谢谢!

更新:Fabric-ca-client 昨天更新到 1.4.6 版。测试了 1.4.5,它就像一个魅力.. 似乎 1.4.6 中有一个错误/修复或版本中的某些东西导致 Windows PC 上的失败(现在尝试了两种不同的)。检查版本的更改日志

0 投票
2 回答
754 浏览

hyperledger-fabric - 部署在不同服务器上的 Hyperledger Fabric Node.js 客户端应用程序

在这个特定的错误上,我正在努力使用 Node.js Hyperledger Fabric 客户端库:

我的区块链网络(Hyperledger Fabric 1.4)部署在一台服务器上,IP 和所有需要的端口都从另一台服务器可见。文档中可用的所有示例/示例均通过 localhost 引用网络。

如何启动客户端应用程序并将其指向网络的 IP 地址而不是 localhost 或对等容器名称(例如 peer0.org1.example.com)?

每个客户端应用程序是否必须将管理员和用户注册到其本地持久性存储中,或者它只能由网络本身完成一次(并且可能在稍后阶段从网络安装到应用程序)?我们在这里讨论一台主机上的 Dockerized 网络和另一台主机上的客户端应用程序(同样是 Dockerized)。

此外,如果调用方法时需要.pem 证书文件,如何启动应用程序并连接到通过GRCPS 订购的例如createPeer

我将非常感谢这里提供的任何帮助。

编辑,2020 年 3 月 12 日:

我正在使用对我的网络进行更改的基本网络示例来创建 3 个组织,每个组织有 3 个对等点和 5 个 Raft 订购者。我复制了 connection-org1.json 文件,将 localhost 更改为我的外部服务器 IP,但出现以下错误:

我能够使用托管在外部 IP 上的网络在本地计算机上成功注册和注册管理员和用户。但我无法使用连接配置文件查询链码。

这是我的连接配置文件:

0 投票
1 回答
1549 浏览

hyperledger-fabric - 在 Hyperledger Fabric v 2.0 中注册用户时出错

我正在尝试超级账本结构样本(v2.0)。我的基本网络运行良好,我可以注册管理员。但是,当我尝试注册用户时,它会引发错误,例如“无法注册用户“user1”:TypeError:gateway.getClient 不是函数”

请在下面找到我正在尝试的代码示例

注意:我可以通过容器中的 cli 调用和查询 fabcar 样本,并且工作正常。当我尝试通过 SDK 实现相同功能时,它会抛出错误“无法注册用户“user1”:TypeError:gateway.getClient 不是函数”。任何线索将不胜感激。

0 投票
2 回答
632 浏览

hyperledger-fabric - 为什么 Hyperledger Fabric 中的连接配置文件有 gRPC URL?

在客户端应用程序(使用 Node/Go)中,我们提供连接配置文件来识别背书者的端点。

在那里,我们根据 grpc://localhost:port 指定对等点的端点,但实际上 gRPC 在 HTTP2 上运行,对吗?

那么 Fabric SDK 是将端点转换为 HTTP url 还是由 Fabric 对等代码处理?

我的意思是如何将 grpc 端点转换为 HTTP 端点?

还是对等方暴露了 grpc 端点本身?如果是,如何?

0 投票
1 回答
156 浏览

hyperledger-fabric - Hyperledger Fabric 使用 configtxgen 生成的用户工件从 Node.js 调用链代码。如何?

如果我理解正确的话,Node.js 客户端示例会注册用户、创建钱包,然后利用这些新生成的身份来执行交易。同时,fabric-tools/CLI 的示例利用 configtxgen 生成的身份/用户,没有正在进行的注册或钱包创建。我可以为我的目的运行这两个示例。

我想念的是从 Node.js 客户端使用 configtxgen 生成的管理员/用户、为他们创建钱包等的示例?这样的例子存在吗?感谢您的帮助。

0 投票
1 回答
81 浏览

hyperledger-fabric - Hyperledger Fabric:监听数据流,同时提交交易

当我使用或不使用 SDK 调用新事务时,找出从客户端到对等方的通信的最佳方法是什么。我想详细了解提交的内容以及对等方稍后发回的内容。

使用wireshark,由于TLS,gRPC / pb,我遇到了问题。有没有办法收听所有发送的消息和流量?

据我了解,gRPC 框架用于 Fabric 中的客户端、对等方和订购者之间的通信。

0 投票
0 回答
360 浏览

hyperledger-fabric - Hyperledger Fabric fabcar 客户端无法连接到对等节点

两个月前,我使用 Hyperledger Fabric 编写了一个应用程序。现在,我尝试再次运行它,但出现错误并且无法解决。所以我再次查看 Hyperledger Fabric 文档(https://hyperledger-fabric.readthedocs.io/en/latest/install.html),并重新安装所有内容(包括 cmd 工具、docker 映像甚至我的 MacOS)。

我尝试了两个版本(v2.0.1 和 v2.1.0),我的节点版本是 v12。我要做的是:

  • curl -sSL https://xxx/2ysbOFE | bash -s -- 2.1.0 1.4.6 0.4.18使用 cmd ( )下载 fabric-samples repo

  • 并进入 fabcar/ 目录并运行./startFabric.sh

  • 并进入 fabrcar/javascript/ 目录并运行npm install && node enrollAdmin.js && node registerUser.js && node invoke.js

但是,我再次遇到此错误:

我使用 docker ps: 在此处输入图像描述

似乎一切顺利。排序节点 docker logs 是:

似乎订购者无法连接到某些东西(可能是对等节点)。所以我认为有一些可能的问题:

  • 也许对等节点的网络出现故障,我们无法连接到它。
  • 也许 NodeJS Fabric SDK 有问题,它的 GRPC 客户端不能正常工作。
  • 也许我的电脑出了问题。

请你帮助我好吗?谢谢!!!

0 投票
0 回答
624 浏览

node.js - 如何从 nodejs 中的谷歌存储桶中读取二进制文件?

有没有从谷歌存储桶读取二进制文件的最佳方法,我正在尝试下面的代码,但是当我尝试从存储桶中读取文件并提取时,我面临非法偏移问题。

我已经在 fabriccerts 存储桶下手动上传了扩展名为 .tx 的二进制文件。我必须读取云函数中的文件并使用 fabrclient 模块提取相同的文件。

下面是从桶中读取文件的函数。

下面是来自云函数的语句,我试图使用 fabric-client 模块提取二进制文件。

有没有特定的方法来读取二进制文件?下载后需要转换文件吗?

我在 ubuntu 机器上尝试了相同的操作,将 channel.tx 文件存储在本地目录中,该目录工作正常,并在读取文件后显示如下:

但是当我将相同的文件存储在存储桶中并读取它显示以下数据的文件时:

错误日志:

我们需要向 google 提出错误吗?

0 投票
0 回答
169 浏览

hyperledger-fabric - Hyperledger Fabric 多个主机背书失败:错误发送:txid:存在

我正在研究 Hyperledger Fabric v1.4.6 和 node sdk v1.4.8,并尝试使用 Docker Swarm 和 Compose 在多个主机上配置它。我的网络由 2 个频道、3 个 org 和一个 raft Orderer 组成。锚节点已在频道上成功更新。

  • 主机 1:channel1 有 peer0org1 和 peer0org2 + CA-org1 和 CA-org2 一个 Cli 和一个 Orderer
  • 主机 2:channel2 有 peer0org1 和 peer0org3 + CA-org1 和 CA-org3。

我的背书政策是“ AND ('Org1MSP.peer','Org2MSP.peer') ”通道1,通道2 是“ AND ('Org1MSP.peer','Org3MSP.peer')

我能够通过 cli 成功构建网络并调用/查询事务,但是当我尝试通过节点 sdk 调用链代码时,错误就开始了。

尝试使用 invoke.js 调用时出现 Node sdk 错误

当我使用单个组织背书策略"AND('Org1MSP.peer')"时,此错误得到解决。

此外,我的网关有发现:{ enabled: true, asLocalhost: true } });

org1 yaml 文件:

此外,节点 sdk 应用程序在 docker 网络之外运行。

0 投票
2 回答
368 浏览

hyperledger-fabric - 是否可以使用 invokeChaincode 方法从不同通道上的链码中检索数据

我目前正在运行一个包含 2 个链码、2 个通道和 2 个组织的项目。我想在由 org1 和 org2 组成的第一个通道 (channel-1) 上安装我的第一个链代码 (CC1)。第二个链码(CC2)将安装在仅由 org2 组成的通道 2 上。

我想从第一个链码中检索数据,检索到的数据将用于第二个链码。是否可以使用 invokeChaincode 方法从不同通道上的链码中检索数据?

如果不可能,那么从安装在不同通道上的其他链码中检索数据的方法是什么?

我正在使用超级账本结构 2.0 版和节点 js 来构建我的链码。