问题标签 [hyperledger-fabric-sdk-go]
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 - 网关编程模型是新常态吗?
因此,我一直在尝试使用 Hyperledger Fabric Client SDK for Go 中的网关包以外的包来查找教程和示例。我只找到了几个旧的;1.4之前。此外,Hyperledger Fabric 文档完全专注于网关模型。
这让我想到了标题中的问题。这对我来说很有意义,因为我看不到使用 SDK 创建通道和部署链代码的价值。因为我们还有管理任务要在 CLI 上完成;准备通道配置文件和通道创建交易,更不用说对链码进行编程了。
最近是否有一个共同的共识是完全在 CLI 上执行管理任务(创建通道、加入对等点和部署链码),并将带有网关模型的 SDK 专用于链码交互?
hyperledger-fabric - 如何为不同主机中的容器设置 fabric-sdk-go 的实体匹配器部分?
我已经将我的超级账本结构网络和我的客户端应用程序(使用fabric-sdk-go)部署在一台机器上(使用docker compose)并且一切正常,但是我正在尝试将我的网络与不同主机上的容器一起部署(使用一个带有 docker swarm 的覆盖网络)。此步骤有效,但我的客户端应用程序无法正常工作,因为它无法与不同主机上的容器通信。我认为问题与我的 config.yaml 文件中的实体匹配器部分有关。对于我的原始解决方案(单主机)实体匹配器设置如下:
对于我在多台主机上的解决方案,我在一台主机上设置了 ca 和 orderer,在其他主机上设置了 peer0 和 peer 1。我的问题是:如何将 localhost 替换为不同主机上相应容器的 url?(如果问题确实如此)
注意:我尝试将 localhost 更改为 docker 容器的名称,但没有成功
hyperledger-fabric - 提交失败:发现状态代码:(11) UNKNOWN。描述:获取背书时出错:无法满足背书组合
我有 5 个排序节点,4 个节点属于我的结构网络中的两个不同组织。我已经在所有对等方中安装了链码。当我提交购买同行时,一切正常:
但是,当我提交交易时fabric-sdk-go
,我会收到这样的错误:
这是connection.json
for fabric-sdk-go
:
这是configtx.yaml
我不知道我的结构网络出了什么问题。有人能帮我吗?
go - 结构调用链码错误:无法获得背书节点:无法满足背书组合
我已经成功建立了一个组织中的 3 个订购者和一个具有 5 个组织的联盟的结构网络。每个组织只有一个对等节点并加入同一频道。我已经在这个频道中安装并实例化了两个链码。但是,当我通过 *channel.Client 调用链代码时,有时它可以正常工作,有时会出现这样的错误:
这是我的开发环境:
以下是我认为可能有用的 Fabric 配置:configtx.yaml
docker-compose.yaml
config.yaml 用于fabric-sdk-go
:
这个问题困扰我很久了。有人能帮我吗?
我已经找到了这个问题的原因。这是因为从 channel 得到的 endorsers 应该包含在通过 得到的 peers 列表中discovery
,否则会被过滤掉。并且始终只有一个背书节点从通道或discovery
. 所以,除非两者相等,否则背书是不满足的。channel.policies.discovery.retryOpts.attempts
因此,可能需要多次重试才能成功,否则在到达or时将返回错误channel.policies.discovery.retryOpts.maxBackoff
。
现在的问题是,为什么只能从渠道获得或找到一个背书discovery
?我试图通过修改 yaml 中的一些可能的配置来修复它,但都失败了。
hyperledger-fabric - 如何正确初始化 FabricSDK?
编辑:似乎network.sh
脚本需要设置COMPOSE_PROJECT_NAME
环境变量,test
否则它不会正确初始化网络?完成此操作后,我尝试编写一个新config.yaml
文件,但仍然不正确,但我得到的错误已经改变。
我最近开始使用Hyperledger
织物。使用“fabric-samples”测试网络,我开发并安装了连接到网关后成功调用的链代码。
要启动区块链网络,我运行以下test-network/network.sh
命令:
现在,我正在尝试以编程方式访问一个块(为了查看背书者),但clientChannelContext
我得到导致此错误:
Can not get ledger client failed to get client context to create channel client: user not found
不知道 fabsdk 参考需要什么配置,我尝试了在文件夹下找到的每个 文件,但没有成功。*.yaml
test-network
虽然fabsdk.New()
返回“有效” *FabricSDK
,但我怀疑它没有正确初始化。
我当前的 config.yaml,基于config_e2e.yaml:
hyperledger-fabric-sdk-go - 我正在学习fabric-sdk-go。当我执行“make run”来运行我的应用程序时,有两个 WARN。这意味着什么剂量?
[fabsdk/fab] 2021/05/02 11:52:01 UTC - fab.detectDeprecatedNetworkConfig -> WARN 从端点配置 channels.orderer 获取 orderer 已弃用,使用实体匹配器覆盖 orderer 配置
[fabsdk/fab] 2021/05/02 11:52:01 UTC - fab.detectDeprecatedNetworkConfig -> WARN 访问https://github.com/hyperledger/fabric-sdk-go/blob/master/test/fixtures/config/样本的overrides/local_entity_matchers.yaml
hyperledger-fabric - 当使用在 fabric-go-sdk 中使用 `WithSDK` 配置的网关发送事务时,会发生 TRANSIENT_FAILURE
我正在构建一个客户端服务器以使用fabric-go-sdk
. 要使用自定义日志记录系统,我使用函数获取一个FabricSDK
对象,fabsdk.New()
然后将其注入到一个Gateway
对象中gateway.WithSDK
。检查下面的代码:
当我运行测试时,我收到一个错误:
我运行的测试是使用Gateway
对象及其Submit
方法发送事务的测试。
当我定义一个没有 的Gateway
对象时FabricSDK
,它工作正常。也就是说,如果我使用下面的代码,测试就会顺利通过。但是,在这种情况下,我无法使用我的自定义日志记录系统。(我只想禁用 Fabric SDK 的日志系统。)
根据我的调查,由和FabricSDK
初始化的对象之间的区别在于,由 和 创建的对象具有选项,而另一个则没有。我尝试为我的代码提供相同的选项,但我找不到如何去做。fabsdk.New()
gateway.Connect(gateway.WithConfig())
FabricSDK
gateway.Connect(gateway.WithConfig())
fabsdk.WithMSPPkg(gw.mspfactory)
fabsdk.New()
所以,我的问题是:
- 我该如何处理“TRANSIENT_FAILURE”错误,或者
- 如何禁用 Fabric SDK 的默认日志系统?
谢谢。
kubernetes - ISSUE 提交失败:发现状态代码:(11) UNKNOWN。描述:获取背书时出错:无法满足背书组合
我需要一些帮助来解决这个问题,我一直在尝试解决它,但我找不到腐烂的原因。
我正在尝试使用 kubernetes 在外部链代码上运行 application-go。一切正常,但是当我尝试从 application-go 发布请求时,我在终端或 POSTMAN 上收到以下错误:
以下是 application-go 的日志:
任何帮助将不胜感激。
go - 当我尝试将链码与 go 程序连接时遇到了一些问题。* '***.Registrar' 期望地图,得到 'slice'
我编写了配置文件 connect.yaml 并尝试将链码与 go 程序连接起来。但是出现了以下错误:
2021/08/29 17:10:04 无法连接到网关:无法应用配置选项:无法初始化配置:无法加载身份配置:无法从配置后端初始化身份配置:无法从后端创建身份配置:无法将“certificateAuthorities”配置项解析为 identityConfigEntity.CertificateAuthorities 类型:3 错误解码:
- '[ca.agridepart.amops.com].Registrar' 期待一张地图,得到了 'slice'
- '[ca.agrimacowner.amops.com].Registrar' 期待一张地图,得到了 'slice'
- '[ca.financedepart.amops.com].Registrar' 期待一张地图,得到了 'slice'
然后我尝试在connect.yaml文件的certificateAuthorities部分删除以下内容
但是出现以下错误: 2021/08/29 17:38:57 Failed to get network: Failed to create new channel client: event service creation failed: could not get chConfig cache reference: QueryBlockConfig failed: QueryBlockConfig failed: target(s)必需的
那么第二个错误是否与第一个错误有关以及导致它的原因。我应该怎么办?
我的 connect.yaml 文件内容如下:
couchdb - 如何在外部链码构建中打包 couchdb 索引?
我正在尝试按照此处的说明将链代码安装和部署为外部服务
我按照此处的说明创建了couchdb 索引,并将链代码打包为:
- 将META-INF 目录与输出“code.tar.gz”的 connection.json 一起打包
- 将META-INF 目录与输出“cc_name.tgz”的“code.tar.gz”和“metadata.json”一起打包
在使用peer 生命周期命令安装链代码时,这两种方法都会导致错误。
我在没有打包 META-INF(couchd 索引)的情况下安装了链码,一切都按预期工作。但是对于区块链应用程序,我很少需要从 couchdb 查询数据并更新分类帐中的资产。
在外部部署链代码时,打包 couchdb 索引的正确方法是什么?