区块链入门 HyperLeger Fabric开发 home 编辑时间 2019/11/15 ![](/api/file/getImage?fileId=5dce11ce16199b04670033e5) ## 前言 本笔记所有内容都是基于慕课网的课程 [学习Hyperledger Fabric实战联盟链](https://coding.imooc.com/class/268.html) --- ## 第一章节 ### 基本概念 #### 区块链类型 - 公有链 - 私有链 - 联盟链 #### 区块链特点 - 去中心化 - 数据共享 - 去信任化 - 不可篡改 (关于不可篡改解释:并非不可修改,例如已经发生的一笔交易,不可以单方面撤销,需要再次发起一笔交易告诉全网,才能撤销这笔交易) #### 区块链平台 - 比特币 - 以太坊 - EOS - Fabric (超级账本) - 其他... #### 应用场景 - 去信任(去中介) - 价值转移(不可拷贝) - 数据共享 - 更多... #### P2P网络实现 - Hyperledger Fabric -> gRPC对等服务 - Ethereum(以太坊) -> Kad DHT技术 --- ### 密码学 - 哈希值(HASH) 1. 特点 - 将不定长度的数据转化成固定长度的哈希值 - MD5 SHA1 SHA2(SHA2-256) 2. 要求 - 正向快速、逆向困难 - 输入敏感(例如我轻微改变内容,也无法判断hash规律,反推原文) - 抗碰撞(例如我用超算枚举,也无法轻易找出hash对应的原文) 3. 算法 - 对称加密:秘钥相同、易泄露(例如AES DES) - 非对称加密:公私钥、效率低(例如RSA、椭圆曲线等) #### 账本结构 ![](/api/file/getImage?fileId=5dce15f816199b04670033ec) --- ### 共识算法 #### 分布式一致性算法 - 强一致性 - 最终一致性 1. CAP原理:一个分布式系统,不可三者皆满足,只可三者取其二 * 一致性(Consistency) * 可用性(Availablity) * 分区容忍性(Partition Tolerance) 2. ACID原理 * 原子性(操作结果只存在成功和失败,没有中间值) * 隔离性(数据操作不会互相影响) * 一致性(所有分布式系统中数据一致) * 持久性(数据持久化) #### 已知的共识算法 1. Paxos 2. 拜占庭容错 ![](/api/file/getImage?fileId=5dce183d16199b04670033ef) ### 扩展阅读 1. 比特币白皮书:一种点对点的电子现金系统 (中本聪) * 翻译:[https://zhuanlan.zhihu.com/p/39562432](https://zhuanlan.zhihu.com/p/39562432) * 原版:[http://www.bitcoin.org/bitcoin.pdf](http://www.bitcoin.org/bitcoin.pdf) 2. 区块链技术指南 (杨宝华) * github: (https://github.com/yeasy/blockchain_guide) 3. Hyperledger Fabric 官方文档 * [https://hyperledger-fabric.readthedocs.io/](https://hyperledger-fabric.readthedocs.io/) --- ## 第二章节 Hyperledger Github: [https://github.com/hyperledger](https://github.com/hyperledger) **HYPERLEDGER 旗下区块链相关框架以及对应工具** ![](/api/file/getImage?fileId=5dce50d716199b046700342b) ### 智能合约 解释:将以往的合约数字化 - 区块链2.0:以太坊 - 合约协议的数字化代码表达 - 分布式有限状态机 - 执行环境安全隔离、不受第三方干扰(EVM, Docker) ### 链码 #### 解释 链码:Fabric应用层基石(中间件) #### 方法 1. Init() // 初始化操作 2. Invoke() // 用程序与链码交互的入口 ### Docker 镜像拉取 ```shell docker pull hyperledger/fabric-peer:x86_64-1.0.0 docker pull hyperledger/fabric-orderer:x86_64-1.0.0 docker pull hyperledger/fabric-ca:x86_64-1.0.0 docker pull hyperledger/fabric-tools:x86_64-1.0.0 docker pull hyperledger/fabric-baseos:x86_64-0.3.1 ``` ### 系统架构 ![](/api/file/getImage?fileId=5dd75b5216199b04670039c7) ### 整体架构 #### 网络拓扑 - 客户端 (应用程序 / SDK / 命令行工具) - Peer (Anchor / Endorser / Committer) - Orderer 送人玫瑰,手留余香 赞赏 Wechat Pay Alipay 关于对称加密、非对称加密、签名算法的理解 入门docker笔记 Flarum 加入中文搜索支持 基于flarum-ext-chinese-search