自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (9)
  • 收藏
  • 关注

原创 Hands-On Hyperledger Fabric——Raft共识算法

文章目录分布式系统的Raft算法选举过程数据同步过程本文参考Raft算法实现动画。分布式系统的Raft算法过去, Paxos一直是分布式协议的标准,但是Paxos难于理解,更难以实现,Google的分布式锁系统Chubby作为Paxos实现曾经遭遇到很多坑。来自Stanford的新的分布式协议研究称为Raft,它是一个为真实世界应用建立的协议,主要注重协议的落地性和可理解性。为了以容错方...

2019-11-27 10:07:49 1407

原创 Kafka By the sea——kafka的使用场景

文章目录消息队列概述消息队列应用场景异步处理应用解耦流量削锋日志处理消息通讯消息中间件示例电商系统日志收集系统常用消息队列ActiveMQKafka消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,Rock...

2019-11-27 10:00:42 516

原创 Kafka By the sea——Zookeeper 在 Kafka 中的作用

文章目录Broker注册Topic注册生产者负载均衡消费者负载均衡分区 与 消费者 的关系消息 消费进度Offset 记录消费者注册Broker注册Broker是分布式部署并且相互之间相互独立,但是需要有一个注册系统能够将整个集群中的Broker管理起来,此时就使用到了Zookeeper。在Zookeeper上会有一个专门用来进行Broker服务器列表记录的节点:/brokers/ids每...

2019-11-26 19:04:31 129

原创 Hands-On Hyperledger Fabric——Fabric Orderer为什么要使用Kafka

文章目录排序服务为什么要使用Kafka保证交易顺序崩溃容错机制ttc-x(time to cut)Kafka在Fabric排序中存在的缺点排序服务为什么要使用Kafka保证交易顺序对于 fabric 中的每个channel,orderer将其映射到 kafka集群中的一个 topic ,即一个通道对应一个 topic,而每个 topic 只创建一个分区(partion)。简而言之,一个cha...

2019-11-26 16:48:34 589

原创 Kafka By the sea——消息的压缩和消息格式的选择

文章目录Kafka消息压缩Kafka消息格式Kafka消息压缩Kafka 支持的压缩算法还挺多的,一般支持GZIP、Snappy、LZ4等压缩算法,具体是通过compression.type 来开启消息压缩并且设定具体的压缩算法。props.put(“compressions.type”, “GZIP”);压缩算法是要占用挺大一部分cpu资源的并且耗时也是不小的,而压缩的目的很大程度上是...

2019-11-26 15:53:30 600

原创 Hands-On Hyperledger Fabric——Fabric智能合约详解(3)

快速编写和运行一个Chaincode创建和安装链码编写一个简单的链码文件//包名//一个chaincode通常是一个golang源码文件,这个包名必须是mainpackage main//导入包//chaincode需要引入一些Fabric提供的系统包,这些系统包提供了chaincode和Fabirc进行通信的接口。import ( "fmt" "strconv" "gi...

2019-11-23 16:48:41 276

原创 K8s从零开始搭建Fabric网络

K8s从零开始搭建Fabric网络过程总览搭建过程应该是这样的:系统初始化主要工具:cryptogen命令和crypto-config.yaml文件根据配置文件生成每个组织的Peer、Orderer等节点账号和组的初始用户账号Orderer初始化主要工具:configtxgen命令、configtx.yaml文件、orderer.yaml文件生成Orderer创始块和配置文件,并启...

2019-11-21 21:04:39 2913 3

原创 Hands-On Hyperledger Fabric——Fabric智能合约详解(2)

文章目录快速编写和运行一个Chaincode创建和安装链码系统管理接口GetFunctionAndParameters存储管理接口PutStateGetStateDelStateGetStateByRangeGetHistoryForKeyCreateCompositeKey & GetStatePyPartialCompositeKeySplitCompositeKey交易管理接口Get...

2019-11-19 14:42:07 1132 2

原创 Hands-On Hyperledger Fabric——Fabric智能合约详解(1)

文章目录Chaincode初探快速编写和运行一个Chaincode创建和加入通道创建和安装链码Chaincode初探Fabric中的Chaincode包含了Chaincode代码和Chaincode管理命令这两部分的内容。Chaincode代码Fabric的Chaincode代码是一段运行在容器中的程序,这些程序可以是Go、Java、Node.js等等。Chaincode是客户端程序和Fa...

2019-11-19 10:50:57 963

原创 Hands-On Hyperledger Fabric——基于数字证书的成员管理服务

文章目录实现成员管理的MSPFabric CA实现成员管理的MSPFabric1.0是基于PKI体系的,生成数字证书以标识用户身份。MSP将证书颁发、用户认证、后台的加密机制和协议都进行了抽象。每个MSP可以定义自己的规则,这些规则包括身份的认证,签名的生成和认证。这样就将成员和成员间的操作都模块化了。关于PKI体系,之前聊的很清楚了,不再赘述。Fabric CA...

2019-11-18 16:47:47 469

原创 Hands-On Hyperledger Fabric——Fabric的证书(账号)体系

文章目录Fabric证书是什么Fabric证书服务器:Fabric-caFabric证书是什么我们知道Fabric包含了MSP,也表明其是联盟链,用户在非授权的情况下不得接入区块链。因此Fabric包含一套授权体系。Fabric账号实际上就是根据PKI规范生成的一组证书和密钥文件。在之前Fabric模块命令之cryptogen就已经介绍过了。什么地方需要使用Fabric证书呢?Fabri...

2019-11-18 16:28:46 1330

原创 Hands-On Hyperledger Fabric——集成共识机制的排序服务

文章目录为什么会选用KafkaHyperledger Fabric 1.0共识机制为什么会选用Kafka共识机制要求能够满足两种范围的容错:崩溃故障容错(Crash Fault-Tolerance,CFT):在区块链网络中存在网络延时或者故障的情况下,能够保障交易的最终一致性。拜占庭容错(Byzantine Fault-Tolerance,BFT):在区块链网络中存在部分恶意节点提交或者...

2019-11-18 14:11:27 527

原创 Hands-On Hyperledger Fabric——分布式账本存储

文章目录读写集分布式账本技术通过在不同节点之间达成共识,记录相同的账本数据,这是区块链技术的基础。超级账本采用Endorsement/Consensus模型,模拟执行和区块验证是在不同角色的节点中分开执行的。读写集在endorse节点模拟执行交易的过程中,会生成读写集(Read-Write Set)。读集合包含了唯一键的列表,还有在模拟执行过程中交易读取的已提交键值。写集合也包含了一个...

2019-11-18 10:35:22 1578

原创 Hands-On Hyperledger Fabric——基于Gossip的P2P数据分发

文章目录六度分隔理论Gossip协议PKI 体系概述节点启动及成员管理主节点的选举过程基于反熵的状态同步数据传播过程为什么要使用Gossip六度分隔理论超级账本本身也就是一个去中心化的网络,对比到现实中有这么一个理论:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人“。在数学上来解释就是:若每个人平均认识260人,其六度就是2606=1,18...

2019-11-17 16:52:29 1163

原创 Hands-On Hyperledger Fabric——Fabric模块

文章目录Fabric模块在系统中的作用peer模块orderer模块Fabric数据安全传输的方式Fabric模块在系统中的作用前面我们知道Fabric是由多个模块组成的程序组:peerorderercryptogenconfigtxgenconfigtxlator其中orderer和peer是Fabric的核心模块。下面来说明它们的作用。peer模块一个完整的组织必须具...

2019-11-16 20:04:07 271

原创 Hands-On Hyperledger Fabric——Fabric模块命令之configtxlator

文章目录Fabric模块的子命令和配置文件configtxlatorconfigtxgen典型的应用场景Fabric模块的子命令和配置文件configtxlatorconfigtxlator模块可以把区块链的二进制文件转化成JSON文件,便于我们阅读和理解。configtxlator命令如下:root@da8733922983:~# configtxlator --helpusage:...

2019-11-16 19:37:26 458

原创 Hands-On Hyperledger Fabric——Fabric模块命令之configtxgen

文章目录Fabric模块的子命令和配置文件configtxgenFabric模块的子命令和配置文件configtxgenconfigtxgen模块用来生成orderer的初始化文件和channel的初始化文件。其命令选项如下:root@f59e01af054c# configtxgen --helpUsage of configtxgen: -asOrg string # 显示所...

2019-11-16 19:00:08 376

原创 Hands-On Hyperledger Fabric——数字签名和证书有什么关系?

文章目录数字签名证书数字签名现实生活中,签名有什么作用?在一封信中,文末的签名是为了表示这封信是签名者写的。计算机中,数字签名也是相同的含义:证明消息是某个特定的人,而不是随随便便一个人发送的(有效性);除此之外,数字签名还能证明消息没有被篡改(完整性)。简单来说,数字签名(digital signature)是公钥密码的逆应用:用私钥加密消息,用公钥解密消息。用私钥加密的消息称为签名,只...

2019-11-15 09:24:49 1023

原创 Hands-On Hyperledger Fabric——Fabric模块命令之cryptogen

文章目录Fabric 核心模块功能Fabric模块的子命令和配置文件cryptogen生成配置自己的证书cryptogen 证书文件结构Fabric 核心模块功能再来复习Fabric的模块组成:peer:主节点模块,负责存储区块链数据,运行维护链码。orderer:负责对交易进行排序,并将排序好的交易打包成区块。cryptogen:组织和证书生成模块。configtxgen:区块和交...

2019-11-14 22:27:07 639

原创 Hands-On Hyperledger Fabric——Fabric交易流程详解

文章目录

2019-11-14 20:14:12 1486

原创 Hands-On Hyperledger Fabric——为什么需要背书(Endorsement)?

关于区块链的背书节点是什么,首先来搞清楚“背书”这个概念。背书,这个词源来自银行票据业务,是指票据转让时原持有人在票据背面加盖自己的印鉴证明该票据真实有效、如果有问题就可以找原持有人。需要注意的是其不是担保(自己不能给自己担保),而是证明或声明的意思。举一个简单的例子帮助大家理解:采购商A去农户B家里采购苹果。A采购完成后,开具了一张票据给农户B,并说明让农户B自己去银行那换钱。但农户B家离...

2019-11-14 19:45:26 1157

原创 Hands-On Hyperledger Fabric——Fabric系统架构解析

文章目录系统逻辑架构系统逻辑架构身份管理用户登记并注册成功后,获取到用户注册证书(ECert),其他所有的操作都需要与用户关联的私钥进行签名。消息接受方首先会进行签名验证,才进行后续的消息处理。网络节点同样会用到颁发的证书,比如系统启动和网络节点管理都会对用户身份进行认证和授权。账本管理授权的用户是可以查询账本数据(Ledger)的,可以通过多种方式查询:区块号查询区块、根据...

2019-11-14 08:38:00 324

原创 Hands-On Hyperledger Fabric——Fabric快速体验

文章目录Fabric 模块、安装和使用Fabric的编译和安装Fabric 模块、安装和使用Fabric并不是一个单独的程序而是由一组模块组成:peer:主节点模块,负责存储区块链数据,运行维护链码。orderer:负责对交易进行排序,并将排序好的交易打包成区块。cryptogen:组织和证书生成模块。configtxgen:区块和交易生成模块。configtxlator:区块和交...

2019-11-13 19:44:54 242

原创 Hands-On Hyperledger Fabric——Hyperledger综述

文章目录Hyperledger 诞生动因Hyperledger 体系结构Fabric 技术特性多账本特性智能合约权限系统Fabric共识算法Hyperledger 诞生动因容易观察看,不管是比特币、以太坊还是什么其他货币,它们的涉及是完全开放的、去中心化和非授权的。对应完全开放、非授权的代价,则是什么人都可以参与,而参与的代价是需要POW以达到整个网络的完全和稳定。所以,上述特性是和现有的绝...

2019-11-13 14:44:35 326

原创 Hands-On Hyperledger Fabric——从行业视角来看区块链

文章目录从行业视角来看区块链什么是Hyperledger Fabric共享账本智能合约私密性共识Hyperledger Fabric功能身份管理隐私保密高效处理智能合约模块设计Hyperledger Fabric模型从行业视角来看区块链区块链包含四个核心构建:共享账本。密码学。信任系统。业务规则(或智能契约)。区块链承诺从根本上解决时间和信任问题,解决金融服务、供应链、物流和医疗...

2019-11-13 10:25:22 324

原创 Hands-On Hyperledger Fabric——Byzantine-fault tolerant(BFT)过程详解

文章目录拜占庭问题描述分布式架构遭遇的问题Practical Byzantine Fault Tolerance(PBFT)PBFT过程详解拜占庭问题描述拜占庭将军问题是分布式计算中的一个经典问题。拜占庭将军问题是Leslie Lamport(2013年的图灵奖得主)用来为描述分布式系统一致性问题(Distributed Consensus)在论文中抽象出来一个著名的例子。这个例子大意是这...

2019-11-12 16:23:04 1269

原创 BlockChain学习——奖励机制与共识机制

文章目录区块奖励挖矿与POW区块奖励比特币共识机制另一方面还依赖着奖励机制,这是由于其货币属性决定的,一个诚实节点如果能因为其诚实而获得奖励,何乐而不为呢?先来说说,之前的双花问题,我们是否能够惩戒有双花行为的Oscar呢?实际上这是不行的,因为我们无法判断谁才是双花的始作俑者。所以只有从反面来思考,去奖励诚实的区块提议的节点。比特币力有两种不同的奖励机制。其中一个就是区块奖励。根据比特币...

2019-11-10 14:45:36 991

原创 BlockChain学习——达成没有身份的共识协议

文章目录分布式共识使用区块链达成没有身份的共识窃取比特币拒绝服务攻击双重支付攻击分布式共识书接上文,去中心化的网络节点中,节点之间首先要解决的就是达成共识的问题,节点必须对哪些交易可以进行广播和交易发生的次序达成共识。在上文中提到过,财奴币将交易打包成块,对信息进行优化处理。类似的,在比特币体系里,也将每个区块进行共识处理。在任何时点,所有在点对点网络上的节点都有包含一系列区块的总账本,每个...

2019-11-09 21:18:13 411

原创 《简读中国史》笔记——关于李约瑟问题的思考

想要探讨近代科学为什么诞生在西方,我认为应该先好好讨论什么是科学、近代科学的起点在哪,然后才有合理的证据充分讨论诞生的原因。近代科学起因对于科学史,人们惯于区分古代与近代。然而,这古代与近代的含义究竟是什么?其间分界的标准是什么?分界在何时?都是需要加以讨论的问题。《世界观》一书将世界观将十六世纪为界限,把世界观一分为二是合理的,同样,我也认为将科学从十六世纪一分为二作为近代和古代的分界线也...

2019-11-09 17:13:56 948

原创 归纳演绎出的世界观

题目略有写宽泛,刚读完《世界观》第一部分的内容,信息量有点大,迫切需要写篇读书笔记理清思路。“归纳”和“演绎”方法什么是归纳(Inductive)和演绎(Deductive)?很多对于归纳、演绎的观点都是错误的,错误的以为两者是对立的,要么是从一般到特殊,要么是从特殊到一般。实际上,从《Introduction to Logic》一书中,我们可以知道,归纳其实是:即使所有前提是真的,归纳...

2019-11-09 17:10:36 997

原创 BlockChain学习——Hash指针是如何防篡改的?

文章目录Hash指针与区块链Hash指针是如何防篡改的呢?Hash指针与区块链Hash指针是对数据存储的位置和数据存储的内容的Hash值的指针。上面的图是Hash指针指向了一个区块。Hash指针最重要的作用除了能找到区块位置,就是其防篡改性,Hash指针是如何防篡改的呢?比如正常的一个区块链就好比底下这张图,这个区块链就三个区块,H3可以是随便的,因为他后面已经没有区块了,H3跟数据3...

2019-11-09 15:16:48 1741 4

原创 BlockChain学习——Hash函数特性

文章目录碰撞阻力隐秘性谜题友好碰撞阻力Hash函数的第一个特性是其具有碰撞阻力,关于其碰撞阻力的推导在文章BlockChain学习——Hash函数碰撞概率公式及其推导中提到过。碰撞阻力:无法找到两个值xxx和yyy,使得xyx yxy的前提下H(x)=H(y)H(x)=H(y)H(x)=H(y)成立。由上文可知,Hash碰撞的概率是很大的(比如256bit的输入,在检验第2130+12^13...

2019-11-07 17:59:40 907

原创 深入理解Docker——DockerFile语法实践和DockerHub提交

文章目录FROMLABELRUNWORKDIRADD和COPYENVVOLUMEEXPOSECMDENTRYPOINT更多语法可以参考Dockerfile ReferenceFROMFROM scratch #没有base,从头制作FROM centosFROM ubuntu:14.04FROM指定了base Image,所以尽量使用官方的Image作为一个Base Image。L...

2019-11-02 10:55:48 662

软件工程需求分析作业模版.doc

软件工程需求分析作业模版,北邮大作业。

2020-06-24

滑动窗口协议--SDL最终版

北邮滑动窗口协议实验设计。滑动窗口协议--SDL设计;北邮滑动窗口协议实验设计。

2018-06-03

北邮韩万江老师SPM课的pdf

spm,软件过程改进,韩万江

2018-05-17

北邮:编译原理实验1

北邮;编译原理第一次实验;lex.yy 生成代码 北邮;编译原理第一次实验;lex.yy 生成代码

2018-05-14

北邮:分布式实验一

北邮:分布式实验一 北邮;分布式; 北邮;分布式; 北邮;分布式;

2018-05-14

北邮:软件工程作业——体系结构设计文档

体系结构设计文档;北邮:软件工程作业——体系结构设计文档

2018-05-14

北邮作业——软件工程:需求文档

北京邮电大学,软院大二作业;北京邮电大学,软院大二作业

2018-05-14

滑动窗口协议--SDL设计

滑动窗口协议--SDL设计;北邮滑动窗口协议实验设计。滑动窗口协议--SDL设计;北邮滑动窗口协议实验设计。

2017-11-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除