关键概念中英文对照

区块链(Blockchain)
证明系统(Systems of Proof)
去中心化(Decentralized )
分布式账本(Distributed Ledger)
智能合约(Smart Contracts)
共识(Consensus)
超级账本(Hyper ledger)
世界状态(World State)
事务日志(Transaction Log)
链码(ChainCode )
资产(Assets)
身份( Identity)
主体 (Principal)
私钥(Private Key)
公钥(Public key )
证书颁发机构 【Certificate Authorities(CA)】
数字证书(Digital Certificates)
Fabric证书颁发机构 Fabric CA证书吊销列表【Certificate Revocation List (CRL)】
成员服务提供商 【Membership Service Provider (MSP)】
本地 MSP(Local MSPs)
渠道 MSP(Channel MSPs)
组织单位 【Organizational Units (OUs)】
节点组织单位(Node OU)
公钥基础设施  【Public Key Infrastructure (PKI) 】
主题密钥标识符【 Subject Key Identifier (SKI)】
权限访问标识符 【Authority Access Identifier (AKI)】
节点组织单位(Node OU)

本地MSP目录结构

config.yaml:启用Node OU、定义可接受的角色
cacerts:根CA 自签名证书列表(至少一个)
intermediatecerts:中间CA自签名证书列表(可选)
admincerts:Fabric1.4.3+弃用(定义组织管理员角色的参与者的身份列表)
keystore(private Key):本地 MSP 定义、包含节点的私钥、用于签署数据(本地 MSP 是必需的,并且必须包含一个私钥、通道MSP配置不包括此文件夹)通道MSP配置不包括此文件夹,因为通道的MSP仅旨在提供身份验证功能,并且不签署能力。##  Hardware Security Module 硬件安全模块 (HSM)
signcert:拥有CA 颁发的节点证书,证书对应的私钥可用于生成签名(本地 MSP 是必需的)拥有此证书副本的人都可以验证该签名必须包含一个public key通道MSP配置不包括此文件夹,因为通道的MSP仅旨在提供身份验证功能,并且不签署能力。
tlscacerts: 组织信任的根 CA 的自签名 X.509 证书列表必须至少有一个 TLS 根 CA 证书用于使用 TLS(安全传输层协议) 的节点之间的安全通信通信是依赖于节点,而不是使用网络的应用程序和管理。
tlsintermediatecacerts:包含一个列表中间 CA 证书,由该 MSP 代表的组织信任,用于使用 TLS 的节点之间的安全通信。
Operationscerts:与Fabric Operations Service API通信所需的证书
Revoked Certificates:通道 MSP 包括此附加文件夹,如果角色的身份已被撤销,有关身份的识别信息——而不是身份本身——保存在此文件夹中。通道 MSP 的管理员可以通过通告 CA 的更新 CRL 来快速从组织中撤销参与者或节点。

传输层安全 (TLS)

            Fabric 使用传输层安全性 (TLS) 支持节点之间的安全通信。TLS 通信可以使用单向(仅限服务器)和双向(服务器和客户端)身份验证。

渠道 MSP(Channel MSPs)作用

要使身份可验证,它必须来自受信任的权威。会员服务提供商 (MSP) 是 Fabric 中的受信任机构。
更具体地说,MSP 是一个组件,它定义了管理组织有效身份的规则。

节点组织单位(Node OU)配置

$HOME/go/src/github.com/fabric/fabric/scripts/fabric-samples/test-network/../config/
$FABRIC_CFG_PATH/msp/config.yaml
NodeOUs:**Enable: true**ClientOUIdentifier:Certificate: cacerts/ca.sampleorg-cert.pemOrganizationalUnitIdentifier: clientPeerOUIdentifier:Certificate: cacerts/ca.sampleorg-cert.pemOrganizationalUnitIdentifier: peerAdminOUIdentifier:Certificate: cacerts/ca.sampleorg-cert.pemOrganizationalUnitIdentifier: adminOrdererOUIdentifier:Certificate: cacerts/ca.sampleorg-cert.pemOrganizationalUnitIdentifier: orderer

策略 (Policy)

Fabric 策略代表成员如何就接受或拒绝对网络、通道或智能合约的更改达成一致。
用于定义如何做出决策和实现特定结果的结构。
Fabric 策略代表成员如何就接受或拒绝对网络、通道或智能合约的更改达成一致。
策略在通道最初配置时由通道成员同意,但它们也可以随着通道的发展而修改。
管理网络的策略在任何时间点都是固定的,只能使用管理代码的相同过程进行更改。
由于 Fabric 是一种许可区块链,其用户得到底层基础设施的认可,因此这些用户有能力在网络启动之前决定网络的治理,并改变正在运行的网络的治理。

访问控制列表 (Access Control Lists)

$HOME/go/src/github.com/fabric/fabric/scripts/fabric-samples/test-network/configtx/configtx.yaml

策略分类

## 背书策略(Endorsement Policy)
链码包内的每个智能合约都有一个背书策略,该策略指定属于不同通道成员的对等节点需要针对给定的智能合约执行和验证交易的数量,
以便将交易视为有效。因此,背书政策定义了必须“背书”(即批准)执行提案的组织(通过其同行)。## 修改策略( Modification policies)
定义了策略的更新方式。因此,每个通道配置元素包括对管理其修改的策略的引用。##  签名策略(Signature policies)
定义了特定类型的用户,他们必须签名才能满足策略## 隐式元策略 (ImplicitMeta policies)
仅在基于配置树中策略分层层次结构的通道配置上下文中有效。
区块链网络、通道、策略、身份(数字证书)-----(MSP)---组织角色-- 权限。

更新过程(共识)

第一阶段:提安阶段
应用程序----生成交易提案-----发送到对等节点(背书节点)(背书策略)----足够数量的签名(背书节点)提案响应,丢弃不一致的事务响应(如果它愿意的话)
背书节点----**独立执行码链**---生成交易提议响应(私钥签署)+背书(不应用于分类帐)
第二阶段:打包阶段
应用程序----发送包含背书交易提案响应的交易
排序节点----将交易排序----打包到块
第三阶段:
排序节点----分发给对等节点
对等节点----接收区块---按顺序处理交易验证背书---错误----则拒绝交易正确-----分类账一致性检查(若其他交易影响了资产状态,交易不再有效)---无效----保留交易用于审计---有效----更新分类账----保留交易用于审计
账本 L 包括区块链 B 和世界状态 W,其中区块链 B 决定世界状态 W。
世界状态是作为数据库实现的。与使用数据库的世界状态相反,区块链始终以文件的形式实现。
区块链被构造为互连块的顺序日志,其中每个块包含一系列交易,每个交易代表对世界状态的查询或更新。

世界状态

数据库的选项目前包括 LevelDB (键值对)和 CouchDB( JSON 文档),LevelDB 是默认值。
对等节点和 CouchDB 实例之间仍然存在 1:1 的关系

区块链结构

区块链没有命名空间。它包含来自许多不同智能合约命名空间的交易。
只有同一链码中的智能合约才能访问给定的命名空间。
## 头区块编号:一个从 0(创世区块)开始的整数,每添加一个新区块就增加 1。当前区块哈希:当前区块中包含的所有交易的哈希。前一个区块头哈希:来自前一个区块头的哈希。
## 块数据含按顺序排列的交易列表交易(Transaction)交易头(Header) --相关链码的名称及其版本交易签名(Signature)---客户端应用程序创建的加密签名交易提议(Proposal) 智能合约的输入参数编码交易响应(Response)智能合约的输出,捕获世界状态之前和之后的值背书列表(Endorsements)这是来自每个所需组织的足以满足背书策略的已签名交易响应列表
## 块元数据区块创建者的证书和签名事务的有效/无效指示符该块之前(包括该块)累积状态更新的散列

系统链码分类

_lifecycle:管理节点链码的安装、批准组织提交的链码定义、提交链码到通道
生命周期系统链码:Lifecycle system chaincode (LSCC)  v1.4.x及以下版本支持
配置系统链码:Configuration system chaincode (CSCC)  运行在所有节点,处理通道配置更改
查询系统链码:Query system chaincode (QSCC) 运行在所有节点,提供账本API,提供区块查询、交易查询等。
背书系统链码:Endorsement system chaincode (ESCC) 运行在背书节点,以加密方式签署交易响应。
验证系统链码:Validation system chaincode (VSCC) ,验证交易,包括检查背书策略和读写集版本控制。

安装定义链码步骤

## 第一步: 打包智能合约节点:对等节点打包工具:Fabric(二进制文件)、Node Fabric SDK、第三方工具(例如 GNU tar) 打包文件类型:.tar.gz压缩文件中包含文件(无目录):metadata.json(链码语言、代码路径、包标签的 JSON)、code.tar.gzmetadata.json: {"Path":"fabric-samples/asset-transfer-basic/chaincode-go","Type":"golang","Label":"basicv1"}
## 第二步: 安装链码节点:Peer Administrator打包工具:CLI 、SDK安装成功返回:包标签议组织只打包一次链码,然后在属于其组织的每个节点上安装相同的包。
## 第三步: 批准链码定义(您可以在不安装链码包的情况下批准链码定义。)链码定义参数:名称、版本、序列号、背书策略、集合配置(私有数据地址)、ESCC/VSCC 插件(自定义背书或验证插件)、初始化、包标识符组织管理员提交批准链码定义的事务----排序服务分发---批准## 第四步: 提交批准的链码定义到通道检查是否批准链码定义:checkcommitreadiness ---背书---排序---管理员提交提交到通道---链码容器启动链码链码的生命周期策略和背书策略是分开的。

区块链相关的关键概念相关推荐

  1. 什么是区块链?区块链相关知识区入门

    初识区块链 1.区块链家族 (一),去中心化(父亲) 基本概念 中心化和去中心化就是集权与分权. 去中心化是一种哲学中思想,在人类存在时即有,主旨为弱化中心,实现人与人之间的直接沟通,交易的一种方式. ...

  2. 物联网与区块链相关的国家标准

    2017年,联通研究院提出全球首个"物联网区块链"国际标准:<物联网区块链去中心化业务平台框架>(英文名称:Framework of blockchain of thi ...

  3. 区块链相关论文研读7:通过分片(Sharding)扩展区块链

    本文首发在https://zhuanlan.zhihu.com/p/89933683 这篇论文发表在顶会SIGMOD 2019上,题目为<Towards Scaling Blockchain S ...

  4. 区块链中的基本概念整理

    区块链中的基本概念整理 区块链本身是由多种技术集合而成,涉及了多方面的内容,而在其组合应用的过程中,同时也产生了很多新的概念.对于这些概念的整理和理解,有助于更加深刻的理解区块链的本质,也可以指导我们 ...

  5. 吴军:AI应该变成通识教育,区块链不是炒概念

    来源:大数据文摘 作者:魏子敏.龙牧雪 本文共4100字,建议阅读6分钟. 本文为你分享吴军老师对AI相关话题的思考和见地. 2006年,当时的谷歌成立还不足10年.时任智能搜索部科学家的吴军,将其在 ...

  6. 深入浅出区块链 #1 入门基础概念辨析

    由公开资料搜集整理和加工形成,仅用于笔记整理,如有侵权联系删除. 区块链理论概述 什么是区块链? Blockchain 是什么?:正在兴起的交易服务平台:使用密码学算法防篡改的账簿:共享帐簿 (Sha ...

  7. 目前区块链相关的人才市场状况如何?

    目前,区块链市场总体呈现出一种"供需两旺""供需不匹配"的局面,薪酬方面在经历2018年的过热后逐渐趋于理性,但依然高于互联网行业的水平. 从总体上讲,区块链人 ...

  8. 区块链相关名词解释汇总

    转载自:<node.js开发加密货币> 密码学 计算上不可行:一个处理被称为是计算上不可行,如果有人想有兴趣完成一个处理但是需要采取一种不切实际的长的时间来做到这一点的(如几十亿年).通常 ...

  9. 区块链相关数据报表_重磅|京东云区块链数据服务(BDS)正式开源

    今天,"区块链+京东云 大有可为"战略合作媒体沟通会在北京国家会议中心召开.会上,京东云与京东数科宣布在区块链技术服务领域深度合作,重磅发布了智臻链"云"建设规 ...

最新文章

  1. mysql 当前id前后几个,使用mysql选择id前后的行
  2. 16 Java面试之 HTML
  3. [导入]决定进入J2EE一探究竟
  4. C++ Primer 5th笔记(chap 19 特殊工具与技术)异常类层次
  5. LeetCode 82 删除排序链表中的重复元素 II python
  6. leetcode700. 二叉搜索树中的搜索
  7. project安装包_Project项目计划进度可编辑模板及安装包免费获取
  8. linux下的rpm命令详解,RPM包命令详解
  9. 如何创建一个vue项目(详细步骤)
  10. 如何用两个晚上教女生学会Python
  11. 代码实现矩阵求逆的三种方式(超详细、已实现)
  12. 计算机桌面怎么自定义,例举电脑桌面图标后怎么自定义设置呢?
  13. HDFS分布式文件系统架构
  14. 普通人有没有必要学python,什么样的人适合学python
  15. 计算机 发声原理,终于懂得麦克风的发声原理是什么
  16. 浏览器访问网站标签页小图标显示
  17. Mysql InnoDB 的锁机制
  18. 基站频谱扫描-高性能扫频仪 TFN FGT720A
  19. 基于QT平台的手持媒体播放器项目实战视频教程下载
  20. 力扣 1539. 第 k 个缺失的正整数

热门文章

  1. Codeforces Round #614 (Div. 1) C.Xenon's Attack on the Gangs(树形dp)
  2. HTML 几种特别分割线特效
  3. 音质好的蓝牙耳机有哪些?音质好的蓝牙耳机推荐
  4. Flutter项目网络图片调试模式正常,打包后不显示(Android)
  5. 没有捷径!没有捷径!没有捷径!
  6. electron-rebuild
  7. 明明在内网,做种的人很多,为什么在transmission里bt下载速度仅10kb/s
  8. Golang 多版本管理
  9. 当代中国最贵的汉字是什么?
  10. 根据ebp/rbp/fp获取backtrace