hyperledger fabric 测试(九)couch DB数据库设置

Hyperledger Fabric 1.2.1启用CouchDB作为状态数据库 一. CouchDB状态数据库可选类型包括LevelDB和CouchDB。LevelDB是嵌入在peer进程中的默认键/值状态数据库,CouchDB是一个可选的外部状态数据库。与LevelDB键/值存储一样,CouchDB可以存储任何以chaincode建模的二进制数据(CouchDB附件函数在内部用于非json二进制数据)。但是,当chaincode值(例如,资产)被建模为JSON数据时,作为JSON文档存储,CouchDB支持对chaincode数据进行丰富的查询。 阅读详情

1安装CouchDB:docker pull klaemo/couchdb

创建文件夹:mkdir couchdb

启用一个CouchDB实例:docker run -p 5984:5984 -d --name my-couchdb -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -v ~/couchdb:/opt/couchdb/data klaemo/couchdb    

启动浏览器输入url:http://192.168.134.134:5984/_utils  // 192.168.134.134是我自己的IP地址   控制台输入ifconfig可查看

浏览器里输入账号admin  密码 password  进入数据库

2删除原来的CouchDB容器:docker rm -f my-couchdb

3新建4个CouchDB数据库:

cd ~

mkdir couchdb0

mkdir couchdb1

mkdir couchdb2

mkdir couchdb3

docker run -p 5984:5984 -d --name couchdb0 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -v ~/couchdb0:/opt/couchdb/data klaemo/couchdb

docker run -p 6984:5984 -d --name couchdb1 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -v ~/couchdb1:/opt/couchdb/data klaemo/couchdb

docker run -p 7984:5984 -d --name couchdb2 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -v ~/couchdb2:/opt/couchdb/data klaemo/couchdb

docker run -p 8984:5984 -d --name couchdb3 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -v ~/couchdb3:/opt/couchdb/data klaemo/couchdb

4更改docker-compose-cli.yam 编辑4个peer节点:

 

  peer0.org1.example.com:

    container_name: peer0.org1.example.com

    environment:

      - CORE_LEDGER_STATE_STATEDATABASE=CouchDB

      - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=192.168.134.134:5984

      - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=admin

      - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=password  

    extends:

      file:  base/docker-compose-base.yaml

      service: peer0.org1.example.com

5启用Fabric:./network_setup.sh up

查看数据库信息:curl http://192.168.134.134:5984/mychannel_mycc/_all_docs  //提示没有权限查看的话url输入账号密码

: curl http://admin:password@192.168.134.134:5984/mychannel_mycc/_all_docs

只查看a的信息:curl http://admin:password@192.168.134.134:5984/mychannel_mycc/a

进入容器:docker exec -it cli bash

运行链码测试marbles02:peer chaincode install -n marbles02 -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/marbles02

 

peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C mychannel -n marbles02 -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/marbles02 -c '{"Args":["init"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"

 

peer chaincode invoke -o orderer.example.com:7050  --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem  -C mychannel -n marbles02 -c '{"Args":["initMarble","marble2","red","50","tom"]}'

 

peer chaincode query -C mychannel -n marbles02 -c '{"Args":["readMarble","marble2"]}'

 

curl http://192.168.134.134:5984/mychannel/marbles02%00marble2  //查询数据库的信息

curl -X PUT http://192.168.100.129:5984/mychannel/marbles02%00marble2 -d '{"_id":"marbles02\u0000marble2","_rev":"1-a1844f47b9ed94294b430c9a9a6f543b","chaincodeid":"marbles02","data":{"docType":"marble","name":"marble2","color":"green","size":10,"owner":"tom"},"version":"6:0"}'   //更改其中的颜色信息为green  四个数据库都更改

再次调用查询查看颜色信息:

curl http://192.168.134.134:5984/mychannel/marbles02%00marble2  

转帐后在查看颜色信息:peer chaincode invoke -o orderer.example.com:7050  --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem  -C mychannel -n marbles02 -c '{"Args":["transferMarble","marble2","jerry"]}'

peer chaincode query -C mychannel -n marbles02 -c '{"Args":["readMarble","marble2"]}'  //显示颜色为green  表示成功篡改fabric中的数据

Fabric 1.4基于couchdb环境搭建 Fabric 1.4基于couchdb环境搭建步骤,以及基于couchdb的区块链多字段数据查询 立即下载

相关推荐

【MagicDrive环境配置】新手配俩星期版

1.创建一个新的环境conda create -n newdrive python==3.82.激活该环境conda activate newdrive3.下载MagicDrive源码 git clone --recursive https://github.com/cure-lab/MagicDrive.git,如果出现时间超时八成是网的问题,直接自己下载解压就好3.我的cuda版本是11.7,但11.7导致后续安装有冲突,因此进入。

m0_46261292的博客 2203

CouchDb

Couchdb数据库 一、介绍 1、简介 官网上的说明:CouchDb是一个存储Json文档的数据库。CouchDB是一个完全包含Web的数据库。使用JSON文档存储数据。使用Web浏览器通过HTTP访问您的文档。使用JavaScript 查询,组合和 转换文档。CouchDB适用于现代网络和移动应用程序。您可以使用CouchDB的增量复制高效地分发数据。(概括说couchedb是一个面向文档的...

ZCR的博客 3595

ZYNQ平台AXI DMA传输避坑指南:如何快速定位‘errors:200‘等中断故障

本文详细解析了ZYNQ平台AXI DMA传输中常见的'errors:200'等中断故障,提供了从寄存器解析到压力测试的完整解决方案。通过深入分析XILINX_DMA中断机制、错误分类及五步排查法,帮助开发者快速定位并解决DMA传输问题,提升系统稳定性与性能。

weixin_29159613的博客 439

Fabric官方教程(release 2.2)翻译及总结——使用CouchDB

使用 CouchDB 将CouchDB用作Hyperledger Fabric的状态数据库所需的步骤。 教程分为以下几步: 在Hyperledger Fabric中启用CouchDB 创建一个索引 将索引添加到您的chaincode文件夹 部署智能合约 查询CouchDB状态数据库 使用最佳做法进行查询和索引 通过分页查询CouchDB状态数据库 更新索引 删除索引 要更深入地了解CouchDB,请参考CouchDB作为状态数据库,有关Fabric账本的更多信息,请参考Ledger主题。 请遵循以下教程

qq_23417755的博客 1万+

STM32使用LORA模块通信

目录 一、模块使用方法 1、模块简介 2、硬件及功能 3、传输方式 二、模块上手 1、连接 2、编写代码 usart3.h usart3.c lora.h lora.c 一、模块使用方法 本文以正点原子ATK-LORA-01模块为例进行介绍。 1、模块简介 ATK-LORA-01-V3.0(V3.0是版本号,下面均以ATK-LORA-01表示该产品)是ALIENTEK推出的一款体积小、微功率、低功耗、高性能远距离LORA无线串口模块。模块设计是采用高效的IS...

qq_54706971的博客 3万+

DDoS攻击--Syn_Ack/Ack_Flood等攻击防护详解(TCP)

前言 Syn_Ack/Ack_Flood攻击属于TCP攻击,在了解Syn_Ack/Ack_Flood攻击之前,可以先看看TCP攻击详解。 Syn_Ack Flood 攻击: syn_ack报文出现在连接建立的第2个报文,用来确认第一次握手的syn包。 当服务器收到syn_ack报文后会在系统里查询是否属于3次握手的范畴。如果属于则回复ack,并将连接设为连接状态。若没有查到相关信息,则回复...

一只IT小小鸟 1万+

Fabric启用CouchDB

状态数据库简介   LevelDB是默认的状态数据库.LevelDB是采用C++编写的一种高性能嵌入式数据库,没有独立的数据库进程,占用资源少,速度快。   CouchDB是一种文档型数据库,提供了RESTful的API操作数据库文档,CouchDB支持原生的JSON和字节数组的操作,基于JSON的操作,支持复查询,尤其是从Fabric1.3版本开始,支持分页。 启用CouchDB docker-...

weixin_43839871的博客 2604

[华为ensp]双核心的园区网

(给部分只会emm......借鉴的朋友提个醒,在group-member e0/0/2 to e0/0/20是所选,所以到了p l t那会给2-20端口都配置上trunk,别紧张,不是你问题)完成上述配置后,PC1可以ping通HTTP2服务器,Client1可以访问HTTP2服务器的HTTP站点,如果不能就要检查上述是否正确。本次实验主要目的是采用双核心的冗余网络,采用MSTP和VRRP技术,在核心层交换机上配置SC1上配置OSPF协议。SC1交换机上配置VRRP。在SC1上配置DHCP。

2301_78859499的博客 1416

CouchDB在window平台安装使用笔记

1.下载安装 地址:http://couchdb.apache.org/#download,直接顺序安装后,点击couchdb.cmd启动couchdb 2. 进入浏览器控制台 浏览器输入:http://127.0.0.1:5984/_utils 注册管理员信息后即可进行相关操作。注意create Database时不要出现大写字母,会添加失败。 3.常规

YcUrial的博客 4110

Figma入门-自动布局

Figma原型图制作内置组件友好,自动布局类似CSS flex,通过布局网格控制对齐、分布、换行等,前端熟悉的同学易上手,参数设置基本一致。

我码玄黄的博客 2173

机器视觉最全面试题总结

空洞卷积(Atrous Convolution)也叫做膨胀卷积、扩张卷积,最初的提出是为了解决图像分割在用下采样(池化、卷积)增加感受野时带来的特征图缩小,后再上采样回去时造成的精度上的损失。空洞卷积通过引入了一个扩张率的超参数,该参数定义了卷积核处理数据时各值的间距。可以在增加感受野的同时保持特征图的尺寸不变,从而代替下采样和上采样a. 是普通的卷积过程(dilation rate = 1),卷积后的感受野为3b. 是dilation rate = 2的空洞卷积,卷积后的感受野为5。

@bangbang的博客 9204

Hyperledger Fabric系列之三:2.2.1部署-运行测试网络-Centos7

承接二: 修改shell脚本 由于dockor-compose1.28.*以后版本读取.env的配置文件有问题,所以./env文件中的配置系统无法生效,需要手动加进去环境变量中: vi ./network.sh #返.env的配置加到前面的export中,如下: export PATH=${PWD}/../bin:$PATH export FABRIC_CFG_PATH=${PWD}/configtx export COMPOSE_PROJECT_NAME=net export IMAGE_T

Lusoel的专栏 6778

手把手教你用GD32F407VET6的EXMC驱动外部SRAM,搞定大内存需求

本文详细介绍了如何使用GD32F407VET6的EXMC外设驱动外部SRAM,解决嵌入式开发中的大内存需求问题。通过硬件连接方案、EXMC时序配置与初始化步骤,以及软件集成与内存管理技巧,帮助开发者快速实现内存扩展。特别适合需要处理图形显示缓冲、音频处理等大内存场景的GD32F407开发者。

weixin_30752699的博客 346

fabric state 数据库由levelDB改为couchDB

CouchDB安装下面我们来说一说这个CouchDB。CouchDB是一个完全局域RESTful API的键值数据库,也就是说我们不需要任何客户端,只需要通过HTTP请求就可以操作数据库了。LevelDB是Peer的本地数据库,那么肯定是和Peer一对一的关系,那么CouchDB是个网络数据库,应该和Peer是什么样一个关系呢?在生产环境中,我们会为每个组织部署节点,而且为了高可用,可能会在一个组...

xxzjwdnlwx的专栏 4486

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

学习记录:fabric(3)-回头再看fabric-sample的test-network

前情提要 前面尝试搭建了网络,现在回头看看这个例子。fabric-sample是个宝藏呀。 test-network,这是官方教程的例子。也是对网络的一键测试。 这个测试网络,从配置到shell命令可以说都是可以进行借鉴参考的。甚至改改就能用(而且更方便)。 现在运行一下基本的操作,看看里面发生了啥。 开始 基本操作包括:网络节点配置和创建(1个orderer,2个peer),创建创世区块和通道,部署链码,链码交互。 测试网络的操作是很简单的,因为都写成了shell,而且配置文件绝对正确。 使用的是fabr

ychyssss的专栏 4171

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Hyperledger Fabric教程(13)-- 集成CouchDB作为状态数据库

fabric默认使用levelDB 配置文件 配置文件中的配置表示将couchdb的配置参数追加到节点的容器中

软件工程小施同学 的专栏 975

超级账本区块链Fabric2.4.4版本搭建过程(完整过程)

前提环境:乌班图20.04环境安装过程就不举例了。将go文件安装包解压到目录/opt/local下面,输入解压命令:接下来设置用户的环境变量:输入命令:sudo vim ~/.profile,如图设置环境变量。,载入环境变量到这里面。最后输入命令:go version,查看go是否安装成功然后输入 sudo reboot 重启虚拟机来安装docker注销并重新登录(我的是重启即可 输入:sudo reboot ),然后添加阿里云的Docker Hub。

lakersssss24的博客 1万+

Fabric 使用 CouchDB

时间: 2020.03.11.21:00 文章目录@[TOC]使用富查询 使用富查询 构造 selector 语句富查询 假如已存入以下数据,其中 age 分别存入 20 ,30 ,40, 50 { "_id": "0000000_AAA1", "_rev": "3-cf7820b259575fc6ed03ef64216e99b3", "age": "20", "~version"...

Edgar_LQS的博客 862

fabric将状态数据库改为CouchDB(完整版)

验证状态数据库(CouchDB) 方案:solo模式创建多机多节点测试环境 192.168.111.139 order 192.168.111.131 peer0.org1 192.168.111.132 peer1.org1 服务器(192.168.111.139) 配置文件 configtx.yaml Copyright IBM Corp. All Rights Reserved. ...

weixin_43562234的博客 1018

在HyperLedger Fabric中启用CouchDB作为State Database

回顾一下我之前的一篇博客,在Fabric 1.0中,我们存在3种类型的数据存储,一种是基于文件系统的区块链数据,这个跟比特币很像,比特币也是文件形式存储的。Fabric1.0中的区块链存储了Transaction订单读写集。而读写集到底是读什么?写什么?其实就是我们的State Database,也叫做World State,里面以键值对的方式存储了我们在ChainCode中操作的业务数据。另外还...

weixin_34210740的博客 592

此类型的变量不支持使用点进行索引如何解决_Hyperledger Fabric使用CouchDB

本教程将介绍将CouchDB用作Hyperledger Fabric的状态数据库所需的步骤。到目前为止,您应该熟悉Fabric概念并探索了一些示例和教程。在Fabric v2.0中作为Alpha功能引入的Fabric链代码生命周期不支持在CouchDB中使用索引。因此,本教程需要先前的生命周期过程来安装和实例化包含CouchDB索引的链代码。下载Fabric Samples的1.4版本以...

weixin_34466671的博客 4137

关于 CouchDB 的一些知识

简介<br />couchDB是这两年很受geek追捧的数据库,作者曾是lotus开发人员。与传统的关系型数据库不同,它号称自己是文档数据库。所谓文档数据库,并不是说它只能存储文本,事实上因为它是一种schemal-less的概念。用过关系型数据库的同学都知道,数据表里定义的每一个字段都定义为一种类型:无论是int,char,datetime。但couchDB的字段只有三个:文档ID、文档版本号和内容。内容字段可以看到是一个text类型的文本,里面可以随意定义数据,而不用关注数据类型,但数据必须以json的

ejzhang的专栏 3319

couchdb入门指南3——数据库备份和迁移

1介绍 CouchDB的优势之一是能够同步同一数据库的两个副本。这使用户可以跨多个节点或数据中心分布数据,还可以将数据更紧密地移到客户端。 复制涉及源数据库和目标数据库,它们可以位于相同或不同的CouchDB实例上。复制的目的是在过程结束时,源数据库上的所有活动文档也都在目标数据库中,并且在源数据库中删除的所有文档也在目标数据库上被删除(如果它们存在) couchdb复制模式为两种:1瞬时复制模式...

qq_38275373的博客 1897

fabric docker配置文件---启用ca 选择couchdb数据库

示例配置文件中 5个组织 每个组织下两个节点 共10个节点 每个节点配置一个couchdb数据库 共配置10个数据库couch节点 每个组织启动一个ca节点 共5个ca节点 1 docker-compose-cli.yaml文件 cli启用tls服务 # Copyright IBM Corp. All Rights Reserved. # # SPDX-License-Identifier: Apache-2.0 # version: '2' volumes: orderer.example.

weixin_41303815的博客 690

hyperledger fabric 智能合约开发(三)------合约接口的数据操作方法

合约接口的数据操作方法 写入区块链数据如果是 struct 结构体,需要序列化成二进制,通常使用 json,其他形式的序列化也可以,只要能反序列化即可(反序列化,是二进制数组变为格式化数据)。Hyperledger fabric levelDB提供基于key/value的数据存储,其中key是字符串,value则是二进制字节数组,Hyperledger的Go API提供了三个方法用于数据存取:P...

Rcvisual的博客 5116
上一篇: Kubernetes学习笔记(四)------部署应用和服务到k8s上
下一篇: hyperledger fabric 智能合约开发(一)------智能合约测试环境
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值