主页 > imtoken老版本 > 比特币客户端命令1.4.2 比特币核心程序:中本聪客户端(三)
比特币客户端命令1.4.2 比特币核心程序:中本聪客户端(三)
1.4.2 比特币核心程序:中本聪客户端(三)
至此,我们可以发现bitcoin-qt、bitcoind和bitcoin-cli可以读取相同格式的配置文件,命令参数也相同。 具体支持的参数有很多,大家可以自行查看。 另外,比特币中的很多函数调用都是通过RPC命令提供的,比如区块信息查询、交易查询、多重签名使用等,所以想要了解完整函数调用的朋友可以详细了解一下这些RPC命令的使用方法。 ,这里我也推荐一些不错的网站供大家学习和使用:
:方便检索各种比特币网络的数据;
: 基于网络的比特币 RPC 命令用法。
(4) 比特币-tx.exe
这是一个独立的实用程序,可用于创建、解析和编辑比特币交易。 当我们平时使用比特币系统时比特币客户端程序,使用上面介绍的钱包功能就足够了,但是如果需要单独查看或创建交易数据,就可以使用这个工具。 既然是用来操作交易的,那就试试吧。 比特币交易本质上是一段二进制数据。 让我们随机找一块,看看 bitcoin-tx 能解析成什么。 为方便起见,将二进制交易数据转换为十六进制格式显示。 如下:
- 0100000001e0772cd81114d0993922a280e2b29209d6c6c5d2f22d807018d1ef0d55cfe4041c0
- 000006a473044022008650b496ea573a2d42efbcbfb49288ab3c7f9968a1fa6072155a028a4de
- b39e02201b2dd03307fcd1fbb2f9928a8904d50a84ae9d600986a3a8a125fe248b4faf1001210
- 354eb6c85025f3abecde8236e86aabf6b819a72154e69d39f7ae591a92436c166ffffffff01d9
- 38890c000000001976a914fe5d8413d80c3d3f9b975f45990cf432455b13ef88ac00000000
这是一笔交易交易的数据。 接下来,让我们解析这些数据并将其转换为人类可读的格式。 为了便于阅读,我们将其转换为 JSON 格式。 命令如下:
- bitcoin-tx -json
- 0100000001e0772cd81114d0993922a280e2b29209d6c6c5d2f22d807018d1ef0d55cfe4041c0
- 000006a473044022008650b496ea573a2d42efbcbfb49288ab3c7f9968a1fa6072155a028a4de
- b39e02201b2dd03307fcd1fbb2f9928a8904d50a84ae9d600986a3a8a125fe248b4faf1001210
- 354eb6c85025f3abecde8236e86aabf6b819a72154e69d39f7ae591a92436c166ffffffff01d9
- 38890c000000001976a914fe5d8413d80c3d3f9b975f45990cf432455b13ef88ac00000000
执行后可以得到如下输出:
- {
- "txid": "2aff308e3e1a9b251ecb701762f6f2c1d28952fe6d0d94efc78880e8a62d2cbb",
- "hash": "2aff308e3e1a9b251ecb701762f6f2c1d28952fe6d0d94efc78880e8a62d2cbb",
- "version": 1,
- "locktime": 0,
- "vin": [
- {
- "txid":
- "04e4cf550defd11870802df2d2c5c6d60992b2e280a2223999d01411d82c77e0",
- "vout": 28,
- "scriptSig": {
- "asm": "3044022008650b496ea573a2d42efbcbfb49288ab3c7f9968a1fa6072155a028a4deb39e02201b2dd03307fcd1fbb2f9928a8904d50a84ae9d600986a3a8a125fe248b4faf10[ALL] 0354eb6c85025f3abecde8236e86aabf6b819a72154e69d39f7ae591a92436c166",
- "hex": "473044022008650b496ea573a2d42efbcbfb49288ab3c7f9968a1fa6072155a028a4deb39e02201b2dd03307fcd1fbb2f9928a8904d50a84ae9d600986a3a8a125fe248b4faf1001210354eb6c85025f3abecde8236e86aabf6b819a72154e69d39f7ae591a92436c166"
- },
- "sequence": 4294967295
- }
- ],
- "vout": [
- {
- "value": 2.10319577,
- "n": 0,
- "scriptPubKey": {
- "asm": "OP_DUP OP_HASH160 fe5d8413d80c3d3f9b975f45990cf432455b13ef OP_EQUALVERIFY OP_CHECKSIG",
- "hex": "76a914fe5d8413d80c3d3f9b975f45990cf432455b13ef88ac",
- "reqSigs": 1,
- "type": "pubkeyhash",
- "addresses": [
- "1QBxfKsz2F7xwd66TwMj5wEoLxCQghy54c"
- ]
- }
- }
- ],
- "hex": "0100000001e0772cd81114d0993922a280e2b29209d6c6c5d2f22d807018d1ef0d55cfe4041c0000006a473044022008650b496ea573a2d42efbcbfb49288ab3c7f9968a1fa6072155a028a4deb39e02201b2dd03307fcd1fbb2f9928a8904d50a84ae9d600986a3a8a125fe248b4faf1001210354eb6c85025f3abecde8236e86aabf6b819a72154e69d39f7ae591a92436c166ffffffff01d938890c000000001976a914fe5d8413d80c3d3f9b975f45990cf432455b13ef88ac00000000"
- }
通过输出信息,我们很容易看到其中包含的各种数据组件。 例如,txid是指交易的哈希值,与哈希数据项相同; vin指的是交易的输入部分; vout指的是交易的输出部分。 这里不解释每一项的含义。 第8章通过模拟比特币搭建最简单的区块链系统,并进行具体介绍。 通过使用这个工具,除了分析交易交易数据外,比特币客户端命令还可以创建交易交易。 读者朋友们可以试一试。
(5) test_bitcoin.exe
这是比特币程序bitcoind的单元测试工具,与程序开发相关。 另外其实还有一个针对bitcoin-qt的单元测试工具test_bitcoin-qt。 普通用户一般不会使用这些工具。 展开细节。
2.客户端逻辑结构
通过上面的介绍,我们了解了中本聪客户端程序的基本组成。 为了让大家更清楚的了解,我们来看一下中本聪客户端的逻辑结构中包含的功能模块,如下图所示:
图中四个功能模块共同构成一个比特币程序结构比特币客户端程序,称为全节点,其中“挖矿”部分用虚线标出,因为中本聪客户端不包含挖矿功能。 我的是另一个单独的程序。 我们已经看到了钱包的功能。 主要用于管理用户密钥,提供转账操作等功能,属于比特币前端功能。 其实钱包功能是可以独立的,特意提供了一个独立的钱包程序。 这部分的解释将在后面的章节中详细介绍。 接下来,我们主要描述“全区块链”和“网络路由”部分。 前面说了钱包只是前端功能,那么比特币的后端功能是什么呢? 见下文。
(1) 完整的区块链
中本聪客户端维护着完整的区块链账本数据,因此无需任何外部调用即可独立验证所有交易。 当然,其他一些节点只保留区块链的一部分(如区块头),可以通过一种称为“简单支付验证”(SPV)的方法完成支付验证。 这样的节点被称为“SPV 节点”。 除了中本聪客户端外,部分挖矿节点还保留了区块链数据的完整副本,而部分参与矿池挖矿的节点属于轻量级节点,必须依赖矿池服务器维护的全节点进行挖矿。 工作。 维护完整区块链数据的节点非常重要。 比特币网络之所以能够成为一个可信的去中心化网络,就是依赖于这些全节点。 现在,很多场合都提供了很多轻量级以方便使用。 节点(如轻钱包等),但是这些轻量级节点的正常使用只能通过全节点来完成,这是一种依赖。 如果网络中维护完整区块链数据的节点越来越少,比特币网络无论是在性能还是安全方面都会受到影响。
(2) 网络路由
比特币网络属于P2P网络架构,P2P也就是点对点的意思。 相比之下,“客户端-服务器”架构有一个提供服务功能的中央服务器,其他客户端通过调用服务器的功能来执行操作。 ,比如我们平时使用的微信、支付宝、网银等,如果提供商的服务器被关闭,这些软件将根本无法使用。 在对等网络中,各个节点共同提供网络服务,没有所谓的中央服务器。 因此,对等网络的网络体系结构中没有层次结构。 人人平等,各节点对外提供服务。 同时,它也在使用网络中其他节点提供的服务。 让'