标签: hyperledger-fabric

在Hyperledger Fabric v1.0中使用多个通道提供物源跟踪时,我们如何实施隐私?

在Hyperledger Fabric v0.6中,可以实施供应链应用程序,允许跟踪出处并避免双重花费(即,分配/销售项目比它更多),从而避免伪造.例如,当供应商向分销商提供500个单位的项目时,该数据存储在分类帐中.分销商可以通过调用"转移"功能将指定数量的物品分配给特定的经销商.传递函数执行以下操作:

  • 检查分销商是否有足够数量的物品分配给特定的经销商(即,如果要转移的数量<=当前数量)
  • 更新分类帐(即扣除分销商的当前数量并将其添加到经销商的当前数量)

通过这种方法,分销商不能分配比(例如,分发伪造/走私物品)更多(即,双倍支出).

此外,消费者可以通过查看分类帐来追踪出处(例如,从经销商处购买的物品,该经销商来自供应商).

但是,由于它使用单个分类帐,因此隐私是个问题(例如,经销商2可以查看经销商1订购的商品数量等)

建议的实施隐私的解决方案是在Hyperledger Fabric v1.0中使用多个通道.在这种方法中,供应商和分销商使用单独的渠道/分类帐.同样,分销商和经销商1使用单独的渠道/分类帐,分销商和经销商2使用另一个单独的渠道/分类帐.

但是,由于经销商(即经销商1和经销商2)无法访问供应商和分销商的渠道/分类帐,因此经销商不知道供应商向分销商提供的实际数量.例如,如果供应商仅向分销商提供了500个数量,则分销商可以向经销商索赔其从供应商处采购的1000个数量.采用这种方法,双重消费/假冒将无法避免.

此外,如何实施物源追踪?消费者是否可以访问所有渠道/分类账?如果是这种情况,则隐私再次成为问题.

鉴于此,我们如何在Hyperledger Fabric v1.0中使用多个渠道,同时允许跟踪来源并禁止双重支出?

hyperledger hyperledger-fabric

10
推荐指数
2
解决办法
762
查看次数

什么是Fabric中的Anchor Peer?

配置Fabric网络以更新锚点对等体时有步骤.每个组织都有一个锚点对等体,但无法理解为什么我们需要锚点对等体.

hyperledger-fabric hyperldger-fabric-peer

10
推荐指数
2
解决办法
5210
查看次数

Hyperledger Fabric CLI泊坞窗容器

我有一些关于HF CLI docker容器和一些CLI命令的问题.

首先,有人可以在docker容器的上下文中解释这个容器的用途,该容器与HF生态系统所需的其他docker容器一起启动.我如何查询我的业务网络组织,不同的同行以及这些同行的链代码状态?

第二,当我安装一个发布peer chaincode installCLI命令的链代码时,该代码安装在哪个对等端(如果我有5个对等体连接到org1.example.com组织,上面的对等命令将安装目标链代码)?

和第三重要的是,如果我有我的业务网络规范只是一个组织,它处理多个同行和渠道,当我尝试实例化安装的代码发布peer chaincode instantiate命令,如何确定代言策略(HTTP://hyperledger-fabric.readthedocs .io/en/latest/endorsement-policies.html)在-P参数之后只有一个组织在认可表达中?

谢谢您的帮助!

编辑1: 关于第3个答案的一个更新.在实例化链代码时,您有一个组织维护对等方和通道,您可以省略支持策略参数(-p).在这种情况下,如果任何同行认可,交易将被认可

hyperledger hyperledger-fabric

10
推荐指数
1
解决办法
3534
查看次数

如何使用Docker设置多个主机的超级分层结构?

我在Hyperledger Fabric v1.0上工作,并希望让Getting Setup在多个主机上运行.现在,2会很棒.

这是我想要做的:

  1. Host1:启动一个订货人和两个同行
  2. Host2:启动1个对等体
  3. Host2:客户端创建一个通道(使用通过良好主机IP更新的channel_test.sh)并加入所有3个对等体
  4. Host1:调用给定示例的de deploy.js来部署链代码

我在第3步遇到了问题.我认为频道创建有效,但在我的同行日志中,我对3个对等体有相同的警告:

Remote endpoint claims to be a different peer, expected [host1 IP:8051] but got [172.17.0.4:7051]
Failed obtaining connection for 172.31.9.126:8051, PKIid:[49 55 50 ...] reason: Authentication failure
Run Code Online (Sandbox Code Playgroud)

看起来他们无法相互沟通.知道问题出在哪里?

我仍然尝试了我的第4步,但我不能部署它,除非我从config.json中删除host2:peer1.即便如此,我只能从host1:peer0查询,而不是host1:peer2.

以下是我用来设置网络的命令:

主持人1:订货人

docker run --rm -it --name orderer -p 8050:7050 
-e ORDERER_GENERAL_LEDGERTYPE=ram 
-e ORDERER_GENERAL_BATCHTIMEOUT=10s 
-e ORDERER_GENERAL_BATCHSIZE_MAXMESSAGECOUNT=10 
-e ORDERER_GENERAL_MAXWINDOWSIZE=1000 
-e ORDERER_GENERAL_ORDERERTYPE=solo 
-e ORDERER_GENERAL_LOGLEVEL=debug 
-e ORDERER_GENERAL_LISTENADDRESS=0.0.0.0 
-e ORDERER_GENERAL_LISTENPORT=7050 
-e ORDERER_RAMLEDGER_HISTORY_SIZE=100 
sfhackfest22017/fabric-orderer:x86_64-0.7.0-snapshot-c7b3fe0 orderer
Run Code Online (Sandbox Code Playgroud)

Host1:Peer0

docker run --rm …
Run Code Online (Sandbox Code Playgroud)

hyperledger hyperledger-fabric

9
推荐指数
2
解决办法
1万
查看次数

了解Hyperledger结构中的各种证书

您好我正在尝试使用hyperledger结构进行块链实现.我做了第一次网络演示,并在其中找到了很多证书.我已经尝试在下面的图片中按层次排列它们. 在此输入图像描述

我有一些与他们有关的问题

  1. 为什么需要所有这些不同类别的证书.像不同的msp tls一样,它们生成一次并在不同位置复制?
  2. 如何在不同的场景中使用这些不同的证书(如注册和通信).
  3. 如果我们不使用cryptogen,那么某些第三方可以生成所有这些证书.
  4. fabric-ca或任何其他第三方CA如何在这里提供帮助.

TIA.

ca hyperledger hyperledger-fabric hyperledger-composer

9
推荐指数
1
解决办法
2801
查看次数

使用Hyperledger Caliper测量Hyperledger Composer性能

是否可以使用Hyperledger Caliper框架测量在Hyperledger结构上运行的Hyperledger编写器网络性能?如果是,您可以指导我如何更改配置以将Caliper连接到运行Hyperledger作曲家网络?

hyperledger hyperledger-fabric hyperledger-composer hyperledger-caliper

9
推荐指数
2
解决办法
1319
查看次数

Hyperledger Fabric:私人数据和世界国家

假设我有一个Hyperledger-Fabric应用程序,其中不同的成员可以评论彼此的个人资料图片.

进一步假设有三个成员("组织"):Adam,Bob和Sara.

此外,在Adam和Bob Fabric之间使用了新的"私有数据"功能.Adam和Sarah之间也使用了这个功能.

假设有一个名为"addCommentToProfile"的事务,可用于向其他配置文件添加注释.

假设Sarah发送交易"addCommentToProfile",添加评论"你的头发看起来非常好!" 到Adam的个人主页.

交易的结果(一条新的评论"你的头发看起来非常好!"在亚当的简介上)对鲍勃来说是不可见的?

我的理解是鲍勃看不到评论.因为就我而言,使用私有数据需要拥有一个单独的世界状态.因此,亚当将有一个与莎拉相关的简介和另一个与鲍勃相关的简介.

我的理解是否正确?

hyperledger-fabric

9
推荐指数
1
解决办法
403
查看次数

Hyperledger Fabric用户权限之间的差异

如果我有一个组织orgA,并且在这个组织下我有2个用户:user1并且user2,还有1个对等orgA,我们可以调用它peer0.

现在想象一下,user1证书是orgA's msp/admincertsforlder,这使user1管理员orgA.另一方面,让我们说user2's证书在peer0's msp/admincerts文件夹中,这使user2管理员peer0.

我的问题是,user1和之间的权限有什么不同user2,我的意思是什么user1可以做什么,什么user2做不到,反之亦然?

我也在使用fabic canode sdk与网络互动.在我的例子中,当我从nod sdk注册fabric ca的bootstraped用户(admin/adminpw),然后创建创建通道请求时,它工作,但是当我进行加入通道请求时它失败了(因为这个用户没有权限).当我试图理解为什么会发生这种情况时,我发现如果我向用户发出加入请求证明该证书不在对等的msp/admincerts文件夹中,那么这种用户就没有权限让对等者加入频道.所以唯一的办法是我必须将注册的管理员证书复制到peer0的msp/admincerts文件夹中,然后我认为它会起作用,但这是使它工作的唯一方法,还是有其他方法可以避免复制/粘贴它从sdk,或创建新的配置更新事务?

另外我无法理解是什么让这个用户能够创建频道?bootsraped用户fabric ca 有哪些权限?

hyperledger-fabric

9
推荐指数
1
解决办法
318
查看次数

Hyperledger 测试网络 - 无法创建新连接:超出上下文截止日期

我正在尝试在 Hyperledger Fabric 示例的测试网络中创建一个通道:

localhost:~/fabric-samples/test-network$ ./network.sh createChannel
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

Error: failed to create deliver client for orderer: orderer client failed to connect to localhost:7050: failed to create new connection: context deadline exceeded
!!!!!!!!!!!!!!! Channel creation failed !!!!!!!!!!!!!!!!

Error !!! Create channel failed
Run Code Online (Sandbox Code Playgroud)

所有容器都在 Docker 上运行:

localhost:~/fabric-samples/test-network$ docker ps -a
CONTAINER ID        IMAGE                               COMMAND             CREATED             STATUS              PORTS                              NAMES
96b7f8e1b2a8        hyperledger/fabric-peer:latest      "peer node start"   5 minutes ago       Up 5 minutes        7051/tcp, 0.0.0.0:9051->9051/tcp   peer0.org2.example.com
79a2c0ac6785        hyperledger/fabric-peer:latest      "peer node start"   5 minutes ago       Up 5 …
Run Code Online (Sandbox Code Playgroud)

docker hyperledger hyperledger-fabric

9
推荐指数
1
解决办法
1380
查看次数

运行Hyperledger Fabric peer的硬件要求是什么?

运行Hyperledger Fabric v1对​​等体的最低硬件要求是什么?

hyperledger hyperledger-fabric

8
推荐指数
1
解决办法
5024
查看次数