bc https://en.wikipedia.org/wiki/Gossip_protocol
- 分布式容错性:分布式网络极其鲁棒,能够容忍部分节点的异常状态;
- 不可篡改性:一致提交后的数据会一直存在,不可被销毁或修改;
- 隐私保护性:密码学保证了数据隐私,即便数据泄露,也无法解析。
随之带来的业务特性将可能包括:
- 可信任性:区块链技术可以提供天然可信的分布式账本平台,不需要额外第三方中介机构参与;
- 降低成本:跟传统技术相比,区块链技术可能带来更短的时间、更少的人力,降低维护成本;
- 增强安全:区块链技术将有利于安全、可靠的审计管理和账目清算,减少犯罪风险。
比特币区块链已经支持了简单的脚本计算,但仅限于数字货币相关的处理。除了支持数字货币外,还可以将区块链上执行的处理过程进一步泛化,即提供智能合约(Smart
Contract)。智能合约可以提供除了货币交易功能外更灵活的合约功能,执行更为复杂的操作。
这样扩展之后的区块链,已经超越了单纯数据记录的功能了,实际上带有点“智能计算”的意味了;更进一步地,还可以为区块链加入权限管理,高级编程语言支持等,实现更强大的、支持更多商用场景的分布式账本。
据参与者的不同,可以分为公有(Public)链、联盟(Consortium)链和私有(Private)链。
公有链,顾名思义,任何人都可以参与使用和维护,典型的如比特币区块链,信息是完全公开的。
如果进一步引入许可机制,可以实现私有链和联盟链两种类型。
私有链,由集中管理者进行管理限制,只有内部少数人可以使用,信息不公开。
联盟链则介于两者之间,由若干组织一起合作维护一条区块链,该区块链的使用必须是带有权限的限制访问,相关信息会得到保护,典型如供应链机构或银行联盟。
目前来看,公有链更容易吸引市场和媒体的眼球,但更多的商业价值会在联盟链和私有链上落地。
根据使用目的和场景的不同,又可以分为以数字货币为目的的货币链,以记录产权为目的的产权链,以众筹为目的的众筹链等……,也有不局限特定应用场景的通用链。
现有大部分区块链实现都至少包括了网络层、共识层、智能合约和应用层等结构,联盟链实现往往还会引入一定的权限管理机制。
问题是什么?
This
problem appears both in data consistency maintenance and in
synchronization of a cluster state (propagation of the cluster
membership information and so on). Although the problem above can
be solved by means of a global coordinator that monitors a
database and builds a global synchronization plan or schedule,
decentralized databases take advantage of more
fault-tolerant approach. The main idea is to use
well-studied epidemic protocols
[7] that are relatively simple, provide a pretty good convergence
time, and can tolerate almost any failures or network partitions.
Although there are different classes of epidemic algorithms, we
focus on anti-entropy protocols because
of their intensive usage in NoSQL databases.
Anti-entropy
protocols assume that synchronization is performed by a fixed
schedule – every node regularly chooses another node at random or
by some rule and exchanges database contents, resolving
differences. There are three flavors of anti-entropy protocols: push,
pull, and push-pull. The idea of the push protocol is
to simply select a random peer and push a current state of data to
it. In practice, it is quite silly to push the entire database, so
nodes typically work in accordance with the protocol which is
depicted in the figure below.
这个问题当然可以通过global
coordinator来解决, 但是decentralized设计可以提供more fault-tolerant
approach的设计.
其实算法很简单,
就是epidemic protocols,
这儿选了在Nosql中广泛应用的anti-entropy protocols.

Push,
问B你有什么和我不同, B告诉我, 我把不同部分push给B
Pull,
告诉B我有什么, B把我没有的发给我
Push-pull,
把上面两个同时结合做了, 图的下面两条线箭头画反了
Anti-entropy
protocols provide reasonable good convergence time and
scalability. The following figure shows simulation results for
propagation of an update in the cluster of 100 nodes. On each
iteration, each node contacts one randomly selected peer.

One
can see that the pull style provides better convergence than the
push, and this can be proven theoretically [7]. Also, push has a
problem with a “convergence tail” when a small percent of nodes
remains unaffected during many iterations, although almost all
nodes are already touched. The Push-Pull approach greatly improves
efficiency in comparison with the original push or pulls
techniques, so it is typically used in practice. Anti-entropy is
scalable because the average conversion time grows as a
logarithmic function of the cluster size.
Although
these techniques look pretty simple, there are many studies [5]
regarding performance of anti-entropy protocols under different
constraints. One can leverage knowledge of the network topology to
replace a random peer selection by a more efficient schema [10];
adjust transmit rates or use advanced rules to select data to be
synchronized if the network bandwidth is limited [9]. Computation
of digest can also be challenging, so a database can maintain a
journal of the recent updates to facilitate digests computing.
怎么衡量Anti-entropy
protocols, 当然是通过convergence time,
肯定是Push-pull效率最高
bc https://en.wikipedia.org/wiki/Gossip_protocol的更多相关文章
- https://en.wikipedia.org/wiki/Green_threads
https://en.wikipedia.org/wiki/Green_threads
- abi-api, arm target triplet https://en.wikipedia.org/wiki/ARM_architecture
GNU软件用target triplet来描述工作平台,target triplet是一种规范化的名称,形如cpu-vendor-os(where os can be ‘system’ or ‘ker ...
- kerberos (https://en.wikipedia.org/wiki/Kerberos_(protocol))
Protocol[edit] Description[edit] The client authenticates itself to the Authentication Server (AS) w ...
- URI--http://zh.wikipedia.org/wiki/%E7%BB%9F%E4%B8%80%E8%B5%84%E6%BA%90%E6%A0%87%E5%BF%97%E7%AC%A6
维基百科,自由的百科全书 在电脑术语中,统一资源标识符(Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串. 该种标识允许用户对网络中( ...
- https://zh.cppreference.com 和 https://en.cppreference.com 和 https://cppcon.org/
https://zh.cppreference.comhttps://en.cppreference.com/w/ https://cppcon.org/
- git 基本操作 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000
1.创建版本库 (即仓库 repository)简单理解为一个目录,这个目录里的所有文件都可以被git管理起来,每个文件的修改删除,git都能跟踪,一边任何时刻都可以追踪历史,或者在将来某个时刻可以 ...
- Promise https://www.liaoxuefeng.com/wiki/1022910821149312/1023024413276544
在JavaScript的世界中,所有代码都是单线程执行的. 由于这个“缺陷”,导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行.异步执行可以用回调函数实现: function ca ...
- 近千节点的Redis Cluster高可用集群案例:优酷蓝鲸优化实战(摘自高可用架构)
(原创)2016-07-26 吴建超 高可用架构导读:Redis Cluster 作者建议的最大集群规模 1,000 节点,目前优酷在蓝鲸项目中管理了超过 700 台节点,积累了 Redis Clus ...
- 从新冠疫情出发,漫谈 Gossip 协议
众所周知周知,疫情仍然在全球各地肆虐.据最新数据统计,截至北京时间 2020-05-28,全球累计确诊 5698703 例,累计死亡 352282 例,累计治愈 2415237 例. 从上面的统计数据 ...
随机推荐
- 第三部分:Android 应用程序接口指南---第三节:应用程序资源---第一章 资源提供
第1章 资源提供 你应该经常外部化你应用程序代码中的资源,比如图片.字符串等,这样有利于你独立处理这些资源.你也应该根据特定的设备配置提供一些可替代的资源,并且把他们分组保存在指定的路径名下.运行时, ...
- 主机使用代理上网,虚拟机centos7如何连外网
简介 今天任务不多,就想在学一些fastdfs,然后发现公司是通过代理上外网的,这里记录下,主机使用代理上网,虚拟机centos7如何连外网 vi /etc/yum.conf 加上 proxy=ht ...
- 转载:CSS垂直居中总结
原文地址:http://www.cnblogs.com/dojo-lzz/p/4419596.html 工作中遇到垂直居中问题,特此总结了一下几种方式与大家分享.本文讨论的垂直居中仅支持IE8+ 1. ...
- Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办--转自http://www.jb51.net/article/88236.htm
这篇文章主要介绍了Mybatis使用MySQL模糊查询时输入中文检索不到结果的解决办法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 项目开发中,在做Mybatis动态查询时,遇到了 ...
- [PHP] 06 - Security: Error, Exception and Filter
前言 Ref: PHP 发送电子邮件 Ref: PHP Secure E-mails PHP发邮件部分在此系列中略. 这里展开”安全“相关的部分. 有啥区别? Ref: PHP异常与错误处理机制 P ...
- 4. Oracle数据库用户管理备份与恢复
一. Oracle用户管理备份介绍 Oracle物理备份核心就是将物理文件拷贝一份副本:存放在磁盘上.物理文件指的是:数据文件,控制文件,日志文件,参数文件等等. 根据数据库状态而分:备份可分为热备份 ...
- Markdown 链接
如下,方括号显示说明,圆括号内显示网址, Markdown 会自动把它转成链接 [我是百度](https://www.baidu.com/) [我是淘宝](https://www.taobao.com ...
- C#日志记录设计与实现(BenXHLog)
C#日志记录设计与实现 日志记录: 日志记录在程序设计开发过程中,是非常重要的,可以供调试和记录数据,虽然说有开源的强大日志管理系统,比如apache的Log4Net,功能可谓强悍,但是有时候,不需要 ...
- inittab 解析
Linux完成内核(Kernel)引导后,会由init初始化进程调用/etc/inittab配置文件(ps -aux | less,init进程号为始终为1,是所有系统进程的起点,init进程也有一个 ...
- 关于SMI、MSI、SCI、INTx各种中断小结【转】
转载自http://blog.csdn.net/huangkangying/article/details/11178425 目录(?)[-] MSI VS INTxPin-based interru ...