瑞波(Ripple)服务器安装

瑞波服务器
XRP Ledger对等网络的核心服务器是rippled。任何人都可以rippled在网络后面运行自己的服务器,并保留XRP分类帐的完整副本。你甚至可以让你的服务器参与一致的过程。

本页面包含以下说明:

容量规划 rippled
安装 rippled
参与共识流程
瑞波服务器的类型
该rippled服务器软件可以在多种模式下根据其配置上运行,其中包括:

库存服务器 - 使用本地分类帐副本跟随网络。
验证服务器或简称验证器 - 参与达成共识。
rippled服务器处于独立模式 - 用于测试。不与其他rippled服务器通信。
您也可以将该rippled可执行文件作为客户端应用程序运行以在本地访问rippledAPI。(在这种情况下,相同二进制文件的两个实例可以并排运行;一个作为服务器,另一个作为客户端短暂运行,然后终止。)

运行库存服务器的原因
您可能想要运行自己的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容量要求,您必须解决这些技术因素:

影响资源利用率的配置设置
在网络和硬件要求,实现跨越XRP总帐网络进行统一的,性能良好
配置设置
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无论存储如何,都具有几乎恒定的性能和内存占用空间。

rippled作为验证器运行的服务器应该只保留几天或更少的数据。Ripple建议使用RocksDB进行验证。对于所有其他用途,Ripple建议将NuDB用于分类账商店。

RocksDB具有与性能相关的配置选项,您可以修改该选项以实现最大的事务处理吞吐量。(NuDB没有与性能相关的配置选项。)以下是rippled使用RocksDB 的服务器的推荐配置示例:

[node_db]
type=rocksdb
open_files=512
file_size_mb=64
file_size_mult=2
filter_bits=12
cache_mb=512
path={path_to_ledger_store}
历史数据
rippled服务器保持联机的历史数据量是所需存储空间的主要贡献者。在撰写本文时(2018-03-01),一台rippled服务器每天存储大约12GB的数据。随着XRP分类账网络中交易量的增加,您可以预计这一数量会增加。您可以控制您使用online_delete和advisory_delete字段保存的数据量。

在线删除可以在rippled不中断服务的情况下从数据库修剪分类帐。它只会删除不属于当前分类帐的记录。如果没有在线删除,这些数据库会无限制地增长。释放磁盘空间需要停止进程并手动删除数据库文件。

日志级别
默认rippled.cfg文件将记录详细程度设置为warning。此设置通过更详细的日志记录大大减少了磁盘空间和I / O需求。但是,更详细的日志记录可提高故障排除的可见性。

小心:如果您省略节中的log_level命令,则将日志写入磁盘的级别并将级别日志输出到控制台。根据事务处理量和客户端活动的不同,日等级日志记录每天需要多个GB的磁盘空间。[rpc_startup]rippleddebugwarningdebugwarning

网络和硬件
rippledXRP分类帐网络中的每台服务器执行网络的所有交易处理工作。未知数量何时会达到最大网络容量。因此,生产rippled服务器的基准硬件应该与Ripple的性能测试中使用的类似。

建议
为了在企业生产环境中获得最佳性能,Ripple建议使用rippled具有以下特征的裸机运行:

操作系统:Ubuntu 16.04+
CPU:Intel Xeon 3+ GHz处理器,支持4核和超线程
磁盘:SSD
内存:
用于测试:8GB +
对于生产:32GB
网络:主机上具有千兆网络接口的企业数据中心网络
SSD存储
SSD存储应支持几千个读写IOPS。Ripple工程师观察到的每秒最大读写次数超过每秒10,000次(在重度使用的公共服务器集群中)以及每秒超过7,000次写入(在专用性能测试中)。

CPU利用率和虚拟化
Ripple性能工程已经确定裸机服务器实现最大吞吐量。但是,管理程序很可能会导致性能下降最小化。

网络
任何企业或运营商级数据中心都应具有足够的网络带宽来支持正在运行的rippled服务器。对于当前的交易量,最低要求大致为2Mbps传输和2Mbps接收。但是,在提供历史分类帐和交易报告时,这些数据可能会突然传输至100MBps。当一个rippled服务器最初启动时,它可能会突然超过20Mbps的接收。

存储
Ripple建议估计存储容量大概为每天大约12GB的数据与NuDB保持联机。RocksDB每天需要8GB左右。但是,每天的数据随网络中的活动而变化。你应该提供额外的容量来为未来的增长做准备。在撰写本文时(2018-03-01),具有所有XRP分类帐历史记录的服务器需要6.8TB。

记忆
内存要求主要是node_size配置设置和检索历史数据的客户端流量的函数。如前所述,生产服务器应该使性能最大化并将此参数设置为huge。您可以将node_size参数设置得较低以使用较少的内存,但您应该只对测试进行此操作。随着node_size中medium,一个rippled服务器可以在测试Linux系统相当稳定与低至8GB的内存。

亚马逊网络服务
亚马逊网络服务(AWS)是一种流行的虚拟主机环境。您可以在AWS中运行波动,但Ripple不建议使用弹性块存储(EBS)。弹性块存储的IOPS(5,000)的最大数量对于rippled最重的负载是不够的,尽管其非常昂贵。

AWS实例存储(ephemeral存储)没有这些约束。因此,Ripple建议部署具有实例存储rippled等主机类型的服务器M3。该database_path和node_db路径应每驻留在实例存储。

小心:AWS实例存储不保证在发生硬盘驱动器故障时提供持久性。此外,实例停止并重新启动时(但不是刚刚重新启动时)会丢失的数据。对于rippled服务器而言,这种损失是可以接受的,因为单个服务器通常可以从其对等服务器重新获取该数据。

安装
瑞波
对于开发,您可以从源代码编译rippled。

生产rippled实例可以使用 Ripple yum版本库中提供的Ripple 二进制可执行文件。

最低系统要求
一个rippled服务器应该在商用硬件上运行舒适,让它便宜参与的网络。目前,我们推荐以下最低要求:

操作系统:
制作:支持CentOS或RedHat Enterprise Linux(最新版本)或Ubuntu(16.04+)
开发:Mac OS X,Windows(64位)或大多数Linux发行版
CPU:64位x86_64,2核心
磁盘:对于数据库分区,建议最少50GB SSD(1000 IOPS,更多更好)
内存:
测试:8GB +
制作:32 GB
m3.large根据您的工作负载,Amazon EC2的VM大小可能是合适的。快速的网络连接是最好的。服务器客户端处理负载的任何增加都会增加资源需求。

提示:对于超出最低要求的建议,请参阅容量规划。

在yum上安装在CentOS / Red Hat上
本节假定您使用的是CentOS 7或Red Hat Enterprise Linux 7。

安装Ripple RPM存储库:

$ sudo rpm -Uvh https://mirrors.ripple.com/ripple-repo-el7.rpm
安装rippled软件包:

$ sudo yum install --enablerepo=ripple-stable rippled
将rippled服务配置为在系统引导时启动:

$ sudo systemctl enable rippled.service
开始rippled服务

$ sudo systemctl start rippled.service
在Ubuntu上用alien来安装 
本节假定您使用的是Ubuntu 15.04或更高版本。

安装yum-utils和alien:

$ sudo apt-get update
$ sudo apt-get install yum-utils alien
安装Ripple RPM存储库:

$ sudo rpm -Uvh https://mirrors.ripple.com/ripple-repo-el7.rpm
下载rippled软件包:

$ yumdownloader --enablerepo=ripple-stable --releasever=el7 rippled
验证rippled软件包上的签名:

$ sudo rpm --import https://mirrors.ripple.com/rpm/RPM-GPG-KEY-ripple-release && rpm -K rippled*.rpm
安装rippled软件包:

$ sudo alien -i --scripts rippled*.rpm && rm rippled*.rpm
将rippled服务配置为在系统引导时启动:

$ sudo systemctl enable rippled.service
开始rippled服务

$ sudo systemctl start rippled.service
安装后
rippled与网络的其他部分同步可能需要几分钟的时间,在此期间,它会输出有关缺失分类帐的警告。之后,您将拥有一个功能齐全的库存rippled服务器,您可以使用该服务器进行本地签名并访问XRP分类帐的API。

命令可以在以下情况下运行:

    $ /opt/ripple/bin/rippled <command>
更新
您可以订阅Ripple的Google小组以接收新rippled版本的通知。

在CentOS / Red Hat上自动更新
可以使用一次性Cron配置启用自动波动更新:

检查是否/opt/ripple/bin/update-rippled.sh存在。如果没有,请手动更新。

安装crond:

$ sudo yum install cronie
打开crontab文件进行编辑

$ sudo crontab -e
将以下内容添加到crontab文件中。一定要在文件末尾添加一个空白行。

RANDOM_DELAY=59
0 * * * * /opt/ripple/bin/update-rippled.sh
该脚本rippled在每个新版本发布后的一小时内更新已安装的软件包。

在CentOS / Red Hat上手动更新
运行以下命令以更新到最新版本rippled:

    $ sudo rpm -Uvh --replacepkgs https://mirrors.ripple.com/ripple-repo-el7.rpm
    $ sudo yum update --enablerepo=ripple-stable rippled
    $ sudo systemctl daemon-reload
    $ sudo service rippled restart
Ubuntu上的手动更新
运行以下命令以更新到最新版本rippled:

    $ sudo rpm -Uvh --replacepkgs https://mirrors.ripple.com/ripple-repo-el7.rpm
    $ yumdownloader --enablerepo=ripple-stable --releasever=el7 rippled
    $ rpm -K rippled*.rpm
    $ sudo alien -i --scripts rippled*.rpm
    $ sudo systemctl daemon-reload
    $ sudo service rippled restart
运行一个验证器
运行rippled参与共识流程的验证器非常简单:

在您的rippled服务器上启用验证。
起初,你的服务器是一个不可信的验证器。其他人可以看到你的服务器发出的验证,但是他们在共识过程中忽视了他们。
与公众分享公共密钥,尤其是其他rippled运营商。
当其他rippled操作员将您的公钥添加到受信任服务器列表中时,您已成为值得信赖的验证器。
另请参阅最佳实践的良好验证器属性。
验证器设置
该validator-keys工具(包含在rippledRPM中)是安全生成和管理验证器密钥的推荐方式。

安装rippled服务器。

生成验证器密钥对:

$ /opt/ripple/bin/validator-keys create_keys
警告:将生成的validator-keys.json密钥文件存储在安全但可恢复的位置,如加密的USB闪存驱动器。不要修改其内容。

生成验证器令牌并编辑您的rippled.cfg文件以添加[validator_token]值。

$ /opt/ripple/bin/validator-keys create_token --keyfile /path/to/your/validator-keys.json
如果您以前没有使用该validator-keys工具配置验证器,则还必须[validation_seed]从rippled.cfg文件中删除该验证器。这会更改您的验证器公钥。

开始rippled:

$ sudo service rippled restart
见的validator-keys-toolGitHub的仓库进行有关管理验证密钥的详细信息。

面向公众的服务器
为了保护生产验证器免受DDoS攻击,您可以使用库存rippled服务器作为验证器与外部网络之间的代理。

设置rippled验证器。

设置一个或多个库存rippled服务器。

将验证器和库存rippled服务器配置为相互集群。

对您的验证器进行以下配置更改:

复制[ips_fixed]列表并将其粘贴到下[ips]。这些字段应仅包含面向公众的波动的IP地址和端口。验证程序只连接到这些同伴。
更改[peer_private]为1阻止其IP地址被转发。
将验证器主机的防火墙配置为仅接受来自其面向公众的波及的入站连接。

请记住重新启动rippled配置更改才能生效。

注意不要发布验证器的IP地址。

域验证
网络参与者不可能在不知道谁在操作它们的情况下相信验证者。为了解决这个问题,验证器操作员可以将他们的验证器与他们控制的网域相关联。

通过在验证器服务器上运行以下内容来查找验证器公钥:

$ /opt/ripple/bin/rippled server_info -q | grep pubkey_validator
使用用于您的域的SSL私钥签署验证器公钥(来自步骤1)。SSL私钥文件不需要存储在验证器服务器上。

$ openssl dgst -sha256 -hex -sign /path/to/your/ssl.key <(echo <your-validator-public-key>)
使用validator-keys工具(包含在rippledRPM中),签署域名:

$ /opt/ripple/bin/validator-keys --keyfile /path/to/your/validator-keys.json sign <your-domain-name>
要在XRP图表中包含经过验证的验证器域,请将此Google表单与验证器的信息一起提交。

其他配置
rippled应使用默认配置连接到XRP分类帐。但是,您可以通过编辑rippled.cfg文件(位于使用yum进行/opt/ripple/etc/rippled.cfg安装rippled时)更改设置。有关配置设置的建议,请参阅容量规划。

见的rippledGitHub的仓库对所有配置选项的说明。

更改[debug_logfile]或[database_path]部分可能需要您给rippled用户和组所有权到新配置的路径:

    $ chown -R rippled:rippled <configured path>
重新启动rippled以使配置更改生效:

    $ sudo service rippled restart
并行网络
大多数时候,我们将XRP分类账描述为一个单一的实体 - 而且大多数情况都是如此。有一个生产XRP分类帐对等网络,并且所有发生在XRP分类帐上的业务都发生在生产网络中。

但是,有时您可能想要在不与核心网络交互的情况下进行测试和实验。这就是为什么Ripple开创Ripple Test Net这个“替代宇宙”网络的原因,它可以作为应用程序和rippled服务器本身的测试平台,而不会影响日常XRP分类账用户的业务运营。Ripple Test Net(也称为AltNet)单独提供TestNet-only XRP,Ripple 免费赠送给有意在测试网络上开发应用程序的各方。

注意:Ripple不保证测试网络的稳定性。它一直并将继续用于测试服务器配置,网络拓扑和网络性能的各种属性。

随着时间的推移,可能还会有更小的临时测试网络用于特定目的。

并行网络和共识
没有rippled定义它使用哪个网络。相反,它使用它所信任的验证器的共识来知道哪个分类账被接受为真相。当rippled实例的不同共识组仅信任同一组中的其他成员时,每个组继续作为并行网络。即使恶意或行为异常的计算机连接到两个网络,只要每个网络的成员未配置为信任另一个网络的成员超过其仲裁设置,共识流程就会覆盖混淆。

聚类
如果您rippled在单个数据中心中运行多台服务器,则可以将这些服务器配置为一个群集以最大限度地提高效率。rippled在群集中运行服务器可带来以下好处:

群集rippled服务器共享密码学的工作。如果一台服务器验证了消息的真实性,则集群中的其他服务器会信任它并且不会重新验证。
集群服务器共享关于行为不当或滥用网络的对等方和API客户端的信息。这使得一次攻击集群的所有服务器变得更加困难。
集群服务器始终在整个集群中传播事务,即使事务在某些集群上不符合当前基于负载的事务处理费用。
要启用群集,请更改每个服务器的配置文件的以下部分:

列出该[ips_fixed]部分下的每个其他服务器的IP地址和端口。该端口应该是来自其他服务器protocol = peer设置的端口rippled.cfg。例:

[ips_fixed]
192.168.0.1 51235
192.168.0.2 51235
为每台服务器生成一个唯一的种子(使用该validation_create命令),并在该[node_seed]部分下进行配置。该rippled服务器使用该密钥签署的消息发送到对等网络网络中的其他服务器。

在该[cluster_nodes]部分下添加每个其他服务器的公钥(用于对等通信)。


独立模式
您可以rippled在独立模式下运行,而不需要获得可信服务器的一致意见。在独立模式下,rippled不与XRP分类帐对等网络中的任何其他服务器进行通信,但您只能在本地服务器上执行大部分相同的操作。独立提供了一种测试rippled行为的方法,而不受实时网络的束缚。例如,您可以在这些修正案在分散式网络中生效之前测试修正案的效果。

当您rippled以独立模式运行时,您必须告诉它从哪个分类帐开始:

从头开始创建一个新的创始分类帐。
从磁盘加载现有账本版本。
警告:在独立模式下,您必须手动推进分类帐。

新的创世分类账
在独立模式下,您可以rippled创建新的创建分类账。这提供了一个已知的状态,没有生产XRP分类帐的分类帐历史记录。(这对单元测试等非常有用。)

要rippled以独立模式开始创建新的分类账,请使用-a和--start选项:
rippled -a --start --conf=/path/to/rippled.cfg
在创世总帐中,创世地址占据了1000亿XRP。起始地址的关键字如下所示进行硬编码:

地址: rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh

密钥:( snoPBrXtMeMyMHUVTgbuqAfg1SUTb “masterpassphrase”)

注意:如果你创建一个新的成因分类帐,硬编码的默认储备是200 XRP最低为资助一个新的地址,用增量50 XRP每个对象的分类帐。这些值高于生产网络的当前储备要求。(另见:费用投票)

如果您创建新的创建分类帐--start,则所有创建分类帐都包含一个EnableAmendment伪事务,以打开服务器本机支持的所有修订rippled,但您在配置文件中明确禁用的修订除外。这些修正案的影响从下一个分类账版本开始。

加载已保存的帐簿
如果您的rippled服务器先前与XRP分类帐对等网络(生产网络或测试网络)同步,则可以从保存到磁盘的分类帐版本开始。

1. rippled正常启动。
要加载现有分类帐,您必须先从网络中检索该分类帐。rippled正常情况下,以在线模式启动:

rippled --conf=/path/to/rippled.cfg
2.等到rippled同步。
使用该server_info命令检查您的服务器相对于网络的状态。当server_state值显示以下任何值时,您的服务器将同步:

full
proposing
validating
欲了解更多信息,请参阅可能的服务器状态。

3.(可选)检索特定分类账版本。
如果您只想要最近的分类帐,则可以跳过此步骤。

如果您想加载特定的历史分类帐版本,请使用该ledger_request命令进行rippled提取。如果rippled尚未拥有分类帐版本,则可能必须ledger_request多次运行该命令,直至完成检索分类帐。

如果您想要重放特定的历史分类帐版本,则必须先取回分类帐版本以及之前的分类帐版本。(之前的分类帐版本设置了您应用您重放的分类帐版本所描述的更改的初始状态。)

4.关机rippled。
使用stop命令:

rippled stop --conf=/path/to/rippled.cfg
5.开始rippled独立模式。
要加载最新的分类帐版本,可以在启动服务器时使用-a和--load选项:

rippled -a --load --conf=/path/to/rippled.cfg
要改为加载特定的历史分类帐,请将--load参数与参数一起使用--ledger,提供分类帐索引或标识要加载的分类帐版本的散列值:

rippled -a --load --ledger 19860944 --conf=/path/to/rippled.cfg
6.手动推进分类帐。
当您以--ledger独立模式加载分类账时,它会转到当前的开立分类帐,因此您必须手动推进分类帐:

rippled ledger_accept --conf=/path/to/rippled.cfg
以独立模式推进总帐
在独立模式下,rippled不会与对等网络的其他成员进行通信或参与共识流程。相反,您必须使用以下ledger_accept命令手动推进分类帐索引:

rippled ledger_accept --conf=/path/to/rippled.cfg
在独立模式下,rippled不区分“已关闭”分类账版本和“已验证”分类账版本。(有关差异的更多信息,请参阅XRP分类帐共识流程。)

每当rippled关闭分类账时,它都会根据确定性但难以游戏的算法对交易进行重新排序。(这是共识的重要组成部分,因为交易可能以不同的顺序到达网络的不同部分。)rippled在独立模式下使用时,应在提交取决于交易结果的交易之前手动提前分类帐从一个不同的地址。否则,当分类账被关闭时,这两笔交易可能会以相反的顺序执行。注意:您可以安全地从一个单一的地址,提交多笔交易的明细帐单,因为rippled从升序排列相同的地址各种交易Sequence号码。
 

猜你喜欢

转载自blog.csdn.net/qq_31544285/article/details/84031335
今日推荐