你可以从bitcoin.org下载比特币的标准客户端比特币核心(Bitcoin Core),也被称为“中本聪客户端”。这个标准客户端实现了比特币系统的所有功能,包括钱包、一个交易验证引擎(用于对全部交易账本,即区块链的全量副本进行交易验证),以及一个用于接入点对点比特币网络的完全网络节点。
在“选择你的钱包”页面(http://bitcoin.org/en/choose-your-wallet),点击比特币核心,下载标准客户端。基于你的操作系统,你可以下载不同安装包的可执行文件。对于Windows系统,有ZIP压缩包和.exe可执行程序供下载。对于Mac OS,则是一个.dmg磁盘映像。对于Linux版本,包括Ubuntu系统的PPA包或者tar.gz档案。bitcoin.org网页中列出的建议客户端[1]如图3.1所示。
图3.1 从bitcoin.org下载合适的比特币客户端
如果你已经下载了安装包,比如.exe、.dmg或者PPA,你可以像安装其他任何软件一样,在你的操作系统上安装比特币核心。Windows用户运行.exe,并根据提示一步步进行安装。对于Mac OS用户,先运行.dmg,完成后将Bitcoin-QT图标拉到应用程序文件夹即可。对于Ubuntu,在文件浏览器中双击PPA,系统将会打开软件包管理器进行软件包的安装。一旦安装完成,你将在应用程序列表中看到一个新的叫作Bitcoin-QT的软件。双击图标可以启动比特币客户端。
首次运行比特币核心,它将开始下载区块链,这个过程可能需要持续几天(见图3.2)。让它在后台运行,直到显示“同步完成”,并且余额旁不再显示“未同步”。
图3.2 比特币核心在区块链初始化时的屏幕显示
比特币核心在本地保存一份交易账本(区块链)的全量副本,包含了自2009年比特币创立以来在比特币网络上发生过的所有交易。数据集大小有几千兆字节(在2013年末大概是16GB),它会以增量的形式,在几天内逐步下载完成。在区块链数据集下载完成之前,客户端都没法执行交易或者更新账户余额。这段时间内,客户端会在账户余额边上显示“未同步”,下方状态栏则会显示“正在同步”。为了完成初始化同步,请确保你有充足的硬盘空间、网络带宽和足够的时间。
对于开发者来说,也可以选择下载全量的源码(ZIP压缩包)或者从GitHub的官方源码库中复制代码。在GitHub的bitcoin页面(http://github.com/bitgoin/bitcoin),从边栏选择下载ZIP包。或者使用git命令行创建一个本地代码库,并从gitHub下载副本。在下面的例子中,我们使用类Unix系统(Linux、Mac OS等)的命令行,从gitHub上复制代码。
终端上的提示和输出结果可能会因为版本不同而有所不同。只要按照代码中所带的文档执行,即使实际输出结果与例子中显示的有轻微差异,也是正常的。
当git复制操作完成后,在bitcoin目录中就拥有了一份代码库的完整副本。在提示符下键入命令“cd bitcoin”,进入该目录:
不加参数的情况下,检出的本地副本与最新代码保持同步,这可能是比特币的一个不稳定版或公共测试版(beta版)。因此在编译代码前,应通过加版本标签的形式来检出某个特定版本。这将让本地副本与版本库上某个特定版本的快照进行同步。这些版本标签是利用tag关键词进行标记的,它是开发者使用版本号对特定代码版本进行标记的一种技术。首先,为了找出所有可用标签,我们使用git tag命令:
这个标签列表列出了所有的比特币发行版本。按照惯例,候选发行版(release candidates)用于测试目的,带有“rc”后缀。稳定发行版则没有后缀,可以在生产系统上运行。从上述列表中,选择最高版本号的发行版,在写本书时,这个版本是v0.9.0rc1。为了让本地代码与这个版本同步,使用git checkout命令:
源码中包含了文档,可以在几个文件中找到。键入more README.md, 查阅在bitcoin目录中的README.md主文档,根据提示,使用空格键来引导文档翻到下页。在本章中,我们将构建命令行形式的比特币客户端,在linux上又名bitcoind。键入more doc/build-unix.md可以查阅在平台上编译bitcoind命令行客户端的指南。其他平台,如Mac OS X或者Windows的编译指南也可以在doc目录下找到,相应的文件为build-osx.md或者build-msw.md。
仔细研究构建的前置条件,在构建文档的前面部分有描述。这些是在编译bitcoind前必须在系统中安装好的库文件。如果前置条件缺失,构建过程就会失败,并显示错误信息。如果编译过程中发现缺少了某些必需的库文件,你可以在安装好这些库文件后,重新执行编译程序,它将从刚才中断的地方继续进行构建。假设所有前置要求都已经满足,你可以开始利用autogen.sh生成一系列构建脚本,开始构建过程。
比特币核心的构建过程从0.9版开始变为采用autogen/configure/make系统。早期版本采用一个简单的Makefile文件,工作过程与下述例子有些细微区别。请按照选定版本的操作指南来操作。0.9版引入的autogen/configure/make构建系统很可能成为所有后续版本的构建方法,也是下面例子演示的构建系统。
autogen.sh脚本将创建一套自动化配置脚本,这些脚本通过检查你的系统以发现正确的设置,并确保你已经安装了编译代码所需的所有库文件。这些脚本里面最重要的是configure脚本,它提供了一系列不同选项,帮助你定制构建过程。输入./configure-help,可以查看所有选项:
configure脚本允许你通过- -enable-FEATURE或- -disable-FEATURE选项,来启用或禁用bitcoind某些功能。其中的FEATURE由具体功能名称代替,功能名称在上面的帮助信息中已经列出。在本章中,我们构建的bitcoind客户端将打开所有默认功能。我们不配置任何选项,但你最好还是好好研读一下帮助信息,了解客户端包含了哪些可选功能。接下来,运行configure脚本来自动发现所有必要的库,并为系统创建一个定制的构建脚本。
如果一切顺利,configure命令将成功完成定制化构建脚本的创建,这个脚本允许我们编译bitcoind。如果有缺失的库或者其他错误,configure命令将终止创建构建脚本,并输出错误。如果发生错误,很可能是因为缺失库或者库不兼容。再次查阅构建文档,确保已安装了所缺失的先决条件。然后重新运行configure看看是否已修复了错误。接下来,你将编译源代码,这个过程可能会持续一个小时。在编译的过程中,每隔几秒到几分钟就会输出一些信息,如果有什么问题,错误信息也会显示出来。编译如果被中断,你也可以随时恢复编译过程。键入make开始编译吧。
一切运行顺利的话,bitcoind就编译好了。最后的步骤是将bitcoind安装到系统路径中,仍然使用make命令:
你可以通过查看系统中以下两个可执行程序的位置,来确认bitcoind是否已经安装正确:
默认安装时,bitcoind会被安装到/usr/local/bin目录下。当你第一次运行bitcoind时,它会提醒你创建一个配置文件,这个配置文件包含访问JSON-RPC接口的高强度密码。键入bitcoind,在终端上运行bitcoind:
在你喜欢的编辑器中编辑配置文件,设置参数,将密码替换为一个bitcoind建议的高强度密码。不要使用范例中使用的密码。在.bitcoin目录下创建一个命名为.bitcoin/bitcoin.conf的配置文件,输入用户名和密码:
当你编辑这个配置文件时,你可能还希望设置其他几个选项,比如txindex(参见本章“探索及解码交易”中的附表“交易数据库索引和txindex选项”)。若需要查看所有可用选项,请键入bitcoind- -help。
现在,运行比特币核心客户端。第一次运行时,它会通过下载所有区块来重建比特币区块链。这是一个好几千兆字节的大文件,平均需要花费两天才能全量下载完成。你可以利用BitTorrent客户端从SourceForge(http://bit.ly/IqkLNyh)下载部分区块链副本,以此来缩短区块链的初始化时间。
通过-daemon选项可以在后台运行bitcoind:
[1] 所选截图为翻译此书时的最新客户端列表。——译者注
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。