Bitcoin SV 客户端

官网:https://bitcoinsv.io/

Github:https://github.com/bitcoin-sv/bitcoin-sv

Bitcoin SV 节点系统配置要求

以下是基于我们使用比特币节点软件进行的内部测试和扩容的过程而做出的系统配置需求推荐。比特币 SV 将继续按计划扩容到创世协议。这也意味着这些要求会随着时间的推移而变化。

对于只运行一个跟随 PoW 工作量最高链并只处理少量其他任务(例如处理 RPC 请求)而不挖矿的监听节点,我们建议至少达到以下配置:

  • 4 核 CPU
  • 6GB 内存
  • 10M+ 的网络连接(上下行速率)

  • 我们不建议将上述配置用于任何生产环境中。*

请注意,如果交易量持续突增,上述配置可能会出现问题。 这可能导致你的节点落后于当前最长链,或者直接因内存不足而中止服务。

对于运行一个预计要处理一定数据量,并保持与当前最长链实时同步的监听节点,我们建议至少达到以下配置:

  • 8 核 CPU
  • 16GB 内存
  • 100M+ 的网络连接(上下行速率)

这可能适合那些希望在主网上发布他们新产品的初创公司。 随着他们的应用程序和主网上数据量的增加,对这一层节点的配置需求也会加大。

对于运行预计要处理大量数据、需要对交易进行索引、甚至进行挖矿操作的监听节点,我们建议至少采取以下配置。

  • 8-12 核 CPU
  • 32GB 内存
  • 1G+ 的网络连接(上下行速率)

我们已经在挖矿节点和侦听节点环境中看到上述配置能够处理 STN 测试网络上连续 2GB 大小的块,交易数超过 100 万交易(这还需要参照使用下面的一些附加配置建议)。 这个配置应该能让您在主网上轻松处理各类交易,直到矿工们提高最大处理区块的上限(截止至 2019 年 8 月该上限为 512 MB )。

配置可能因您的个人需求,特定环境,以及应用程序或实例的需求而发生变化。

如果您是矿工,建议您花时间确保您的节点与其它矿机实现最高连接。

一些附加建议 - 矿工尤其要注意

随着比特币 SV 上的应用和交易量不断增加;以及伴随着链上存储交易(op_returns)的爆发式使用,您的比特币 SV 节点可能在达到内存池的上限时无法处理或被大量的计算请求淹没。这会造成节点将丢弃交易,优先让更高交易费用的交易通过,随后增加计算量或者更糟糕地,直接停止运行。

虽然这不是比特币理想的运行方式,但这却是我们在短期内必须面对的问题;SV 节点团队将专注于对扩容有更大影响的更高优先级的任务。

解决方案是提高以下的默认值,以允许节点在高负载情况下依旧保持高效。这些情况包括重组,即要求节点返回并重新考虑最有可能被看到的交易或区块。重组,可能是导致您的节点从 1-2GB 内存使用增加到 3GB 或更多的原因,如果这内存量对您的系统来说太多,操作系统可能会选择结束 bitcoind 进程,或者您的节点将崩溃并显示错误代码“Out of Memory(内存不足)“。

由于重组和孤块是比特币生态系统的一部分,我们应该有所预期而不是恐慌(更多内容请点击这里);最好为这种情况提前做好准备。根据我们在测试网络和在主网上进行压力测试时看到的数据量来看,bitcoind 中默认的设置实在太小了。

考虑到这一点,我们建议您在比特币节点上增加一些默认设置。

首先,您的内存池容许上限值应设置为 6GB 或更高。这样设置让节点知道应该为存储未确认的交易分配多少内存。这可以通过在 bitcoin.conf 文件中添加以下内容来实现。

maxmempool = 6000

这种限制性内存设置(默认为 300MB),是为维持小区块的功能,而从 BTC 那继承的费用优先级处理的结果。在比特币 SV 中,我们并不需要这个。对于小额交易,存储交易的开销是当前实际交易大小的 5 倍。对于大额的交易,这种费用会急剧下降。SV 节点团队正在积极努力删除所有处理费用优先级的代码,并为加快内存池处理,为交易传播、验证和内存分配带来急需的改进。 最终我们将得到一个更快速,内存费用更低的内存池。

除了增加内存池容许上限外,我们还建议增加签名和脚本缓存。这项设置将告诉节点,我们可以在缓存(内存)中保留多少兆字节可接受的交易;通过减少耗时的重新计算签名和脚本的调用,从而提高效率。我们建议将这些设置为 250MB 或更高以提高性能。这可以通过在 bitcoin.conf 文件中添加以下内容来完成。

maxsigcachesize = 250
maxscriptcachesize = 250

请注意,添加上述的三个设置将在节点上增加 6.5GB 的额外内存要求,这只是为提升 bitcoind 效率的操作。

最后,我们建议将 maxorphantx 添加到您的 bitcoin.conf 中。此值指定可以在内存中保留多少个孤立交易。这对您的节点接受子交易有所帮助,即使其父交易尚未在区块链中得以确认。这同时意味着节点将记住该子交易,直到它的父交易被确认或超过 20 分钟后过期失效。这可以通过在 bitcoin.conf 文件中添加以下内容来完成。

maxorphantx = 10000

这样的结果是,假设平均交易大小是 400 字节,内存仅增加 4MB。将此值设置于此,而不是更高 (例如 10 万) 的原因是,如果您在最极端的情况下保存 10 万笔 100KB 的交易,那么您需要额外的 10GB 内存。


results matching ""

    No results matching ""