Fabric 2.0 之账本(Ledger)

2023-10-18 11:40
文章标签 2.0 账本 fabric ledger

本文主要是介绍Fabric 2.0 之账本(Ledger),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  参考资料(官方文档):Ledger

Ledger

  在Hyperledger Fabric里面,账本由两个不同但相关的部分组成:世界状态(world state)和区块链(blockchain).
  世界状态数据库保存了账本中最新的值,世界状态使程序可以直接访问当前状态数据库的值,无需遍历所有的交易日志。世界状态可以频繁更改(创建/更新/删除)
  而区块链中记录当前世界状态的所有更改的交易日志,交易是附加到区块内部的,可追溯。区块链的数据结构与世界状态不同,一旦写入无法修改。
在这里插入图片描述
  实际网络中,通过共识维护了一个账本的多个副本。

世界状态(World State)

  世界状态维护了对象的最新值,这是很有用的。无需遍历整个区块链来计算当前的值,从世界状态获取即可。
在这里插入图片描述
  世界状态都会有个版本号,版本号初始为0,每次状态更改时都会递增,同时每次更新时都需要做版本校验。有一点需要注意,当首次创建账本时,世界状态为空,因为任何代表世界状态有效改变的交易都记录在区块链上,意味着随时可以从区块链生成世界状态。例如当节点创建/重启时自动生成世界状态。

区块链(Blockchain)

  区块链通过区块互联顺序记录日志,其中每个区块都会包含一系列交易(世界状态的查询或是更新)。每个区块的头均包含该区块交易的哈希值,以及前一个区块的头的哈希值。

  与使用数据库的世界状态相反,区块链通过文件实现。这是一个明智的设计选择,因为每次追加到区块链的末尾是主要操作,而查询是相对不频繁的操作。
在这里插入图片描述
  如上图所示,区块链中的第一个块称为创世块(genesis block)。 尽管它不包含任何用户交易,但它是账本的开始。

区块(Block)

  如下图所示,每个区块主要包含三个部分:
  区块头:包含三个字段,伴随区块创建写入。

  1. 区块号(Block number):从0(创世块)开始的整数,每次新生成区块时加1
  2. 当前区块哈希(Current Block Hash):当前区块所有交易的哈希
  3. 上一区块哈希(Previous Block Header Hash):上一个区块头的哈希
    在这里插入图片描述

  区块数据(Block Data):按顺序排列的交易(下节介绍)列表。

  区块元数据:包含块创建者的证书和签名,用于通过网络节点验证块。 随后,块提交者将每个事务的有效/无效指示符添加到也驻留在块元数据中的位图中,以及直到(包括)该块为止的累积状态更新的哈希,以检测状态派生。 与块数据和区块头字段不同,此部分不是块哈希计算的输入。

交易(Transaction)

  下图为交易的结构:
在这里插入图片描述
  主要包括以下五部分:

  1. Header:包含交易的一些元数据,例如链码的名称及版本
  2. Signature:包含由客户端应用程序创建的加密签名。 此字段用于检查交易明细是否未被篡改,因为它需要应用程序的私钥来生成它。
  3. Proposal:应用程序提供给智能合约进行模拟账本执行的输入参数的数据结构。
  4. Response: 它是智能合约的输出,如果交易成功通过验证,将更新世界状态,包含了读写集等信息。
  5. Endorsements:各个组织的背书签名,每个组织的签名的都是特定的,当背书签名数量不足,视为无效交易。

世界状态数据库选择

  LevelDB是默认的状态数据库,LevelDB是节点内嵌数据库,适合简单的key-value形式的数据。

  当数据为JSON格式时,CouchDB是一个特别合适的选择,因为CouchDB支持富查询。在实现方面,CouchDB在单独的操作系统进程中运行。
  关于启用CouchDB参考:Fabric启用CouchDB

通道

  前文我们将账本呈现为一个单一的世界状态和单个区块链,但这还是有点过分简化了。 实际上,每个链码都有自己的世界状态,该世界状态与所有其他链码是分开的。 世界状态位于命名空间(namespace)中,因此只有相同链代码内的智能合约才能访问给定的命名空间。

  在Hyperledger Fabric中,每个通道都有一个完全独立的账本。 这意味着完全独立的区块链,以及完全独立的世界状态,包括名称空间。 应用程序和智能合约可以在通道之间进行通信,以便可以在它们之间访问账本信息。

这篇关于Fabric 2.0 之账本(Ledger)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/232340

相关文章

OpenGL ES 2.0渲染管线

http://codingnow.cn/opengles/1504.html Opengl es 2.0实现了可编程的图形管线,比起1.x的固定管线要复杂和灵活很多,由两部分规范组成:Opengl es 2.0 API规范和Opengl es着色语言规范。下图是Opengl es 2.0渲染管线,阴影部分是opengl es 2.0的可编程阶段。   1. 顶点着色器(Vert

QT项目实战之音乐播放器2.0版本

该版本相较于1.0版本最主要的不同在于连接数据库实现类似于歌曲收藏和取消收藏的功能。 详细情况看我的这篇文章http://t.csdnimg.cn/WS5s8。 效果展示 VSMyMusicShow2.0 define.h UseMySQL.h   musicInfo.h   VSMyMusicPlayer.h

MemSQL Start[c]UP 2.0 - Round 1A(构造)

题目链接:http://codeforces.com/problemset/problem/452/A 解题思路: 打个表暴力查找匹配。 完整代码: #include <algorithm>#include <iostream>#include <cstring>#include <complex>#include <cstdio>#include <strin

【深度学习 走进tensorflow2.0】TensorFlow 2.0 常用模块tf.config

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。人工智能教程 本篇文章将会教大家如何 合理分配显卡资源,设置显存使用策略。主要使用tf.config模块进行设置。下面我们一起了解下具体用法和例子。 一、指定当前程序使用的 GPU 例如,在一台具有 4 块 GPU 和一个 C

Aloudata AIR :国内首个 Data Fabric 逻辑数据平台

AIR 的寓意是“极致轻盈的数据交付”:A - Adaptive 自适应,I - Integration 集成,R - Resilience 弹性 News:Aloudata AIR 发布 作为国内首个 Data Fabric 逻辑数据平台,Aloudata AIR 通过自研的数据虚拟化技术,轻松实现多源异构数据的集成整合和自适应加速,为 Data Fabric 数据架构理念在国内的实践落地开辟

matter中的Fabric(网络结构)

什么是Fabric? Fabric可以被理解为一组相互信任的设备和控制器,它们共享一个共同的信任域。这意味着在同一个Fabric中的设备和控制器之间可以进行安全的通信,而无需额外的身份验证或安全检查。每个Fabric有一个唯一的标识,确保Fabric之间是隔离的,防止权限混乱。一个Matter Fabric就是一个Matter网络,一个Matter Fabric中的所有节点共享同一个根证书,所以

等保2.0升级:企业如何快速适应新标准

随着《网络安全法》的实施以及网络空间安全形势的不断升级,我国的信息安全等级保护制度也在持续完善。等保2.0的出台,标志着我国信息安全等级保护体系进入了一个新的阶段。面对等保2.0的升级,企业应如何快速适应新标准,确保自身信息安全体系与国家政策的同步升级?本文将从理解新标准、评估现状、制定计划、执行与优化四个方面,探讨企业应对等保2.0升级的有效策略。 一、深入理解等保2.0新标准 等保2.0相

从 Hadoop 1.0 到 Hadoop 2.0 ,你需要了解这些

学习大数据,刚开始接触的是 Hadoop 1.0,然后过度到 Hadoop 2.0 ,这里为了书写方便,本文中 Hadoop 1.0 采用 HV1 的缩写方式,Hadoop 2.0 采用 HV2 的缩写方式。 HV1 中不得不提的两个进程:JobTracker 和 TaskTracker。JobTracker 主要负责任务调度和集群资源管理,TaskTracker 主要负责任务执行。在 HV1

【运维监控】influxdb 2.0+telegraf 监控tomcat 8.5运行情况(1)

关于java应用的监控本系列有文章如下: 【运维监控】influxdb 2.0+telegraf 监控tomcat 8.5运行情况 【运维监控】influxdb 2.0+grafana 监控java 虚拟机以及方法耗时情况 【运维监控】Prometheus+grafana监控tomcat运行情况 【运维监控】Prometheus+grafana监控spring boot 3运行情况 本示例是通过

华为达芬奇人像引擎2.0,人像体验有哪些升级

对于年轻人而言,拍照已成为生活中不可或缺的一部分,不仅是为了记录世界、更重要的是成为生活的主角,大胆表达自己。然而很多喜欢使用手机记录生活的人,既希望能够实现媲美单反的影像实力,同时还想呈现出真实、更具自然美感的人像效果。这无疑对手机产品提出了更高的标准与要求。 为了满足用户对自拍人像的追求,全新上市的nova Flip在影像方面全面进阶,不仅全新升级华为达芬奇人像引擎2.0,同时后置搭载了50