首页 > 其他分享 >区块链基础知识

区块链基础知识

时间:2023-07-08 16:45:37浏览次数:36  
标签:Fabric 基础知识 链码 Hyperledger 区块 账本 节点

开始学习区块链了,记录一下区块链入门的一些基础知识。

1. 区块链

区块链本质是一种多方共享的分布式账本技术,存储于其中的数据或信息,具有“不可伪造、不可篡改、全程留痕、可以追溯、公开透明、集体维护”等特征。

2. 区块

区块链中一套分布式账本存储的基本数据结构、是在区块链网络中承载交易数据的数据包。

每个区块一般被标记上时间戳,记录了本区块中的交易集合、上一个区块的哈希值、本区块的哈希值等信息。新旧区块之间通过哈希值依次前后串联,并通过区块链网络的共识机制验证并确认区块中的交易。

3. 链

区块链中数据持久化存储时区块之间的连接结构。

一条链是指存储在某个区块链网络中,一个由若干区块通过特定指向链接、摘要算法或加密算法锚定组成的数据序列。

4. 区块高度

区块链的第一个区块称为“创世区块”(genesis block),后续生成的区块用“高度”标识,每个区块高度逐一递增。

通过区块高度可以识别区块在区块链中的位置,并可以据此找到和这个区块相关的所有基础属性和交易记录。

5. 交易

与区块链交互时处理的原子事务,即一系列不可分割且不可简化的操作。

6. 节点

区块链网络中负责网络互联、协议交换、账本维护等工作的信息处理设备,可以是一个进程或一台运行了节点进程的计算机设备。

7. 客户端

有时候又被称为“钱包”,指通过集成了软件开发工具包(Software development kit,简称SDK)或者应用程序接口 (Application programming interface,简称API)后实现的可以访问区块链网络并发送请求、获取信息的应用程序、命令行工具等。

8. 共识机制

英文名Consensus,是区块链作为分布式网络,节点之间在没有所谓中心的情况下就交易的合法性达成共识的一种分布式协调机制。所有节点根据共识机制达成的共识,来生成和更新数据,确保分布式系统的数据一致性。

9. 智能合约

英文名称Smart Contract,是基于区块链系统实现的一套规则逻辑或脚本程序,本质上就是一段代码。

智能合约可以在没有第三方的情况下进行可信的交易,且交易是可以被追溯的,同时也是不可逆的。

相比于传统的中心化应用程序,基于区块链及智能合约实现的应用程序可以被称为Decentralized application,简称DAPP。

10. 区块链分类

三种基本类型:公有链(Public Blockchain)、私有链(Private Blockchain)和联盟链(Consortium Blockchain),前者又称无许可链(Permissionless Blockchain),后两者在技术实现上差别不大,所以合称许可链(Permissioned Blockchain)。

公有链:高度的去中心化, 所有交易数据公开、透明,任何人或组织都可以随时访问读取数据、发送可确认交易、参与共识过程。适用于公共社会服务领域。一般会通过代币机制鼓励参与者竞争记账,来确保数据的安全性。目前的典型应用有比特币、以太币。

私有链:以中心化的形式运作,不对外公开,参与节点的资格受到严格限制,写入权限由某个组织控制,读写权限可能公开或任意程度的限制。适用于企业内部服务领域。典型应用场景有审计。

联盟链:以多中心化的形式运作,仅对联盟成员开放,各节点通过授权认证加入或退出网络,共识过程受预选节点控制, 只允许联盟内的节点读写和发送交易、共同记录交易数据。适用于跨企业服务领域。典型应用场景有存证溯源、供应链领域。

11. 区块链实现技术框架

主流的有:以太坊(Ethereum,缩写ETH)(属于无许可链)、Hyperledger Fabric(属于许可链)、R3 Corda(属于许可链)等。

 

12. Hyperledger Fabric

Hyperledger(超级账本)是一个旨在推动区块链跨行业应用的开源项目,由Linux基金会在2015年12月主导发起,Fabric作为一个企业级许可分布式账本框架,用于开发区块链解决方案和应用程序,是当前企业场景中联盟链/私有链实现所常用的开源框架。

Hyperledger Fabric技术框架下,将节点进行了功能拆分,分为三种服务类型:Peer节点、Orderer节点、CA节点。在一套可运行的Fabric网络中,三类节点一般都要存在。

13. 身份管理

为了实现权限管控的网络系统,Hyperledger Fabric 提供了包含管理用户 ID 以及对所有网络参与者进行验权的会员身份服务的功能。

访问控制列表可以当做额外的权限层,以此来实现不同的用户授权不同的网络操作权限。比如说,一个特定的用户id可以被允许唤起一个链码应用,但却无法部署新的链码。

14. Peer节点

指参与节点,区块链网络中参与共识和账本记录的节点。

根据承担的功能,可以进一步细分为Anchor、Endorser、Committer等角色。

Anchor节点:指锚定节点,在Hyperledger Fabric技术框架下,为了实现高可用,把几个Committer节点组成集群,设置其中一个为主节点,与网络中其他组织进行信息同步。

Endorser节点,指背书节点,在交易时模拟执行智能合约,验证相关信息,进行签名背书,是维护账本的网络节点。是验证交易并声明此交易合法(或不合法)的链中节点。

Committer节点,指记账节点,只负责验证从Orderer节点发出的区块和交易的合法性、并存储账本区块信息。

3种角色不互斥,所以一个节点可以既是Anchor、同时又是Endorser和Committer。

15. Orderer节点

指排序节点,提供排序服务(即Fabric共识服务)的节点,负责交易的排序、区块打包、区块分发等工作。

区块链网络内的交易完成背书后,由Orderer节点进行排序,然后根据一定的规则打包成新区块,发送给Peer节点以进行区块和交易的验证并写入账本,从而完成共识的全过程。

16. CA节点

创建、颁发数字证书。

17. Hyperledger Fabric共识机制

Hyperledger Fabric 共识机制目前包括SOLO和Raft,另外Kafka已经不再推荐使用,SBFT(简化的拜占庭容错)仍然在开发中。

18. 通道

通道是Hyperledger Fabric技术框架中为了实现数据的隔离和保密,构建在一套区块链网络上的专用区块链账本。每一个通道即为一条逻辑上的区块链。通道可以向特定的节点子集提供事务隐私和机密性,任何未明确授予访问该通道的节点都无法访问。同一个节点可以加入多个通道,为每个通道维护一个账本。

19. Hyperledger Fabric智能合约

Hyperledger Fabric 的智能合约是用链码(Chaincode)实现的,并且被区块链外部应用程序所调用,以此来与账本交互。

20. Chaincode链码

使用计算机语言描述合约条款、交易的条件、交易的业务逻辑等,通过调用链码实现交易的自动执行和对账本数据的操作,是应用程序与底层交互的媒介。

Fabric的智能合约称为链码(chaincode),分为系统链码和用户链码。系统链码用来实现系统层面的功能,用户链码实现用户的应用功能。链码被编译成一个独立的应用程序,运行于隔离的Docker容器中。

标签:Fabric,基础知识,链码,Hyperledger,区块,账本,节点
From: https://www.cnblogs.com/husterlong/p/17537405.html

相关文章

  • JavaScript必会基础知识
    本手册的目标是快速向您介绍JavaScript的基础知识,以便您可以开始编写应用程序。我不会涵盖JavaScript的所有理论和概念,而是只教您该语言最重要的构建块。我们将介绍变量、数据类型、函数、对象、数组和类等内容。您还将学习如何将它们全部混合起来构建一个小而可靠的程序。......
  • ElasticSearch基础知识
    概述底层基于Luence,用于全文检索和分析应用术语概念索引(Index):ES数据存储在索引上,索引是具有类似特性的文档的集合。类型(Type):索引内部的逻辑分区(paritition),一个索引可定义多个类型。节点(Node):一个运行中的ElasticSearch实例,集群是由一个或多个拥有相同cluster.name配置的节点......
  • JVM 基础知识
    一、基础概念数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte、shor......
  • 等保测评基础知识
     网络安全等级保护 定义:是指对国家秘密信息、法人或其他组织及公民专有信息以及公开信息和存储、传输、处理这些信息的信息系统分等级实行安全保护,对信息系统中使用的安全产品实行按等级管理,对信息系统中发生的信息安全事件分等级进行响应、处置。等级保护,即分等级保护,分等级监......
  • CSS基础知识(未完待续)
    前言:从本篇开始记录css的一些基础知识,但不会涉及css3,以后会单独学习记录。1.CSS简介html只关注了内容的语义,但并没有注意具体布局的美化以及样式,如果用html去设置的话,就会显得十分臃肿,这时候就需要css来进行设置了。CSS是层叠样式表的简称,有时候我们也会称之为css样式表或者......
  • 7.6 爬虫基础知识学习 requests的使用
    1.requests的快速使用 /1爬虫定义:可见即可爬/2安装resquests模块正确路径下输入pipinstallrequests/3用requests发送get请求importrequests#res是响应对象就是http响应python包装成了对象(响应头,响应体等)res=requests.get('https://www.cnblogs.com/abc6838......
  • 阿里区块链开放联盟使用http方式对接
    using(HttpClienthttpClient=newHttpClient()){/*所有的步骤实例都得进行http请求,当前demo中我的请求放在最后,只是一步一步的流程进行开发*/SendEntityentity=newSendEntity();#region步骤一:调用合约接口,将数据上链操作成功实现合约调用的列子(目前注释......
  • 基础知识
     类型特点典型应用单工只支持在一个方向上传输 半双工两台设备双向传输,但是不能同时进行IIC全双工二台设备间同时进行双向数据传输SPI/UART 类型特点典型应用同步有时钟线,通信的字节传输是没有间隔的,通信传输效率高(但复杂)。SPI/IIC......
  • C++基础知识
    1.类1//创建类2classPerson{34//公共的属性5public:6voidsetAge(intage){7this->age=age;8}9~Person{}//析构函数10voidsetName(stringname){11this->name=name;12}1314intgetAge(){15......
  • Docker|容器与Docker基础知识
    Docker|基础知识从虚拟机开始我们知道和一个单纯的应用程序相比,操作系统是一个很重而且很笨的程序,简称笨重,有多笨重呢?我们知道操作系统运行起来是需要占用很多资源的,刚装好的系统还什么都没有部署,单纯的操作系统其磁盘占用至少几十G起步,内存要几个G起步。假设我有一台机器,16G......