在本文中,我们将探究如何用于几乎实时的Bitcoin Core节点在bitcoin-qt控制器中运营命令。请注意,Bitcoin Core的大于空间拒绝(当前大约为250gb),比特率拒绝大大提升,并且如果在任何时间段正处于脱机状态,都将必须新的实时。
Bitcoin Core内置了检索数据、分解地址、发送到事务等命令。如果您对研发比特币应用程序或只是自学有关操作者Bitcoin Core的更好信息感兴趣,RPC控制器是一个很好的入门方法。我们将探寻一些基本的命令来检索有关网络、区块链和交易的信息。
加装比特币并等候将节点实时到网络后,关上控制器。运营bitcoin-qt(比特币核心的GUI)时,可以在窗口下拉菜单中寻找它。比特币RPC控制器拒绝接受各种命令,一般来说具有0或1个参数。还有一些方法必须多个参数,例如发送到或检验交易。
在本教程中,我们将用于以下基本命令来熟知控制器:基本信息1. getblockchaininfo2. getmininginfo3. getpeerinfo区块信息1. getblockcount2. getbestblockhash3. getblock hash4. getblockhash index事务信息1. getrawmempool2. getrawtransaction txid3. decoderawtransaction rawtx常规信息命令这些命令将各自回到具备各种信息的对象。例如, getblockchaininfo回到信息:{ "chain": "main", "blocks": 582101, "headers": 582101, "bestblockhash": "000000000000000000165bf4a8eaa460df4752002840009c29ec0adfd9376406", "difficulty": 7409399249090.253, "mediantime": 1561321207, "verificationprogress": 0.9999922936147396, "initialblockdownload": false, "chainwork": "000000000000000000000000000000000000000006d23718c9e22adc4275b706", "size_on_disk": 257091100656, "pruned": false, "softforks": [{ "id": "bip34", "version": 2, "reject": {"status": true }},{ "id": "bip66", "version": 3, "reject": {"status": true }},{ "id": "bip65", "version": 4, "reject": {"status": true }} ], "bip9_softforks": {"csv": { "status": "active", "startTime": 1462060800, "timeout": 1493596800, "since": 419328},"segwit": { "status": "active", "startTime": 1479168000, "timeout": 1510704000, "since": 481824} }, "warnings": ""}此命令有很多信息。
它为我们获取了确认最佳块以及在何处寻找所需的所有详细信息。我们还可以看见区块链的大小和构建的各种硬末端。第二个常规信息命令,网卓新闻网, getmininginfo回到以下对象:{ "blocks": 582102, "difficulty": 7409399249090.253, "networkhashps": 6.626238141514776e+019, "pooledtx": 3527, "chain": "main", "warnings": ""}区块和可玩性值也坐落于getblockchaininfoinfo命令中,但是在这里我们可以寻找:· 每秒网络哈希· 交易池中的交易数第三个常规信息命令是查询有关您的节点与之通信区块链数据的对等方的信息。
该命令: getpeerinfo回到对象数组。每个对象都有有关您的比特币核心实例当前相连到的对等节点的信息。如果您在路由器上关上了端口8333,则此数字的范围一般来说为10–50(有关在此处关上端口的更好信息)。
回到的信息还包括:· IP地址信息· 上次发送到/接管后的时间· 节点连接时间(长时间运行时间)· 版本/子版本· 其他网络信息此数组中对等点的总数命令连接数,但是您也可以用于命令getconnectioncount回到相连节点的数值。区块命令要检索有关一个区块的数据,我们首先必须一个区块索引或散列来标识该区块。
我们可以用于以下命令检索有关链上当前最佳区块的两个值: getblockcount回到当前的最佳区块索引:582102或者 getbestblockhash回到当前最差的区块哈希值:000000000000000000227508581434096917b80e3a4c981116cc8ff532aa48ef比特币区块链上的每个区块都有一个索引和一个哈希,我们可以用于它来查询有关它的详细信息。可以用于区块哈希必要查询块,也可以用于块索引间接查询区块。例如假设我们告诉要查询高度(索引)为530120的块。首先键入以下命令: getblockhash 530120回到哈希值:00000000000000000025c3a8404acf1cabc9fe0a2901f59828128c3bb16f7616接下来用于getblock命令检索区块数据: getblock 00000000000000000025c3a8404acf1cabc9fe0a2901f59828128c3bb16f7616用于特定哈希调用的getblock命令将回到:· 自该区块以来已证实区块的数量· 区块大小· 区块重量· 梅克尔根· 块中所有tx id的数组· 区块被挖出的时间· 区块随机数· 目前的可玩性系数· 交易数量(nTx)· 下一个/上一个区块哈希事务处理命令配置文件情况下,比特币不对交易编成索引。
要查询与您的钱包关联的事务以外的事务,必需首先在配置文件中关上索引。并转到设置选项关上配置文件以关上比特币配置文件(bitcoin.conf)。加到行:txindex=1加到此命令后,留存文件并重新启动Bitcoin Core。此过程有可能必须几个小时,因此设置过夜或在您不出时很简单。
一旦比特币核心索引了区块链,就可以用于getrawtransaction和解码器awtransaction命令分开查询任何交易。这或许是一个繁复的额外步骤,但是请求忘记,此设置也是运营雷电节点的必要条件。现在我们有一个索引的比特币节点正在运营,让我们寻找一些要解码的交易。我们可以用于以下命令查阅内存池中所有事务的ID getrawmempool此命令将回到当前在内存池中的(一般来说)成千上万个待处理事务的数组。
我们可以通过自由选择其中一个交易ID来查询特定交易。getrawtransaction 68ecbf8b6d78db0aa4969feb65c6d600bde02f33dbc84151139964fcf448af55这将回到完整交易:010000000152fb73aff8ae297ab294f0e4ddce76c63cfcdb10488582d6e7c894053a4325ea000000006b483045022100bc7852636a24fd1da1e14d04abc2c8a467b45f5f7922be47ed8cbd5f571904af0220239cb094a40a4b5d812096b82354bc4470823aeaf8658dd9c71a43327f4a29cd012102a1703f0092c3de5106379bce7fbf8689263e31ea8ed41723c8533c28de62cf16ffffffff02197c0800000000001976a914bf1cccd8e4256b5258ce66849e05f4a59f1edb8d88ac0000000000000000536a4c500003ad250002c5239e661ae029df7a66f02955e7a322413e8fbeb6448072b87b7a7c1304ac111052848276bb2bbbf5ad6612436a5d0fe8370702bd541feb2ffa416fa6194a21eb30a2be3060387bf87100000000这个十六进制字符串(我们称作十六进制)是经过编码的交易,可以用于以下代码展开解码: decoderawtransaction hex此命令回到一个对象,其中包括有关该事务的详细信息{ "txid": "68ecbf8b6d78db0aa4969feb65c6d600bde02f33dbc84151139964fcf448af55", "hash": "68ecbf8b6d78db0aa4969feb65c6d600bde02f33dbc84151139964fcf448af55", "version": 1, "size": 284, "vsize": 284, "weight": 1136, "locktime": 0, "vin": [{ "txid": "ea25433a0594c8e7d682854810dbfc3cc676cedde4f094b27a29aef8af73fb52", "vout": 0, "scriptSig": {"asm": "3045022100bc7852636a24fd1da1e14d04abc2c8a467b45f5f7922be47ed8cbd5f571904af0220239cb094a40a4b5d812096b82354bc4470823aeaf8658dd9c71a43327f4a29cd[ALL] 02a1703f0092c3de5106379bce7fbf8689263e31ea8ed41723c8533c28de62cf16","hex": "483045022100bc7852636a24fd1da1e14d04abc2c8a467b45f5f7922be47ed8cbd5f571904af0220239cb094a40a4b5d812096b82354bc4470823aeaf8658dd9c71a43327f4a29cd012102a1703f0092c3de5106379bce7fbf8689263e31ea8ed41723c8533c28de62cf16" }, "sequence": 4294967295} ], "vout": [{ "value": 0.00556057, "n": 0, "scriptPubKey": {"asm": "OP_DUP OP_HASH160 bf1cccd8e4256b5258ce66849e05f4a59f1edb8d OP_EQUALVERIFY OP_CHECKSIG","hex": "76a914bf1cccd8e4256b5258ce66849e05f4a59f1edb8d88ac","reqSigs": 1,"type": "pubkeyhash","addresses": [ "1JRWZiGXAm9n3b5FXopkW1wPifAtXwfjWC"] }},{ "value": 0.00000000, "n": 1, "scriptPubKey": {"asm": "OP_RETURN 0003ad250002c5239e661ae029df7a66f02955e7a322413e8fbeb6448072b87b7a7c1304ac111052848276bb2bbbf5ad6612436a5d0fe8370702bd541feb2ffa416fa6194a21eb30a2be3060387bf871","hex": "6a4c500003ad250002c5239e661ae029df7a66f02955e7a322413e8fbeb6448072b87b7a7c1304ac111052848276bb2bbbf5ad6612436a5d0fe8370702bd541feb2ffa416fa6194a21eb30a2be3060387bf871","type": "nulldata" }} ]}这里我们有:· 交易规模· 交易权重· 输出详细信息· 输入详细信息和数值/秒这里有很多信息,但是请注意,上面的交易没与其输出涉及的任何值。证实交易所在的区块在交易中均不能用。
蓄意遗漏这些细节是为了避免区块链反复不必要的数据。但是我们显然有充足的信息来查找每笔比特币交易中接到的金额,并且需要查找以前的交易输入。
用于这些命令不足以建构基本的区块浏览器。总结比特币核心RPC控制器是用于比特币节点增进交易和建构应用程序的中心。每个比特币实例都可以采访以前交易历史记录以及网络和矿业信息的完全恒定的分享数据库。
一般来说理解其中一些基本命令是比特币应用于程序开发和节点操作者中的关键步骤。可以通过多种不同的编程语言来采访这些命令,以建构用于和构建事务逻辑的API和应用程序。
可以从您自己的节点运营业务,并通过具备自定义用户界面的应用程序以编程方式追踪每个交易。
本文来源:bevictor伟德官网-www.e-bran.com