热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

矿工文档系统要求

发表时间:2020年10月1日信息来源:Bitcoinsv.io以下的推荐系统配置要求是在使用bitcoind软件时,基于我们的内部测试和扩容进展情况而定的。创世纪升级之后,Bit

发表时间:2020年10月1日

信息来源:Bitcoinsv.io




以下的推荐系统配置要求是在使用bitcoind软件时,基于我们的内部测试和扩容进展情况而定的。创世纪升级之后,Bitcoin SV的扩容之路仍在延续。需要注意,随着时间推移,现有的系统要求也可能会发生变化。


































 

开发环境配置

生产环境最低配置

生产环境推荐配置

 

仅能满足:遵循最大工作证明(PoW)的链,并处理少量的其他任务(比如RPC请求)。

可处理中等强度的工作量,并可实时同步当前链端的数据。

 

可处理大量工作,可实现txindex,可进行挖矿。


处理器

4核, 8线程CPU

8核, 16线程CPU

8 核, 16线程CPU;
10 核 20 线程 CPU 或者更高配置


内存

6GB内存 + 10GB交换区

64GB内存+ 64GB交换分区
理想情况下,提升内存并减少交换分区,同时保证总计128GB的可用存储空间

64GB内存+ 64GB 交换分区
理想情况下,提升内存并减少交换分区,同时保证总计128GB的可用存储空间


网络

10Mbit/s以上 (上行及下行网速)

100Mbit/s以上 (上行及下行网速)

1Gbit/s以上 (上行及下行网速)

我们已经看到了挖矿环境和监听环境配置如上时(并使用下述的附加推荐配置),可以处理好此前在STN上连续产生的2GB区块(含100万笔以上交易)。配置可能随着你的个人需求提升而有所变化,如你的具体环境、应用程序或用例等需求。

如果你是矿工,还建议你确保自已的节点与其他矿工之间有尽可能高的连通性。

 

附加推荐配置

随着Bitcoin SV越来多地被采纳,网络交易量持续上升。随着数据型交易(op_returns)的大规模使用,你的Bitcoin SV节点可能无法处理内存池里的交易流量,也可能被大量的计算请求所击垮。因此,节点可能会丢弃一些交易,让交易费更高的交易进入内存池,之后再提升计算能力;或者出现更糟的情况,节点停止运转。

虽然这不是Bitcoin SV应有的运行方式,但在短期内只能暂时做如此处理。因为Bitcoin SV基础架构团队当前必须集中精力解决其它优先级更高的问题,它们对扩容有更重要的影响。

有一种解决方案,就是把以下参数从默认值调高,从而让节点在高负载的情况下保持运行效率。高负载的情况包括重组(reorg),重组要求节点回滚并重新考虑最有可能看到过的交易或区块。重组可能让你的节点内存最高占用空间从1-2GB增加到3GB甚至以上。如果这对你的系统而言已经消耗内存太多,那么你的操作系统可能会结束进程(即停止运行bitcoind),也可能你的节点会因此崩溃,返回“Out of Memory”的错误代码。

由于重组和孤块都是Bitcoin SV生态系统的一部分,所以应该对其有所预见而不是担心(请点击这里了解更多信息)。因此,最好将系统配置充分准备好以应对这种情况。对于在STN 上进行操作或在主网上进行压力测试时的负载量来说,bitcoind中原有的默认受损设置和概念都过小。

因此,我们建议在你所运行的bitcoind节点中将此默认设置调高。

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

maxmempool=6000

这种约束性的内存限制(Genesis升级前默认值为300MB)源自交易费优先的处理规则,它继承自BTC,旨在保持小区块运行。但在Bitcoin SV区块链中,我们并不需要让区块这样小。对于小型交易,当前存储交易的开销是实际交易大小的5倍。而对于大型交易而言,开销则会降低很多。Bitcoin SV基础架构团队正在努力移除所有交易费优先处理规则的代码并且加速内存池处理,并对交易传播、验证和内存分配进行积极改进。经过改进后,网络处理速度将比之前大大提升,内存池内积压的交易也会更少。

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

maxsigcachesize=250
maxscriptcachesize=250

请注意,以上所提到的全部三项设置需要节点额外用6.5GB的内存,来进行 bitcoind 这方面的操作。

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

maxorphantx=10000

假设交易平均大小是400字节,这样做的结果是内存仅会增加4MB。如果你有充足的内存或交换分区空间,你可以大幅提升这项参数(请留意,Genesis升级后的交易数据可能非常大)以避免丢失尚未收到其父交易的孤立交易。


Bitcoin SV节点项目为比特币协会所拥有,请前往Bitcoinsv.io网站获取BSV节点的官方信息。


推荐阅读
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 本文介绍了在Android开发中使用软引用和弱引用的应用。如果一个对象只具有软引用,那么只有在内存不够的情况下才会被回收,可以用来实现内存敏感的高速缓存;而如果一个对象只具有弱引用,不管内存是否足够,都会被垃圾回收器回收。软引用和弱引用还可以与引用队列联合使用,当被引用的对象被回收时,会将引用加入到关联的引用队列中。软引用和弱引用的根本区别在于生命周期的长短,弱引用的对象可能随时被回收,而软引用的对象只有在内存不够时才会被回收。 ... [详细]
  • 模块化区块链生态系统的优势概述及其应用案例
    本文介绍了相较于单体区块链,模块化区块链生态系统的优势,并以Celestia、Dymension和Fuel等模块化区块链项目为例,探讨了它们解决可扩展性和部署问题的方案。模块化区块链架构提高了区块链的可扩展性和吞吐量,并提供了跨链互操作性和主权可扩展性。开发人员可以根据需要选择执行环境,并获得奖学金支持。该文对模块化区块链的应用案例进行了介绍,展示了其在区块链领域的潜力和前景。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • DSP中cmd文件的命令文件组成及其作用
    本文介绍了DSP中cmd文件的命令文件的组成和作用,包括链接器配置文件的存放链接器配置信息、命令文件的组成、MEMORY和SECTIONS两个伪指令的使用、CMD分配ROM和RAM空间的目的以及MEMORY指定芯片的ROM和RAM大小和划分区间的方法。同时强调了根据不同芯片进行修改的必要性,以适应不同芯片的存储用户程序的需求。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • php缓存ri,浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
    thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象。S()缓存方法支持有效期,又称动态缓存方法。本文是小编日常整理有关thinkp ... [详细]
author-avatar
mobiledu2502864045
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有