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

hyperledger-fabric - 与 IBP 2.0 的连接配置文件

我已经使用 IBP 1 和 nodejs SDK for fabric 创建了一个应用程序。它工作正常。

IBP1 正在被“弃用”,我正在切换到 IBP2。但是,连接配置文件“功能”存在重大差异。

在 IBP 1 中,您只需下载整个连接配置文件,您就拥有了所有需要的信息。这太棒了。

在 IBP 2 中,连接配置文件“与链码相关”并且包含很少的信息。因此,我之前的代码不适用于平台提供的当前连接配置文件。

错误示例: error: [Network]: _initializeInternalChannel: no suitable peers available to initialize from

这里应该有什么解决方案?

  • 有没有办法像我们以前那样下载完整的连接配置文件?
  • 我们必须自己建立连接配置文件吗?国际海事组织,这将是一个重大的倒退。
0 投票
0 回答
192 浏览

hyperledger-fabric - 隐式策略评估失败 - 满足 0 个子策略,但该策略需要满足 1 个“作家”子策略

每当我在运行网络后尝试创建频道时,都会遇到此错误。但是,如果修剪结构并重新启动我的电脑,然后在运行结构错误消失后再次创建通道。但我无法调试错误。

0 投票
2 回答
570 浏览

node.js - 调用注册端点失败并出现错误 [错误:自签名证书]

我正在尝试遵循超级账本结构教程 [1] 并让 Node.js SDK 与我的网络一起运行。我已经在我的 ca 服务器上成功注册了管理员,但是,在尝试下一步(注册新用户)时,我收到关于使用自签名证书的错误。

我什至不明白错误指的是哪个证书。CA 服务器使用的显然是自签名的,因为它们是根证书。adminIdentity 的证书来自 CA 服务器本身,在前面的注册步骤中获得。

我的 ca-server 容器上的日志不包含任何错误,触发请求甚至不会在那里产生任何日志条目。

(未更改的)示例代码显然工作fabric-samples/fabcarfabric-samples/basic-network很好。据我所知,SDK 代码在功能上与示例相同,因此我怀疑错误隐藏在配置中的某个位置。

这是我的registerUser.js文件:

...和我的connection.json文件:

我希望用户成功注册,但我收到以下错误:

Failed to register user "user1": Error: Calling register endpoint failed with error [Error: self signed certificate]

我可以做些什么来修复这个错误,甚至获得更多有用的信息?

0 投票
1 回答
206 浏览

node.js - HLF 结构网络无法从 node-red 连接到 IBP2 对等体

我目前正在使用 IBM Blockchain Platform 2.0。我用fabric-network 1.4.0和连接到它fabric-client 1.4.0

当我在我的机器上侦听来自简单 node.js 脚本的事件时,它运行良好。这是示例脚本:

但是,我的目标是将此代码包含到节点红色节点中(查看此处.

一点上下文:目前这些节点不处理可能需要的发现。我工作的目的是将其包含到这些节点中。

结果,我尝试将上面的代码插入到我的节点代码中,它给出了以下内容:(相同的代码,它只是一个复制/粘贴)

它产生以下错误:

fabric-network我在两个“环境”上检查了版本,它是1.4.0

有没有人知道有什么区别和/或什么会导致这个错误?


编辑:

在将包链接到 node-red vianpm install PATH而不是 using时测试包时npm link,出现以下错误:


编辑:来自 HLF 日志记录的更多信息。你可以在这里找到完整的日志

为了安全起见,除本地主机地址外,所有地址都已更改为ADDRESSADDRESS:PORT(取决于写入的内容)。

0 投票
1 回答
182 浏览

hyperledger-fabric - 如何将 Node SDK 连接到链码开发模式?

按照这些说明: https ://github.com/hyperledger/fabric-samples/tree/release-1.4/chaincode-docker-devmode

我能够peer invoke在 devmode 中成功使用 cli 命令,但是示例 Node.js 代码假定它与网关和钱包一起部署并命中第一个网络连接配置文件:https ://github.com/hyperledger/fabric-samples/blob/ release-1.4/fabcar/javascript/query.js

有没有办法可以更改 Node.js 代码以改为使用链码开发模式,以便我可以测试更多的端到端?

0 投票
0 回答
162 浏览

node.js - 带有节点的 Hyperledger 结构给了我你要求调用一个不存在的函数

我在超级账本结构中创建了一个链码,使用“第一网络”作为本地区块链来部署我的合约,我对其进行了测试,效果很好,很喜欢它,然后我决定在我的合约中添加一个新方法,没什么复杂的,一个简单的查询。

我的程序在带有打字稿的节点中,所以我删除了 dist 文件夹,运行脚本npm run build甚至./byfn.sh down删除了我所有的容器和图像,并使用./byfn.sh up脚本重新开始,无论尝试什么,我都会收到此错误:

所以我认为也许我做错了什么,所以我将我的方法添加到 fabcar.ts 示例中并再次启动结构以使用 fabcar 方法和我的方法运行 fabcar,这一次,我得到了同样的错误对于我所有的方法,而来自 fabcar 示例的原始方法是唯一被认可的方法。

那么,fabric 在哪里存储旧版本的代码?我正在删除所有 dist 文件夹、node_modules、容器和图像,如果我在全新的区块链中发布,为什么它不会更新合同?每次更改某些内容时,即使在开发中,我是否也需要增加版本?

谢谢

0 投票
1 回答
185 浏览

hyperledger-fabric - 关于前端应用程序如何访问超级账本结构中的钱包

在 Hyperledger 结构中,钱包是否会保存在手机和笔记本电脑等用户设备中,如果前端存储用户设备,它将如何使用钱包?

提前致谢

0 投票
0 回答
50 浏览

hyperledger-fabric - 我怎样才能从特定的同行那里得到背书?

在 Hyperledger 结构中提交交易后,有没有办法从特定对等方获取背书,使用contract.submitTransaction()or channel.sendTransaction()?到目前为止,背书似乎总是来自同一个同行,而不是组织中的其他同行。请在下面查看我的环境详细信息。此外,如果我使用节点 sdk sendTransactionProposal(request)'sChaincodeInvokeRequest 首选或忽略列表来定位特定对等方,那似乎没有任何区别。是否有任何特定文档或替代资源可以解决此问题?

ChaincodeInvokeRequest{ 目标:allPeers 或 peer2,// 或不同的 peer 首选:peer2,ignore,peer1 }

环境详细信息 当前设置:1 个组织和 2 个对等点

简单的背书政策:

Fabric SDK库:

Hyperledger Fabric 版本:v1.4.1

使用以下方法针对 sdk 中的特定对等点:

预期成绩:

transaction1 - 客户端向 peer1 提交交易并从 peer1 获得背书。transaction2 - 客户端向 peer2 提交交易并从 peer2 获得背书。

实际结果:

transaction1 - 客户端向 peer1 提交交易并从 peer1 获得背书。transaction2 - 客户端向 peer2 提交交易并从 peer1 获得背书。

0 投票
1 回答
452 浏览

hyperledger-fabric - 当从 Fabric 客户端应用程序提交事务时,哪个对等 SDK 将实际提交事务到网络?

我正在经历 Hyperledger Fabric Web 应用程序开发。我仍然对在第一网络上部署链代码的 fabcar nodejs 示例感到困惑(总共 4 个对等点)。运行后,startFabric.sh我们可以使用 查询或提交交易query.js or invoke.js。在这样做的同时,我们通过 Fabric 节点 SDK 与网络进行通信。例如,如果我们尝试更改车主,我们只需invoke.js使用此函数进行修改并运行node invoke.js,它就会简单地更改账本中的特定车主。我的问题是,我们有 4 个对等点,我们的链码当前安装,从哪个对等点 SDK 实际向网络提交交易?如果我们想从另一个对等点提交交易怎么办?我们如何在invoke.js任何说明中定义连接对等点(事务提交对等点)?

0 投票
0 回答
775 浏览

hyperledger-fabric - 在超级账本结构的 chaicode 中执行大量事务时超时到期

我已经克隆了结构示例 存储库并正在运行byfn脚本来构建第一个网络。我正在使用 node js SDK 进行应用程序开发。我编写了一个链码函数,它进行耗时的计算并将true/false值返回给中间件。

peer0仅从Org1.

不幸的是,我得到了一个超时,没有来自链码的响应~30seconds。我得到的错误如下所示:

为了解决这个问题,我认为我必须覆盖结构中的默认超时配置。deafault.json所以,我对 .I 中的配置文件进行了更改fabric-client node module。我增加了键中的值,"request-timeout","grpc.keepalive_timeout_ms", "grpc-wait-for-ready-timeout"但我的应用程序仍然像~30-35 seconds. 我还更改了文件中的timeout参数值,connection-org1.yaml但应用程序仍然同时超时。

如何增加此超时时间以允许在我的链码中进行大量计算?我知道我的链码和结构安装是正确的,因为相同的应用程序和链码在具有更好资源的系统中运行良好(即在更快的计算机中计算需要约 15 秒)