中国领先的IT技术网站
|
|

1.4.2 比特币核心程序:中本聪客户端(2)

《白话区块链》第1章初识区块链,本章我们将从区块链的原理及分类、技术组成、技术特点等出发来初步介绍区块链的概念,并通过分析比特币的结构让大家对区块链有一个感性的认识。比特币作为区块链技术的第一个应用,它的原理设计影响深远。本节为大家介绍比特币核心程序:中本聪客户端。

作者:蒋勇/文延/嘉文来源:机械工业出版社|2017-11-24 11:38

开发者大赛路演 | 12月16日,技术创新,北京不见不散


1.4.2 比特币核心程序:中本聪客户端(2)

我们发现颜色都变了,变成了淡绿色,标题上也有“测试网络”的字样,进入主界面后,界面样式基本还是那样:

进入到测试网络后的比特币客户端,其区块链数据会小一些,在功能操作上基本还是一样的。需要注意的是,配置文件中的配置项也是可以直接通过参数来传递的。假设想临时进入测试网络看看,那么就不需要去设置配置文件了,通过如下指令来运行即可:

  1. bitcoin-qt -testnet 

在控制台中执行上述指令后,同样会进入测试网络。有朋友会问,我一开始在运行bitcoin-qt时指定了一个数据目录,现在我想更换可以吗?当然是可以的,操作如下:

  1. bitcoin-qt -datadir="D:\mybitcoin_data" 

这样在启动bitcoin-qt的时候重新指定了一个自己创建的数据目录。当然了,不但可以重新指定数据目录,也可以重新指定配置文件,操作如下:

  1. bitcoin-qt -conf="c:\mybitcoin.conf" 

可以发现,另外指定的配置文件,其文件名可以是自定义的。需要注意的是,bitcoin-qt支持的所有参数中,除了-datadir与-conf只能通过命令参数指定外,其他参数都是既可以在命令参数中直接传递,也可以在配置文件中指定。

(2)bitcoind.exe

这个其实就可以看作不带界面的bitcoin-qt.exe,其中同样包含了比特币的核心节点,并且提供了RPC服务。比特币使用的是JSON-RPC协议,以便通过命令行交互的方式访问比特币系统的数据,比如访问区块链账本数据,进行钱包操作和系统管理等。

bitcoin-qt与bitcoind是互相兼容的,有同样的命令行参数,读取相同格式的配置文件,也读写相同的数据文件,使用的时候,这两个程序根据需要启动一个即可,同时启动也不会出错,但是同时启动两个bitcoin-qt或者两个bitcoind会出错,如下所示:

图中所示的大致意思是对数据文件的访问冲突了。

bitcoind默认读取的配置文件,在不同操作系统下路径也不尽相同,如下所示:

Windows:%APPDATA%\Bitcoin\

OS X:$HOME/Library/Application Support/Bitcoin/

Linux:$HOME/.bitcoin/

除了上述的默认配置路径外,与bitcoin-qt一样,也是可以在启动的时候通过传递参数来重新指定其他路径下的配置文件或者数据目录的:

  1. bitcoind -datadir="c:\bitcoin_data" -conf="C:\mybitcoin.conf" 

如上所示,启动时,使用-datadir指定了数据文件需要存储的目录,使用-conf指定了C盘目录下的一个配置文件,此时这个配置文件的名称是自定义的。bitcoind启动后可以通过bitcoin-cli进行访问,bitcoin-cli的使用在下一节介绍。

看到这里,有些朋友可能会有些疑问,比特币核心客户端运行后可以与其他节点进行互相的连接通信,那就得开放一个服务端口,而访问比特币节点信息又是通过RPC的方式,那相当于开启了一个RPC服务,这么说来,比特币网络中的每个节点其实相当于一个个服务器。确实如此,这些开启的服务端口说明如下。

8333,用于与其他节点进行通信的监听端口,节点之间的通信是通过bitcoin protocol进行的,通过这个端口才能进入比特币的P2P网络。

8332 ,这是提供JSON-RPC通信的端口,通过这个端口可以访问节点的数据。

如果是测试网络,分别是18333和18332。

以上端口是可以另外指定的,通过参数-port与-rpcport参数可以分别重新指定。

(3)bitcoin-cli.exe

bitcoin-cli允许你通过命令行发送RPC命令到bitcoind进行操作,比如bitcoin-cli help,因此这是一个命令行客户端,用来通过RPC方式访问bitcoind的RPC服务。我们可以通过命令行来查看当前的bitcoin-cli的版本:

  1. bitcoin-cli -version 

运行后会返回如下描述信息:Bitcoin Core RPC client version v0.14.2。通过返回的信息也能看到,bitcoin-cli就是一个RPC客户端工具,那么如何去连接核心客户端呢?首先bitcoin-cli与bitcoind是使用同样路径下的配置文件,因此在使用bitcoin-cli之前,我们需要先运行bitcoind,然后来执行bitcoin-cli命令:

  1. bitcoin-cli getinfo 

可以看到有如下格式的信息输出:

  1. {  
  2.     "version": 140100,  
  3.     "protocolversion": 70015,  
  4.     "walletversion": 130000,  
  5.     "balance": 0.00000000,  
  6.     "blocks": 48,  
  7.     "timeoffset": 0,  
  8.     "connections": 0,  
  9.     "proxy": "",  
  10.     "difficulty": 1,  
  11.     "testnet": false,  
  12.     "keypoololdest": 1503043764,  
  13.     "keypoolsize": 100,  
  14.     "paytxfee": 0.00000000,  
  15.     "relayfee": 0.00001000,  
  16.     "errors": ""  

看到信息的返回,表明已经正常连接且可以访问了,如果想要停止bitcoind,则可以发送如下指令:

  1. bitcoin-cli stop 

bitcoind接收到停止命令,执行后退出运行服务。

我们再来看一个例子,在这个例子中,通过参数重新指定数据目录和配置文件:

  1. bitcoind -datadir="c:\bitcoin_data" -conf="C:\bitcoin.conf" 

此时,如果仍然要通过bitcoin-cli来访问这个运行的bitcoind,则需要运行如下命令:

  1. bitcoin-cli -datadir="c:\bitcoin_data" -conf="c:\bitcoin.conf" getinfo 

运行后返回了运行的bitcoind中的信息。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月最赞

读 书 +更多

网管员必读—超级网管经验谈(第2版)

本书的第1版获得过“2006年度全行业优秀畅销品种奖”。全书共15章,分别介绍了网管员职责和应具备的工作习惯、共享上网与访问控制方法、子...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× 51CTO学院双十二活动