比特币客户端和API
1. 比特比客户端的安装
Bitcoin Core 客户端适用于从 x86 Windows 到 ARM Linux 的不同架构和平台,如下图所示:
2. Bitcoin Core客户端的类型
2.1 Bitcoind
Bitcoind 末尾的字母 d 表示 daemon (守护程序)。所谓守护程序,就是指常驻内存能够连接运行的程序(就好像守护者一样),用于处理计算机系统希望接收到的阶段性的服务需求。daemon 程序段可以将请求提交给其他适合的程序(或者进程)。Bitcoind 作为守护程序运行的核心客户端软件,提供 JSON-RPC 接口,可以持续等待从网络客户端及其用户发送来的请求。
2.2 Bitcoin-cli
Bitcoin-cli 末尾的 cli 给示 command line(命令行),它是与 Bitcoind 交互的功能丰富的命令行工具。Bitcoind 与区块链进行交互并执行各种功能。Bitcoin-cli 仅调用 JSON-RPC 功能,并且不会在区块链上自行执行任何操作。
2.3 Bitcoin-qt
Bitcoin-qt 末尾的 qt 表示一个 C++ 库,包括图形用户界面(Graphical User Interface,GUI),因此 Bitcoin-qt 是 Bitcoin Core 客户端的 GUI。当钱包首次启动时,它将验证磁盘上的区块,然后启动并显示下图的 GUI 。
验证过程并不特定于 Bitcoin-qt 客户端,它也是由 Bitcoind 客户端执行的。
3. 设置比特币网络节点
下图显示了在 Ubuntu 上安装 Bitcoin Core 的运行示例。
对于其他平台,你可以从以下网址获取详细信息:
https://bitcoin.org/en/
(1) 运行以下命令:
[admin@daolian~]$sudo apt-get update
(2)根据需要安装的客户端,可以使用以下任一命令,也可以一次发出两个命令:
[admin@daolian ~]$sudo apt-get install bitcoind
[admin@daolian ~]$sudo apt-get install bitcoin-qt
[admin@daolian ~]$sudo apt-get install bitcoin-qt bitcoind
Reading package lists... Done
Building dependency tree
Reading state information ... Done
4. 设置源代码
如果用户希望参与比特币代码开发或用于学习目的,则可以下载和编译比特币源码。以下 git 命令可用于下载比特币源代码:
[admin@daolian ~]$sudo apt-get install git
[admin@daolian ~]$mkdir bcsource
[admin@daolian ~]$cd bcsource
[admin@daolian ~]$git clone https://github.com/bitcoin/bitcoin.git
Cloning into 'bitcoin'.....
remote: Counting objects:78960,done.
将目录更改为 bitcoin:
[admin@daolian ~]$cd bitcoin
完成以上步骤后,可以编译代码:
[admin@daolian ~]$./autogen.sh
[admin@daolian ~]$./configure.sh
[admin@daolian ~]$make
[admin@daolian ~]$sudo make install
5. 设置 bitcoin.conf
bitcoin.conf 文件是配置文件,Bitcoin Core 客户端使用该文件保存配置信息,可以在配置文件中设置 Bitcoind 客户端的所有命令行选项(-conf 开关除外)。当启动 Bitcoin-qt 或 Bitcoind 时,它将从该文件中获取配置信息。
在 Linux 系统中,通常可以在 $HOME /.bitcoin/中找到该配置文件,或者在命令行中使用 -conf=<file> 开关指定它。
6. 在测试网中启动节点
如果要测试比特币网络并运行实验,则可以在 testnet 模式下启动比特币节点。与实时网络相比,这是一个更快的网络,并且对于采矿和交易具有宽松的规则。
比特币测试网络可以使用各种终端服务,例如比特币 testnet 沙箱,用户可以请求将比特币支付到 testnet 比特币地址。
注意: 测试网访问地址如下: https://testnet.manu.backend.hamburg/ |
这对于在测试网上试验交易非常有用。启动 testnet 的命令行如下:
[root@localhost ~]#bitcoind --testnet -daemon
[root@localhost ~]#bitcoin-cli --testnet <command>
[root@localhost ~]#bitcoin-qt --testnet
7. 以 regtest 模式启动节点
regtest 模式(回归测试模式)可创建用于测试目的的本地区块链。
可以使用以下命令以 regtest 模式启动节点:
[admin@daolian ~]$bitcoind -regtest -daemon
Bitcoin server starting
可以使用以下命令生成区块:
[admin@daolian ~]$bitcoin-cli -regest generate 200
在 Linux 系统上,可以在.bitcoin/regtest 目录的 debug.log 中查看相关日志消息,如下图所示:
8. 使用Bitcoin-cli 进行实验
Bitcoin-cli 是 Bitcoin Core 客户端提供的命令行界面,可通过 Bitcoin Core 客户端提供的 RPC 接口执行各种功能,如下图所示
可以通过如下图所示的命令显示所有命令的列表。
上图显示了 Bitcoin-cli (比特币命令行)界面中可用的各种命令行选项的列表,这些命令可用于查询区块链并控制本地节点。
9. 比特币编程和命令行接口
比特币编程现在是一个非常丰富的领域。Bitcoin Core 客户端公开了各种 JSON-RPC 命令,这些命令可用于构造原始交易并通过自定义脚本或程序执行其他功能。
此外,还可以使用命令行工具 Bitcoin-cli,该工具利用 JSON-RPC 接口并提供丰富的工具集来处理比特比。
这些 API 可以通过在线服务提供商以比特币 API 的形式获得,它们提供一个简单的 HTTP REST 接口。常见的比特币 API 在线服务提供商如下:
https://blockchain.info/api
https://bitpay.com/api
https://www.block.io |
这些在线服务提供商提供多种选择开发比特币的解决方案。
除此之外,还有各种库可用于比特币编程。常见的库列表如下:
https://libbitcoin.dyne.org
https://github.com.richardkiss/pycoin
https://bitcoinj.github.io/ |
有许多在线比特币 API 可用。下面列出了最常用的 API 。
|
由于 API 提供几乎类似的功能类型,因此用户在决定使用哪个 API 时会感到困惑。另外,由于 API 都具有丰富的功能,因此很难推荐最好的 API 。但是,用户要牢记安全第一。第当评估使用 API 时,除了评估其提供的功能外,还要评估该 API 设计的安全性。