lightninglabs/neutrino

GitHub: lightninglabs/neutrino

Neutrino 是一个使用 Go 实现的隐私保护型比特币轻客户端,通过紧凑区块过滤器在最小化带宽与存储的同时保障查询安全与用户隐私。

Stars: 973 | Forks: 212

# Neutrino: 隐私保护型比特币轻量级客户端 [![构建状态](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/9bdf314821124456.svg)](https://github.com/lightninglabs/neutrino/actions/workflows/main.yml) [![Godoc](https://godoc.org/github.com/lightninglabs/neutrino?status.svg)](https://godoc.org/github.com/lightninglabs/neutrino) [![覆盖率状态](https://coveralls.io/repos/github/lightninglabs/neutrino/badge.svg?branch=master)](https://coveralls.io/github/lightninglabs/neutrino?branch=master) Neutrino 是一个使用 Go 语言编写的比特币轻量级客户端,设计时主要考虑了移动 [Lightning Network](https://github.com/lightninglabs/neutrino) 客户端。它采用 [新提案](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-June/014474.html) 来实现紧凑型区块过滤器,以最小化客户端的带宽和存储使用,同时努力在保护隐私的前提下降低提供服务的全节点处理器负载。 ## 运行机制 轻量级客户端仅同步区块头和一系列紧凑型区块过滤器头,后者指定了每个区块的正确过滤器。过滤器在请求时惰性加载并存储在数据库中;区块在请求时加载,但不会被保存。 ## 用法 客户端通过 `NewChainService` 实例化为一个对象,然后启动。启动时,客户端会设置其数据库和其他相关文件,并连接到 P2P 网络。此时,可以向客户端发起查询。 ### 查询 客户端支持多种类型的查询。有多种方式可以访问数据库,例如按高度和哈希获取区块头;此外,还可以使用 `GetBlockFromNetwork` 通过哈希从网络获取完整区块。然而,最实用的方法是专门用于扫描区块链以查找与钱包或智能合约平台相关的数据,例如 [Lightning Network 节点(如 `lnd`)](https://github.com/lightningnetwork/lnd)。以下将描述这些方法。 #### 重扫(Rescan) `Rescan` 允许钱包扫描链以查找特定的 TXID、输出和地址。可以指定起始和结束区块以及其他选项。如果未指定结束区块,重扫将持续进行直到停止。如果未指定起始区块,重扫将从最新的已知区块开始。在重扫运行期间,它会通知客户端每个已连接和已断开连接的区块;通知采用 [btcjson](https://github.com/btcsuite/btcd/blob/master/btcjson/chainsvrwsntfns.go) 格式,并可选择使用任何相关通知。需要特别注意的是,“recvtx”和“redeemingtx”通知仅在交易被确认时发送,而不会在交易进入内存池时发送;客户端目前不支持接受 0 确认交易。 #### 获取 Utxo `GetUtxo` 允许钱包或智能合约平台检查某个 UTXO 是否存在于区块链上且未被花费。**强烈建议**指定起始区块;否则,如果该 UTXO 在区块链上不存在,客户端将下载从区块 1 开始的所有过滤器以进行搜索。客户端从链的顶端开始反向扫描,当发现该 UTXO 已被花费或创建时停止;如果未找到,则继续反向扫描,直到达到指定的起始区块,或在未指定起始区块时扫描至区块链的第一个区块。它返回一个 `SpendReport`,其中包含用于花费输出的 `TxOut`(包含所需的 `PkScript`),或包含花费交易、花费输入及观察到该花费交易的区块高度的信息。 ### 停止客户端 调用 `ChainService` 客户端的 `Stop` 方法可停止客户端;该方法在 `ChainService` 干净关闭之前不会返回。
标签:EVTX分析, Go语言, Lightning Network, Neutrino, P2P网络, SPV, 中继节点, 加密货币, 区块头同步, 区块链, 存储优化, 带宽优化, 数据库懒加载, 日志审计, 比特币, 移动钱包, 程序破解, 紧凑区块过滤, 网络安全, 轻钱包, 过滤器头链, 钱包扫描, 链上数据查询, 隐私保护, 隐私增强, 零知识