Skip to content

Commit

Permalink
Update ch03.md
Browse files Browse the repository at this point in the history
  • Loading branch information
tianmingyun authored Oct 15, 2019
1 parent d1144d7 commit 3faa817
Showing 1 changed file with 17 additions and 17 deletions.
34 changes: 17 additions & 17 deletions ch03.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ Bitcoin是一个开源项目,源代码使用开放(MIT)授权,可免费

图3-1比特币核心架构(来源Eric Lombrozo)

# 3.1比特币开发环境
# 3.1 比特币开发环境

对于开发人员,需要使用所有工具,库和支持软件来配置开发环境,编写比特币应用程序。 这一章涉及的技术细节较深,我们将逐步介绍该过程。 如果你觉得过于繁琐(并且缺乏开发环境),建议你跳到下一章,技术性会浅显一些。

# 3.2从源码编译比特币核心
# 3.2 从源码编译比特币核心

Bitcoin Core的源代码可以下载ZIP格式,也可以从GitHub克隆官方的源代码库。 在GitHub比特币页面[GitHub bitcoin page](https://github.com/bitcoin/bitcoin)上,选择“下载ZIP”。 或者,使用git命令行在系统上创建源代码的本地副本。

Expand All @@ -39,7 +39,7 @@ $

$ cd bitcoin

## 3.2.1选择Bitcoin Core版本
## 3.2.1 选择Bitcoin Core版本

默认情况下,本地副本将与最新的代码同步,但是最新版本可能是不稳定的或者是Beta版。 所以在编译代码前,先查看发布标签tag,选择一个特定的版本。 这将使本地副本与关键字标签所标识的代码库的特定快照同步。 开发人员使用标签tag来标记特定版本号的代码。 首先,要找到可用的标签,我们使用git tag命令:

Expand Down Expand Up @@ -71,7 +71,7 @@ HEAD detached at v0.11.2
nothing to commit, working directory clean
```

## 3.2.2配置构建Bitcoin Core
## 3.2.2 配置构建Bitcoin Core

源代码中包括帮助文档,可以在许多文件中找到。在提示符下输入“more README.md”,可以查看bitcoin目录中最主要的文档README.md的内容,使用空格键可翻页。在本章中,我们将在Linux上部署命令行比特币客户端,也称为比特币(bitcoind)。在系统中查看编译bitcoind命令行客户端的说明,方法是输入“more doc / build-unix.md” 。doc目录中还有macOS和Windows的文档,分别为build-osx.md或build-windows.md。

Expand Down Expand Up @@ -153,7 +153,7 @@ $

如果一切顺利,configure命令运行完成后,会自动一个创建可定制的构建脚本。可以使用构建脚本编译bitcoind。如果有缺失的库或是错误,configure命令将会提示出错。出现错误,一般都是缺少库或是有不兼容的库。这需要重新查看文档,确认是否安装所有依赖库。然后再次运行configure,看看错误是否消失。

## 3.2.3构建Bitcoin Core可执行文件
## 3.2.3 构建Bitcoin Core可执行文件

下一步,开始编译源代码,这个过程根据CPU处理能力和内存大小,但一般可能需要1个小时完成。编译的过程中,应该过几秒或是几分钟看一下输出结果。如果出现了问题,就会看到错误。如果中断了,编译的过程可以在任何时候恢复。输入make命令就可以开始编译了:

Expand Down Expand Up @@ -200,29 +200,29 @@ $ which bitcoin-cli
/usr/local/bin/bitcoin-cli
```

## 3.2.4运行比特币核心节点
# 3.3 运行Bitcoin Core节点

比特币的对等网络由网络“节点”组成,主要由志愿者和一些构建比特币应用程序的商业机构运行。 那些运行的比特币节点具有直接和权威的比特币区块链视图,并且具有所有交易的本地副本,由其自己的系统独立验证。 通过运行节点,您不必依赖任何第三方来验证交易。 此外,通过运行比特币节点,您可以通过使其更健壮的方式为比特币网络做出贡献
比特币的点对点网络由网络中的“节点”组成,主要由志愿者和一些构建比特币应用程序的商业机构运行。 那些运行的比特币节点具有直接和权威的比特币区块链视图,并且具有所有交易的本地副本,自己可以独立验证。 自己运行节点,就不必依赖任何第三方来验证交易。 此外,自己运行比特币节点,也可以使比特币网络更加健壮,为比特币网络做出贡献

但是,运行节点需要一个具有足够资源来处理所有比特币交易的永久连接的系统。 根据您是否选择索引所有交易并保留块的完整副本,您可能还需要大量的磁盘空间和RAM。 到2016年底,全索引节点需要2 GB的RAM和125 GB的磁盘空间,以便它有增长的空间。 比特币节点还传输和接收比特币交易和块,消耗互联网带宽。 如果您的互联网连接受限,有带宽上限或按流量计费,建议您不要在其上运行比特币全节点,或以限制其带宽的方式运行它(请参阅<a href="#constrained_resources">例3-2</a>)。
但是,运行节点需要足够资源来处理所有比特币交易,而且不能停机断网。 如果选择索引所有交易并保留完整区块链副本,还需要足够的磁盘空间和RAM。 2018年初,全索引节点需要2 GB的RAM和160 GB的磁盘空间,才能满足空间增长需求(参考 https://blockchain.info/charts/blocks-size))。 比特币节点还传输和接收比特币交易和区块,消耗互联网带宽。 如果互联网连接有带宽上限或按流量计费,建议就不要运行比特币全节点,或者用限制其带宽的方式运行(请参阅例3-2)。

**提示 **Bitcoin Core默认情况下保留区块链的完整副本,与2009年成立以来在比特币网络上发生的每一笔交易相关。此数据集的大小为120GB,下载可能需要几天或几周,具体取决于 CPU和互联网连接的速度。直到完整的块链数据集被下载完成之前,Bitcoin Core将无法处理交易或更新帐户余额。 确保您有足够的磁盘空间,带宽和时间来完成初始同步。 您可以配置Bitcoin Core通过丢弃旧块来减少块链的大小(请参阅<a href="#constrained_resources">例3-2</a>)。(https://github.com/bitcoinbook/bitcoinbook/blob/second_edition/ch03.asciidoc#constrained_resources)),但是在丢弃数据之前仍将下载整个数据集。
**提示** Bitcoin Core默认情况下保留区块链的完整副本,包括从2009年比特币成立以来发生的每一笔交易。此数据集的大小为几百GB,下载可能需要几天或几周,具体取决于 CPU和互联网带宽。完整区块链数据集被下载完成之前,Bitcoin Core将无法处理交易或更新帐户余额。 因此确保足够的磁盘空间,带宽和时间来完成初始同步。 也可以配置Bitcoin Core通过丢弃旧区块来减少区块链的大小(请参阅例3-2),但是在丢弃数据之前仍将下载整个数据集。

尽管有这些资源需求,但仍有成千上万的志愿者运行比特币节点。 一些在简单的系统上运行,就像树莓派Raspberry Pi(一块35美元的计算机,一张卡的大小)。 许多志愿者还在租用的服务器上运行比特币节点,通常是Linux的一些变体。 虚拟专用服务器(VPS)或云计算服务器实例可用于运行比特币节点。 这些服务器可以从各种供应商每月租用25至50美元
尽管有这些资源需求,但仍有成千上万的志愿者运行比特币节点。 有些节点在简单的系统上运行,就像树莓派Raspberry Pi(35美元的计算机,一副扑克牌大小)。 许多志愿者在租用的服务器类Linux系统上运行比特币节点。 虚拟专用服务器(VPS)或云计算服务器实例也可用于运行比特币节点。 这些服务器每月租金大约25至50美元

为什么要运行一个节点? 以下是一些最常见的原因:
为什么要运行节点? 以下是一些最常见的原因:

如果您正在开发比特币软件,并且需要依靠比特币节点进行可编程(API)访问网络和区块链。
* 如果是开发比特币软件,需要比特币节点进行可编程接口(API)访问网络和区块链。

如果您正在构建必须根据比特币共识规则验证交易的应用程序。 比特币软件公司通常运行几个节点
* 如果是开发根据比特币共识规则验证交易的应用程序。 比特币软件公司通常运行多个节点

如果你想支持比特币。 运行节点使网络更加健壮,能够提供更多的钱包,更多的用户和更多的交易。
* 如果只是想支持比特币。 那么运行节点可以使网络更加健壮,提供更多的钱包,更多的用户和更多的交易。

如果您不想依赖任何第三方来处理或验证您的交易
* 如果不想依赖任何第三方来处理或验证自己的交易

如果您正在阅读本书并对开发比特币软件感兴趣,那么您应该运行自己的节点
* 如果阅读本书并对开发比特币软件感兴趣,那么也应该运行自己的节点

## 3.2.5首次运行比特币核心
## 3.3.1首次运行Bitcoin Core

当你第一次运行bitcoind时,它会提醒你用一个安全密码给JSON-RPC接口创建一个配置文件。该密码控制对Bitcoin Core提供的应用程序编程接口(API)的访问。

Expand Down

0 comments on commit 3faa817

Please sign in to comment.