首页 > 编程语言 >Hyperledger fabrics实战项目(区块链溯源)

Hyperledger fabrics实战项目(区块链溯源)

时间:2024-11-09 11:49:03浏览次数:3  
标签:背书 网络 fabrics 交易 Hyperledger 区块 节点

Hyperledger fabrics是什么

Hyperledger fabric是一个全新解决问题的方式,是基于区块链的企业级分布式账本,通过智能合约来解决多个组织间的信任问题.

Hyperledger fabrics特点

  • 模块化 : 组件可定制,可插拔设计,隔离功能
  • 可扩展 : 支持多个共识机制,高性能处理,分区和多通道
  • 超安全 : 身份管理,数据隐私,链码隔离,不可篡改性

Hyperledger重建信任

hyperledger是基于区块链技术,所以可以创建一个自己的货币,但是hyperledger拥有独特的共识协议,让挖矿不再是必须

Hyperledger交易速度

比特币7笔/s , 以太坊几百笔/min , hyperledger 50万笔/min

Hyperledger适合企业开发的理由

premissioned network(授权网络):

每个参与者只有经过授权才能进入该网络,不需要担心51%的攻击,采用了独特的共识协议,每个参与者都需要CA认证

confidential transaction(交易安全):

存在两个组织之间可以创建一个私有频道进行私下交易,不被其他的组织知道,并且其他组织甚至都不知 道这个频道的存在

no cryptocurrency(无数字货币):

不需要挖矿,没有矿工,成本低,验证操作灵活,运行起来绿色环保,不需要大量的算力

pragrammale(可编程的):
chaincode,可以使用智能合约. 得企业能够实现更加高效、安全和透明的业务流程 .

hyperledge可以创建私有链,联盟链,公有链,只要node处于相同的网络节点,他们之间就可以互相发现,并且可以使用hyperledge来让他们达成共识协议,所以其应用场景很广泛,在任何场景都可以找到落地的需求

Hyperledger的倍数策略

Hyperledger 的背书策略(endorsement policy)是指在 Hyperledger Fabric 中,确定哪些组织的背书(即批准)是必需的,以便交易能够被认为是有效并被提交到区块链的规则

  • 定义背书:背书是指组织对交易的认可,只有经过指定组织的背书,交易才能继续进行。
  • 灵活性:背书策略可以根据具体的业务需求进行配置。可以要求所有组织的背书,也可以仅要求部分组织的背书。
  • 示例策略

"AND" 策略:需要所有指定组织的背书(例如,组织 A、B 和 C 都需要背书)。

"OR" 策略:只需满足其中一个组织的背书(例如,组织 A 或 B 或 C)。

结合使用:可以组合多种策略,例如需要组织 A 和 B 的背书,或者组织 C 的背书。

  • 提高安全性和信任:通过确保交易获得多个组织的背书,增强了系统的安全性和参与者之间的信任。
  • 交易的处理:只有满足背书策略的交易,才能被提交到排序服务并最终被添加到区块链

授权网络和MSP和CA

  1. 授权网络
    定义:授权网络是指在 Hyperledger Fabric 中,组织之间建立的网络,参与者通过该网络进行交易和数据共享。
    功能:授权网络确保只有经过授权的参与者能够访问和参与交易。它通常涉及到网络中的所有组织和它们的身份管理。
    特点:网络的治理、参与者的加入和退出都在这个层面进行管理。
  2. 成员服务提供者(MSP)
    定义:MSP 是 Hyperledger Fabric 中的身份管理组件,负责定义和管理网络中成员(组织)的身份。
    功能:MSP 提供身份验证和授权功能,确保只有合法的参与者能够加入网络并进行交易。
    特点:
    每个组织都有自己的 MSP,用于管理该组织内部用户的身份。
    MSP 定义了背书策略和访问控制规则。
  3. 证书颁发机构(CA)
    定义:CA 是负责颁发和管理数字证书的机构,用于证明用户和组织的身份。
    功能:CA 生成和颁发用户和组织的证书,确保它们的身份在网络中是可信的。
    特点:
    CA 可以是集中式的(单个 CA 颁发所有证书)或分散式的(每个组织都有自己的 CA)。
    CA 还负责证书的撤销和更新。
    总结
    授权网络 是网络层面的管理,确保组织之间的合作。
    MSP 是身份管理的核心,定义如何验证和管理组织的身份。
    CA 则是证书管理的具体实施者,提供所需的数字证书来支持身份验证和安全通信。

peer,client,orderer

  1. Peer
    定义:Peer 是 Hyperledger Fabric 网络中的节点,负责维护区块链账本、执行智能合约(链码)和处理交易。
    功能:
    账本管理:每个 Peer 保存一份账本副本,确保数据的一致性和可靠性。
    交易执行:当交易被提议时,Peer 会执行智能合约并生成结果(背书)。
    共识:Peer 参与共识过程,确保网络中交易的有效性和一致性。
    类型:
    普通 Peer:用于执行智能合约和维护账本。
    背书 Peer:专门负责背书(批准)交易。
  2. Client
    定义:Client 是与 Hyperledger Fabric 网络交互的应用程序或用户,它通过 SDK(软件开发工具包)与网络进行通信。
    功能:
    发起交易:Client 可以发起交易请求、查询账本、提交交易等。
    与 Peers 交互:Client 会将交易提议发送到指定的 Peer 进行执行和背书。
    处理响应:Client 收到来自 Peers 的背书结果,并将交易提交给 Orderer 进行排序和上链。
    特点:Client 可以是任何可以与网络交互的应用程序,例如企业系统、移动应用等。
  3. Orderer
    定义:Orderer 是负责排序交易并将其打包成区块的组件。
    功能:
    交易排序:Orderer 接收来自 Clients 的已背书交易,将其排序,并将交易打包成区块。
    广播区块:Orderer 将生成的区块广播到网络中的所有 Peers,确保所有节点的账本保持一致。
    特点:
    Orderer 是 Hyperledger Fabric 网络的核心组件之一,负责确保交易的顺序和一致性。
    采用不同的共识机制,可以根据网络的需求进行配置。
    总结
    Peer:负责执行和维护账本,参与交易的背书和共识。(程序员用的,发起交易)
    Client:应用程序层,与网络交互并发起交易请求。(每个节点用来同步区块链数据)
    Orderer:负责交易的排序和区块的生成,确保网络中所有 Peers 的账本一致。(类似矿工,打包出来的block发送给peer)

Hyperledger工作流程

图示:

原理:

图示是一个网络,三个peer节点,在同一个网络里面,同一个channel上,SDK(nodejs,java,go...)如果需要执行更新账本的操作,SDK先发出一个提案到peer节点,peer节点接受后会先模拟执行,这个模拟操作 是需要多个peer节点都需执行的,然后每个peer节点将执行的结果签名,最后返还给SDK,SDK检查收集所有的背书响应,然后发送给order节点,然后order节点检查签名,背书策略,排序,如果没有问题就发送invocation.正常情况下,所有的peer执行的 是相同的智能合约,所以执行出来的结果也应该相同,如果数据不一致,那么order节点就有理由认为,某个peer节点数据没有同步,或者peer节点被非法篡改.order的排序至关重要,如果同一时刻来自两个SDK的更新提案请求,排序一定要排好.举个例子:第一个proposal是张三花10块钱买大米,在这完全的同一时刻,张三花10块钱买玉米的proposal也发了出来,但是张三只有10块钱,orderer节点排序后,第一个买大米的操作是合法的,但是第二个买玉米的操作就不合法了,因为张三没有这么多钱了.这也是hyperledger如何解决双花问题.

注意: 如果背书策略是需要所有的节点都要同意,只要有一个节点不同意,发出的invocation就会被拒绝,反之,如果背书策略只要有一个同意就行,那么收集一个背书即可.不合法的invocation会被记录在blockcoin上,方便检查问题

标签:背书,网络,fabrics,交易,Hyperledger,区块,节点
From: https://blog.csdn.net/2201_75642274/article/details/143579469

相关文章

  • 【PAT_Python解】1110 区块反转
    原题链接:PTA|程序设计类实验辅助教学平台Tips:以下Python代码仅个人理解,非最优算法,仅供参考!多学习其他大佬的AC代码!importsys#读取输入head,n,k=map(int,sys.stdin.readline().split())#初始化数据,装入字典,最终取值data={}next={}for_inrange(n):......
  • 在区块链技术中,什么是工作量证明(PoW)?
    工作量证明(Proof-of-Work,PoW)是区块链网络中的一种共识机制。它是一种用于验证节点是否为区块链的维护和扩展付出了足够计算资源(即工作量)的方法。通过让节点完成一个具有一定难度的计算任务,来竞争在区块链上添加新区块的权力。简单理解,就像是一场竞赛,参赛者(节点)需要完成一......
  • 比特币与区块链诞生
    区块链诞生之前我们通常把比特币的发明看成是区块链诞生的标志性事件。但区块链就像很多技术一样,并不是凭空出现,通常都会有一些渊源。1991年,比特币发明出来的17年前,斯图尔特·哈伯(StuartHaber)和W.斯科特·斯托内塔(W.ScottStornetta)就提出了区块链的前身。他们创造性地把一系......
  • 区块链专题
    密码学专题训练实验报告实验名称实验三区块链专题一、实验目的1.理解分布式存储的相关概念和原理;2.理解传统分布式系统存在的弊端和安全威胁;3.了解基本的共识机制和共识算法;4.理解并掌握Hash函数设计思想和应用场景;5.理解并掌握公钥密码体制在保护身份信息中的作用;6.了......
  • NocoBase 本周更新汇总:提升表格区块渲染性能等
    汇总一周产品更新日志,最新发布可以前往我们的博客查看。NocoBase目前更新包括两个分支:main和next。main:截止目前最稳定的版本,推荐安装此版本。next:内测版,包含一些未发布的新特性,这个版本可能还不完全稳定,适用于开发者或测试人员,用于提前体验新功能或进行兼容性测试。v1.......
  • 什么是区块链即服务BaaS
    区块链即服务(BaaS)是一种允许用户在云基础设施上创建,部署和管理自己的区块链应用和智能合约的服务。BaaS供应商负责维护区块链的基础设施,提供必要的操作和维护服务,使企业和开发者可以专注于业务应用的开发和运营。BaaS提供者为用户创建和部署专属的区块链网络,包括节点的部署、网......
  • C++在实际项目中的应用第二节:C++与区块链
    第五章:C++在实际项目中的应用第二课:C++与区块链区块链技术因其去中心化、不可篡改和透明性而受到广泛关注。在这门课程中,我们将深入探讨区块链的基本原理、智能合约的开发以及实际应用的案例分析,重点使用C++作为实现语言,以便充分发挥其高效性和强大的功能。1.区块链的......
  • 如何在供应链行业中应用区块链
    区块链技术在供应链行业的应用可以带来多方面的改进,包括提高透明度、增强安全性、简化流程、减少成本等。以下是几个主要的应用场景和具体实施方式:1.产品溯源应用场景:消费者和监管机构要求了解产品的来源和历史,确保产品质量和安全。实施方式:通过在区块链上记录每个生产环节的......
  • NFT区块游戏系统开发: 构建与创新指南
    随着区块链技术的发展,NFT(非同质化代币)游戏成为了游戏产业中的一股新潮流。通过将区块链与游戏相结合,开发者不仅能够创造独特的游戏资产,还能提供真正的所有权和经济激励。本文将为开发者提供构建NFT区块游戏系统的详细指南,涵盖关键要素、步骤以及创新建议。一、NFT游戏的概述......
  • ReactOS系统中平衡二叉树。给定地址超导其所属区块MmFindRegion()
    系列文章目录PMM_REGIONNTAPIMmFindRegion(PVOIDBaseAddress,PLIST_ENTRYRegionListHead,PVOIDAddress,PVOID*RegionBaseAddress);宏函数//给定地址找到其中所属区块#defineCONTAINING_RECORD(address,type,field)((typeFAR*\(PCHAR)(address)-(PCH......