ElectrumX介绍
1.项目概述:
ElectrumX 是 Electrum 服务器 的重实现(reimplementation)。Electrum 是一个 轻量级的钱包,ElectrumX 是为其提供后端服务的服务器端实现。
它连接到 全节点(full node),并 索引区块链,使得用户可以高效地查询任何地址的历史记录。ElectrumX 服务器支持公开暴露,并且可以加入到公有服务器网络中,通过 对等发现(peer discovery) 进行连接。
ElectrumX 的功能:
支持 Electrum 钱包:ElectrumX 允许用户运行自己的 Electrum 服务器。
区块链索引和历史查询:它通过与全节点连接,索引区块链并提供地址历史查询服务。
公开服务器和对等发现:服务器可以公开运行,并加入到公共的 Electrum 服务器网络中。
2. 架构示意图:Electrum 客户端、ElectrumX 和支持的公链原理
以下是用字符画(ASCII 图)表示的 Electrum 客户端、ElectrumX 和公链的基本架构。
+------------------+ +--------------------+ +---------------------+
| | | | | |
| Electrum Client | <---> | ElectrumX | <---> | Supported Blockchain|
| (Light Wallet) | | (Electrum Server) | | (Bitcoin, |
| | | | | Litecoin, Dogecoin)|
+------------------+ +--------------------+ +---------------------+| | || 1. Query addresses history | 2. Request blockchain data | 3. Full Node Sync|--------------------------> |---------------------------> || | || 4. Return query result | || <--------------------------| || | |
解释:
Electrum 客户端(Electrum Client):
轻钱包:用户使用 Electrum 客户端作为轻钱包,它通过 ElectrumX 服务器查询区块链数据,而不需要全盘同步区块链。
操作:Electrum 客户端会发送请求(如查询某个地址的历史交易记录)给 ElectrumX 服务器。
ElectrumX:
Electrum 服务器:它充当客户端与区块链之间的中介,连接到全节点(Full Node),并索引区块链数据,提供查询服务。
工作原理:
ElectrumX 与公链的全节点同步,索引交易数据。
当 Electrum 客户端查询某个地址的历史时,ElectrumX 会从区块链中提取相关信息并返回给客户端。
支持的公链(例如 Bitcoin、Litecoin、Dogecoin):
ElectrumX 支持多种公链,最常见的是比特币(Bitcoin)、莱特币(Litecoin)和狗狗币(Dogecoin)。
全节点(Full Node):ElectrumX 会连接到公链的全节点,保持区块链同步,并提供地址查询和交易广播等功能。
数据流:
客户端请求:Electrum 客户端发起查询请求,通常是查询地址的历史交易记录。
ElectrumX 处理:ElectrumX 处理这些请求,从全节点获取相关数据,并将结果返回给客户端。
全节点与公链交互:ElectrumX 通过与公链的全节点进行同步,确保数据的准确性。
主要特点:
去中心化:通过 Electrum 客户端和 ElectrumX 的设计,用户可以使用去中心化的方式访问公链数据,而无需完全信任一个中心化的服务。
高效查询:ElectrumX 提供了高效的区块链数据查询能力,特别适用于轻钱包。
支持多链:除了比特币外,ElectrumX 还支持其他类似的公链(如 Litecoin、Dogecoin 等)。
总结:
Electrum 客户端通过与 ElectrumX 服务器进行交互,允许用户在不完全同步整个区块链的情况下,查询公链的历史数据。这种架构非常适合轻钱包应用,因为它减少了数据存储和带宽消耗。