精通区块链编程:加密货币原理、方法和应用开发(原书第2版)

Book description

伴随着金融领域中的技术变革,本书将带领你走进看似复杂的比特币世界,为你参与到数字货币互联网提供必要的知识。无论你是正在构建下一个杀手级应用,还是在投资一个初创企业,或者只是对这种技术好奇,这本全面修订和扩展的第2版都是必不可少的。

比特币是第一个成功去中心化的数字货币,虽然仍处在早期的发展阶段,却已经孕育了全球数万亿美元规模的经济效应。这种经济活动对任何有相关知识和热情的人都是开放的。本书提供了必要的知识,你只需要付出热情。

第2版主要内容:

  • 比特币及其所蕴含的区块链技术。
  • 比特币及加密货币的技术基础。
  • 比特币去中心化的网络、点对点架构、交易生命周期和安全原则的细节。
  • 新的进展,如隔离见证、支付通道和闪电网络。
  • 深入挖掘区块链的应用,包括如何通过结合区块链构建上层应用。
  • 使用故事、类比、示例和代码片段等阐述关键的技术概念。

Table of contents

  1. 封面
  2. 扉页
  3. 版权页
  4. O'Reilly介绍
  5. 本书赞誉
  6. 译者序
  7. 推荐序
  8. 目录 (1/2)
  9. 目录 (2/2)
  10. 前言
    1. 阅读对象
    2. 封面故事
    3. 排版约定
    4. 代码示例
    5. 使用代码示例
    6. 书中涉及的比特币地址与交易
    7. Safari在线图书
    8. 如何联系我们
    9. 联系作者
    10. 致谢
  11. 第1章 比特币介绍
    1. 1.1 比特币是什么
    2. 1.2 比特币历史
      1. 分布式计算问题的解决方案
    3. 1.3 比特币的使用、用户及用户场景
    4. 1.4 入门
      1. 1.4.1 选择比特币钱包
      2. 1.4.2 快速入门
      3. 1.4.3 获取比特币
      4. 1.4.4 查询比特币当前价格
      5. 1.4.5 发送和接收比特币
  12. 第2章 比特币的工作原理
    1. 2.1 交易、区块、挖矿和区块链
      1. 2.1.1 比特币概述
      2. 2.1.2 购买一杯咖啡
    2. 2.2 比特币交易
      1. 2.2.1 交易输入和输出
      2. 2.2.2 交易链
      3. 2.2.3 找零
      4. 2.2.4 常见的交易形式
    3. 2.3 交易的构建
      1. 2.3.1 获取正确的输入
      2. 2.3.2 创建交易输出
      3. 2.3.3 将交易加入账簿
    4. 2.4 比特币挖矿
    5. 2.5 在区块中挖掘交易
    6. 2.6 消费交易
  13. 第3章 比特币核心客户端:参考实现
    1. 3.1 比特币开发环境
    2. 3.2 从源码编译比特币核心
      1. 3.2.1 选择比特币核心版本
      2. 3.2.2 配置比特币核心生成
      3. 3.2.3 生成比特币核心可执行文件
    3. 3.3 运行比特币核心节点
      1. 3.3.1 首次运行比特币核心
      2. 3.3.2 配置比特币核心节点
    4. 3.4 比特币核心客户端应用程序编程接口(API)
      1. 3.4.1 获得比特币核心客户端状态信息
      2. 3.4.2 探究和解码交易
      3. 3.4.3 探究区块
      4. 3.4.4 使用比特币核心的编程接口
    5. 3.5 其他替代客户端、库和工具包
      1. 3.5.1 C/C++类
      2. 3.5.2 JavaScript类
      3. 3.5.3 Java类
      4. 3.5.4 Python类
      5. 3.5.5 Ruby类
      6. 3.5.6 Go类
      7. 3.5.7 Rust类
      8. 3.5.8 C#类
      9. 3.5.9 Objective-C类
  14. 第4章 密钥和地址
    1. 4.1 简介
      1. 4.1.1 公钥密码学和加密货币
      2. 4.1.2 私钥和公钥
      3. 4.1.3 私钥
      4. 4.1.4 公钥
      5. 4.1.5 椭圆曲线密码学
      6. 4.1.6 创建公钥
    2. 4.2 比特币地址
      1. 4.2.1 Base58和Base58Check编码
      2. 4.2.2 密钥的格式
    3. 4.3 用Python实现密钥和比特币地址
    4. 4.4 高级密钥和地址
      1. 4.4.1 加密私钥(BIP-38)
      2. 4.4.2 P2SH和多重签名地址
      3. 4.4.3 靓号地址
      4. 4.4.4 纸钱包
  15. 第5章 钱包
    1. 5.1 钱包技术概述
      1. 5.1.1 非确定性(随机)钱包
      2. 5.1.2 确定性(种子)钱包
      3. 5.1.3 分层确定性钱包(BIP-32/BIP-44)
      4. 5.1.4 种子和助记词(BIP-39)
      5. 5.1.5 钱包最佳实践
      6. 5.1.6 使用比特币钱包
    2. 5.2 钱包技术细节
      1. 5.2.1 助记词编码标准(BIP-39)
      2. 5.2.2 从种子中创造HD钱包
      3. 5.2.3在网店中使用扩展公钥
  16. 第6章 交易
    1. 6.1 简介
    2. 6.2 交易细节
      1. 交易的底层细节
    3. 6.3 交易的输出和输入
      1. 6.3.1 交易输出
      2. 6.3.2 交易输入
      3. 6.3.3 交易费
      4. 6.3.4 把交易费加到交易中
    4. 6.4 交易脚本和脚本语言
      1. 6.4.1 非图灵完备性
      2. 6.4.2 无状态验证
      3. 6.4.3 脚本构建(锁定与解锁)
      4. 6.4.4 P2PKH
    5. 6.5 数字签名(ECDSA)
      1. 6.5.1 数字签名如何工作
      2. 6.5.2 验证签名
      3. 6.5.3 签名散列类型(SIGHASH)
      4. 6.5.4 ECDSA数学
      5. 6.5.5 随机性在签名中的重要性
    6. 6.6 比特币地址、余额和其他摘要
  17. 第7章 高级交易及脚本
    1. 7.1 简介
    2. 7.2多重签名
    3. 7.3 P2SH
      1. 7.3.1 P2SH地址
      2. 7.3.2 P2SH的优点
      3. 7.3.3赎回脚本和标准确认
    4. 7.4 数据记录输出(RETURN操作符)
    5. 7.5 时间锁
      1. 7.5.1 交易锁定时间
      2. 7.5.2检查锁定时间验证
      3. 7.5.3相对时间锁
      4. 7.5.4 带nSequence的相对时间锁
      5. 7.5.5 带CSV的相对时间锁
      6. 7.5.6 过去中位时间
      7. 7.5.7 针对费用狙击的时间锁
    6. 7.6 具有条件控制的脚本(条件语句)
      1. 7.6.1带有VERIFY操作码的条件语句
      2. 7.6.2 在脚本中使用流控制
    7. 7.7 复杂的脚本示例
  18. 第8章 比特币网络
    1. 8.1 点对点网络架构
    2. 8.2 节点类型和角色
    3. 8.3 扩展比特币网络
    4. 8.4 比特币中继网络
    5. 8.5 网络发现
    6. 8.6 全节点
    7. 8.7 交换“库存清单”
    8. 8.8 简易支付验证(SPV)节点
    9. 8.9 Bloom过滤器
      1. Bloom过滤器如何工作
    10. 8.10 SPV节点如何使用Bloom过滤器
    11. 8.11 SPV节点和隐私
    12. 8.12 加密与认证连接
      1. 8.12.1 Tor传输
      2. 8.12.2 P2P认证和加密
    13. 8.13 交易池
  19. 第9章 区块链
    1. 9.1 简介
    2. 9.2 区块结构
    3. 9.3 区块头
    4. 9.4 区块标识符:区块头散列值和区块高度
    5. 9.5创世区块
    6. 9.6 链接区块链中的区块
    7. 9.7 默克尔树
    8. 9.8 默克尔树和简单支付验证
    9. 9.9 比特币的测试链
      1. 9.9.1 testnet—比特币的试验场
      2. 9.9.2 segnet—隔离见证测试网
      3. 9.9.3 regtest—本地区块链
    10. 9.10 使用测试区块链进行开发
  20. 第10章 挖矿和共识
    1. 10.1 简介
      1. 比特币经济学和货币创造
    2. 10.2 去中心化共识
    3. 10.3 交易的独立校验
    4. 10.4 挖矿节点
    5. 10.5 打包交易至区块
      1. 10.5.1 创币交易
      2. 10.5.2 创币奖励与矿工费
      3. 10.5.3 创币交易的结构
      4. 10.5.4 创币交易数据
    6. 10.6 构造区块头
    7. 10.7 挖掘区块
      1. 10.7.1 工作量证明算法
      2. 10.7.2 难度目标值表示
      3. 10.7.3 重定目标实现调整难度
    8. 10.8 成功挖出区块
    9. 10.9 验证新区块
    10. 10.10 区块链的组装与选择
      1. 区块链的分叉
    11. 10.11 挖矿和算力竞争
      1. 10.11.1 随机数升位方案
      2. 10.11.2 矿池
    12. 10.12 共识攻击
    13. 10.13 改变共识规则
      1. 10.13.1 硬分叉
      2. 10.13.2 硬分叉:软件、网络、挖矿和链
      3. 10.13.3 分离矿工和难度
      4. 10.13.4 有争议的硬分叉
      5. 10.13.5 软分叉
      6. 10.13.6 对软分叉的批评
    14. 10.14 使用区块版本发出软分叉信令
      1. 10.14.1 BIP-34信令和激活
      2. 10.14.2 BIP-9信令和激活
    15. 10.15 共识软件开发
  21. 第11章 比特币的安全
    1. 11.1 安全原则
      1. 11.1.2 安全地开发比特币系统
      2. 11.1.3 信任根
    2. 11.2 用户安全最佳实践
      1. 11.2.1 比特币物理存储
      2. 11.2.2 硬件钱包
      3. 11.2.3 平衡风险
      4. 11.2.4 分散风险
      5. 11.2.5 多重签名和治理
      6. 11.2.6 生存能力
    3. 11.3 结论
  22. 第12章 比特币应用
    1. 12.1 简介
    2. 12.2 基础模块(要素)
    3. 12.3 源于基础模块的应用
    4. 12.4 染色币
      1. 12.4.1 使用染色币
      2. 12.4.2 发行染色币
      3. 12.4.3 染色币交易
    5. 12.5 合约币
    6. 12.6 支付通道和状态通道
      1. 12.6.1 状态通道基本概念和术语
      2. 12.6.2 简单支付通道示例
      3. 12.6.3 制造无须信任的通道
      4. 12.6.4 非对称可撤销承诺
      5. 12.6.5 散列时间锁合约
    7. 12.7 路由支付通道(闪电网络)
      1. 12.7.1 闪电网络示例
      2. 12.7.2 闪电网络传输和路由
      3. 12.7.3 闪电网络优势
    8. 12.8 结论
  23. 附录A 比特币白皮书
    1. 一种点对点的电子现金系统
    2. 工作量证明 (1/2)
    3. 工作量证明 (2/2)
    4. 结论
    5. 参考文献
  24. 附录B 交易脚本语言操作符、常量和符号
  25. 附录C 比特币改进建议 (1/2)
  26. 附录C 比特币改进建议 (2/2)
  27. 附录D 隔离见证 (1/3)
  28. 附录D 隔离见证 (2/3)
  29. 附录D 隔离见证 (3/3)
  30. 附录E Bitcore
    1. Bitcore的功能列表
    2. Bitcore库示例
  31. 附录F pycoin库、实用秘钥及交易程序
    1. 实用密钥程序
    2. 实用交易程序
  32. 附录G 比特币浏览器命令
    1. bx命令使用示例
  33. 作者介绍
  34. 封面介绍

Product information

  • Title: 精通区块链编程:加密货币原理、方法和应用开发(原书第2版)
  • Author(s): Andreas M. Antonopoulos
  • Release date: May 2019
  • Publisher(s): China Machine Press
  • ISBN: 9787111626053

You might also like

book

区块链编程

by Jimmy Song

本书从软件工程的角度来剖析比特币的原理及结构,以编程的方式帮助你深入理解区块链技术。作者向Python程序员和开发人员介绍了如何从头开始编写比特币库。在本书中,你将学习如何使用这种流行的加密货币及其区块链支付系统背后的基础知识,包括数学、密码学、区块、网络和交易。 学完本书,你将通过编写比特币库所需的所有组件来了解这种加密货币的幕后工作方式,并将了解如何创建交易、从点对点网络中获取所需的数据以及通过比特币网络协议发送交易。无论你是为公司探索区块链应用还是在考虑新的职业道路,这本实用的书都可以帮助你入门。 解析、验证和创建比特币交易。 学习比特币背后的智能合约语言Script。 在每一章中进行练习,从零开始构建比特币库。 了解工作量证明如何保护区块链。 使用Python 3编写比特币。 了解简单支付验证(SPV)和轻钱包的工作机制。 学习使用公钥加密和加密原语机制。

book

解密金融数据

by Justin Pauley

技术是获取和解释金融数据的强大工具,能给你华尔街上所有人都想要的东西:优势。你不需要成为一名程序员就能从彭博、IHS Markit或其他系统获取金融信息。 通过本书并结合你的见解与彭博或Markit的数据,你将了解分析金融信息和生成专业报告的技能。 如果你是一名程序员,本书也包含用C#来覆盖相同主题的方法。 对比公司、债券或贷款,并使用在彭博屏幕上看不到的数据。 为单个公司建立两页的活页报告,包含重要的金融数据、与其对等组的相对价值比较和价格趋势。 建立投资组合总结报告,包含业绩、增长、风险调整后收益和组合。 探索公司债券和贷款市场的每日价格和贷款信息。 利用相关性和回归确定两种证券(或指数)之间的关系。 通过计算方差、标准差和夏普比率来衡量投资组合风险调整后的收益。 使用Markit数据来识别有意义的趋势。

book

云原生:运用容器、函数计算和数据构建下一代应用

by Boris Scholl, Trent Swanson, Peter Jausovec

开发者们刚开始接触云端服务开发的时候或多或少都会遇到一些障碍。既要学习分布式系统的知识,又要熟悉像容器和函数计算这样的新技术,还要综合运用这些知识来构建云原生应用实在是件令人望而生畏的事情。本书可以帮助你掌握构建云原生应用的方法,比如消息通信、事件通知和DevOps等。 本书介绍了构建现代云原生应用的架构模块。你将学会如何使用微服务、容器、无服务器架构、函数计算等技术,并挑选合适的存储类型,同时考虑可移植性等问题。你会从云原生应用的基础知识开始,一步步地了解设计、开发和运维云原生应用的整个过程。 探讨设计云原生应用所需的技术。 介绍容器和函数计算的区别,并学习它们的适用场景。 有针对性地设计应用来满足数据相关的需求。 学习DevOps的基础知识和一些开发、测试、运维实践。 学习一些构建和管理云原生应用的技巧、方法和实践。 理解构建一个具有可移植性的应用所需的代价,并且学会对需求做出取舍。

book

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

by Aurélien Géron

随着一系列的技术突破,深度学习推动了整个机器学习领域的发展。现在,即使是对这项技术几乎一无所知的程序员也可以使用简单有效的工具来实现“可以自动从数据中学习”的程序。这本畅销书的更新版通过具体的示例、非常少的理论和可用于生产环境的Python框架来帮助你直观地理解并掌握构建智能系统所需要的概念和工具。 你会学到一系列可以快速使用的技术。每章的练习可以帮助你应用所学的知识,你只需要有一些编程经验。所有代码都可以在GitHub上获得。它已更新为TensorFlow 2和Scikit-Learn的新版本。 使用Scikit-Learn和pandas通过端到端项目来学习机器学习基础。 使用TensorFlow 2构建和训练多个神经网络架构来进行分类和回归。 覆盖对象检测、语义分割、注意力机制、语言模型、GAN等。 探索Keras API与TensorFlow 2的官方高级API。 使用TensorFlow的数据API、分布策略API、TF Transform和TF-Serving来部署TensorFlow模型。 在Google Cloud AI Platform或移动设备上部署。 …