010 hyperledger-fabric 组件、交易、数据存储介绍

peer节点角色

1、锚节点(一个组织一个,配置文件指定)
2、背书节点(只有部分节点是背书节点,在初始化链码时通过指定背书策略的方式指定 -P and/or)
3、commiter节点(记账节点)(所有的peer节点都为记账节点)
4、主节点 (leader,通过选举方式产生一个主节点)

正常情况下有一下三种:

1、cli(可以看作成应用程序)

2、order

3、各种peer:leader、anchor、endorsor、commiter

交易过程

  • 1、应用cli向endorsor节点提交交易提案请求
  • 2、背书节点没收到客户端应用程序提交的交易提案请求后,模拟执行交易,并不会对实际的数据进行保存,只是得到一个模拟的交易结果,并对结果进行签名,产生一个相应消息返回给应用程序
  • 3、应用程序接收到响应后(必须收集到足够的背书),将响应结果封装成为交易请求
    模拟交易结果,请求时间,对应的足够的背书,交易编号。。。
  • 4、应用程序将交易请求发送给orderer节点
  • 5、orderer节点根据交易时间进行排序(涉及并发处理)(共识),产生区块,
  • 6、orderer节点通过gossip协议,广播给各组织的主节点leader
  • 7、主节点接收到区块之后,进行vscc(是保存区块之前的最终验证),验证通过,保存区块
    权限,节点是否能够保存在通道上面,请求交易的格式是否正确,数据有没有被篡改,版本号、、、
  • 8、主节点通过gossip协议广播给组织内的其他节点,
    默认同时广播给临近的三个节点

fabric中区块的存储方式

fabric:只支持Nosql(菲关系型数据库),以K-V方式保存数据
1、levelDB(是fabric默认的db)
2、counchDB:支持副查询(更加丰富)

三种类型

1、状态数据库:(stateDB)
2、历史数据库:(historyDB)
3、索引数据库:(IndexDB)

数据记录账本后:
1、更新状态数据库,保存最新世界状态(最新的数据)
2、更新历史数据库,保存的数据的K,交易的编号,区块的索引

fabric相关组件:

三层

  • 1、网络组件(面向系统管理人员)

    • orderer
    • peers
    • CLI
    • CA负责身份验证的,证书颁发机构
  • 2、共识及权限管理组件(面向联盟及组织的管理人员)

    • 共识:
      • 背书过程
      • 排序服务
      • 验证
    • 权限管理
      • MSP:是权限管理基础,对某一个资源(成员,节点,组织)进行身份验证的机制
      • 组织:拥有相同根证书的一组成员
      • 联盟:若干个组织的集合
      • 身份证书:由CA服务器负责管理生成,每一个实体或组织可以有自己的身份证书
  • 3、业务层组件:面向开发人员

    • 链码
    • 交易
    • 区块
    • 应用通道(判断权限)
    • 账本

推荐阅读更多精彩内容

  • 阿里妹导读:区块链技术,随着比特币的兴起而为大家所知。但是具体到技术本身,大家相对熟悉的几个词可能是“数据不可篡改...
    阿里技术阅读 332评论 0 2
  • 对官方的原文进行了简单的翻译:arch-deep-dive感觉原文有一点点啰嗦(更可能是本人英文有点搓),翻译的更...
    wydnpu阅读 1,986评论 1 4
  • 南山有雪 我远远地望过去 好多人远远地望过去 好像这座城市就这么一座山 好像这个季节就这么一场雪 其实南山离我们很...
    甘肃子溪阅读 70评论 1 3
  • 尼康狗头拍摄,地点:天津五大道 狗头实在是用够了,准备入手中一光学 35.2。大家有什么建议?
    漫山遍野的猪阅读 150评论 0 2
  • 昨晚做了一个繁乱的梦。早晨醒来几乎都忘了,后来不知道怎么想起来,越想越觉得奇怪,又觉得和自己某种思绪暗合。 梦里,...
    真冉阅读 68评论 0 1