
Michael.W谈hyperleder Fabric
Revelation_of_Turing
想搞金融IT的区块链码手。
展开
-
Michael.W谈hyperledger Fabric第4期-手动搭建Fabric网络之Fabric证书的生成
Michael.W谈hyperledger Fabric第4期-手动搭建Fabric网络之Fabric证书的生成1 网络中的组件介绍2 搭建Fabric网络的步骤3 生成Fabric证书接下来我会利用多个帖子来相信介绍一下如何自己手动搭建一个自己的Fabric网络。1 网络中的组件介绍一个Fabric网络中最起码要保证一下五个组件:Fabric证书的颁发机构账本链码(智能合约)排序...原创 2019-03-08 14:51:46 · 1404 阅读 · 2 评论 -
Michael.W谈hyperledger Fabric第14期-Fabric的网络拓扑结构
Michael.W谈hyperledger Fabric第14期-Fabric的网络拓扑结构1 Fabric的网络拓扑结构与比特币的不同2 Fabric的网络图3 Fabric为何这样设计网络拓扑1 Fabric的网络拓扑结构与比特币的不同Fabric的网络拓扑结构要比其他区块链来说还是算复杂的。比特币的网络中只有轻节点(仅仅保存与当前账户相关的信息)和全节点(保存从创世块到现在的所有数据)...原创 2019-03-15 21:19:19 · 1750 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第15期-Fabric的交易流程和共识机制详解补充
Michael.W谈hyperledger Fabric第15期-Fabric的交易流程和orderer节点排序详解补充1 前言2 关于Fabric交易流程的补充3 orderer节点排序3.1 调用排序服务器对数据进行排序3.2 数据区块的分发3.3 多通道隔离1 前言这几天在网上又看了一些资料,对Fabric整个的交易流程和共识机制有了更深一层的了解!在这里我再补充说明一下。之前我写过一...原创 2019-03-15 22:24:41 · 1467 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第16期-详细带读Fabric的源码1-orderer模块入口
Michael.W谈hyperledger Fabric第16期-详细带读Fabric的源码1-orderer模块入口1 容我先bb两句2 hyperledger Fabric的源码结构3 orderer的入口(orderer/tendermint/main.go)1 容我先bb两句如果想对系统或者框架有更详细的了解,那么读源码是必经之路。许多表面上云里雾里的概念逻辑,读完源代码后便豁然开朗。...原创 2019-03-16 14:35:45 · 656 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第17期-详细带读Fabric的源码2-Manager接口及通道相关源码
Michael.W谈hyperledger Fabric第17期-详细带读Fabric的源码2-Manager接口及通道相关源码1 Manager接口2 通道相关上个帖子中:Michael.W谈hyperledger Fabric第16期-详细带读Fabric的源码1-orderer模块入口发现orderer模块的main函数中所有接口的实现都离不开这样的一个multichain.Manage...原创 2019-03-16 15:17:31 · 405 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第18期-详细带读Fabric的源码3-通道对交易数据的操作封装
Michael.W谈hyperledger Fabric第18期-详细带读Fabric的源码3-通道对交易数据的操作封装1 chainsupport.go文件2 ChainSupport接口的实例化方法3 写区块操作1 chainsupport.go文件位于multichain包下,ChainSupport接口实现了对通道操作交易数据的封装。接口的声明位于multichain/chainsup...原创 2019-03-16 20:55:49 · 522 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第26期-详细带读Fabric的源码11-世界状态在代码级别的行为实现
Michael.W谈hyperledger Fabric第26期-详细带读Fabric的源码11-世界状态在代码级别的行为实现1 世界状态的底层依赖2 上层智能合约的键值对与底层存储的键值对是如何相关联的?3 如何持久化区块的状态信息4 如何记录最新存储的区块状态1 世界状态的底层依赖关于世界状态的定义可以去我之前写的一篇帖子《Michael.W谈hyperledger Fabric第3期-关...原创 2019-03-20 19:40:36 · 1160 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第19期-详细带读Fabric的源码4-orderer节点对交易数据的区块打包
Michael.W谈hyperledger Fabric第19期-详细带读Fabric的源码4-orderer节点对交易数据的区块打包1 blockcutter包下的Receiver接口2 receiver类2.1 Ordered方法实现2.2 Cut方法实现1 blockcutter包下的Receiver接口在前面帖子《Michael.W谈hyperledger Fabric第18期-详细带...原创 2019-03-17 20:49:49 · 589 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第20期-详细带读Fabric的源码5-orderer节点的solo排序
Michael.W谈hyperledger Fabric第20期-详细带读Fabric的源码5-orderer节点的solo排序solo模式的源代码文件在orderer/solo/consensus.go中: func (ch *chain) main() { // 之前讲过Fabric对区块的分割有两个影响条件: 1、区块中的交易数量大于等于我们设定的最大交易数量;2、在交易数量尚未达到...原创 2019-03-17 21:03:08 · 576 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第21期-详细带读Fabric的源码6-orderer节点接收交易数据与广播区块数据
Michael.W谈hyperledger Fabric第21期-详细带读Fabric的源码6-orderer节点接收交易数据与广播区块数据1 接收交易数据2 广播区块数据这两个部分围绕着orderer/server.go文件里的server结构体展开: type server struct { // 交易数据的接收 bh broadcast.Handler // 区块数据的广播 ...原创 2019-03-17 21:16:59 · 1205 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第12期-Fabric账号详解
Michael.W谈hyperledger Fabric第12期-Fabric账号详解Fabric中的账号,实际上就是利用指令生成的crypto-config目录下,某组织、节点或用户对应路径下的msp目录。 $ cryptogen generate --config=crypto-config.yaml节点或用户的msp,其下面都是包含5个文件夹:组织的msp下面包含3个文件夹:...原创 2019-03-12 23:10:11 · 818 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第22期-详细带读Fabric的源码7-orderer节点相关源码梳理
Michael.W谈hyperledger Fabric第22期-详细带读Fabric的源码7-orderer节点相关源码梳理1 模块功能顺序梳理2 具体脉络总结2.1 main函数2.2 多通道管理的Manage2.3 通道对象的代理ChainSupport2.4 solo排序的实现2.5 区块切割的标准2.6 为什么Fabric的共识只有排序?1 模块功能顺序梳理main方法:orde...原创 2019-03-18 16:53:54 · 562 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第27期-详细带读Fabric的源码12-历史状态数据库在代码级别的行为实现
Michael.W谈hyperledger Fabric第27期-详细带读Fabric的源码12-历史状态数据库在代码级别的行为实现1 什么是历史状态数据库?2 如何表示一笔交易被改变?3 如何查询某key的变动历史1 什么是历史状态数据库?如果想得到一个用户账户中的交易历史,状态数据库是无法满足的,那么就要从创世区块开始遍历,遇到与该账户相关的交易就记录一下。这个过程是耗时的。历史状态数据...原创 2019-03-22 22:56:19 · 833 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第13期-Fabric系统结构的详解补充
Michael.W谈hyperledger Fabric第13期-Fabric系统结构的详解补充1 系统结构框图2 一些零散的知识点补充最近在网上又看了一些资料,对Fabric的系统结构又有了更深一层的了解!在这里我再补充说明一下。之前我写过一个关于Fabric的系统结构的帖子:Michael.W谈hyperledger Fabric第2期-关于Fabric你所需要知道的基本知识一如果没有...原创 2019-03-15 21:02:14 · 813 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第3期-关于Fabric你所需要知道的基本知识二
Michael.W谈hyperledger Fabric第3期-关于Fabric你所需要知道的基本知识二5.4 orderer节点与多通道6 组织7 Fabric网络中的交易流程8 深入了解账本5.4 orderer节点与多通道可知:Consensus Service是orderer节点,图中有三条通道,每条通道中有不同的peer节点。总结:一个peer节点可以同时加入多个不同的通道,...原创 2019-03-07 23:35:51 · 979 阅读 · 1 评论 -
Michael.W谈hyperledger Fabric第5期-手动搭建Fabric网络之创世块/通道的生成一
Michael.W谈hyperledger Fabric第5期-手动搭建Fabric网络之创世块/通道的生成一1 本环节涉及的理论基础1.1 MSP1.2 锚节点2 创世块/通道的生成2.1 创始块/通道文件的生成依赖yaml文件的编写2.1.1 模板在哪里?2.1.2 yaml中的一个新语法2.1.3 修改配置文件configtx.yaml2.1.3.1 配置组织信息2.1.3.2 配置兼容性信...原创 2019-03-08 19:02:25 · 1536 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第6期-手动搭建Fabric网络之创世块/通道的生成二
Michael.W谈hyperledger Fabric第6期-手动搭建Fabric网络之创世块/通道的生成二2.3.4 对组织信息、兼容性信息和orderer相关信息的调用3 创始块/通道文件的生成依赖yaml文件的生成3.1 生成创始区块文件3.2 生成通道文件3.3 生成更新锚节点文件(可选)2.3.4 对组织信息、兼容性信息和orderer相关信息的调用看一下我前面所讲的所有设置,无论...原创 2019-03-08 22:27:23 · 1091 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第1期-环境搭建
Michael.W谈hyperledger Fabric第一期-环境搭建原创 2019-03-06 23:39:21 · 1698 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第7期-手动搭建Fabric网络之编写用于启动网络的docker-compose配置文件-客户端
Michael.W谈hyperledger Fabric第7期-手动搭建Fabric网络之用于启动网络的docker-compose配置文件的编写1 关于启动网络的docker-compose配置文件2 修改客户端容器的配置1 关于启动网络的docker-compose配置文件现在用于创建创世块和通道的依赖文件genesis.block和channel.tx已经创建完成。下一步就是要利用从网络...原创 2019-03-09 19:50:59 · 1254 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第8期-手动搭建Fabric网络之编写用于启动网络的docker-compose配置文件-orderer节点
Michael.W谈hyperledger Fabric第8期-手动搭建Fabric网络之编写用于启动网络的docker-compose配置文件-orderer节点3 修改orderer节点容器的配置3 修改orderer节点容器的配置看一下测试用例中的orderer节点部分的配置文件是如何写的: services: # 服务。 其中每个服务都对应一个docker容器。 orde...原创 2019-03-09 21:16:03 · 1172 阅读 · 6 评论 -
Michael.W谈hyperledger Fabric第9期-手动搭建Fabric网络之编写用于启动网络的docker-compose配置文件-peer节点
Michael.W谈hyperledger Fabric第9期-手动搭建Fabric网络之编写用于启动网络的docker-compose配置文件-peer节点4 修改peer节点容器的配置4.1 leader节点4 修改peer节点容器的配置老样子,先看一下docker-compose-cli.yaml文件中对peer节点容器的配置: # 文件:docker-compose-cli.yaml...原创 2019-03-10 00:04:58 · 942 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第10期-手动搭建Fabric网络之启动网络与功能调试一
Michael.W谈hyperledger Fabric第10期-手动搭建Fabric网络之启动网络与功能调试一1 网络内容器启动顺序2 启动网络3 创建通道4 peer节点加入通道5 链码的安装5.1 直接安装5.2 打包安装(推荐)6 通过客户端切换节点1 网络内容器启动顺序前面已经详细地讲解了编写管理1个orderer节点容器、4个peer节点容器(组织org1中2个,组织org2中2个...原创 2019-03-10 21:55:57 · 1235 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第23期-详细带读Fabric的源码8-peer节点账本读写的底层机制与RWSet读写集合
Michael.W谈hyperledger Fabric第23期-详细带读Fabric的源码8-peer节点账本读写的底层机制与RWSet读写集合1 账本读写的流程2 RWSet(读写集合)3 交易的验证3.1 交易验证的实现机制3.2 Fabric中为何要采用读写集合这种验证机制呢?3.3 Fabric中所有记录的内容都非指令操作么4 世界状态的本质4.1 世界状态的作用4.2 如果没有世界状态...原创 2019-03-19 16:24:35 · 947 阅读 · 1 评论 -
Michael.W谈hyperledger Fabric第24期-详细带读Fabric的源码9-peer节点有关账本的重要接口
Michael.W谈hyperledger Fabric第24期-详细带读Fabric的源码9-peer节点有关账本的重要接口1 PeerLedgerProvider接口-账本操作2 PeerLedger接口-账本查询3 ValidatedLedger接口-账本存储1 PeerLedgerProvider接口-账本操作Fabric账本存储的接口定义在core/ledger/ledger_int...原创 2019-03-19 17:01:14 · 446 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第2期-关于Fabric你所需要知道的基本知识一
Michael.W谈hyperledger Fabric第2期-关于Fabric你所需要知道的基本知识一1 hyperledger介绍2 Fabric介绍3 Fabric的逻辑架构3.1 身份管理3.2 账本管理与交易3.2.1 账本管理3.2.2 交易3.3 智能合约4 Fabric开发5 基础概念5.1 节点5.1.1 客户端5.1.2 peer节点5.1.3 orderer节点5.2 pee...原创 2019-03-07 21:12:42 · 1385 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第25期-详细带读Fabric的源码10-peer节点交易的读写集合RWSet
Michael.W谈hyperledger Fabric第25期-详细带读Fabric的源码10-peer节点交易的读写集合RWSet1 读写集合与“双花”问题2 交易读写集合的生成3 交易读写集合的验证1 读写集合与“双花”问题个人认为这个是Fabric的重点,因为读写集合是Fabric中防止"双花"问题的根本手段。现在的信息互联网只能做到信息的复制,当你浏览一个网站的时候,实际上是服务器...原创 2019-03-19 20:45:24 · 1237 阅读 · 0 评论 -
Michael.W谈hyperledger Fabric第11期-手动搭建Fabric网络之启动网络与功能调试二
Michael.W谈hyperledger Fabric第11期-手动搭建Fabric网络之启动网络与功能调试二7 背书策略7.1 定义背书策略的关键字7.2 限定组织成员8 链码的初始化9 查询账本10 背书节点11 发起交易7 背书策略链码安装后需要进行初始化,且只需要初始化一次。在做链码初始化之前,我先讲一下背书策略的概念。举个很生动的例子:假如你要结婚,那么在结婚前应该买车买房。如果...原创 2019-03-11 12:39:38 · 905 阅读 · 9 评论 -
Michael.W谈hyperledger Fabric第28期-详细带读Fabric的源码13-区块的存储持久化
Michael.W谈hyperledger Fabric第28期-详细带读Fabric的源码13-区块的存储持久化1 区块的存储持久化2 源码实现1 区块的存储持久化Fabric的区块存储持久化,即区块的文件存储。Fabric的文件存储是基于文件系统的,而不像前面所讲的世界状态和历史状态索引是基于levelDB数据库。注:Fabric的区块索引还是存储在levelDB中,用于快速定位区块位...原创 2019-03-26 19:44:06 · 608 阅读 · 0 评论