返回顶部
首页 > 资讯 > 后端开发 > GO >Hyperledger Fabric 使用 go sdk 在 CouchDB 中存储事务
  • 133
分享到

Hyperledger Fabric 使用 go sdk 在 CouchDB 中存储事务

2024-04-05 00:04:17 133人浏览 安东尼
摘要

小伙伴们对golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《Hyperledger Fabric 使用 Go sdk 在 CouchDB 中存储事务》,就很适合你,本篇文章讲解的知

小伙伴们对golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《Hyperledger Fabric 使用 Go sdk 在 CouchDB 中存储事务》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

我正在尝试将 couchdb 集成为 hyperledger 网络的stateb,但在将值传递到 putstate 函数(go sdk)以更新状态时遇到问题。

文档表示需要将“状态”配置添加到 core.yaml 文件中。然而,这个文件在balance-transfer中不存在,所以我修改了network-config.yaml文件,其中statedatabase是couchdb而不是goleveldb,如下所示:

state:
  statedatabase: couchdb
  couchdbconfig:
  couchdbaddress: https://localhost:5984
  username:
  passWord:
  maxretries: 3
  maxretriesonstartup: 10
  requesttimeout: 35s
  querylimit: 10000

我已经在 Docker-compose-couch.yaml 文件中为每个对等方设置了 couchdb docker 容器的配置:

couchdb0:
  container_name: peer0.org1.couchdb
  image: hyperledger/fabric-couchdb
  environment:
    - couchdb_user=
    - couchdb_password=
  ports:
    - "5984:5984"

我为每个对等点添加了以下参数,以便对等点的 couchdb 地址指向上面创建的容器。

core_ledger_state_statedatabase=couchdb
core_ledger_state_couchdbconfig_couchdbaddress=couchdb0:5984

基于此,couchdb docker 容器都运行良好,并且端口 5984 具有链码创建的相关数据库。我正在努力让链代码中出现 putstate() 请求的值。 go-sdk 文档概述了 putstate 需要一个键(字符串)和值(JSON 字节数组)。

例如,如果我提交一个新交易,该交易将显示在名为 mychannel_mycc数据库下的 couchdb 中,并具有我指定的 id,但我作为 json 字节数组传递的值都不会经过。 couchdb 中的文档如下所示:

{
  "_id": "000000000",
  "_rev": "1-6fab10bceb44087355a55b0bdc9bd9a4",
  "~version": "\u0000CgMBAwA=",
  "_attachments": {
    "valueBytes": {
      "content_type": "application/octet-stream",
      "revpos": 1,
      "digest": "md5-caYFgf07HPDwskuoN1DySg==",
      "length": 338,
      "stub": true
    }
  }
}

如何确保我的 json 对象传递到 couchdb 文档中?


解决方案


我发现问题与传递给 putstate() 时的 json 格式有关。我传递的是 json 对象数组,而不是 json 本身。如果通过函数传递无效的 json,couchdb 中的数据将反映为附件而不是 json 本身。

这就是我最初经历的:

[{"name": "doe", "age": "20"}]

当我应该通过时:

{"name": "doe", "age": "20"}

我还发现 json 对象中的所有内容都必须是字符串。因此“age”必须用引号引起来,而不是整数。

今天关于《Hyperledger Fabric 使用 go sdk 在 CouchDB 中存储事务》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注编程网公众号!

您可能感兴趣的文档:

--结束END--

本文标题: Hyperledger Fabric 使用 go sdk 在 CouchDB 中存储事务

本文链接: https://lsjlt.com/news/596046.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Hyperledger Fabric 使用 go sdk 在 CouchDB 中存储事务
    小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《Hyperledger Fabric 使用 go sdk 在 CouchDB 中存储事务》,就很适合你,本篇文章讲解的知...
    99+
    2024-04-05
  • 如何在 Django 中使用 Go 存储缓存?
    Django 是一个流行的 Python Web 框架,而 Go 是一门高效的编程语言。在 Web 开发中,缓存是一个非常重要的概念,它可以大大提高 Web 应用程序的性能。本文将介绍如何在 Django 中使用 Go 存储缓存。 一、什么...
    99+
    2023-11-08
    存储 django 缓存
  • 如何在 Linux 中使用 go-path 存储?
    在 Linux 中,使用 go-path 存储可以帮助我们有效地管理和使用 Go 语言的依赖包。本文将介绍如何在 Linux 中使用 go-path 存储,并演示一些常用的命令和操作。 一、什么是 go-path 存储? go-path 存...
    99+
    2023-07-22
    linux path 存储
  • 如何在 Laravel 中使用 Go 和 JavaScript 存储?
    Laravel 是一个非常流行的 PHP 框架,它提供了许多强大的功能和工具来帮助开发人员快速构建高质量的 Web 应用程序。但是,在某些情况下,您可能需要使用其他编程语言来进行开发,例如 Go 和 JavaScript。在本文中,我们将探...
    99+
    2023-08-20
    javascript 存储 laravel
  • 如何在Go中使用Bash进行存储?
    在现代软件开发中,存储和处理数据是非常重要的一部分。然而,不同的编程语言和平台提供了不同的解决方案。在这篇文章中,我们将介绍如何在Go中使用Bash进行存储。 Bash是Linux和Unix操作系统中最常用的shell之一。它提供了强大的...
    99+
    2023-11-01
    bash 存储 自然语言处理
  • SQLServer存储过程中事务如何使用
    SQLServer存储过程中事务如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体代码如下create pr...
    99+
    2024-04-02
  • mysql存储过程中怎么使用事务
    在 MySQL 存储过程中,可以使用 START TRANSACTION 或者 BEGIN 语句开始一个事务,并使用 COMMIT ...
    99+
    2023-10-24
    mysql
  • 如何在 Bash 中使用 Go 和 Laravel 进行存储?
    Bash 是一个流行的命令行解释器和脚本语言,被广泛应用于 Linux 和 Unix 操作系统中。而 Go 和 Laravel 则是两个非常流行的编程语言和框架,它们分别用于开发高性能的服务器端应用程序和 Web 应用程序。 在本文中,我...
    99+
    2023-09-19
    laravel 存储 bash
  • 如何在GO语言中使用UNIX存储函数?
    在Go语言中,使用UNIX存储函数可以让我们轻松地管理文件系统。UNIX存储函数通常被称为系统调用,在操作系统中执行。Go语言提供了一些函数可以直接调用系统调用。本文将介绍如何在Go语言中使用UNIX存储函数。 一、打开和关闭文件 在Go语...
    99+
    2023-07-23
    unix 存储 函数
  • “如何在 Laravel 中使用 Go 存储并整合 JavaScript?”
    在Laravel中使用Go存储和整合JavaScript可以帮助您轻松地处理大量数据和请求。这篇文章将向您展示如何在Laravel中使用Go存储和整合JavaScript,以及如何在实际应用中使用这种技术。 首先,让我们来看看如何在Lara...
    99+
    2023-11-06
    存储 laravel javascript
  • 如何使用Go函数在存储中创建索引?
    在现代软件开发中,存储是一个非常重要的组件。存储通常是应用程序的瓶颈之一,因此优化存储是非常重要的。在处理大量数据时,创建索引是一个重要的优化策略。在本文中,我们将探讨如何使用Go函数在存储中创建索引。 为什么需要索引? 在存储中创建索引的...
    99+
    2023-07-05
    函数 存储 索引
  • 如何在 Laravel 中优雅地使用 Go 存储函数?
    Laravel 是一个流行的 PHP 框架,它提供了很多强大的功能,包括高效的路由、ORM、模板引擎等。但是,在处理大量数据时,Laravel 的性能并不总是最优的。为了提高性能,很多开发者开始将一些计算密集型的操作放到其他语言中进行处理,...
    99+
    2023-11-08
    存储 laravel 函数
  • 如何在 Linux 中使用 go-path 存储来管理 go 应用程序?
    Go 是一种非常流行的编程语言,因为它的速度和效率非常高。许多开发者在 Linux 系统上使用 Go 来编写应用程序。在 Linux 上,我们可以使用 go-path 存储来管理 Go 应用程序。本文将介绍如何在 Linux 中使用 go...
    99+
    2023-07-22
    linux path 存储
  • SqlServer存储过程中使用事务,示例模版
    create proc pro_GetProTrans @GoodsId int, @Number int, @StockPrice money, @SupplierId int, @EmpId int, @StockUnit varch...
    99+
    2018-03-13
    SqlServer存储过程中使用事务,示例模版 数据库入门 数据库基础教程
  • 如何在 Bash 中使用 Laravel 和 Go 进行高效存储?
    在现代的 Web 应用程序中,高效的存储是非常重要的。使用 Laravel 和 Go 结合 Bash 进行存储可以提高效率和性能。在本文中,我们将介绍如何在 Bash 中使用 Laravel 和 Go 进行高效存储,并演示一些代码示例。 ...
    99+
    2023-09-19
    laravel 存储 bash
  • 如何在Go中使用Apache实现异步存储编程?
    在Go语言中,使用Apache实现异步存储编程是非常方便的。Apache是一个非常流行的开源软件,它提供了一系列的工具和库,可以帮助我们实现异步存储编程。在本文中,我们将介绍如何使用Apache实现异步存储编程,并提供一些演示代码。 一、为...
    99+
    2023-09-19
    存储 异步编程 apache
  • 如何使用二维码在Go和Django中存储数据?
    二维码作为一种快速传递信息的工具,被广泛应用于各个领域。除了传递信息,二维码还可以用于存储数据。本文将介绍如何使用Go和Django两种编程语言,实现将数据存储到二维码中的功能。 一、Go语言 Go语言是一种由Google开发的编程语言,...
    99+
    2023-10-03
    django 二维码 存储
  • 如何在go项目中使用容器化存储框架?
    如何在 Go 项目中使用容器化存储框架? 随着云原生时代的到来,容器化存储框架在分布式系统中变得越来越重要。在 Go 项目中使用容器化存储框架可以提高系统的可扩展性和容错性。本文将介绍如何在 Go 项目中使用容器化存储框架,并通过演示代码来...
    99+
    2023-10-07
    存储 框架 容器
  • 如何在 Go 中使用数组存储和打包数据?
    Go 是一种强类型的编程语言,它提供了多种数据类型,其中数组是一种非常常用的数据类型。在 Go 中使用数组来存储和打包数据是一种非常常见的操作。在本文中,我们将介绍如何在 Go 中使用数组来存储和打包数据。 什么是数组? 数组是一种存储固定...
    99+
    2023-07-01
    存储 数组 打包
  • 如何在 Go 中使用 Spring 存储和生成二维码?
    在现代的应用程序开发中,使用二维码已经成为了一种非常流行的方式。它们可以用于多种用途,例如支付码、身份验证、产品标签等等。在本文中,我们将介绍如何在 Go 中使用 Spring 存储和生成二维码。 安装依赖 在开始之前,我们需要安装一些...
    99+
    2023-10-27
    存储 二维码 spring
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作