瑞波服务器
XRP Ledger对等网络的核心服务器是rippled
。任何人都可以rippled
在网络后面运行自己的服务器,并保留XRP分类帐的完整副本。你甚至可以让你的服务器参与一致的过程。
本页面包含以下说明:
瑞波服务器的类型
该rippled
服务器软件可以在多种模式下根据其配置上运行,其中包括:
- 库存服务器 - 使用本地分类帐副本跟随网络。
- 验证服务器或简称验证器 - 参与达成共识。
rippled
服务器处于独立模式 - 用于测试。不与其他rippled
服务器通信。
您也可以将该rippled
可执行文件作为客户端应用程序运行以在本地访问rippled
API。(在这种情况下,相同二进制文件的两个实例可以并排运行;一个作为服务器,另一个作为客户端短暂运行,然后终止。)
运行库存服务器的原因
您可能想要运行自己的rippled
服务器的原因很多,但其中大多数可以概括为:您可以信任自己的服务器,可以控制其工作负载,并且不受其他人的控制决定何时以及如何访问它。当然,你必须练习良好的网络安全来保护你的服务器免受恶意黑客的攻击。
你需要信任rippled
你使用。如果您连接到恶意服务器,可以通过很多方式利用您或导致您损失资金。例如:
- 恶意服务器可能会在没有付款时报告您已付款。
- 它可以选择性地显示或隐藏付款路径和货币兑换优惠以保证自己的利润,同时不会为您提供最佳交易。
- 如果您将地址的密钥发送给它,它可能代表您进行任意交易,甚至转移或销毁您的地址所持有的所有资金。
此外,运行您自己的服务器可让您对其进行管理控制,从而允许您运行重要的仅限管理员和负载密集型命令。如果您使用共享服务器,则必须担心同一台服务器的其他用户与您竞争服务器的计算能力。WebSocket API中的许多命令可能会给服务器带来很大的压力,因此rippled
可以在需要时缩减响应。如果您与其他人共享服务器,则可能无法始终获得最佳结果。
最后,如果您运行验证服务器,则可以使用库存服务器作为公用网络的代理,同时将验证服务器保留在只能通过库存服务器访问外部世界的私有子网上。这使得验证服务器的完整性变得更加困难。
运行验证服务器的原因
XRP Ledger的健壮性取决于互相关联的验证者网络,每个验证者信任几个其他验证者不要串通。有越多兴趣不同的运营商在运行验证者,那么每个网络成员越确定它会继续公正地运行。如果您或您的组织依赖于XRP分类帐,那么对共识流程作出贡献符合您的利益。
并非所有rippled
服务器都需要验证器:信任来自同一运营商的更多服务器不会提供更好的防止共谋的保护。在发生自然灾害和其他紧急情况时,一个组织可能会在多个地区运行验证人以实现冗余。
如果您的组织运行验证服务器,那么您也可以运行一个或多个库存服务器,以平衡API访问的计算负载,或者作为验证服务器与外部网络之间的代理。
运行一个比特币完整节点,以方便我自己的比特币交易。运行验证服务器并不比运行比特币完整节点更困难。
最终,运行验证程序的可能动机是:
1)如果你需要运行一个Ripple的实例,运行一个验证器的额外成本接近于零。
2)如果你关心网络的演变,运行一个验证器会让你有发言权。
3)运行一个验证器宣布你对网络的承诺,并且它的统计数据显示你的运营可行性。
瑞波公司在validators.ripple.com上推出Ripple Validator Registry,验证器注册表收集并发布所有网络验证器的数据,使Ripple的运营商能够确定要信任哪些验证器
一个好的验证器的属性
有几个属性定义了一个好的验证器。您的服务器所体现的这些属性越多,其他人必须将您的服务器包含在可信验证器列表中的原因越多:
- 可用性。一个理想的验证器应该始终运行,为每个提议的分类账提交验证投票。
- 努力争取100%的正常运行时间。
- 协议。验证者的投票应该尽可能地与共识过程的结果相匹配。否则可能表明验证者的软件已过时,错误或故意偏倚。
- 始终运行最新
rippled
版本而无需修改。
- 始终运行最新
- 及时性。验证者的投票应该很快到达,而不是在一轮达成一致后才能完成。
- 快速的互联网连接有助于此。
- 确定。应该清楚谁运行验证器。理想情况下,可信验证人列表应包括不同所有者在多个法律管辖区和地理区域内运行的验证人,以减少任何本地化事件可能干扰验证人的公正操作的可能性。
- 设置域验证是一个好的开始。
目前,Ripple(公司)不能推荐任何验证器,除了默认验证器列表中的验证器。但是,我们正在收集其他验证器和构建工具的数据以报告其性能。有关验证器的指标,请参阅validators.ripple.com。
容量规划
本节介绍与扩展rippled
测试和生产部署服务器相关的一些挑战。此外,它还介绍了硬件和配置设置如何与这些挑战相关联。最后,本部分提供了一些建议,以帮助您正确设置rippled
以满足部署用例的目标。
即使是最低功能的rippled
服务器,也必须包含最近验证的分类帐版本,才能向网络提交交易并验证XRP分类帐的完整性。除了这些要求,请考虑以下可能的业务需求:
- 处理不断增长的交易量
- 向客户提供交易报告信息
- 保持不同数量的历史数据
为了满足您的rippled
容量要求,您必须解决这些技术因素:
配置设置
Ripple建议采用以下指导方针来提高性能。您可以在rippled.cfg
文件中设置以下参数以提高rippled
服务器的性能。
节点大小
该node_size
参数确定数据库高速缓存的大小。较大的数据库缓存以较高的内存要求为代价来降低磁盘I / O需求。Ripple建议您始终使用可用内存可支持的最大数据库缓存。有关建议的设置,请参阅下表。
建议
可用RAM为 rippled |
node_size 值 |
笔记 |
---|---|---|
<8GB | tiny |
不建议 |
8GB | low |
|
16 GB | medium |
|
32GB | huge |
推荐用于生产服务器 |
节点数据库类型
该type
领域node_db
中的部分rippled.cfg
文件设置key-value存储的该类型rippled
用来坚持的XRP莱杰在分类帐店。您可以将该值设置为rocksdb
或nudb
。
rippled
提供历史分割功能,允许您将随机范围的分类账存储在单独的分仓库中。您可能希望将分片存储配置为使用与分类帐存储不同类型的键值存储。有关如何使用此功能的更多信息,请参阅历史记录分片。
RocksDB与NuDB
RocksDB需要比NuDB少三分之一的磁盘存储空间,并且相应地改善了I / O延迟。但是,随着存储容量的增长,这需要增加内存利用率。另一方面,NuDB无论存储如何,都具有几乎恒定的性能