654 / 736BK38

Programming Bitcoin

Jimmy Song:通过编写代码理解 Bitcoin

Programming Bitcoin 引导程序员逐步用 Python 构建自己的库,从而理解 Bitcoin。Jimmy Song 以练习和预先编写的测试组织教学。这个库的目的是学习;作者并未将其介绍为完整或经过性能优化的实现。

Jimmy Song 撰写、O’Reilly 于 2019 年出版的技术书籍。本概述依据官方仓库中完整的前言和末章 Advanced Topics and Next Steps、我们查看过的前言插图,以及出版方资料。

Programming Bitcoin 的作者是 Jimmy Song。O’Reilly 目录注明 2019 年二月;作者仓库的 README 注明 2019 年三月。我们分别保留这两项记录。公开仓库提供正文和配套文件,但持续变更的分支不一定与某一本纸质书完全一致。 [1] [2]

前言明确了目标:通过亲自编写库的组成部分,理解 Bitcoin 的技术。它并不分析货币、经济或社会影响。作者同时说明,这个库并不追求完整或高效,本书也不是逐一规定所有功能的参考手册。 [3]

阅读前提是具备编程知识,尤其是 Python;库使用 Python 3。作者更倾向于读者达到中等水平,但认为初学者也能理解许多概念。数学部分大致要求代数知识,并逐步介绍新概念。因此,这并非完全不需要技术基础的入门书。 [3]

前言把 14 章描述为逐步搭建的过程:数学基础与序列化、交易、区块和网络通信。第 1–12 章包含编程练习。练习最终通向一项 testnet 任务:读者从节点获取数据,构建并签署交易,然后将其发送到网络。我们不会把这一教学计划等同于自己已经完成这些任务。 [3]

在书中描述的流程里,读者使用 Jupyter notebooks,并修改相关 Python 文件,使其通过预先编写的测试。解答可在附录和各章目录中找到。我们查看了这一流程的插图;仅有阅读和图像并不能证明我们运行过练习或验证过其当前运行环境。 [3]

末章建议把钱包作为后续学习方向,并强调保护私钥的难度。对于测试钱包项目,它还提到用户界面、备份、地址簿和交易历史。因此,掌握签名本身并不涵盖应用的全部设计;这些建议是进一步的学习步骤,并非已完成的安全钱包。 [4]

作者建议参与开放项目,并提出区块浏览器、网店或实用工具库等方向。对于网店,他建议从 testnet 开始,并使用安全的密码学库。本章为进一步学习指明方向;我们不把当时的项目列表和职业建议当作对服务的当前审查或就业保证。 [4]

我们阅读了官方仓库中完整的前言和完整的 Advanced Topics and Next Steps 章节,并查看了前言的全部四幅图像。我们核对了出版方目录和 README。其他章节及配套代码并未得到我们的完整验证,我们也没有运行书中任何练习;这不是完整书评,也不是库的安全审计。 [1] [2] [3] [4]

要获得更完整的理解,请将本词条与以下词条结合阅读: Private Key, 交易, Bitcoin Script, Full Node.

01阅读前需要会编程吗?

需要,前言假定读者具有编程知识,尤其是 Python。作者更倾向于中等水平,但也指出,基本知识可能足以理解许多概念。

02书中的库是可直接管理真实资金的完整解决方案吗?

作者在前言中将其界定为学习工具,而非完整或高效的库。我们没有运行它的代码或书中练习,本概述也不确认其管理真实资金时的安全性。

DOC · 001O’Reilly — Programming Bitcoin出版社 DOC · 002Programming Bitcoin — official repository一手来源 DOC · 003Programming Bitcoin — Preface一手来源 DOC · 004Programming Bitcoin — Advanced Topics and Next Steps一手来源
修订日期: 来源优先 · 非投资建议