本系列文章:
java
第一章:九析带你完爆 fabric - 快速搭建区块链node
第二章:九析带你完爆 fabric - 快速搭建 GO 环境python
第三章:九析带你完爆 fabric - 快速上手 first-network 样例编程
第四章:九析带你完爆 fabric - 系统逻辑架构篇安全
目录架构
1 前言编程语言
2 系统逻辑架构总览分布式
3 系统逻辑架构 - 接入层ide
4 系统逻辑架构 - 应用层函数
5 系统逻辑架构 - 区块链层
6 总结
1 前言
前三章九析带你轻松搭建了 GO 语言开发环境、并带你运行了两个 fabric 样例程序( basic-network、first-network)。若是你按照教程都操做成功的话,那么相信你已经有了一些碎片化的知识或者术语的积累。接下来咱们须要中止操做,作一些理论上的讲解。
2 系统逻辑架构总览
下图是 hyperledger fabric 官方系统逻辑架构图:
由架构图可知,fabric 由上到下一共包括 3 层:接入层、应用层和区块链层。
3 系统逻辑架构 - 接入层
接入层,也能够称做通讯层,定义外部访问区块链的方式,即:API、事件和 SDK。
API:即 gRPC(google remote procedure call),由于 fabric 是由 go 语言实现的,因此你想直接调用 fabric 提供的 API,那么经过 gRPC 调用将是最直接的方式
SDK:一个好的平台,应该提供多语言访问支持,fabric 在 API 的基础上封装了多种编程语言的 SDK(go、nodejs、java、python 等),供开发者直接调用
事件:由于区块链是分布式应用,所以若是在某些场景下使用同步调用机制会致使系统性能或其余问题。所以,接入层也提供了事件监听机制,使得事件处理更加灵活
若是上面介绍依然让你费解,我能够给你一个场景类比一下。若是说区块链是户籍科,那么你能够有哪些方式来访问户籍科呢?
第一:你有熟人,你直接找她帮你轻松搞定(API)
第二:你能够排队叫号,而后到不一样的服务窗口办理相同的事情(SDK)
第三:若是你须要补办身份证,你不会不吃不喝 10 个工做日,干等在那里。户籍科能够经过短信通知你处理流程或处理结果(事件)
4 系统逻辑架构 - 应用层
应用层,也就是你想经过区块链作什么具体事情,即:帐本、交易、身份确认。
帐本:访问区块链不少时候是为了查询信息,这些信息都是以交易的形式记录在帐本中
交易:若是访问区块链是为操做信息,那么就须要经过交易操做来完成
身份:由于 fabric 提供了准入机制,因此当你查询帐本或者发起交易,前提是须要通过区块链的身份验证
智能合约:智能合约就是定义交易的文本指令。你能够类比智能合约是静态的函数定义,而交易则是动态的函数调用
若是上面介绍依然让你费解,我能够给你一个扩大的场景类比一下。若是说区块链仍是户籍科,那么你去户籍科作哪些具体事情呢?
第一:开证实。好比你公司要你开一个户籍证实,你须要去户籍科作查询(帐本)
第二:转户口。涉及到户籍变动(交易)
第三:提供身份证。不管你是去户籍科开证实也好,仍是转户口也好,都须要提供身份证自证身份(身份验证)
第四:转户口规章。若是你要转户口,你必须按照固定的规章制度来执行。这个制度就是合约(智能合约)
5 系统逻辑架构 - 区块链层
区块链层就是真正的系统底层,通常状况下,对上层只提供接口,并不暴露具体技术细节。整个区块链底层提供的服务大致包括以下四个部分:成员服务、共识服务、链码服务、安全和密码服务。
安全和密码服务:这是整个区块链系统的最基础服务,它也被其余三个服务使用。它提供公私钥加密机制、ECC椭圆曲线机制等等
成员服务:针对身份验证应用提供的对应区块链服务
链码服务:针对智能合约服务提供的对应区块链服务,好比提供镜像仓库、运行容器等等
共识服务:针对帐本和交易提供的对应区块链服务。好比针对接入层交易提供担保(背书)、针对接入层多个交易作排序、交易排序结果打包成区块后通知给组织的锚节点,而后锚节点再经过 goosip 协议广播给组织内的其余 peer 节点、peer 节点收到区块验证经过后再同步到分布式帐本中
若是上面介绍依然让你费解,我能够给你一个再扩大的场景类比一下。若是说区块链不只仅是户籍科,而是整个公安局了,那么它怎么开展平常工做呢?
第一: 信息中心核实身份证(成员服务)
第二: 法务部门编写各类合约,并确保合约正常执行(链码服务)
第三: 按优先级处理治安案件,处理结果需通报全国各个机关处室,各地再通知本身内部体系,若是须要作调整,则须要记录(共识服务)
第四:在公安局作事,必须保密(安全和密码服务)
6 总结
以上即是 fabric 整个系统逻辑架构的大体说明,有关细节将在后续的章节中逐步展开。若是你以为九析讲得还能让你勉强听懂,就请劳驾点个赞吧。 ^_^