Fabric 网络 - 当宕机的对等点连接回网络时会发生什么?

2023-12-26

我最近使用 Docker-compose 部署了结构网络,我试图模拟一个宕机的对等点。本质上是这样的:

  1. 使用运行结构网络的 docker-compose 将 4 个对等点联机
  2. 1 个对等点,即第 4 个对等点出现故障(通过 docker stop 命令完成)
  3. 调用事务被发送到根对等点,该根对等点通过在一段时间后查询对等点(不包括已关闭的对等点)进行验证。
  4. 宕机的对等点会通过 docker start 重新启动。查询事务在始终在线的对等点上运行良好,但在新唤醒的对等点上失败。

为什么第四个节点在区块链启动后不同步区块链。是否需要采取措施来确保它同步?或者是否将其作为流氓对等点丢弃。


这可能是由于 PBFT 的预期行为(假设您正在使用它)造成的。正如上所解释的第933期 https://github.com/hyperledger-archives/fabric/issues/933#issuecomment-218833493,

我认为你看到的是正常的 PBFT 行为:2f+1 个副本是 取得进展,f 副本稍微落后,赶上 偶尔起来。

如果你关闭另一个对等点,你应该观察 您最初关闭并重新启动的那个现在将 充分参与,网络将不断进步。作为 只要网络在进步,参与的节点 共享一个正确的前缀,一切都很好。 f 副本的原因 落后的是那些f可能表现得拜占庭式的进步 故意慢慢地。你无法区分较慢的 正确的副本,以及故意较慢的拜占庭副本。 因此,我们不能等待最后 f 个掉队者。他们将被留下 落后并偶尔同步。如果事实证明还有其他 副本崩溃,网络将停止前进,直到一个 正确的落后者赶上,然后网络就会进步 通常情况下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Fabric 网络 - 当宕机的对等点连接回网络时会发生什么? 的相关文章

随机推荐

  • 如何使用修改后的标头进行 HTTP GET?

    在 Ruby 中使用修改后的标头发出 HTTP GET 请求的最佳方法是什么 我想从日志文件末尾获取一系列字节 并且一直在玩弄以下代码 但是服务器返回一个响应 表示 这是服务器无法理解的请求 服务器是阿帕奇 require net http
  • 在 ol 项目 html 上实现子编号

    我不确定它叫什么 但是否可以实现以下格式 1 1 1 1 2 1 2 1 1 2 2 1 3 我想就这些了 谢谢 事实上 有几种选项在鲁棒性和支持方面有所不同 在生成列表的代码中执行此操作 提供了is毕竟生成了 HTML 维基百科就是这样做
  • NSMutableString appendString 生成 SIGABRT 错误

    新来的 这个论坛和 Xcode 所以请耐心等待 在过去的几天里 我断断续续地花了几个小时试图找出我在这里到底做错了什么 但我似乎无法找出我的问题 这是我的代码的相关部分 我相信 在标题中 interface BlahViewControll
  • 如何从反应本机页面返回本机视图控制器?

    我用一个包装了一个反应本机页面UIViewController 并用导航控制器推送它 但是如何使用react native js代码弹出到本机页面 最简单的方法是拥有一个引用您的属性UIViewController在你的AppDelegat
  • 加速 RcppArmadillo:如何链接到 R 包中的 OpenBlas

    我正在开发一个使用 RcppArmadillo 的 R 包 我正在尝试利用 OpenBLAS 中更快的矩阵乘法 在里面文档 http arma sourceforge net faq html blas lapack replacement
  • 为什么不能直接将带有小数点的数字分配给十进制类型而不使用类型后缀?

    为什么不能直接将带小数点的数字赋给十进制类型而不使用类型后缀 这种数字不就被认为是小数类型的数字吗 decimal bankBalance 3433 20 ERROR Edit 我可能错过了问题的最后一部分 所以下面的概述几乎没有用 不管怎
  • 从网络导入 Mathematica 中的表格 - 空单元格问题

    I use data Import http weburl Data 从一个站点导入数据 该页面上有表格 这将创建嵌套列表 您可以轻松获取表格形式的数据 例如 Grid data 1 会给出这样的东西 Player Age Shots Go
  • 线程相对于 Runnable 的优势[重复]

    这个问题在这里已经有答案了 可能的重复 Java 实现 Runnable 与 扩展线程 https stackoverflow com questions 541487 java implements runnable vs extends
  • 在 PostgreSQL 查询中按降序聚合字符串

    除了问题之外如何在 PostgreSQL group by 查询中连接字符串字段的字符串 https stackoverflow com questions 43870 how to concatenate strings of a str
  • Python - 将非常大 (6.4GB) XML 文件转换为 JSON

    本质上 我有一个 6 4GB XML 文件 我想将其转换为 JSON 然后将其保存到磁盘 我目前正在运行 OSX 10 8 4 配备 i7 2700k 和 16GB 内存 并运行 Python 64 位 双重检查 我收到一个错误 提示我没有
  • 如何使用 beforeUpdate Hook Sequelize 中止更新操作

    我如何使用sequelize上的beforeUpdate钩子中止更新操作并返回一个对象作为中止更新的结果 如果我有类似的东西 User beforeUpdate function user options if user name exam
  • TWTRTwitter sessionStore 现在返回 TWTRAuthSession:那么现在如何访问 userName 属性呢?

    使用 Swift 中的 TwitterKit 3 3 0sharedInstance sessionStore session 现在返回一个TWTRAuthSession而不是一个TWTRSession 像之前一样 事情发生了变化 但这很好
  • PerformBlockAndWait 造成死锁

    我正在编写一个执行一些 CoreData 操作的函数 我希望该函数仅返回after所有 CoreData 操作均已执行 CoreData 的内容涉及在后台上下文中创建一个对象 然后在父上下文中执行更多操作 void myFunction N
  • 声明和未声明变量的影响

    JavaScript 声明变量和未声明变量之间的主要区别是什么 删除运算符对声明的变量不起作用 var y 43 declares a new variable x 42 delete x returns true x is a prope
  • 我是否正确消毒/逃生?

    我用 PHP 编写了一个简单的搜索脚本 用于搜索 mySQL 数据库并输出结果 它的工作原理是这样的 用户通过搜索表单搜索 jack s 我的 PHP 脚本GET就是这个搜索 并对其进行清理 然后是脚本 使用SELECT and LIKE
  • 检查 C++ 中多个值的相等性

    我正在 C 中寻找一种简单 快速且描述性的方法来检查某个值是否包含在一组固定的其他值中 就像在 Python 中一样 人们可以在其中编写 if some function in 2 3 5 7 11 do something 一些明显的选择
  • Java 自动装箱和三元运算符的疯狂

    刚刚花了几个小时调试这段代码 令人沮丧 LinkedHashMap
  • 使用 monad 读取 INI 文件

    我正在尝试使用 monads 使用 haskell 读取 INI 文件 这是我的代码 import Control Monad import Data Ini main do config lt readIniFile configs co
  • 是否可以在拉取请求(Github)中更改其他人的代码?

    在 Github 项目上 我看到有人在Pull Requests部分 但我发现他犯了很多错误 因此他的代码需要更正 与其要求他改他的代码 是不是可以自己动手 就是我想自己改他的代码 如何 我也是该项目的成员 而且我是新人 对现有拉取请求启用
  • Fabric 网络 - 当宕机的对等点连接回网络时会发生什么?

    我最近使用 Docker compose 部署了结构网络 我试图模拟一个宕机的对等点 本质上是这样的 使用运行结构网络的 docker compose 将 4 个对等点联机 1 个对等点 即第 4 个对等点出现故障 通过 docker st