ElementsProject/lightning

GitHub: ElementsProject/lightning

Core Lightning 是一个用 C 语言编写的 Bitcoin Lightning Network 协议实现,提供高性能、符合规范的闪电网络节点运行与管理能力。

Stars: 3074 | Forks: 1000

# Core Lightning (CLN):一个符合规范的 C 语言 Lightning Network 实现 Core Lightning(原名 c-lightning)是一个轻量级、高度可定制且[符合标准][std]的 Lightning Network 协议实现。 * [入门指南](#getting-started) * [安装](#installation) * [启动 lightningd](#starting-lightningd) * [使用 JSON-RPC 接口](#using-the-json-rpc-interface) * [新 Lightning 节点的维护与管理](#care-and-feeding-of-your-new-lightning-node) * [开启通道](#opening-a-channel) * [发送和接收支付](#sending-and-receiving-payments) * [配置文件](#configuration-file) * [更多信息](#further-information) * [常见问题解答](doc/FAQ.md) * [修剪](#pruning) * [HD 钱包加密](#hd-wallet-encryption) * [开发者](#developers) * [文档](https://docs.corelightning.org/docs) ## 项目状态 [![持续集成](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0f1988194c012436.svg)][actions] [![欢迎 Pull Requests](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)][prs] [![文档状态](https://readthedocs.org/projects/lightning/badge/?version=docs)][docs] [![Telegram](https://badgen.net/badge/Telegram/chat/blue)][telegram] [![Discord](https://badgen.net/badge/Discord/chat/blue)][discord] [![Irc](https://img.shields.io/badge/IRC-chat-blue.svg)][IRC] 自 2018 年初随着 [Blockstream Store][blockstream-store-blog] 的上线,该实现已在 Bitcoin 主网上投入生产使用。 我们建议您先在 `testnet`(`testnet4` 或 `regtest`)上进行实验入门,但该实现已被认为是稳定的,可以安全地在主网上使用。 ## 入门指南 Core Lightning 仅支持在 Linux 和 macOS 上运行,并且需要在本地(或远程)运行一个 `bitcoind`(版本 25.0 或以上),该节点必须与您所运行的网络完全同步,并转发交易(即设置 `blocksonly=0`)。 修剪(`bitcoin.conf` 中的 `prune=n` 选项)已得到部分支持,详见[此处](#pruning)。 ### 安装 共有 3 种支持的安装方式: - 从 GitHub 上的[发布页面][releases]安装预编译的二进制文件。 - 使用 Docker Hub 上[提供的 Docker 镜像][dockerhub]之一。 - 按照[安装文档](doc/getting-started/getting-started/installation.md)中的说明自行编译源代码。 ### 启动 `lightningd` #### Regtest(本地,快速启动)选项 如果您想体验 `lightningd`,有一个脚本可以用来设置 一个包含两个本地 lightning 节点的 `bitcoind` regtest 测试网络, 它提供了一个便捷的 `start_ln` 辅助工具。有关如何使用它的详细信息, 请参阅 `startup_regtest.sh` 文件顶部的说明。 ``` . contrib/startup_regtest.sh ``` #### 主网选项 如果要使用真实的 Bitcoin 进行测试,您需要运行一个本地的 `bitcoind` 节点: ``` bitcoind -daemon ``` 请等待 `bitcoind` 与网络完成同步。 请确保您的 `~/.bitcoin/bitcoin.conf` 中没有设置 `walletbroadcast=0`,否则您可能会遇到麻烦。 请注意,如果管理不当,在修剪过的节点上运行 `lightningd` 可能会导致一些问题,更多信息请参阅[下文](#pruning)。 您可以使用以下命令启动 `lightningd`: ``` lightningd --network=bitcoin --log-level=debug ``` 这会在您的主目录中创建一个 `.lightning/` 子目录:有关更多运行时选项,请参阅 `man -l doc/lightningd.8`(或 https://docs.corelightning.org/docs)。 ### 使用 JSON-RPC 接口 Core Lightning 通过 Unix Domain socket 公开 [JSON-RPC 2.0][jsonrpcspec] 接口;可以使用 `lightning-cli` 工具来访问它,此外还有一个 [python 客户端库](contrib/pyln-client)。 您可以使用 `lightning-cli help` 打印 RPC 方法列表;`lightning-cli help ` 将提供关于该命令的具体信息。 常用命令: * [newaddr](https://docs.corelightning.org/reference/newaddr):获取一个 Bitcoin 地址,以便将资金存入您的 lightning 节点。 * [listfunds](https://docs.corelightning.org/reference/listfunds):查看您的资金去向。 * [connect](https://docs.corelightning.org/reference/connect):连接到另一个 lightning 节点。 * [fundchannel](https://docs.corelightning.org/reference/fundchannel):向另一个已连接的节点创建通道。 * [invoice](https://docs.corelightning.org/reference/invoice):创建一个发票以供其他节点向您付款。 * [pay](https://docs.corelightning.org/reference/pay):支付他人的发票。 * [plugin](https://docs.corelightning.org/reference/plugin):用于控制扩展的命令。 ### 新 Lightning 节点的维护与管理 首次启动后,有一个名为 `contrib/bootstrap-node.sh` 的脚本,它将把您连接到 lightning 网络上的其他节点。 此外,还有许多可用于 Core Lightning 的插件可以添加 额外功能:特别是这里有一个合集:https://github.com/lightningd/plugins 为了获得更安全的体验,您可以加密 HD 钱包种子: 请参阅 [HD 钱包加密](#hd-wallet-encryption)。 您还可以在 Discord [core-lightning][discord] 上与其他用户聊天; 我们始终乐于帮助您快速入门! ### 开启通道 首先,您需要向 `lightningd` 转入一些资金,以便它能够 开启通道: ``` # 返回一个地址
lightning-cli newaddr ``` 一旦交易被确认,`lightningd` 就会记录这些资金。 或者,如果您的资金来源支持,您可以生成一个 taproot 地址: ``` # 返回一个 taproot address lightning-cli newaddr p2tr ``` 通过以下命令确认 `lightningd` 已收到资金: ``` # 返回一个 on-chain funds 数组。 lightning-cli listfunds ``` 一旦 `lightningd` 有了资金,我们就可以连接到一个节点并开启通道。 假设**远程**节点在 ``(以及可选的 ``,如果不是 9735 的话) 接受连接,并且其节点 ID 为 ``: ``` lightning-cli connect [] lightning-cli fundchannel ``` 这会开启一个连接,并在该连接之上开启一个通道。 资金交易需要 3 次确认才能使通道可用,需要 6 次确认才能对外发布供他人使用。 您可以使用 `lightning-cli listpeers` 检查通道的状态,在 3 次确认(testnet 上为 1 次)后,它应该显示 `state` 为 `CHANNELD_NORMAL`;在 6 次确认之后,您可以使用 `lightning-cli listchannels` 来验证 `public` 字段现在是否为 `true`。 ### 发送和接收支付 Lightning 中的支付是基于发票的。 接收方创建一个发票,其中包含预期的 ``(单位为 millisatoshi,或者设为 `"any"` 表示捐赠),一个唯一的 `
标签:加密货币节点, 区块链, 客户端加密, 支付网络, 比特币, 请求拦截, 调试插件, 逆向工具, 闪电网络