在Hyperledger Fabric v0.6中,可以实施供应链应用程序,允许跟踪出处并避免双重花费(即,分配/销售项目比它更多),从而避免伪造.例如,当供应商向分销商提供500个单位的项目时,该数据存储在分类帐中.分销商可以通过调用"转移"功能将指定数量的物品分配给特定的经销商.传递函数执行以下操作:
通过这种方法,分销商不能分配比(例如,分发伪造/走私物品)更多(即,双倍支出).
此外,消费者可以通过查看分类帐来追踪出处(例如,从经销商处购买的物品,该经销商来自供应商).
但是,由于它使用单个分类帐,因此隐私是个问题(例如,经销商2可以查看经销商1订购的商品数量等)
建议的实施隐私的解决方案是在Hyperledger Fabric v1.0中使用多个通道.在这种方法中,供应商和分销商使用单独的渠道/分类帐.同样,分销商和经销商1使用单独的渠道/分类帐,分销商和经销商2使用另一个单独的渠道/分类帐.
但是,由于经销商(即经销商1和经销商2)无法访问供应商和分销商的渠道/分类帐,因此经销商不知道供应商向分销商提供的实际数量.例如,如果供应商仅向分销商提供了500个数量,则分销商可以向经销商索赔其从供应商处采购的1000个数量.采用这种方法,双重消费/假冒将无法避免.
此外,如何实施物源追踪?消费者是否可以访问所有渠道/分类账?如果是这种情况,则隐私再次成为问题.
鉴于此,我们如何在Hyperledger Fabric v1.0中使用多个渠道,同时允许跟踪来源并禁止双重支出?
配置Fabric网络以更新锚点对等体时有步骤.每个组织都有一个锚点对等体,但无法理解为什么我们需要锚点对等体.
我有一些关于HF CLI docker容器和一些CLI命令的问题.
首先,有人可以在docker容器的上下文中解释这个容器的用途,该容器与HF生态系统所需的其他docker容器一起启动.我如何查询我的业务网络组织,不同的同行以及这些同行的链代码状态?
第二,当我安装一个发布peer chaincode install
CLI命令的链代码时,该代码安装在哪个对等端(如果我有5个对等体连接到org1.example.com组织,上面的对等命令将安装目标链代码)?
和第三重要的是,如果我有我的业务网络规范只是一个组织,它处理多个同行和渠道,当我尝试实例化安装的代码发布peer chaincode instantiate
命令,如何确定代言策略(HTTP://hyperledger-fabric.readthedocs .io/en/latest/endorsement-policies.html)在-P参数之后只有一个组织在认可表达中?
谢谢您的帮助!
编辑1: 关于第3个答案的一个更新.在实例化链代码时,您有一个组织维护对等方和通道,您可以省略支持策略参数(-p).在这种情况下,如果任何同行认可,交易将被认可
我在Hyperledger Fabric v1.0上工作,并希望让Getting Setup在多个主机上运行.现在,2会很棒.
这是我想要做的:
我在第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 Caliper框架测量在Hyperledger结构上运行的Hyperledger编写器网络性能?如果是,您可以指导我如何更改配置以将Caliper连接到运行Hyperledger作曲家网络?
hyperledger hyperledger-fabric hyperledger-composer hyperledger-caliper
假设我有一个Hyperledger-Fabric应用程序,其中不同的成员可以评论彼此的个人资料图片.
进一步假设有三个成员("组织"):Adam,Bob和Sara.
此外,在Adam和Bob Fabric之间使用了新的"私有数据"功能.Adam和Sarah之间也使用了这个功能.
假设有一个名为"addCommentToProfile"的事务,可用于向其他配置文件添加注释.
假设Sarah发送交易"addCommentToProfile",添加评论"你的头发看起来非常好!" 到Adam的个人主页.
交易的结果(一条新的评论"你的头发看起来非常好!"在亚当的简介上)对鲍勃来说是不可见的?
我的理解是鲍勃看不到评论.因为就我而言,使用私有数据需要拥有一个单独的世界状态.因此,亚当将有一个与莎拉相关的简介和另一个与鲍勃相关的简介.
我的理解是否正确?
如果我有一个组织orgA
,并且在这个组织下我有2个用户:user1
并且user2
,还有1个对等orgA
,我们可以调用它peer0
.
现在想象一下,user1
证书是orgA's
msp/admincerts
forlder,这使user1
管理员orgA
.另一方面,让我们说user2's
证书在peer0's
msp/admincerts
文件夹中,这使user2
管理员peer0
.
我的问题是,user1
和之间的权限有什么不同user2
,我的意思是什么user1
可以做什么,什么user2
做不到,反之亦然?
我也在使用fabic ca
并node sdk
与网络互动.在我的例子中,当我从nod sdk注册fabric ca的bootstraped用户(admin/adminpw),然后创建创建通道请求时,它工作,但是当我进行加入通道请求时它失败了(因为这个用户没有权限).当我试图理解为什么会发生这种情况时,我发现如果我向用户发出加入请求证明该证书不在对等的msp/admincerts文件夹中,那么这种用户就没有权限让对等者加入频道.所以唯一的办法是我必须将注册的管理员证书复制到peer0的msp/admincerts文件夹中,然后我认为它会起作用,但这是使它工作的唯一方法,还是有其他方法可以避免复制/粘贴它从sdk,或创建新的配置更新事务?
另外我无法理解是什么让这个用户能够创建频道?bootsraped用户fabric ca
有哪些权限?
我正在尝试在 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) 运行Hyperledger Fabric v1对等体的最低硬件要求是什么?