本文档是Bitcoin Core的开发者笔记,涵盖了代码编写风格、开发技巧、调试方法、锁定/互斥锁的使用、线程、忽略IDE/编辑器文件、开发指南等多个方面。同时,该文档还提供了关于通用Bitcoin Core、钱包、通用C++、C++数据结构、字符串和格式化、脚本、源代码组织、GUI、子树、升级LevelDB、脚本化差异、发布说明、RPC接口指南和内部接口指南等开发的指导方针。
本文档介绍了在Unix系统上构建Bitcoin Core的步骤,包括安装依赖、配置编译选项以及针对不同Linux发行版(如Ubuntu、Debian和Fedora)的具体指令。此外,还涵盖了在无钱包模式下编译Bitcoin Core,以及如何使用其他配置标志。
本文档介绍了如何在 macOS 系统上构建 Bitcoin Core,包括命令行实用程序和 GUI。
本文档提供了一些关于提高Bitcoin项目开发效率的技巧,包括使用ccache缓存编译、利用多线程编译、构建所需目标、使用git worktrees管理多个工作目录、以及使用git range-diff来比较不同提交范围的差异等。
ccache
git worktrees
git range-diff
该文档介绍了如何使用 Depends build 系统构建和缓存 Bitcoin Core 的依赖项,支持交叉编译。文档提供了在 Ubuntu、Debian、macOS、FreeBSD, NetBSD, OpenBSD 等系统上的使用方法,以及如何配置 Bitcoin Core 以使用 Depends build 的输出,以及交叉编译的配置和常用参数。
本文档介绍了如何在 Bitcoin Core 中使用 ZeroMQ (ZeroMQ) 接口来订阅新区块和交易的通知。通过配置 Bitcoin Core 守护进程作为可信的“边界路由器”,并启用相应的 ZeroMQ 选项,可以实现对区块和交易的实时监控。文档详细描述了 ZeroMQ 的启用方式、配置选项以及消息格式,并提供了一个 Python 客户端示例。
该文档介绍了Bitcoin Core开发者仓库中用于开发者的一些工具,包括:用于检查fuzz覆盖非确定性的工具、检查单元测试覆盖非确定性的工具、格式化git diff的脚本、管理版权信息的脚本、自动创建manpage的脚本、生成headerssync模块参数的脚本、生成bitcoin.conf文件的脚本以及查找循环依赖的脚本。
本文档介绍了如何为特定构建系统(可能是 Bitcoin Core 的一部分)创建和管理软件包配方。主要包括定义标识符(版本、下载路径等)、设置构建变量(编译器标志、优化选项等)和定义构建命令(提取、配置、构建、部署)。此外,还讨论了处理二级依赖项和构建目标的策略,以提高构建的可靠性和效率。
本文档介绍了Bitcoin Core的单元测试框架,该框架基于Boost单元测试框架,并详细说明了如何编译、运行单元测试,如何运行单独的测试,以及如何添加新的测试用例。此外,还介绍了单元测试中的日志记录、调试和处理段错误的方法。
本文档详细介绍了比特币核心钱包的管理,包括创建、加密、解锁、备份和恢复钱包的步骤,以及钱包口令的重要性。同时还介绍了将旧版钱包迁移到描述符钱包的方法,以及迁移后可能产生的新钱包。