开源地址:https://github.com/Conflux-Chain/confura
优势
与运行全节点相比,Confura 通过提供一些增强功能,可以轻松构建高性能、可扩展且可用的 RPC 服务。
远程过程调用改进
- 一些高频 RPC 方法(例如cfx_getStatus和 )的过期缓存cfx_epochNumber。
- 事件日志的链外索引,通过它来处理getLogs(和cfx_getLogs)eth_getLogs,而不是直接由完整节点处理。该索引由传统数据库支持,它允许我们对更多数据进行索引和查询,而不会增加全节点上布隆过滤器所经历的误报开销。甚至可以在单个请求中检索某些合约的所有事件日志(总量小于10,000)。
- 每个完整节点的 Pub/Sub 共享代理订阅因此可以支持更多并发会话。
- 通过将过滤器“状态”(目前仅事件日志)的存储从完整节点迁移到我们称为“虚拟过滤器”的新后端系统的内存和数据库中,对标准过滤器 API 进行了改进,以便更可靠、可以实现高性能和更可定制(例如,过滤器更改的长轮询超时)的过滤器 API。
节点集群管理
- 健康监控,消除最新区块高度落后于整体平均水平、心跳RPC失败或超时限制等不健康节点。
- 通过远程 IP 地址实现一致的哈希负载平衡。
- 通过专用节点池隔离工作负载。
- JSON-RPC 用于管理(添加/列表/删除)节点。
速率限制
- 用于添加/删除/管理自定义速率限制策略和 API 密钥的命令行工具集。
- 支持使用fixed window或token bucket算法对每个 RPC 方法进行速率限制。