EMO's Blog

Thinking will not overcome fear but action will.

Head First设计模式学习笔记六

命令模式

设计模式 练习实例仓库 EMO’s Blog 命令模式 定义: 命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作 Hint Point: 在命令模式中我们将把方法调用封装起来 命令模式将动作的请求者从对象的执行者中解耦 构建一种交互方式,Invoker通过提起一系...

Head First设计模式学习笔记五

单件模式

设计模式 练习实例仓库 EMO’s Blog 单件模式 单件模式 确保一个类只有一个实例,并提供一个全局访问点。 为什么要用单件模式 单件模式的作用就是实例化一个全局对象,并确保其是唯一的。那么为什么不直接使用全局变量呢? 全局变量必须在程序运行初期就统一创建,这样如果一个全局变量很少甚至基本没有用到,它依旧会持续的占用大量内存资源。但是通过单件模...

Head First设计模式学习笔记四

工厂模式

设计模式 练习实例仓库 EMO’s Blog 一句话总结设计模式 策略模式:变与不变的分离,通过接口与组合构建更灵活更安全的项目结构。尽量避免修改原有的代码。 观察者模式:构建解耦的类与类之间的一对多关系 装饰者模式:弹性设计,构建可运行时扩展的类结构 工厂模式和生成器模式能帮助解决装饰者模式在实例化组件时的代码复杂度...

Head First设计模式学习笔记三

装饰者模式

设计模式 练习实例仓库 EMO’s Blog 定义与描述 装饰者模式动态的将责任附加到对象上。若要扩展功能,装饰者提供比继承更有弹性的替代方案。 装饰的作用 运行时扩展,使用装饰我们可以在不修改任何底层代码的情况下,给你的或者别人的对象添加新的职责。 组合,委托与继承 利用继承设计子类,子类的功能在编译初期就已经确定了,而且所有的子类都将继承到相同的功能,而利用...

Head First设计模式学习笔记二

观察者模式

设计模式 练习实例仓库 EMO’s Blog 定义 观察者模式定义 在对象之间定义一对多依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知并自动更新。 OO原则 封装变化 多用组合,少用继承 针对接口编程,不针对实现编程 为交互对象之间的松耦设计而努力 气候站实例 描述 观察站通过硬件获取气候条件数据...

Head First设计模式学习笔记一

策略模式

设计模式 练习实例仓库 EMO’s Blog 鸭子应用实例: 滥用继承影响代码弹性 策略模式中的OO OO基础: 抽象 封装 多态 继承 OO原则: 将“变化”与“不变化”的·代码分离 (封装变化) 针对接口编程,而不是针对实现编程 多用组合,少用继承 OO模式: 策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,...

以太坊交易树和收据树

交易树和收据树介绍

ETH EMO’s Blog 交易树和收据树是一一对应的,而且和状态树一样都是MPT结构,这三棵树的根hash值都是保存在块头里面的。 主要是为了统一方便,而且MPT支持查找操作。查找的键值就是这个交易在发布的区块里面的序号。 状态树和交易树以及收据树的区别 交易树和收据树都是只把当前区块里面发布的交易组织起来。所以每一个区块的交易树和收据树都是独立的。 状态...

以太坊的状态树

状态树介绍

ETH EMO’s Blog 以太坊中的状态是什么? 以太坊是基于账户的系统,所以以太坊中的状态是由账户信息去表示的。那每个工作节点使用怎样的数据结构去维护这些账户信息的呢?要知道以太坊网络中的账户数量是极其庞大的,什么样的数据结构可以让我们能够轻易的在其中去进行新增账户,查找账户以及如何进行零知识证明呢?以太坊提出了一种数据结构叫做Merkel Patricia Tree...

共识算法设计

介绍

共识算法 EMO’s Blog 共识算法分类 在我个人的理解里面,共识算法一开始分为两类,一类是在中心化异步系统中解决CFT问题的算法,如Raft,Paxos,我把他们叫做CFT Consensus Algorithm。另一类是解决BFT问题的共识算法。起初在区块链未大火之前,Raft等CFT共识算法是主流的保障异步系统中的一致性的算法。而后区块链的出现,赋予了BFT共...

Hotstuff共识协议

算法介绍

共识算法 EMO’s Blog 基础概念 门限签名(Threshold signatures): 一个(k, n)门限签名方案指由n个成员组成的签名群体,所有成员共同拥有一个公共密钥,每个成员拥有各自的私钥。只要收集到k个成员的签名,且生成一个完整的签名,该签名可以通过公钥进行验证。 证书(Quorum Certificate,QC): 主节点收到至少quorum个节点对同...

{ % if page.mermaid % } { % endif % }