Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ethereum 设置高容量以太坊客户端_Ethereum_Parity Io - Fatal编程技术网

Ethereum 设置高容量以太坊客户端

Ethereum 设置高容量以太坊客户端,ethereum,parity-io,Ethereum,Parity Io,我希望建立一个服务器(或服务器集合),可以充当以太坊节点,我可以向其发送大量请求,每秒最多100次,以从区块链获取数据,如账户余额、交易等(如以太扫描)。如果我错了,请纠正我的错误,但我认为这样一个系统不可能在单个服务器上运行常规奇偶校验或geth客户端,并且链数据位于SSD上,因此我想做的是: 在服务器a上配置具有SSD的奇偶校验客户端,该服务器将充当常规节点 将链数据同步到服务器B上的另一个SSD上 在未连接到以太坊网络的服务器B上设置奇偶校验客户端,并使用从服务器A复制的链数据。不处理事务

我希望建立一个服务器(或服务器集合),可以充当以太坊节点,我可以向其发送大量请求,每秒最多100次,以从区块链获取数据,如账户余额、交易等(如以太扫描)。如果我错了,请纠正我的错误,但我认为这样一个系统不可能在单个服务器上运行常规奇偶校验或geth客户端,并且链数据位于SSD上,因此我想做的是:

  • 在服务器a上配置具有SSD的奇偶校验客户端,该服务器将充当常规节点
  • 将链数据同步到服务器B上的另一个SSD上
  • 在未连接到以太坊网络的服务器B上设置奇偶校验客户端,并使用从服务器A复制的链数据。不处理事务
  • 可以在服务器B RPC套接字上查询事务、余额等
  • 这种设置的原因是服务器B的开销尽可能小,这样它就可以处理更多的查询


    我想知道使用这种设置是否有意义,或者是否可能。一个更简单的解决方案是最好的,但我找不到关于高容量区块链服务如何运行的更多信息。我真的很感激任何提示。

    我认为最好的选择是块预处理。运行以太坊客户端实例,迭代所有块并对其进行预处理(提取所需的所有信息并将其保存在数据库中)。 这将为您的请求提供更大的灵活性

    假设您需要特定帐户的交易列表。这不能用当前的ETH-rpcapi来完成(我的意思是不能以优化的方式)。最好的办法是对所有数据块进行预处理,提取所有事务并将它们安排在数据库中,以便您能够查询来自特定地址的事务

    在您构建的数据库上运行API将使您的服务器性能更好

    如果我错了,请纠正我的错误,但我认为这样一个系统不可能使用常规奇偶校验或Geth客户机在单个服务器上运行,而链数据在SSD上

    我很高兴纠正你:在消费级硬件上,奇偶校验每秒可以轻松处理1000个RPC请求

    如果您每秒需要10_000个请求,您仍然可以通过在具有128GB+RAM和Raid-0冗余闪存的高端企业服务器上使用单个奇偶校验实例来实现这一点,请确保使用奇偶校验配置巨大的缓存大小:

    parity --cache-size 65536
    
    通过将
    --data dir
    设置为tmpfs,您甚至可以进一步优化整个区块链

    如果您还需要更多,我将运行多个类似于上述设置的设置,并在设置前面放置一个负载平衡器,将按类型排序的请求定向到后面的可用机器

    披露:我为平价工作。然而,我认为Geth也有类似的数据