一秒通1MT.CN一秒通1MT.CN

理财、金融、保险、贷款、虚拟货币
等知识简单易懂一秒就通!

Super wall frame Fabric official website]

面对信息时代,如果我们不';不要去关注它,这样我们就可以通过及时补充知识来与时俱进。今天为大家带来一篇关于hyperledgerfabricHyperledger官网的文章。相信会给你带来很大的帮助!

HyperledgerFabric不是公有链,而是基于许可业务的区块链架构,主要解决商业区块链的需求。HyperledgerFabric是开源的。、企业级、有权限的分布式账本平台。它最初是为企业应用程序设计的。对于市场上流行的其他分布式账本系统或区块链平台,HyperledgerFabric具有许多不同的特征和应用领域。

扩展信息:

1。关于区块链[XY002][XY001]1。区块链本质上是一个去中心化的数据库,作为比特币的底层技术。,是利用密码学生成的一系列数据块,每个数据块包含一个比特币在线交易的信息,用于验证其信息的有效性(防伪)并生成下一个块。区块链的概念最早是由一个叫中本聪的人在2008年提出的。

2。区块链因传统商业网络而产生。各个公司在进行数据交互或业务往来时,都会通过自己的数据库向另一个公司提供接口,供其访问。这样就有问题了,不能保证每家每户的数据都一样。。此外,从其他人那里获取数据';中央数据库可以';不能保证数据的真实性,存在信任问题。区块链这种分布式账本模式可以很好的解决这个问题。

3。区块链有几个明显的特点。即去中心化、不可伪造、防篡改、公开透明、账本一致、匿名。区块链分为公链、私链和联盟链。公共链是指世界上任何人都可以阅读和发送交易的区块链,交易可以得到有效确认,他们也可以参与共识过程。。私链最大的区别是只对单个个人或实体开放。因此,私有区块链的写权限只掌握在一个组织手中。读取权限要么对公众开放,要么受到任何程度的限制。私链的特点是交易速度非常快,对隐私给予了更好的保护。,可以大大降低交易成本,甚至使成本为零。联盟链,只针对特定群体的成员和有限的第三方,其中多个预选节点被指定为记账方,每个区块的生成由所有预选节点共同决定。

2。关于HyperledgerFabric

HyperledgerFabric是一种基于许可业务的区块链基础结构。主要解决商业区块链需求。第一所有节点都会有一个共享账本,将商业合同打包放入账本,根据条件自动触发信息,没有人工操作步骤,可以保证公平公正。其次,隐私。联盟链有不同的角色和权限。不同的角色操作不同的数据,隐私功能可以及时保护数据。第三,信任机制更好。节点之间可以建立信任关系,无需身份确认。

Fabric是一个联盟链,Peer代表一系列组织。同行是整个区块链网络的基础,因为它是书籍和智能合约的载体。通过智能合约,账本以不可更改的方式记录交易的全过程。

面向能够';t,有不同的业务。不同的业务关联不同的公司,需要创建多个联盟链,所以需要创建多个渠道。信道是为了在多个特定成员之间进行保密交易而建立的专用网络,一个对等体可以加入多个信道。每个渠道维护自己的账簿,相互隔离,每个渠道可以维护一个或多个账簿。因此,为了满足复杂的交易需求,可以在每个对等体上安装不同的智能合约。当对等交易完成时,事件通知被发送到客户端。peer上还有本地MSP(会员服务提供商)服务,提供身份认证、加密签名等功能。世界状态采用键值的形式。,维护当前账簿的当前信息。

智能合同是区块链的核心,它定义了不同组织之间的业务规范,创建交易并将其记录在分类帐中。多个智能合约可以打包成一个链码。。只有在部署了Chaincode之后,应用程序才能使用智能合约。

不同于一般的链代码运行在独立的容器中,系统链代码运行在对等进程上,实现一些系统行为。

为了优化网络性能,提高安全性和可扩展性,fabric将每个事务分为三个部分:认可对等体、指定服务和提交对等体。,这就需要一个安全、可靠、可扩展的数据传输协议——Gossip协议。八卦传输协议以随机的方式向网络传播信息,主要执行三个功能:

区块链网络中的不同参与者包括对等节点、分拣节点、客户端应用、管理员等。每个参与者(可以使用网络内外服务的活动元素)都有一个封装在X.509数字证书中的数字身份。。这些身份非常重要,因为它们决定了区块链网络中的参与者对资源和信息的确切访问权限。

此外,数字身份还有一些其他属性,Fabric使用这些属性来确定权限。它为身份和相关属性的联合提供了特殊的名称——Principal?主题类似于userID或groupID,但它们更灵活,因为它们可以包含参与者的各种属性';身份,如参与者';组织和组织单位。,参与者的角色甚至具体身份。当我们谈到臣民时,他们是决定他们权威的属性。

对于要验证的身份,它必须来自可信机构。。会员服务提供商(MSP)是Fabirc中值得信赖的权威机构。具体来说,MSP是定义管理组织有效身份的规则的组件。。Fabric中默认的MSP实现使用X.509证书作为身份,采用传统的公钥基础设施(PKI)的层次模型(后面会详细介绍PKI)。

想象你去超市买一些杂货。结账时,你会看到一个标志,上面写着只接受Visa、Mastercard和AMEX卡。。如果你试图用另一张卡(我们称之为“信用卡”)付款想象牌"),这不';不管这张卡是真是假,也不管你的账户里有没有足够的钱。它不会被接受。

光有有效的信用卡是不够的,还必须是店家受理的。!PKI和MSP以同样的方式协同工作。PKI提供了一个身份列表,MSP说明谁是参与网络的给定组织的成员。

PKI证书和MSP提供了类似的功能组合。PKI就像一个卡提供商。,它分配许多不同类型的可验证身份。另一方面,MSP类似于商店接受的卡提供商列表,确定哪些身份是商店支付网络的可信成员(参与者)。MSP将可验证的身份转换成区块链网络的成员?

让';让我们更详细地研究这些概念。

公钥基础设施(PKI)是一组能够在网络中提供安全通信的互联网技术。PKI是通用的吗?s?放进去?HTTPS?中间如果您在web浏览器中阅读此文档,您可能正在使用PKI来确保它来自一个经过验证的来源。

公钥基础设施(PKI)的要素。PKI由向各方提供服务的用户组成(例如,服务的用户)服务提供商)发布数字证书,然后使用它们在与环境交换的消息中验证自己。一个CA'的证书吊销列表(CRL)构成了对不再有效的证书的引用。证书的撤销可能由于各种原因而发生。例如该证书可能被撤销,因为与该证书相关联的加密私有材料已经被公开。

尽管区块链网络不仅仅是一个通信网络,它还依靠PKI标准来确保网络参与者之间的安全通信。并确保在区块链上发布的消息得到正确的认证。所以,了解PKI的基础知识,以及为什么MSP很重要,是非常重要的。

PKI有四个关键要素:

数字证书

公钥和私钥

证书颁发机构

证书撤销列表

数字证书是包含与证书持有者相关的属性的文档。最常见的证书类型是合规性?X.509标准证书这允许一些用于识别的信息被编码在其结构中。例如

米切尔的玛丽莫里斯';密歇根州底特律市的美国汽车制造部门可能拥有一辆汽车?主题?属性是?c=我们,ST=密歇根,l=底特律,o=米切尔?汽车?OU=制造业,CN=玛丽?莫里斯?/UID=123456?基于的数字证书。玛丽';的证书类似于她的身份证(它提供了玛丽';的信息),并且可以用来证明关于她的重要事实。X.509证书中还有很多其他属性,但是让';现在我们把注意力放在他们身上。

描述名为MaryMorris的组织的数字证书。玛丽是证书吗?主题,突出显示?主题?这篇课文展示了关于玛丽的重要事实。如您所见,证书包含更多信息。。最重要的是,玛丽';的公钥是在她的证书中分发的,但她的私钥不是。这个签名密钥必须保密。

重要的是Mary的所有属性都可以用在所谓的密码术中(字面上,"秘密写作?"),所以篡改会使证书失效。只要对方信任证书颁发者,即证书颁发机构(CA),密码学就允许Mary将证书提交给其他人来证明自己的身份。。只要CA安全地存储一些加密信息(CA's私钥),任何看证书的人都可以确定上面的文章是玛丽';的信息没有被篡改,它将始终具有玛丽莫里斯的特定属性。。对待玛丽';sX.509证书作为不可更改的数字身份证。

身份验证和消息完整性是安全通信中的重要概念。身份验证要求确保交换消息的各方创建特定消息的身份。。对于带有"诚信"这意味着它在传输过程中不能被修改。例如,你可能希望确保你与真实的玛丽莫里斯交流,而不是与模仿者交流。或者,如果玛丽给你发信息您可能希望确保它在传输过程中没有被其他任何人篡改。

传统的认证机制依赖于数字签名,顾名思义,数字签名允许一方对其消息进行数字签名。数字签名还可以确保签名消息的完整性。

从技术上讲,数字签名机制要求每一方保留加密连接的两个密钥:一个可广泛获得的公钥、一个作为授权锚的私钥和一个用于在消息上生成数字签名的私钥。。数字签名消息的接收者可以通过检查附加签名在预期发送者的公钥下是否有效来验证所接收消息的来源和完整性。

私钥和公钥之间唯一的关系就是确保安全通信的加密魔法。。密钥之间独特的数学关系使得邮件上的私钥签名只与同一邮件上相应的公钥匹配。

在上面的例子中,Mary用她的私钥对邮件进行了签名。。任何使用她的公钥查看签名消息的人都可以验证签名。

如您所见,人或节点可以通过系统信任的机构颁发的数字身份加入区块链网络。在最常见的情况下,数字身份(或简称身份)的形式是,一种符合X.509标准的加密数字证书,由证书颁发机构(CA)颁发。CA是互联网安全协议的一个常见部分。你可能听说过一些流行的协议:Symantec(最初是Verisign)、GeoTrust、DigiCert、GoDaddy和Comodo。

证书颁发机构向不同的参与者颁发证书。这些证书由CA签署,并约束参与者';公钥在一起(并且可选地具有所有属性列表)。因此,如果成员信任CA(并知道其公钥),您可以信任包含在绑定到参与者的证书中的公钥,并通过验证参与者上的CA签名来获取包含的属性';s证书。

证书可以广泛传播,因为它们既不包含参与者也不包含CA的私钥。因此它们可以用作信任锚来验证来自不同参与者的消息。

CA也有证书,可以广泛使用。这允许从给定CA获得身份证书的消费者验证他们的身份。因为只有对应的私钥才能生成证书。

在区块链环境中,每个想要与网络交互的参与者都需要一个身份。在这种情况下,您可能会说组织的成员是通过使用一个或多个ca以数字形式定义的。。CA是为组织中的参与者提供可验证的数字身份的基础。

CA有两种形式:根CA和中间CA?因为根CA(赛门铁克、Geotrust等。)必须安全地向互联网用户颁发上亿个证书,所以把这个过程分散到所谓的中间CA中是非常有用的。这些中间ca拥有由根ca或其他中间ca颁发的证书。,允许一个"信任链"为链中任何CA颁发的任何证书建立。追溯到根CA的能力不仅允许CA的功能扩展,同时仍然提供安全性(允许使用证书的组织放心地使用中间CA),而且限制了根CA的暴露。如果根CA受损,将危及整个信任链。另一方面,如果中间CA受损,暴露量会小很多。

只要每个中间CA的证书的发行CA是根CA本身或者具有到根CA的信任链。在根CA和一组中间CA之间建立信任链。

中间CA在跨多个组织颁发证书方面提供了极大的灵活性,这在诸如Fabric之类的许可区块链系统中非常有用。例如您将看到不同的组织可能使用不同的根CA,或者使用相同的根CA和不同的中间CA,这取决于网络要求。

由于CA非常重要,Fabric提供了内置的CA组件。,允许您在区块链网络中创建CA。这个组件叫做。面料CA?私有根CA提供商可以以X.509证书的形式管理结构参与者的数字身份。。因为FabricCA是Fabric根CA要求的自定义CA,所以它不能提供在浏览器中常规或自动使用的SSL证书。但是,由于一些?CA必须用于管理身份(即使在测试环境中),因此您可以使用FabricCA来提供和管理证书。使用公共或商业根或中间CA来提供标识也是可能且完全合适的。

证书撤销列表(CRL)很好理解,是CA知道由于某种原因被撤销的证书的参考列表。如果你回想一下商店的场景,CRL就像是被盗信用卡的列表。

当第三方想要验证另一方的身份时,它首先检查颁发CA的CRL,以确保证书没有被吊销。验证者不会';不需要检查CRL,但是如果它不检查。t,,则他们冒着接受无效身份的风险。

本文使用fabric源代码附带的e2eCLI示例来创建一个组织,其中包含一个订购者节点、两个组织机构,每个组织机构有两个对等节点。

本文使用的fabric版本为1.1.1。

第三步,cli容器中初始化的链码mycc,加入组织Org3后可以同步查询链码mycc的数据。但是通过Org3提交的事务不能被其他节点认证,因为链码mycc初始化时,org1和org2的成员被背书,org3的成员不包括在内。

接下来,重新安装链码mycc1。,并且在初始化链代码时,背书策略Org1、Org2和Org3的成员被指定为背书。经过测试验证,三家机构的任意一个节点都可以提交交易,并得到一致确认。

1。打开hyperledgerfabric软件。2.点击二维码生成。3.导入二维码中的内容。4.单击生成。

构建您第一个网络提供了一个结构网络示例。示例网络由两个组织组成,每个组织维护两个对等节点,并演示了基于链码查询两个帐户余额和转账的操作。

第一网络中有一个启动脚本byfn.sh,它使用内置的Docker镜像来快速启动网络。这个脚本将启动一个订购者节点和属于两个不同组织的四个对等节点。,它还将启动一个cli运行脚本,该脚本将向通道添加对等节点,部署并实例化链代码,并根据部署的链代码驱动事务执行。以下是byfn.sh

的帮助文档

执行up-oetcdraft启动脚本,指定使用raft共识算法

通过cryptogen工具生成组织成员、身份证书、密钥等文件。。调用configtxgen工具生成节点和通道配置文件,包括订购方节点上系统通道的genesis块文件genesis.block。、新申请通道配置事务文件channel.tx、组织锚节点配置更新事务文件Org1MSPanchors.tx和Org2MSPanchors.tx等。

用户执行network_setup.sh脚本来启动结构网络,这将调用networkUp函数。该命令将检查网络实体的证书是否生成,如果没有,第一个教师将创建相关的证书目录。

生成证书主要执行了密码生成配置=https://yrb114。com/crypto-config。YAML

根据crypto-config.yaml,生成网络成员的组织结构和身份证书、签名私钥等对应文件并保存在默认的crypto-config目录下,身份证书等文件在对应的目录msp/下。,TLS证书和密钥文件保存在tls/中。

Crypto-config.YAML主要包括fabric排序节点的证书配置和fabric组织的证书配置。

模板定义节点的配置模式

规范另一种配置模式

统计节点总数

主机名完全限定的域名命名格式

域名

用户添加到管理员的用户帐户数量

Specs模式配置五个排序节点

模板模式配置两个组织,每个组织有两套公私钥和证书,普通用户数为1

OrdererOrganizations目录:包含ID证书。pem文件、签名私钥文件_sk文件和TLS证书(certificate。crt文件和密钥。关键文件),订购方组织类型为

对等组织目录:包含身份证书。pem文件,签名私钥文件_sk文件,TLS证书(证书。crt文件和密钥。密钥文件)的对等组织类型

。(XY001)这些Dokumentewurdendocker-compose工具,基于docker-compose-cil.yaml,docker-compose-base.yaml等待文件,使用目录作为将卷装入容器的指定目录。

调用replacePrivateKey,基于docker-compose-e2e-template.YAML文件创建一个新的配置文件docker-compose-e2e.yaml。。进入Org1的CA目录,获取私钥的文件名为PRIV_KEY,替换docker-compose-e2e.yaml文件的CA1_PRIVATE_KEY。同理,替换CA2_PRIVATE_KEY。

执行generateChannelArtifacts函数,使用configtxgen工具基于configtx.yaml创建节点和通道配置文件,包括订购者通道的创建块。,使用通道配置来配置交易文件channel.tx,使用锚节点配置来更新交易文件Org1MSPanchors.tx和org2MSPanchors.tx

订购者系统通道的创建块。

执行configtxgen命令,创建订购者创建块文件genesis.block

新应用程序通道

的配置事务文件。

执行configtxgen命令创建应用程序通道的配置事务文件channel.tx,然后执行对等通道创建以读取该文件。

锚节点配置更新事务文件

执行configtxgen命令,创建锚节点配置更新事务文件Org1MSPanchors.tx和Org2MSPanchors.tx,然后执行对等通道更新进行更新。

返回network_setup.sh脚本,判断CouchDB标志是否启用(默认关闭),使用docker-Compose工具执行docker-Compose-cil.yaml文件。,starttoconstructthenetwork

andcontinuetoanalyzethenetwork_settings.shscript.Thedefaultwriting_fileisdocker-compose-cli.yamlfile.当设置了kafka共识或raft共识时,使用相应的yaml文件。

订购者节点继承docker-compose-base.yaml中的orderer.example.com配置属性,当订购者节点容器启动时,执行下面的命令

docker-compose-cil.yaml文件[XY002][XY001]继续追踪base/docker-compose-base.yaml,找到orderer.example.com服务,挂载目录并公开端口7050。

订购者配置仍然被引入到peer-base.yaml

中的订购者基础服务中。

四个对等节点继承docker-compose-base.yaml中对应容器名的配置属性,当对等节点容器启动时,执行以下命令

docker-compose-cil.yaml在文件对等节点配置。

docker-compose-base.YAML在文件节点对等配置[XY002](XY001)介绍同行基地服务

docker-compose-cil.YAML在文件关于客户端配置。orderer节点、peer节点和CLI容器启动后,实际调用的是script.sh脚本,在CLI容器中执行,CLI容器实际上是一个用户客户端,只是一个命令行客户端。,在容器中运行。默认情况下,CLI的身份是admin.org1,连接到peer0.org1节点,执行script.sh脚本

script.sh脚本,依次执行默认测试流程。,包括新建应用通道、添加节点、更新锚节点、安装链码、实例化链码、调用链码、查询链码等操作。

Fabric要求创建、加入和更新渠道的权限必须具有渠道组织的管理员状态。。调用setGlobals设置全局环境变量,CLI客户端可以灵活切换指定容器的管理员角色,可以直接连接操作指定的Peer节点,先切换到Peer0/Org1节点。

接下来以Org1的管理员身份执行peer指令,将通道配置文件Channel.tx发送到Orderer节点,创建mychananel的应用通道。如果创建成功,则返回一个创建块。,存储在对等节点的文件系统中,包含channel.tx指定的通道配置信息,

遍历所有节点,调用setGlobals切换指定节点,执行对等指令。,将Org1组织中包含的Peer0/Org1和Peer1/Org1节点添加到mychananel应用通道中,并将Genesis块的mychananel.block设置为命令行参数。Org2组织类似。

joinchannelwithrytry函数中的setGlobals是设置CLI容器的环境变量的函数。例如,setGlobals12将CLI的标识设置为admin.org22。,连接peer1.org2节点。

使用对等通道加入命令让节点加入通道,$CHANNEL_NAME.block是通道成功创建时返回的块。,当上面的org1.peer0创建通道时,该块保留在CLI容器中,因此可以直接使用。节点成功加入通道后,它将创建一个以CHANNEL_NAME.block

开始的链

一个组织只能有一个锚节点,只有在加入渠道后才能更新。连续两次调用updateAnchorPeers更新两个组织的锚节点配置,用Org1管理标识更新Peer0/Org1的配置。,并指定锚节点配置更新文件Org1MSPanchors.txOrg2的组织方式相同。

连续调用installChaincode两次,分别在Peer0/Org1和Peer2/Org2中安装chaincode_example02链码,并将链码命名为"mycc"对于1.0版。如果成功安装了链代码,则在指定的安装目录/var/hyperledger/production/chaincodes中存在名为.version的链代码文件。

链代码的实例化必须在安装链代码的节点上进行。同一渠道所有节点上相同的实例化数据在渠道账簿中共享,用户只需在任一对等节点上成功进行一次链码实例化。经过排序和打包后,实例化的数据将被广播到其他节点,通道中的所有合法节点都可以访问链码的实例化数据。

实例化将链码添加到通道中,启动目标节点的容器,初始化与链码相关的初始值。这里的初始值是[";a","100","b","200"]."实例化"会产生一个链代码的容器,比如dev-peer0-org1.example.com-mycc-1.0。。实例化过程需要指定背书策略,定义为AND(';Org1msp。同行';'Org2msp。同行';)通过设置-P参数。,表示任何交易必须有org1和org2节点的共同背书。

在对等体0/Org1上调用chaincodeQuery函数chaincodeQuery和链代码调用函数chaincodequery。。查看A的余额,从账户A转10元到账户B.

在Peer3/Org2上安装链码,查询A的余额,查看余额是否为90元。如果是,则转移成功。

感谢您阅读hyperledgerfabric的详细介绍。如果你不熟悉hyperledgerfabric官网,你想了解更多关于hyperledgerfabric的信息。

关键词: 证书 ca 节点
相关推荐
本文地址: http://www.1mt.cn/563405
文章来源: 康康
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 931614094@qq.com 举报,一经查实,本站将立刻删除。 未经允许不得转载:
分享到: 更多
Super wall frame Fabric official website]文档下载: PDF DOC TXT

一秒通1MT.CN | 理财、金融、保险、贷款、虚拟货币 等知识简单易懂一秒就通!

联系站长网站公告