摘要: 模板模式(Template Pattern) —— 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(算法实现)在不同的对象 阅读全文
posted @ 2019-08-10 16:48 让我思考一下 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 代理模式——为其他对象提供一种代理以控制对这个对象的访问。 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 解决的问题场景: 在直接访问对象时会带来问题,有些对象由于某些原因(对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访 阅读全文
posted @ 2019-08-10 15:48 让我思考一下 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 顺序锁与读写自旋锁非常类似,只是赋予了写者较高的优先级:即使在读者正在读的时候也允许写者继续运行。这样的好处是写者不用等待(除非另一个写者正在写),缺点是有些时候读者不得不反复多次读相同的数据直到它获得有效的副本。 每个顺序锁就是包括两个字段的 结构:一个类型为 的`lock sequence`字段 阅读全文
posted @ 2019-08-10 14:50 让我思考一下 阅读(523) 评论(0) 推荐(0) 编辑
摘要: Lamport时钟存在的问题 使用Lamport时间戳,只是比较事件$a$和$b$各自的时钟值$C\{a\}$和$C\{b\}$,无法说明它们之间的关系。也就是说,$C\{a\}基于向量时钟我们可以获得任意两个事件的顺序关系,结果要么是有因果关系(先后顺序),要么是没有因果关系(同时发生)。通过向量 阅读全文
posted @ 2019-08-09 21:08 让我思考一下 阅读(3459) 评论(0) 推荐(0) 编辑
摘要: 在程序中,我们经常需要知道事件序列,在单体应用中,事件序列是较为简单的,最简单的办法就是用时间戳,但在分布式系统中,事件序列是很困难的, "Leslie Lamport" 大神在论文 "Time, Clocks, and the Ordering of Events in a Distributed 阅读全文
posted @ 2019-08-06 09:58 让我思考一下 阅读(3157) 评论(0) 推荐(1) 编辑
摘要: 本文主要内容翻译自: "The RLPx Transport Protocol" ,其中添加了一些个人的理解,由于密码学水平有限,不正确之处望指正。另外原文可能已经更新,最新内容请直接阅读原文。 本文档定义了RLPx传输协议,一种基于TCP的用于Ethereum节点间通信的传输协议。该协议适用于任意 阅读全文
posted @ 2019-08-05 16:12 让我思考一下 阅读(815) 评论(0) 推荐(0) 编辑
摘要: 我们学习计算机时曾经有这么一个定义: ,对于一个区块链,我认为从技术方面看与程序的定义类似,核心一个是共识算法,一个是核心数据结构,这两点直接决定了这条区块链工作运行原理。比特币的共识算法,在这一篇 "《哈希函数与比特币共识算法PoW》" 中已经讲述了其原理,这一篇主要讲述比特币核心数据结构这一部分 阅读全文
posted @ 2019-08-05 09:27 让我思考一下 阅读(2292) 评论(0) 推荐(0) 编辑
摘要: 在分布式系统、P2P应用中或者是区块链中,会经常使用一种数据结构Merkle tree(默克尔树),这里我们将详细讨论一下这个常用数据结构。 Merkle tree Merkle树看起来非常像二叉树,其叶子节点上的值通常为数据块的哈希值,而非叶子节点上的值,所以有时候Merkle tree也表示为H 阅读全文
posted @ 2019-08-05 09:13 让我思考一下 阅读(21298) 评论(1) 推荐(0) 编辑
摘要: 提出一个问题 在我们细述Bloom过滤器之前,我们先抛出一个问题:给你一个巨大的数据集(百万级、亿级......),怎么判断一个元素是否在此数据集中?或者怎么判断一个元素不在此数据集中? 思考这个问题的时候,最先想到的可能是哈希表,在数据集规模较小的时候,这个方法是可行的,当然,数据集巨大的时候也可 阅读全文
posted @ 2019-08-04 19:46 让我思考一下 阅读(463) 评论(0) 推荐(0) 编辑
摘要: Prototype模式——简单理解就是新对象的创建可以通过已有对象进行创建。 Prototype模式提供了一个通过已存在对象进行新对象创建的接口 , 实现和具体的实现语言相关,在C++中通过拷贝构造函数实现。 原型模式通过复制原型而获得新对象的创建功能,能够生产对象,让我们想起了工厂模式。实际上原型 阅读全文
posted @ 2019-08-04 18:25 让我思考一下 阅读(142) 评论(0) 推荐(0) 编辑