一。概述

背书节点模拟执行签名的结果会经过排序服务(Ording service)广播给所有的节点。

它提供的是一种原子广播服务(Atomic Broadcast),即在逻辑上所有节点接收到的消息顺序是相同的,相同序号都是相同的内容。

排序服务广播的信息包括:

【1】。更新的状态信息

【2】。账本信息。。。

这些信息需要广播给所有节点。

若排序服务的所有节点都保持直接连接,在节点较多,数据量较大情况下容易形成单节点故障或成为性能瓶颈。

由超级账本节点组成的区块链网络本身就是一种去中心化的网络,利用P2P实现数据广播是显而易见的做法。

最觉见的方法是--洪泛(Flooding)

【1】洪泛是节点在接收到数据包以后,直接转发给所有的邻居节点,直到所有的节点都接收到了数据包或数据包的跳数(Hop count)超过一定的限制。

【2】洪泛优点:

节点覆盖率高:若在一个源节点 & 目标节点间存在一条路径,洪泛就能通过广播以最快速度找到这条路径。

很好冗余度:在不稳定的网络中提高网络健壮性(Robustness)

【3】洪泛缺点:

低效 & 广播风暴

超级账本采用Gossip的协议实现P2P数据分发,与洪泛的广播策略不同:

【1】节点在接收到数据包后,不直接转发给邻居节点,而是会计算一下概率,根据计算结果判断是否需要进行转发。

【2】转发概率设置为:

A。固定值的纯Gossip(Pure Gossip)

B。盲Gossip(Blind Gossping)

C。固定概率Gossip(Fixed probablility Gossip)

转发概率还可根据其他一些信息动态计算,如:节点的度(Degree),全局拓扑结构等。

在超级账本实现中,采用的是随机的选择k(默认值为3)个节点进行转发,若邻居节点的数据还没有需要转发的节点数量多,就全部转发。

二。超级账本中的Gossip协议

三。成员认证及身份管理

四。节点启动及成员管理

五。主节点选举过程

六。基于反熵的状态同步

七。数据传播过程

八。多通道的支持

九。消息的验证策略

十。消息的多路分用及分区

十一。和Gossip相关的配置参数

本章小结:

深度探索区块链/基于Gossip的P2P数据分发(4)的更多相关文章

  1. [转帖]深度解析区块链POW和POS的区别

    深度解析区块链POW和POS的区别 Proof of Work 还有Proof of Stake 之前理解程了 state ... 股权的意思 还有 delegated proof of Stake ...

  2. 区块链、云计算、大数据、人工智能、FinTech带来的挑战与机遇,中国技术开放日上海站精彩回顾

    区块链.云计算.大数据.人工智能.FinTech带来的挑战与机遇,中国技术开放日上海站精彩回顾 | 作者 韩婷 发布于 2016年12月26日. 估计阅读时间: 不到一分钟 | 欲知区块链.VR.Te ...

  3. 区块链3.0:拥抱EOS

    EOS是当下最火的区块链技术,被社会广泛看好为下一代区块链3.0.不同于以太坊的学习,EOS的主语言是C++,本文作为EOS研究的首篇文章,重点介绍EOS的创新点,它的周边生态,各种概念原理的解释,以 ...

  4. 谈谈今年很火的区块链 CDN

    2017 年初,区块链被越来越多的人知道.区块链的概念其实很早就被提出来,曾经有人说过"区块链技术被认为是继蒸汽机.电力.互联网之后,下一代颠覆性的核心技术. 如果说蒸汽机释放了人们的生产力 ...

  5. 以太坊区块链Java(EthereumJ)学习笔记:概述

    本系列文章介绍以太坊区块链基于Java语言的解决方案.通过介绍EthereumJ定义的主要模块和Class,希望为大家学习和使用EthereumJ提供一些帮助. 整体架构 以太坊的Java解决方案主要 ...

  6. 001/Go语言构建区块链(mooc)

    1.区块链发展与现状 视频地址:https://www.imooc.com/video/17452 注意: 比特币与以太坊最大的区别在于: 以太坊引入了对图灵完美智能合约的支持,人们可以将任何业务逻辑 ...

  7. NGK.IO网络安全大会暨区块链安全与应用创新论坛圆满落幕

    近日,NGK.IO网络安全大会暨区块链安全与应用创新论坛于美国McCormick Place国际会议中心圆满落幕. 论坛围绕"进化繁荣发展·安全链接未来"这一主题,由NGK.IO硅 ...

  8. Datahero Inc利用区块链溯源,造福各行各业

    近些年来,随着区块链技术的不断崛起以及快速发展,越多越多的人提出将区块链技术引入到溯源系统当中,溯源也成为了区块链技术的重要应用场景之一. 目前,Datahero inc已建设一整套的溯源平台系统,基 ...

  9. Rust 实现一个简单的区块链

    一.背景 近期用 Rust 实现了 Jeiwan/blockchain_go,与原项目相比没有加入新的功能,只是换了一个编程语言实现了一遍,源码放在 Github 上. 开发这个项目,花费了好几个周末 ...

随机推荐

  1. 在C语言中连续使用scanf()函数出现的问题

    #include<stdio.h> int main() { ],*c; printf("input string:\n"); scanf("%c" ...

  2. 对table最后一行显示与隐藏

    //显示table最后一行,如果用block的话,可能会影响到页面的样式 $("#table tr").get($("#table tr").length - ...

  3. Proxy + Reflect 实现 响应的数据变化

    Proxy 对象用于定义基本操作的自定义行为(如属性查找,赋值,枚举,函数调用等) let p = new Proxy(target, handler); get(target, propKey, r ...

  4. vue开发使用vue-particles如何兼容IE11?

    最近开发vue项目,项目有一个粒子特效使用vue-particles.项目用vue-cli构建,webpack打包完毕,丢到服务器,chrome访问完美,测试360和Edge也正常.遗憾的是,在IE1 ...

  5. [原创]Laravel 基于redis队列的解析

    目录 参考链接 本文环境 为什么使用队列 Laravel 中的队列 分发任务 任务队列 Worker Last-Modified: 2019年5月10日11:44:18 参考链接 使用 Laravel ...

  6. Acvitivi网关(十一)

    1排他网关 1.1 什么是排他网关 排他网关(也叫异或(XOR)网关,或叫基于数据的排他网关),用来在流程中实现决策. 当流程执行到这个网关,所有分支都会判断条件是否为 true,如果为 true 则 ...

  7. A - Biorhythms (第三周)

    A - Biorhythms 链接:https://vjudge.net/contest/154063#problem Description 人生来就有三个生理周期,分别为体力.感情和智力周期,它们 ...

  8. 170829-关于AOP面向切面编程

    1.AOP概念:Aspect Oriented Programming 面向切面编程 2.作用:本质上来说是一种简化代码的方式 继承机制 封装方法 动态代理  …… 3.情景举例 ①数学计算器接口[M ...

  9. Jquery $().each()与$.each(data,function(i,obj))区别

    在遍历DOM时,通常用$(selector).each(function(index,element))函数: 在遍历数据时,通常用$.each(dataresource,function(index ...

  10. mysq访问方式

    mysql -h10.81.32.196 -P5152 -Dns_map_data_new -uwangyuchuan_r -p3DLg15rhSsm0O7Nsselect uid,name from ...