http://oscarken.spaces.live.com/blog/cns!7FF1FE73BC6342A0!371.entry
懒得一个文章放两份,全部转了。
账户模型与 UTXO 比特币,及其很多的继任者,将用户的余额存储在一个基于 UTXO(unspent transaction output)的数据结构中,系统的整个状态由一个“未花费输出,unspent output” 的集合构成。那么 UTXO 到底是什么呢?简单来说,UTXO 就是人民币,就是 “coin”。有多少 UTXO,就有多少人民币。跟人民币的区别在于: “面值”,人民币的面值有 1
为什幺错误类型不是泛型 enum Event<Element> { case Next(Element) // next element of a sequence case Error(ErrorType) // sequence failed with error case Completed // sequence terminate
原理和设计 比特币网络是一个分布式的点对点网络,网络中的矿工通过“挖矿”来完成对交易记录的记账过程,维护网络的正常运行。 比特币通过区块链网络提供一个公共可见的记账本,用来记录发生过的交易的历史信息。 每次发生交易,用户需要将新交易记录写到比特币区块链网络中,等网络确认后即可认为交易完成。每个交易包括一些输入和一些输出,未经使用的交易的输出( Unspent Transaction Outputs
在 Erlang/OTP 中有一个基本概念叫监督树。这是一种建立在督程与佣程思想上的进程结构化模型。
设计理念与分布式系统 分析和理解Kubernetes的设计理念可以使我们更深入地了解Kubernetes系统,更好地利用它管理分布式部署的云原生应用,另一方面也可以让我们借鉴其在分布式系统设计方面的经验。 API设计原则 对于云计算系统,系统API实际上处于系统设计的统领地位。Kubernetes集群系统每支持一项新功能,引入一项新技术,一定会新引入对应的API对象,支持对该功能的管理操作。理解掌
假设我有一个抽象类鸟,它的一个函数是飞(int高度)。 我有许多不同的鸟类,每个类都有自己不同的飞的实现,这个函数在整个应用程序中被广泛使用。 有一天,我的老板来了,要求我添加一只鸭子,它做其他鸟类所做的一切,只是它不飞,而是在应用程序的池塘里游泳。 将duck添加为bird的子类型违反了Liskov替换规则,因为在调用duck时。我们要么抛出异常,要么什么也不做,要么违反正确性原则。 在牢记坚实
主要内容:1、再回顾:什么是服务注册中心?,2、Consul服务注册中心的整体架构,3、Consul如何通过Raft协议实现强一致性?,4、Consul如何通过Agent实现分布式健康检查?1、再回顾:什么是服务注册中心? 先回顾一下什么叫做服务注册中心? 顾名思义,假设你有一个分布式系统,里面包含了多个服务,部署在不同的机器上,然后这些不同机器上的服务之间要互相调用。 举个现实点的例子吧,比如电商系统里的订单服务需要调用库存服务,如下图所示。 现在的问题在于,订单服务在192.168.31.1
主要内容:1.迪米特法则,2.高内聚,3.松耦合,4.代码,5.总结1.迪米特法则 迪米特法则的英文翻译是:Law of Demeter,缩写是 LOD。 单从这个名字上来看,我们完全猜不出这个原则讲的是什么。不过,它还有另外一个更加达意的名字,叫作最小知识原则,英文翻译为:The Least Knowledge Principle。 它不像 SOLID、KISS、DRY 原则那样,人尽皆知,但它却非常实用。利用这个原则,能够帮我们实现代码的“高内聚、松耦合” “