Rust 中的 Electrum 服务器
Electrum Server 的高效重新实现,灵感来自 ElectrumX、Electrum Personal Server 和 bitcoincore-indexd。
该项目的动机是让用户能够自托管 Electrum 服务器, 所需的硬件资源与 full node 相差不大。 服务器会对整个 Bitcoin 区块链进行索引,生成的索引支持针对任意用户钱包的快速查询, 允许用户使用 Electrum wallet 实时跟踪余额和交易历史。 由于它运行在用户自己的机器上,钱包无需与外部 Electrum 服务器通信, 从而保护了用户地址和余额的隐私。
BTC Prague 2024 dev/hack/day 幻灯片在此:https://bit.ly/electrs
用法
请优先使用我们的使用指南!
外部指南可能已过时并存在各种问题。 至少请双重检查您使用的指南是否得到积极维护。 如果您无法使用我们的指南,请询问您不理解的内容,或考虑使用自动化部署。
请注意,此 Electrum 服务器实现针对个人/小规模(家庭/朋友)使用进行了优化。 将其公开运行是个坏主意,因为这会使你暴露于 DoS 攻击,可能还有其他攻击。 如果你想运行一个公共服务器,你可能对 Blockstream 的 electrs 分支 感兴趣,它针对公共使用进行了更好的优化,但代价是消耗显著更多的资源。
功能
- 支持 Electrum 协议 v1.4
- 维护交易输入和输出的索引,允许快速余额查询
- 使用 HDD 存储快速同步比特币区块链(2023 年 8 月约 504GB 耗时约 6.5 小时)。
- 低索引存储开销(约 10%),依赖本地全节点进行交易检索
- 高效的内存池跟踪器(允许更好的费用 估算)
- 低 CPU 和内存使用(初始索引完成后)
txindex对于比特币节点不是必需的- 使用单个 RocksDB 数据库,以获得更好的一致性和崩溃恢复
山寨币
不支持山寨币! 放宽共识规则的比特币代码库分支(硬分叉)也不支持。
您可能能够找到一个支持它们的 electrs 分支,四处看看或自己创建一个,但请不要在此提交 issue/PR。
索引数据库
数据库模式描述在这里。
贡献
欢迎对本项目的所有贡献。请参阅贡献指南以获取更多详细信息。
标志
我们的标志由 Dominik Průša 在 MIT 许可证下慷慨提供。 基于 Electrum 标志 和 Rust 语言标志。