Files
solana/docs/i18n/zh/docusaurus-plugin-content-docs/current/proposals/validator-proposal.md
Justin Starry a1df57a4ea Add chinese translations to docs (#17125)
* import zh translations

* Fix broken links

* fix whitespace
2021-05-09 00:46:24 +08:00

2.3 KiB
Raw Blame History

title
title
验证节点

历史

当我们首次启动Solana时目标是降低TPS索赔的风险。 我们知道在乐观并发控制和领导者在位时间太长之间PoS共识并不是TPS的最大风险。 这是基于GPU的签名验证、软件流水线和并发银行业务。 因此TPU诞生了。 在达到100kTPS之后我们将团队划分出一个小组争取突破710k TPS另一小组则巩固验证程序管道。 因此TVU诞生了。 当前的体系结构是按顺序和项目优先级进行增量开发的结果。 这并不反映我们曾经认为这些技术最为优雅的表现。 在领导者轮换的背景下,领导者与验证之间的明显区别变得模糊。

验证与领导之间的差异

管道之间的根本区别在于存在PoH的时间。 作为领导者的角色我们处理交易删除不良交易然后用PoH哈希标记结果。 作为验证节点的角色,我们验证哈希,将其剥离并以完全相同的方式处理事务。 唯一的区别是如果验证者看到错误的交易不能像领导者一样简单地将其删除因为这会导致PoH哈希发生变化。 相反,它拒绝整个区块。 流水线之间的另一个区别是银行交易_后_会发生的事情。 领导者将条目广播到下游验证节点而验证节点已经在RetransmitStage中完成了此操作这是确认时间的最优化。 另一方面,验证管道还有最后一步。 每当处理完一个区块后它都需要权衡它所观察到的任何分支并可能投一票如果这样则将其PoH哈希值重置为刚投票的块哈希值。

拟定设计

我们解开了许多抽象层并构建了一个管道只要验证者的ID在领导者时间表中显示就可以切换领导者模式。

验证节点区块图

显著的变化

  • TPU之外提升FetchStage和BroadcastStage
  • BankForks更名为Banktree
  • TPU转移到名为solana-tpu的新工具箱。
  • TPU的BankingStage吸收了ReplayStage
  • TVU消失了
  • 新的修复阶段吸收了碎片获取阶段和修复请求
  • JSONRPC服务是可选的-用于调试。 相反,它应该是单独的solana-blockstreamer可执行文件的一部分。
  • 新的MulticastStage吸收了RetransmitStage的重发部分
  • Blockstore下游的MulticastStage