1.区块链100讲:Fabric的签名PBFT算法
2.一文解惑超级账本HyperLedger
3.18-HyperLedger-Fabric基础-HyperLedger SDK for Node.js 简介
4.探寻 hyperledger fabric 之关键概念
5.9-HyperLedger-Fabric原理-MSP详解(一)-MSP基础
6.forgeåfabricçåºå«
区块链100讲:Fabric的PBFT算法
在公有链以外的环境,Fabric的源码PBFT算法发挥重要作用。不同于公有链中常用的签名POW和POS算法,PBFT算法在私有链和联盟链中表现出了独特的源码优势,其无需加密货币的签名发行,但需要对节点加入实施权限控制,源码庄家抬轿源码公式无法抵抗公有链中频繁的签名节点动态变化带来的威胁,例如女巫攻击。源码PBFT算法是签名Fabric系统的核心,旨在确保所有正常replicas节点执行相同的源码序列操作。
系统模型中,签名异步分布式环境和网络消息的源码不确定性,要求节点间的签名独立失效和消息签名机制。在安全层面上,源码PBFT算法在节点数R大于等于3f+1时能保持安全性与活性。签名主节点的选举遵循p = v mod R规则,每次view change时,v编号递增。quorums是系统关键,确保信息可靠保存,至少f+1个节点共同存取信息,保证至少一个正确的replica存入信息。
PBFT算法通过三阶段协议确保请求序列一致执行:pre-prepare、prepare和commit阶段。在prepare阶段和commit阶段,即使发生view change,请求序列也得以保留,从而保证请求序列的连续性。执行流程涉及主节点向备份节点广播pre-prepare消息,备份节点在满足特定条件后进入prepare阶段,最终在commit阶段广播commit消息,完成请求的确认。
算法通过设置预准备、准备和commit阶段的条件,确保正常节点对请求序列达成一致。watermark机制限制主节点分配的编号范围,避免恶意行为。客户端等待f+1个副本结果作为最终结果,确保数据一致性。
为了节省存储空间,系统实施垃圾回收策略。当一个节点执行请求后,广播消息确认,当全网2f+1个节点执行完毕,可以删除相应日志。pc端影视源码通过k条请求合并确认,当2f+1个检查点执行完毕,可将相关日志删除,形成稳定检查点。检查点协议与水线机制协同工作,更新水线值,限制接收消息范围,确保不同节点间的协调。
在主节点故障情况下,触发view change协议。通过记录上一view的状态,包括已准备和已预准备的请求,新主节点从稳定检查点开始进行三阶段协议,处理后续请求。选择已committed请求作为起始状态,确保请求序列的连续性与一致性。
综上所述,PBFT算法在Fabric系统中扮演了至关重要的角色,通过其独特的机制确保了分布式环境中数据的一致性和安全性。它在私有链和联盟链中提供了可靠的事务处理能力,为区块链技术在企业级应用中开辟了广泛的可能性。
一文解惑超级账本HyperLedger
了解超级账本(Hyperledger)及其在区块链世界的独特地位,我们需要跳出公有链与联盟链的二元思维,认识到每种技术都有其适用场景与价值。联盟链(私有链)被设计为现有中心化商业团体之间进行B2B业务活动的手段和渠道,其性能与商业机密保护能力使其难以直接迁移到公有链上。尽管公有链如比特币或以太坊拥有广泛的影响力,但联盟链(私有链)的存在,表明了区块链技术在不同场景下能发挥的多样化作用。 Hyperledger Fabric作为IBM发起的一个联盟链项目,于年底移交给Linux基金会,成为开源项目。Hyperledger基金会汇集了IBM、Intel、思科等众多大牌成员,孕育了众多区块链项目,Fabric是其中最为知名的一个。本文将深入探讨Fabric的架构设计、多链多通道功能、账本设计、链码编写与部署流程,以及在实际应用中遇到的挑战与不足。Fabric架构
Fabric架构经历了从0.6版本到1.0版本的迭代,0.6版本主要适用于商业验证场景,查看源码 网址头无法应用于真实业务环境。其关键问题是所有功能集中于peer节点,缺乏扩展性、安全性和隔离性。在1.0版本中,Peer节点的功能被拆分,共识服务从Peer节点独立出来,由Orderer节点提供可插拔的共识服务。更显著的变化是引入了多通道(multi-channel)功能,实现了多业务的隔离,使得Fabric在0.6版本基础上实现了质的飞跃。 Fabric的核心架构包括两个关键组件:Peer和Orderer。它们分别是一个二进制程序。在Fabric网络中,参与者可以选择部署一个或多个Peer、Orderer,或者同时部署两者。所有Peer和Orderer节点通过通信与连接,形成了Fabric的网络。每个Peer节点存放全量数据(账本),构成完整的区块链链。为了防止舞弊,查询数据时必须确保来自自己的Peer。网络中存在大量的Peer节点,每个节点存放全量数据,如何确保数据正确性?Fabric通过Orderer节点之间的协商来实现数据的正确传播。架构细节与功能
Fabric架构中的System Chain与Orderer的存在,使得“控制信息的传播范围”成为可能。通过Orderer节点,数据传播范围得到了控制,这为实现私有和机密交易奠定了基础。Fabric的私有和机密交易功能正是基于System Chain与Orderer的结合实现的。 参与者可以在Fabric网络中创建属于小团体的私链(Channel),每个Channel成员名单记录在system chain中,Orderer节点可以将数据只分发给对应Channel中的Anchor Peer。在最新版本1.2中,引入了SideDB中的私有数据存储,进一步强化了数据隔离与安全性。 Hyperledger Fabric v1.2版本的重点是引入了私有数据存储机制,强化了在permissioned networks上进行private confidential transactions的能力。对比比特币网络的全公开网络特性,Fabric的定位更偏向于商业应用,强调的是企业与企业之间的联盟链。在Fabric中,像甲方提供源码所有参与者都是经过批准和实名认证的,这与提倡“匿名”的公链形成了鲜明对比。合约与智能合约
为了确保账本的有效性和安全,每个参与者保存的正确数据(账本)还需智能合约的加持。合约规定了数据修改的规则、约束条件,以及触发修改的条件。智能合约是分布在每个Peer上的容器,确保了数据修改的可控性和安全性。Fabric中的合约升级和改动需要满足特定的约束,如所有签署合约的参与者一致同意。合约的执行流程涉及交易发起、智能合约调用、结果校验、签名验证、区块打包和广播等多个步骤,确保了交易的完整性和一致性。MSP与账号认证
Fabric网络中的访问控制通过MSP(Membership Service Provider)实现,MSP包含了账号的私钥和证书,管理了组织、组件和用户的身份认证。每个组织和角色拥有特定的MSP目录,用于存储证书和私钥。MSP的分级管理确保了网络层面和角色层面的准入控制,同时,Fabric还支持TLS证书用于加密通信过程,保障了数据传输的安全性。交易执行流程
区块链账本由Peer节点维护,订单服务集群负责交易排序,只保留处理过程中的部分信息。在Hyperledger Fabric系统中,节点的物理设备与逻辑概念分离,设计上允许Endorsing Peer校验客户端签名,执行智能合约代码,模拟交易后返回结果给客户端。客户端将结果发送给Ordering Service,然后Ordering Service将交易打包成区块,广播至Committing Peer和背书者进行验证写入区块链。完整的交易流程确保了数据的最终一致性。概念解析与Hyperledger Fabric的优势
Hyperledger Fabric的概念包括智能合约(chaincode)、交易(transaction)、世界状态(world state)、背书(endorse)、背书策略(endorsement policy)、金融源码犯法吗Peer节点、Channel、PKI、MSP、组织(org)等。理解这些概念对于深入掌握Fabric架构至关重要。 Hyperledger Fabric针对企业级应用提供了一系列优势,包括确保企业合法性质、提供可伸缩、可扩展的架构、增强灵活性、实现智能化的数据分区、支持不可变分布式账本的自助查询、采用模块化架构支持插件组件、以及保护数字密钥和敏感数据的能力。这些特性使得Fabric成为企业级区块链解决方案的首选之一,尤其适用于金融、医疗等行业,以及需要遵守数据保护法规的场景。-HyperLedger-Fabric基础-HyperLedger SDK for Node.js 简介
本文旨在详细介绍HyperLedger SDK for Node.js,针对区块链应用开发,提供一套功能丰富的API接口,用于与Hyperledger Fabric v1.0进行交互。
区块链应用开发的核心包括应用程序开发与智能合约开发,应用程序开发需借助SDK实现与区块链网络的交互,而智能合约则可使用如Go语言等编程语言实现。
Hyperledger Fabric 1.0的开发模型包括应用程序接收用户请求,可能调用智能合约或直接访问区块链,智能合约执行时可能对区块链进行操作并产生事件。
Hyperledger SDK for Node.js提供便捷的API接口,帮助开发者与Hyperledger Fabric区块链网络进行互动。该SDK专为Node.js环境设计,支持丰富的操作功能,如与区块链网络通信、智能合约管理等。
SDK的组成包含两个主要部分,即FabricClient和Config模块。FabricClient作为应用程序入口,提供通道管理、链码管理、数据存储和密码学相关功能,每个实例对应一个区块链网络。Config模块用于初始化FabricClient,通过离线获取并传递配置信息,包括可信根证书、排序服务节点信息等。
通道管理模块帮助创建隔离不同链上交易的实例,每个通道内的节点接收不同交易。通道初始化后,通过请求排序服务节点获取配置区块。
Peer模块代表发送背书请求、执行交易查询的节点,包含节点名称、地址、角色和注册证书等信息。Orderer模块则是发送交易进行排序的节点,定义了发送原子广播请求和获取区块的接口。
User模块代表实体,需生成注册证书和签名密钥才能进行部署链码、提交交易和查询交易等操作。注册证书可以通过第三方CA获取或使用fabric-ca模块生成。
KeyValueStore模块用于存储应用程序敏感信息,如用户私钥、证书信息等。EventHub模块封装了与Peer节点交互的事件流,接收异步通知事件。Logger模块提供日志接口,用于日常开发过程中的日志记录。
此外,fabric-ca-cilent模块专门用于管理区块链网络内所有实体的身份,包括身份注册、注销等操作,以及证书管理,如ECerts、TCerts的发放和注销。
最后,对于应用开发人员来说,官方提供了多种语言版本的SDK,如Node.js、Java、Python等,开发者可根据实际需求选择合适的SDK进行开发。
探寻 hyperledger fabric 之关键概念
本文深入探讨了超级账本(Hyperledger Fabric)的核心概念与关键特性,旨在为开发者和研究者提供全面的理解。超级账本主要由两个部分组成:世界状态(World State)和交易日志(Tx Log)。世界状态描述账本当前的全貌,而交易日志记录了所有事务随时间的动态变化,最终这些变化被永久记录在区块链上。 超级账本具有以下几个关键特性: 每个通道拥有一个不可篡改的账本,通道内所有节点共享相同副本。 更新、新增、删除、查询等操作涉及世界状态和区块链,确保数据的一致性。 隐私保护:账本在整个通道内共享,但可以与特定节点建立私有通道,实现数据隔离。 安全与成员服务:确保网络内的身份验证和权限管理。 共识机制:不仅涉及交易顺序的一致性,还包括提议、背书、排序、验证和上链的完整过程,确保交易周期的正确性。 通道(Channel)概念类似于在Fabric网络中构建的子网络或子区块链,如一个公司网络中,不同部门(如甲部门、乙部门等)可以视为独立的通道,形成一种类似于“多链宇宙”的结构,甚至支持多链间的跨链操作。 Fabric网络构建基于官方文档提供的示例,它通过一系列步骤从概念层面构建网络,将网络分解为多个小的通道,每个通道具备独立的区块链功能和基础设施。 网络创建流程包括定义通道配置文件(CCx),创建节点、应用程序和链码等组件,最终形成一个多链网络结构,其中每个组织、节点和应用程序依据配置文件加入多个通道,实现相互独立的实例。 身份(Identity)在Fabric中扮演重要角色,通过X.数字证书实现验证。数字身份不仅是一个名字,还包含与之关联的属性,形成身份和属性的集合体,类似于密码学中的基于属性加密(ABE)概念。 策略(Policy)在Fabric中实现目标规则集合,旨在协调成员对状态修改的一致性,如成员加入、退出规则、区块数据结构变更、智能合约背书协议等。策略分为接入访问控制列表(ACLs)、智能合约背书策略和通道配置修改策略。 SignaturePolicy和ImplicitMeta policies是策略的两种具体形式,用于定义成员的签名要求和隐式元数据策略。构造SignaturePolicy时,策略使用protobuf形式表达,定义签名策略需要满足的条件。 背书策略决定了通道中哪些节点需要执行链码并背书执行结果,确保交易的合法性。Fabric提供了链码级别、集合级别和键级别的背书策略,允许更细粒度的控制。 MSP(Membership Service Provider)是Fabric中的信任管理组件,负责成员的身份认证和准入控制。每个组织可以有多个MSP规则,一个组织对应一个Channel MSP,用于管理该组织的成员及其权限。 节点在Fabric网络中是物理实体设备,包括普通节点和排序节点。普通节点执行应用层操作,排序节点负责交易排序并打包成区块广播给其他节点。 账本(Ledger)在Fabric中存储了所有交易的详细记录,与世界状态和区块链协同工作,确保数据的完整性和一致性。 排序服务(Ordering Service)负责交易的排序、提交和验证,确保整个网络中的账本一致性。Fabric采用多种排序服务实现方案,包括基于Raft、Kafka和Solo的算法。 智能合约(Chaincode)在Fabric中通过链码(Chaincode)实现,它运行在隔离容器中,通过应用程序可以初始化和管理账本状态。智能合约执行需要特定的背书策略,确保其在指定条件下执行。 链码的生命周期包括部署、安装、升级等阶段,由所在通道的组织批准并管理。客户端SDK提供操作链码的界面,支持链码的安装、调用以及管理。 针对数据隐私问题,Fabric通过私有数据(Private Data)实现,允许对数据访问进行控制,确保未授权用户无法查看私有信息。访问控制列表(ACL)定义了策略与资源之间的关联,实现访问控制效果。 总之,Hyperledger Fabric提供了一种灵活、安全、可扩展的区块链平台,通过其独特的设计和机制,实现了高效的数据管理和交易处理能力,适用于需要受控信任环境的业务场景。9-HyperLedger-Fabric原理-MSP详解(一)-MSP基础
在理解Fabric架构时,MSP(Membership Service Provider)作为权限管理的核心组成部分,扮演着重要角色。本文将深入探讨MSP的基础概念、作用、结构以及实践应用,以帮助读者构建对MSP的全面认知。
一、基本概念
MSP,全称为Membership Service Provider,意为成员关系服务提供者。它主要负责成员身份的管理与验证,构建在Fabric网络中的信任体系。MSP涉及到的几个关键术语包括证书、成员、组织、联盟与MSP。
证书(Certificate)是MSP的基础,采用ECDSA算法生成,遵循X.标准规范,用于证明成员身份。每个实体、组织拥有独立身份证书,方便基于组织实现灵活的权限管理。
成员(Member)是指具有网络唯一根证书的合法独立实体,如Peer节点、应用客户端等。
组织(Organization)代表一组共享信任根证书的成员,实现高信任度的内部交互。组织内成员可为普通成员或管理员,管理员拥有更高权限,用于组织配置管理。
联盟(Consortium)由多个组织构成,为多个组织相互合作的场景提供服务,支持数据安全交互。
MSP(成员关系服务提供者)提供抽象化的成员操作框架,管理证书颁发、校验以及用户认证背后的所有密码学机制与协议。
二、MSP的作用
MSP的核心作用在于管理成员身份、验证签名与授权,实现基于身份证书的权限验证。一个Fabric区块链网络可以由一个或多个MSP控制,提供模块化的成员操作与跨不同成员标准的互操作性。
三、MSP结构
Fabric中的MSP概念代表身份验证实体,用于实现对不同资源(成员、节点、组织等)基于身份证书的权限验证。MSP结构包括但不限于:信任的根证书、中间件证书、组织单元列表、管理员身份证书、证书撤销列表、私钥库与TLS根证书列表等。
四、MSP实践
MSP实现用户管理与权限认证的过程包括证书生成、配置文件设置等步骤。初始化MSP实例需生成用户权限管理与签名认证证书,并在Peer、Orderer、Channel等组件的配置文件中指定相关证书信息。注意,所有渠道成员均参与此过程。
五、总结
本文介绍了MSP的基本概念、作用、结构以及实践应用,旨在帮助读者全面理解MSP在Fabric系统中的角色与功能。MSP作为权限管理的核心,对构建安全、高效的企业级区块链网络至关重要。
forgeåfabricçåºå«
forgeåfabricçåºå«å¦ä¸ï¼forgeã大åèç模ç»ãçæ¬æ¯è¾èï¼æ´æ°ä¹æ ¢ï¼ä½æ¯æ¨¡ç»ç©æ³æ¯è¾ä¸°å¯ãfabricã涵çå¿«ç §çæ¬ãçæ¬æ°æ´æ°å¿«ãèä¸è¿è¡è½»ä¾¿æµç¨ã
ä¸ãforgeåºæ¬éä¹
forgeè±[fɔ:dʒ]ï¼ç¾[fɔ:rdʒ]n.é»é 车é´;çéçï¼é»éç;éå éºï¼éå å·¥åºï¼vi.é»å¶ï¼é»é ;伪é ;ç¯ä¼ªé 罪ï¼vt.é»é ;伪é ;æé ï¼ç¼é ;å¶è®¢ã第ä¸äººç§°åæ°ï¼forgesï¼è¿å»åè¯ï¼forgedï¼å¤æ°ï¼forgesï¼ç°å¨è¿è¡æ¶ï¼forgingï¼è¿å»å¼ï¼forgedã
forgeï¼è±è¯åè¯ï¼ä¸»è¦ç¨ä½å¨è¯ãåè¯ï¼ä½å¨è¯æææ¯âé»é ï¼é¸é ï¼ç¼é ï¼è°è¦åæï¼ä¼ªé ï¼ç¨³æ¥åè¿ï¼åé移å¨âï¼ä½åè¯æææ¯âé»éçï¼é»é 车é´ï¼é»é åï¼éå éºï¼ä¼ªé è âï¼åæ¶ä¹æ游æãMinecraftãä¸ä¸æ¨¡ç»è¿è½½å¨APIã
äºãä¾å¥
1ãThey forge the signatures of consumers.ä»ä»¬ä¼ªé æ¶è´¹è çç¾åã
2ãRooteinâUnlike Habit Forge, this is an ongoing habit tracker.There is also a mobile version for you to track your habits on the go.æåæº--ä¸åé¸é ä¹ æ¯ï¼è¿æ¯ä¸ä¸ªæ£å¨è¿è¡çä¹ æ¯è®°å½ãå®è¿æä¸ä¸ªææºçæ¬æ¥è®°å½ä½ æ£å¨è¿è¡çä¹ æ¯ã
3ãIn my experience, helping employees do more of what they do best and enjoy the most will forge an all-important connection to your business.以æçç»éªï¼å¸®å©åå·¥åæ´å¤ä»ä»¬åæ好çåæå欢åçäºæ ä¼ä½ çä¼ä¸æé ä¸ä¸ªé常éè¦çè¿æ¥ã
ä¸ãfabricåºæ¬éä¹
fabricçåé³ï¼ç¾[ˈfæbrɪk]ï¼è±['fæbrɪk]ï¼n.ç»ç©ï¼å¸æï¼ï¼ç¤¾ä¼ãæºæççï¼ç»æãå¤æ°ï¼fabricsã
åãä¾å¥
1ãAt the bottom we have an example of that copper tone. The fabric has been Bloch printed and brushed on the back as well.å¨æä¸é¢æ们æä¸ä»¶æ ·å带æé»éè²è°ãè¿åé¢æç»è¿æ»¡å°å°è±ï¼åé¢ææç»æ´çã
2ãA flat piece of coarse fabric or other material used for wiping one's shoes or feet, or in various other forms as a floor covering.æ¦éå«ï¼è¸èå«ï¼ç²çº¤ç»´æå ¶ä»ææå¶æçç¨äºäººä»¬æ¦éæèãæä½ä¸ºå°é¢é®çç©çå ¶ä»å½¢å¼çå«åã