区块链技术和Hyperledger Fabric介绍

1 区块链介绍

1.1 区块链技术形成

1.1.1 起源

在比特币诞生之时,技术专家们开始研究比特币的底层技术,并抽象提取出来,形成区块链技术,或者称分布式账本技术。

1.1.2 定义

简称BT(Blockchain technology),也称为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录,同时数据不可篡改。

1.1.3 理解

把数据库比喻为一个账本,一次记账的行为就是一次数据库的读写;当产生一个数据时,在一段时间内谁最快拿到记账权的人,将由这个人来记账,然后把这个账本信息发给整个系统里的其它所有人,所有人达成共识时,本次记账有效,最终在账本上的数据谁也无权修改。

1.2 区块链技术发展

1.2.1 区块链1.0

以比特币为代表的去中心化虚拟货币,是与转账、汇款和数字化支付相关的密码学货币应用,主要以公有链方式存在。

1.2.2 区块链2.0

被广泛应用于各个金融领域,不只是单纯的虚拟货币,如股票、债券、期货、贷款、抵押、产权、智能财产和智能合约,主要以公有链、联盟链方式存在。

1.2.3 区块链3.0

被应用到除金融以外的各个领域,不再需要第三方信任认证机构的前提下,实现信息的交换和共享,达到人与人之间的信任,变革生产关系;主要以公有链、联盟链和私有链方式存在。

1.3 区块链技术基本概念

1.3.1 理解

区块链从字面上理解:数据记录在区块中,通过一定的算法把区块连成一个链。

1.3.2 核心概念

  • 交易(Transaction)

  • 区块(Block)

  • 链(Chain)

1.4 区块链技术原理

每一次交易,都需要对账本状态进行一次改变,生成一个区块,需要所有人进行确认,达成全员共识时,该区块才生效。区块链通过哈希(Hash)算法,生成一串字符串,保存在区块的头部中,一个区块通过指向上一个Hash值,加入到区块链中;Hash算法是一种加密算法,指对原始信息进行特定的转换运算,换算成对应的加密值(称为Hash值);是一种单向的加密方式,加密后的密文不可逆推,只有加密过程,没有解密过程;区块链中使用SHA-256算法对区块进行加密。

1.5 区块链工作过程

  • 交易产生

  • 交易广播

  • 节点计算

  • 获取记账权

  • 记账权广播

  • 验证区块

  • 完成记账

1.6 区块链开发平台分类

1.6.1 公有链平台

主要以以太坊为主的平台,可以在该类平台上进行代币的发行和根据各种模块搭建应用。

1.6.2 联盟链平台

主要以超级账本为主的开源系统,该类开源系统提供完善的区块链底层技术,开发者只要在其框架下进行二次开发,根据自身需求编写智能合约,通过SDK接口访问区块中的数据,实现具体的区块链业务场景。

2 超级账本(Hyperledger)介绍

2.1 超级账本起源

2.1.1 起源

开放式账本项目(Open Ledger Project)是超级账本(Hyperledger)前身,由Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,在2015年底IBM宣布加入到开放式账本项目(Open Ledger Project)后,该项目更名为超级账本(Hyperledger)。

2.1.2 目前

2016年12月1日,超级账本项目(Hyperledger Project)开源联盟技术指导委员会(TSC)宣布成立TWG China 中国技术工作组,促进超级账本当中的各国成员与中国贡献者和技术用户之间的交流,目前中国区成员有百度、万达、小米、华为、招商银行、民生银行等。

2.2 超级账本简介

2.2.1 定义

超级账本(Hyperledger)是推动区块链跨行业应用的开源项目的总称,组织成员可以发起新的区块链项目,加入到超级账本项目(Hyperledger)中,但需要遵循Hyperledger的生命周期。

2.2.2 流程

Hyperledger的生命周期分为五个阶段,分别为Proposal(提案)、Incubation(孵化)、Active(活跃)、Deprecated(过时)、End of Life(结束)。

2.2.3 项目

超级账本(Hyperledger)有Fabric、Sawtooth、Iroha、Blockchain Explorer、Cello、Indy、Composer、Burrow八大顶级项目,目前提到超级账本(Hyperledger)默认指Fabric。

3 Fabric介绍

3.1 Fabric简介

3.1.1 定义

Fabric是一个提供模块化分布式账本解决方案的框架。

3.1.2 交易流程

3.2 Fabric关键技术

  • 帐本(Ledger)

  • 智能合约(Smart contract)

  • 通道(Channel)

  • 节点(Peer)

  • 排序(Orderer)

  • 接口(SDK)

3.2.1 帐本(Ledger)

Fabric帐本(Ledger)是一系列有序和防篡改的状态转换的记录,结构由一个区块链构成,并将不可变的、有序的记录存放在区块中;同时包含一个状态数据库来记录当前的状态,账本的当前状态信息是链交易日志中记录过的所有键的最新值,由于当前状态表示的是通道已知的所有键的最新值,由此也被称为世界状态。

3.2.2 智能合约(Smart contract)

智能合约又称为链码,是在区块链上运行的一段代码,是应用系统与区块链底层交互的中间件,通过智能合约可以实现各种复杂的应用。

3.2.3 通道(Channel)

通道是两个节点(Peer)或多个节点之间信息通信的私有空间,在通道内的交易的数据与通道外隔绝,保证通道内数据的安全 Fabric是多通道设计,系统可以创建多条通道,某个节点(Peer)可以加入到不同的通道中,在每个通道中有自身的创世区块和实例化智能合约(Smart contract) 每个通道都有属于自己的锚节点,通过锚节点可以与其它通道进行信息交互,但本身通道内的账本不会通过一个通道传到另一个通道上,通道对账本是分离的。

3.2.4 节点(Peer)

节点(Peer)是区块链的交易处理和账本维护的主体,主要负责参与共识过程和通过执行链码(chaincode)实现对账本的读写操作。

节点(Peer)根据功能不同分为背书节点(Endorser peer)和提交节点(Committer peer),根据通讯不同分为锚节点(Anchor peer)和主节点(Leading peer)。

3.2.5 排序(Orderer)

排序(Orderer)指对区块链网络中不同通道产生的交易进行排序,并广播给节点(Peer)。排序(Orderer)是以可插拔组件的方式实现,目前分为SOLO和Kafka两种类型。 SOLO:仅有一个Orderer服务节点负责接收交易信息进行排序。

Kafka:是由Apache软件基金会开发的一个开源流处理平台,一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据,可以配置多个排序节点集群方式。

3.2.6 接口(SDK)

Fabric SDK提供调用账本(Ledger)、智能合约(Smart contract)、通道(Channel)、节点(Peer)、排序(Orderer)等接口,方便用第三方应用程序的开发,大大扩展了Fabric的应用场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/259794.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8 款顶级开源漏洞扫描工具推荐

1.OpenVAS OpenVAS漏洞扫描器是一种漏洞分析工具,由于其全面的特性,可以使用它来扫描服务器和网络设备。这些扫描器将通过扫描现有设施中的开放端口、错误配置和漏洞来查找IP地址并检查任何开放服务。扫描完成后,将自动生成报告并以电子邮件形…

基于springboot的鞋类商品购物商城系统

文章目录 目录 文章目录 前言 一、功能设计 二、功能实现 2.1 后台功能 2.1.1 管理员登录界面 2.1.2 系统首页 2.1.3 会员管理 2.1.4 栏目管理 2.1.5 商品管理 2.1.6 评价管理 2.1.7 订单管理 2.2 前台功能 2.2.1 新用户注册登录 2.2.2 首页 2.2.3 商品分类 2.2.4 地址管理 2.2…

(AtCoder Beginner Contest 341)(A - D)

比赛地址 : Tasks - Toyota Programming Contest 2024#2&#xff08;AtCoder Beginner Contest 341&#xff09; A . Print 341 模拟就好了 &#xff0c; 先放一个 1 , 然后放 n 个 01 ; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout…

Nature Chemical Engineering 威斯康星大学让机器人科学家做实验,自主设计全新蛋白质

【导读】这个自动化蛋白质设计系统可以自己设计和测试新的蛋白质&#xff0c;不需要人类的帮助。就像一个能自己做实验的机器人科学家。它能通过自主学习自行进行蛋白质设计&#xff0c;同时在实验室里自动进行测试。 AI Agent&#xff0c;已经可以不需要人类帮助&#xff0c;…

数据结构-邻接矩阵

介绍 邻接矩阵&#xff0c;是表示图的一种常见方式&#xff0c;具体表现为一个记录了各顶点连接情况的呈正方形的矩阵。 假设一共有以下顶点&#xff0c;其连接关系如图所示 那么&#xff0c;怎么表示它们之间的连接关系呢&#xff1f; 我们发现&#xff0c;各条边所连接的都…

7.1 Qt 中输入行与按钮

目录 前言&#xff1a; 技能&#xff1a; 内容&#xff1a; 参考&#xff1a; 前言&#xff1a; line edit 与pushbotton的一点联动 当输入行有内容时&#xff0c;按钮才能使用&#xff0c;并能读出输入行的内容 技能&#xff1a; pushButton->setEnabled(false) 按钮不…

django中的中间件

在Django中&#xff0c;中间件&#xff08;Middleware&#xff09;是一个轻量级的、底层的“插件”系统&#xff0c;用于全局地修改Django的输入或输出。每个中间件组件都负责执行一些特定的任务&#xff0c;比如检查用户是否登录、处理日志、GZIP压缩等。Django的中间件提供了…

Python安装GDAL库

目录 一、GDAL介绍 二、GDAL应用 三、python安装GDAL库 一、GDAL介绍 GDAL&#xff08;Geospatial Data Abstraction Library&#xff09;是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式&#xff0c;并且提供了一系列命令…

10分钟带你了解分布式系统的补偿机制

我们知道&#xff0c;应用系统在分布式的情况下&#xff0c;在通信时会有着一个显著的问题&#xff0c;即一个业务流程往往需要组合一组服务&#xff0c;且单单一次通信可能会经过 DNS 服务&#xff0c;网卡、交换机、路由器、负载均衡等设备&#xff0c;而这些服务于设备都不一…

(10)Hive的相关概念——文件格式和数据压缩

目录 一、文件格式 1.1 列式存储和行式存储 1.1.1 行存储的特点 1.1.2 列存储的特点 1.2 TextFile 1.3 SequenceFile 1.4 Parquet 1.5 ORC 二、数据压缩 2.1 数据压缩-概述 2.1.1 压缩的优点 2.1.2 压缩的缺点 2.2 Hive中压缩配置 2.2.1 开启Map输出阶段压缩&…

elementui 中 el-date-picker 控制选择当前年之前或者之后的年份

文章目录 需求分析 需求 对 el-date-picker控件做出判断控制 分析 给 el-date-picker 组件添加 picker-options 属性&#xff0c;并绑定对应数据 pickerOptions html <el-form-item label"雨量年份&#xff1a;" prop"date"><el-date-picker …

洛谷 P6546 [COCI2010-2011#2] PUŽ

讲解&#xff1a; 首先还是正常输入&#xff1a; int a,b,v; cin>>a>>b>>v; 然后经入一个函数num&#xff1a; cout<<num(1.0*(v-a),(a-b))1<<endl; 之所以要乘以1.0是因为要向上取整&#xff01;而这个num函数的两个参数则是“蜗牛白天爬了多…

【智能家居入门2】(MQTT协议、微信小程序、STM32、ONENET云平台)

此篇智能家居入门与前两篇类似&#xff0c;但是是使用MQTT协议接入ONENET云平台&#xff0c;实现微信小程序与下位机的通信&#xff0c;这里相较于使用http协议的那两篇博客&#xff0c;在主程序中添加了独立看门狗防止程序卡死和服务器掉线问题。后续还有使用MQTT协议连接MQTT…

LabVIEW焊缝缺陷超声检测与识别

LabVIEW焊缝缺陷超声检测与识别 介绍基于LabVIEW的焊缝缺陷超声检测与识别系统。该系统利用LabVIEW软件和数据采集卡的强大功能&#xff0c;实现了焊缝缺陷的在线自动检测&#xff0c;具有通用性、模块化、功能化和网络化的特点&#xff0c;显著提高了检测的效率和准确性。 随…

Qt的基本操作

文章目录 1. Qt Hello World 程序1.1 通过图形化界面的方式1.2 通过代码的方式实现 2. Qt 的编码问题3. 使用输入框实现hello world4. 使用按钮实现hello world5. Qt 编程注意事项6. 查询文档的方式7. 认识Qt坐标系 1. Qt Hello World 程序 1.1 通过图形化界面的方式 我们先讲…

8、内网安全-横向移动RDPKerberos攻击SPN扫描WinRMWinRS

用途&#xff1a;个人学习笔记&#xff0c;有所借鉴&#xff0c;欢迎指正 目录 一、域横向移动-RDP-明文&NTLM 1.探针服务&#xff1a; 2.探针连接&#xff1a; 3.连接执行&#xff1a; 二、域横向移动-WinRM&WinRS-明文&NTLM 1.探针可用&#xff1a; 2.连接…

每日一练:LeeCode-501、二叉搜索树中的众数【二叉搜索树+pre辅助节点+DFS】

本文是力扣LeeCode-LeeCode-501、二叉搜索树中的众数【二叉搜索树pre辅助节点DFS】 学习与理解过程&#xff0c;本文仅做学习之用&#xff0c;对本题感兴趣的小伙伴可以出门左拐LeeCode。 给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root &#xff0c;…

Android Compose 一个音视频APP——Magic Music Player

Magic Music APP Magic Music APP Magic Music APP概述效果预览-视频资源功能预览Library歌曲播放效果预览歌曲播放依赖注入设置播放源播放进度上一首&下一首UI响应 歌词歌词解析解析成行逐行解析 视频播放AndroidView引入Exoplayer自定义Exoplayer样式横竖屏切换 歌曲多任…

如何根据需求理解CPU、SoC和MCU的区别

在当今数字化的世界中&#xff0c;我们经常听到关于CPU、SoC和MCU的名词&#xff0c;它们都是计算机科学和电子工程领域中的重要组成部分。然而&#xff0c;这三者之间存在着明显的区别。本文将深入探讨CPU&#xff08;中央处理器&#xff09;、SoC&#xff08;系统芯片&#x…

一、部署Oracle

部署Oracle 一、Docker部署1.Oracle11g1.1 测试环境1.1.1 拉取镜像1.1.2 启动容器1.1.3 配置容器环境变量1.1.4 修改sys、system用户密码1.1.5 创建表空间1.1.6 创建用户并授权1.1.5 使用DBeaver测试连接 二、安装包部署 一、Docker部署 1.Oracle11g 1.1 测试环境 当前只能用…