BSV节点软件v1.0.10(正式版)正式发布

BSV节点软件v1.0.10(正式版)是在v1.0.9(正式版)基础之上的推荐升级版本;本次升级版软件带来了一系列的功能改进和性能提升。

详细内容列示如下:

  • 对并行交易验证(Parallel Transaction Validation,PTV)调度器的改进
  • 对用户代理(User Agent)字符串处理逻辑的调整
  • 更新maxscriptsizepolicy和maxscriptnumlengthpolicy的默认值
  • 更新点对点(P2P)消息头:
    o 版本
    o 变更描述
  • sendrawtransactions 提供跳过某些策略验证的选项
  • 全新的ZMQ主题(topic)
    o 原来的rawtx、hashtx、rawblock、hashblock topicstx通知
    o 新增的rawtx2、hashtx2、rawblock2、hashblock2 topicstx通知
  • 可配置的超时时间

对并行交易验证(PTV)调度器的改进

对交易无序到达时长且复杂交易图的处理进行了性能改进。

对用户代理(User Agent)字符串处理逻辑的调整

目前,BSV节点可能会连接到BCH节点(在BSV GitHub上有关于如何避免这种情况的建议)。这不会引起任何严重的问题,但会导致带宽浪费和处理无效区块。处理无效区块会产生错误消息,这些消息会污染日志文件,导致很难查看当前的实际情况。采取以下措施可以让节点尽可能只连接到其它BSV节点:

  • banclientua – 禁止的用户代理字符串子串的列表(节点将禁止
    任何返回这些用户代理字符串的对等节点),默认列表值被设置为:“abc”、“cash”、“bch”;
  • allowclientua – 新引入的配置选项,包含允许的用户代理字符串子串的列表,这些值会覆盖banclientua的设置。默认列表值为空。

字符串匹配不区分大小写。请注意,如果在节点配置文件或命令行中设置了单个banclientua参数的值,则它的默认列表值将被清空。

配置示例:
banclientua=XYZ
banclientua=ABC
allowclientua=its-not-abc

这个配置将允许/禁止下列用户代理字符串:
‘ThisAbcClient’ # 禁止,匹配ABC
‘ThisBchClient’ # 允许,因为默认值被清空,所以可以连接返回“cash”或“bch”的节点
‘I-cant-believe-its-not-ABC’ # 允许,虽然匹配ABC但也匹配its-not-abc,后者优先级更高

更新maxscriptsizepolicy和maxscriptnumlengthpolicy的默认值

maxscriptsizepolicy和maxscriptnumlengthpolicy配置项的默认值已更新。

  • maxscriptsizepolicy的默认值从原来的10,000改为500,000
  • maxscriptnumlengthpolicy 的默认值从原来的250,000改为10,000

更新点对点(P2P)信息头

络上的每一条点对点消息都有相同的基本结构:一个24字节的信息头,后面跟着具体的载荷数据。信息头中包含了描述载荷数据长度的字段,该字段目前使用uint32_t类型编码。因此,这限制了所有消息载荷的长度都不能超过4GB。

为了支持大于4GB的区块,我们对点对点消息的结构进行了改进以克服此限制。

版本

在这次升级中,点对点协议的版本 已从70015增加到了70016。这能让节点提前知道连接到自己的对等节点是否能理解新的扩展消息格式,从而避免向对方发送这些使用了新格式的消息。遵循此规则的节点不得向版本 低于70016的节点发送使用扩展格式的消息,否则将被对方禁止。

变更描述

总的来说,对点对点消息的更改涉及在现有信息头的某些字段上设置特殊值,这个标记可以被支持此类更改的对等节点识别,以指示这是一条具有大数据载荷的消息。这些特殊值还允许不理解它们的对等节点拒绝这样的消息,并在遇到这样的消息时直接失败。

现有的点对点消息头包含一个12字节的消息类型字段。我们引入了一个新的消息类型extmsg(扩展消息的缩写),当看到这个值时,它会向接收者指示在这个消息头之后是一些新的扩展消息的信息头,然后才是真正的数据载荷。

建议的扩展消息完整格式如下所示:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年10月22日
下一篇 2021年10月22日

相关推荐