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 服务器进行交互,允许用户在不完全同步整个区块链的情况下,查询公链的历史数据。这种架构非常适合轻钱包应用,因为它减少了数据存储和带宽消耗。