![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Fabric系列
文章平均质量分 72
介绍 Hyperledge Fabric
搬砖魁首
区块链从入门到宁静
展开
-
Fabric系列 - 知识点整理
链码被编译成一个独立的应用程序,fabric用Docker容器来运行chaincode,里面的base镜像都是经过签名验证的安全镜像,包括OS层和开发chaincode的语言、runtime和SDK层。部署和调用链码之前需要先创建通道、加入通道、更新锚节点,然后才能进行有关链码的操作,比如安装链码、实例化链码、invoke和query等。和以太坊相比,Fabric链码和底层账本是分开的,升级链码时并不需要迁移账本数据到新链码当中,真正实现了逻辑与数据的分离。顾名思义,锚点交易指定了该通道上每个组织的。原创 2023-08-09 08:29:35 · 1433 阅读 · 1 评论 -
Fabric系列 - 体验fabric-ca-server
初始化和启动fabric-ca-server,需要设置一个管理员用户的名称和密码。到github下载release版的bin文件。原创 2023-04-05 13:57:08 · 407 阅读 · 2 评论 -
Fabric系列 - 国密改造
Fabric国密改造项目由Hyperlegder中国工作组(TWGC)发起执行,旨在构建支持国密算法且密码算法可灵活扩展的Fabric平台,方便世界各国开发者快速接入自定义的密码算法。根据改造需求分析,Fabric国密改造方案由三个部分构成:国密算法基础库收集与改造构建完善可用的国密算法基础库是Fabric国密改造的首要事项。本次改造涉及的国密算法包括:SM2、SM3和SM4。另外,TLS协议也需要进行对应的国密改造。Fabric本体改造。原创 2023-03-29 12:40:54 · 1861 阅读 · 1 评论 -
Fabric系列 - TLS身份验证
所有组织(orderer组织与加入该channel的peer组织)的根证书都会被写入channel的创世块(确切的说是channel配置块)中(没配置开启TLS也会写入), 每个组织的锚节点地址也会被写入。故要增加、删除组织,修改锚节点地址等操作都需要修改创世块参考:区块链知识系列密码学系列零知识证明系列共识系列公链调研系列BTC系列以太坊系列EOS系列Filecoin系列联盟链系列Fabric系列智能合约系列Token系列。原创 2023-03-21 21:50:02 · 655 阅读 · 1 评论 -
Fabric系列 - 排序节点和交易流程
具体来说,更新账本的应用程序涉及到三个阶段,该过程确保区块链网络中的所有节点保持它们的账本彼此一致。原创 2023-03-15 22:16:59 · 1378 阅读 · 1 评论 -
Fabric系列 - 链码- 外部链码(v2.0)
1)使用链码生命周期打包和部署链码(Peer节点无须再安装链码2)运行可执行链码文件作为外部链码服务启动。3)提交链码定义到通道。4)Peer通过connection.json中指定信息连接到外部链码服务。最后,用户可以调用链码,而无须关注该链码如何管理。区块链知识系列密码学系列零知识证明系列共识系列公链调研系列BTC系列以太坊系列EOS系列Filecoin系列联盟链系列Fabric系列智能合约系列Token系列。原创 2023-03-08 09:32:53 · 1354 阅读 · 5 评论 -
Fabric系列 - 链码-内部链码的特性
Fabric - 链码-内部链码原创 2023-03-01 00:25:43 · 885 阅读 · 1 评论 -
Fabric系列 - 版本对比1.X vs 2.X
Fabric的主要版本迭代Fabric 1.X vs 2.XFabric versionv1.4v2.0–共识–Solo共识orderer/consensus/solo☑☐ 弃用Kafka共识orderer/consensus/kafka☑☐ 弃用Raft共识orderer/consensus/etcdraft☑☑–新特性–新的生命周期系统链码☐ peer chaincode命令被取代☑ peer lifecycle chai原创 2023-02-22 00:12:33 · 735 阅读 · 1 评论 -
Fabric系列 - 多通道技术(Muti-channel)
可在节点,通道和联盟级别上配置。一个Fabric网络中能够运行多个账本,每个通道间的逻辑相互隔离不受影响,如下图所示,每种颜色的线条代表一个逻辑上的通道,每个Peer节点可以加入不同的通道,每个通道都拥有独立的账本、世界状态、链码以及Kafka中的Topic,通道间消息是隔离的,互不影响的。每个Peer节点可以配置加入到多个不同的通道,不同业务的交易存储在不同的通道对应的节点中Fabric的Peer模块的提供了一些可以查询Fabric的系统信息的子命令,比如可以通过命令peerchannel li原创 2022-12-21 08:31:48 · 2565 阅读 · 1 评论 -
联盟链系列 - 用Openssl管理CRL
CRL(Certificate revocation lists)CRL是证书吊销列表, 用于验证数字证书有效性. 数据证书在有效期内是无法强制撤销的, 只能通过将它们添加到适当的CRL中来撤销它们。可往CRL中添加中间或根证书,也可增加特指的某个X509证书修改中间CA的配置文件指定用于展示CRl的PEM文件的网址[ server_cert ]# ... snipped ...crlDistributionPoints = URI:http://example.com/intermediat原创 2021-11-29 19:57:28 · 3702 阅读 · 1 评论 -
Fabric系列 - Hyperledger开源项目介绍
Fabric - Hyperledger开源项目介绍Hyperledger顶级项目贡献代码的流程Fabric的主要版本Fabric网络启动步骤根证书生成方式的比较原创 2021-11-01 16:34:21 · 4218 阅读 · 3 评论 -
Fabric系列 - 锚节点
锚节点锚节点是定义在一个已经加入到通道的组织的节点。该节点主要用于节点的发现。在一个通道中,锚节点可以被这个通道的其他任何节点发现和通信。因此,每一个加入到管通内的组织都至少有一个锚节点,一个组织的节点可以通过查找锚节点来发现这个通道内的其他组织的所有节点。leader节点当ordering服务要发送一个区块到通道,这个块就必须先发送到一个组织的leader 节点,之后由leader节点把这个块通过gossip协议分发到这个组织的其他节点上。 也就是说,锚点是组织和组织之间的联通桥梁。而leader原创 2021-10-11 10:09:04 · 8143 阅读 · 3 评论 -
Fabric系列 - 安全和访问控制
如何来确保数据隐私?对于数据隐私,这里有很多个方面。首先,你可以使用通道来隔离你的网络,每个通道代表网络成员的一个子集,这些成员查看部署到该通道上的链码的相关数据。其次,你可以使用 私有数据 来保护组织的数据隐私。一个私有数据集合规定了通道中的一部分组织可以背书、提交或者查询私有数据,而不需要额外创建一个通道。在这个通道上其他的参与者只会收到数据的哈希值。更多信息可以参考 在 Fabric 中使用私有数据 教程。注意,在本文档的“关键概念”章节也解释了 什么时候应该使用私有数据而不是通道 。原创 2021-09-27 10:52:47 · 518 阅读 · 1 评论 -
Fabric系列 - 链码 ChainCode
链码(chaincode)是 Hyperledger Fabric 提供的智能合约,是上层应用与底层区块链平台交互的媒介。现阶段,Fabric 提供 Go、Java、Node.js 等语言编写的链码Fabric 智能合约链码开发的基础,一句话总结起来就是:一个基类,两个查询,一个写入。所有的链码都实现两个接口,init 和 invoke。Init(stubshim.ChaincodeStubInterface) :init用于合约初始化及升级初始化动作;Invoke(stubshim.Chainc原创 2021-04-28 09:33:45 · 3771 阅读 · 5 评论 -
Fabric系列 - 国密扩展方法
国密算法的相关知识请看:密码学系列 - 国密算法在Fabric上扩展国密方法一种是基于Fabric本身扩展国密包这种改法不用对Golang标准库做任何地改动,所有的修改都在Fabric项目源码上进行其一,把国密的库进行移植,封装gm-crypto;其二,扩展Fabric现有的bccsp模块;其三,修改x509证书相关的地方。Fabric-CA主要是为了实现对加入联盟链的成员的身份控制以及数据生成保管。Fabric-CA中:Lib,主要是接口的实现,主要在解析申请证书请求以及签发证书.原创 2021-03-16 21:12:43 · 2989 阅读 · 6 评论 -
Fabric系列 - 体验Fabric v1.4版本
开发环境# 下载1.4.8版本的release版本的 fabric 和 fabric-samples https://github.com/hyperledger/fabric/releases/tag/v1.4.8https://github.com/hyperledger/fabric-samples/releases/tag/v1.4.8# 测试部署智能合约cd fabric-samples/chaincode-docker-devmode# 终端1-启动网络docker-compo原创 2021-02-25 09:55:20 · 1079 阅读 · 2 评论 -
公链分析报告 - Fabric
Fabric v0.6版本与v1.x版本 架构差异很大,故分两个版本讲Fabric v0.6版本在Fabric v0.6中采用的共识算法是PBFT算法(Practical Byzantine Fault Tolerance),可以在信任程度较低的场景下避免拜占庭问题。但是由于算法本身特性限制,n>=3f+1,才能容忍一个拜占庭节点,因此在v0.6版本下,vp节点数量至少是4个。在v0.6版本中,节点角色分为VP(Validating Peer)、NVP(None validating Peer.原创 2020-12-23 11:11:56 · 734 阅读 · 3 评论 -
联盟链系列 - Https双向验证
boost 实现双向认证解决办法boost::asio::ssl::context要与OpenSSL进行相互认证,必须在客户端使用SSL_VERIFY_PEER在服务器端使用SSL_VERIFY_PEER|SSL_VERIFY_FAIL_IF_NO_PEER_CERT。如果仅在服务器端使用SSL_VERIFY_PEER,则它将仅将证书请求发送给客户端,但是如果客户端未发回证书,则将静默接受。ctx.set_verify_mode(ssl::verify_peer); // client sid原创 2020-10-24 23:15:18 · 1734 阅读 · 1 评论 -
区块链知识系列 - Raft 共识
Raft算法由斯坦福大学的Diego Ongaro和John Ousterhout于2014年在论文《In Search of anUnderstandable Consensus Algorithm》中提出。Raft算法面向对多个决策达成一致的问题,分解了Leader选举、日志复制和安全方面的考虑,并通过约束减少了不确定性的状态空间。典型的过程包括以下两个主要阶段:Leader选举:开始所有节点都是Follower,在随机超时发生后未收到来自Leader或Candidate消息,则转变角色为Cand原创 2020-09-15 11:20:07 · 3236 阅读 · 1 评论 -
Fabric系列 - Fabric中的PKI
Fabric CA在整个证书管理环节中处于十分核心的位置。在生产环境中部署时,必须从多个方面进行考虑,以充分确保安全性、可靠性、规范性等指标。1. 根证书的生成根证书目前可以通过从权威机构(包括GolbalSign、VeriSign)申请,或采用自行签名的方式生成。技术上来讲,两者都可以完成部署过程,并且都能保证同样的安全。但不同场景下两者各有利弊,总结如下表所示权威机构颁发与自行签名比较因此,如果应用场景不仅包括私有网络,而且需要可靠的证书机制,推荐采用权威机构颁发的根证书;如果仅面向私有网络场原创 2020-09-07 23:26:33 · 836 阅读 · 4 评论 -
Fabric系列 - Fabric CA
背景Fabric CA项目原来是超级账本Fabric内的MemberService组件,负责对网络内各个实体的身份证书进行管理。鉴于其功能十分重要,2017年2月正式成立Fabric CA独立子项目,负责相关代码的维护。Fabric CA项目主要实现了如下几个功能:负责Fabric网络内所有实体(Identity)的身份管理,包括身份的注册、注销等;负责证书管理,包括ECerts(身份证书)、TCerts(交易证书)等的发放和注销;服务端支持基于客户端命令行和RESTful API的交互方式。原创 2020-08-31 14:34:23 · 818 阅读 · 2 评论 -
Fabric系列 - 账户体系(MSP)
账户体系的目的网络通道(TLS)验证身份(证书)验证签名验证默认的MSP(Membership Service Providers)的参数证书文件与私钥合起来可称为Fabric的账户, 即 MSPFabric的账号体系,Fabric的有两种方法获取账号,分别是cryptogen模块根据配置文件生成账号和Fabric-ca-server服务器生成账号与组织相关的参数cacerts 根CA: 构成信任根的自签名(X.509)CA证书列表admincerts 此MSP的管理员证书: X.原创 2020-08-25 15:36:23 · 1976 阅读 · 1 评论