解构已确认的比特币交易
本文讨论了比特币交易的内容。
我可能不太正确,但这是基于对bitcoinjs库的修改。 如果我错了,请随时纠正我。
我用于测试的存储库位于此处 。
如果您要尝试本文中的内容,请使用此版本 。
我只是注销一些我认为可以解释有关系统工作原理的信息。 与实际的bitcoinjs-lib没有太大的区别,但是对于所有生产案例,都使用bitcoinjs-lib仓库 ,而且由于master分支用于开发,因此也只有稳定的版本 。
可以在此处查看Blockchain.info的内存池中可用的未确认交易的列表。 每秒更新的交易更多。
出于本文的所有目的,除非另有说明,否则我们将检查此交易 。
本文的议程是引导您完成验证块中事务的存在,事务的内容,然后创建类似事务的过程。
先决条件:
$ git clone github.com/prahaladbelavadi/bitcoin-js-testing
$ cd ./bitcoin-js-testing
$ npm install
- 导航到此处的blocks目录并运行以下命令
$ cd ./myTest/blocks
$ node blocks.js
它以十六进制格式,输入脚本和块的高度注销事务。 未确认的交易没有区块高度,因为尚未包含在区块中。
以方框498303的十六进制格式,我们可以确认交易存在。
我们将剖析这笔交易。
Transaction Hex: 010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff50037f9a07174d696e656420627920416e74506f6f6c685b205a2b1f7bfabe6d6d36afe1910eca9405b66f97750940a656e38e2c0312958190ff8e98fd16761d220400000000000000aa340000d49f0000ffffffff02b07fc366000000001976a9148349212dc27ce3ab4c5b29b85c4dec643d764b1788ac0000000000000000266a24aa21a9ed72d9432948505e3d3062f1307a3f027a5dea846ff85e47159680919c12bf1e400120000000000000000000000000000000000000000000000000000000000000000000000000
我们将使用Blockcypher解码交易。
取交易十六进制并粘贴到解码器中。
事务解码器显示中继到网络的事务十六进制包含以下内容:
- 十六进制交易输入脚本
- 输出地址
- 输出脚本和类型
PS:由于它是一个coinbase事务,因此不包含输入地址。
我们可以看到它有一个先前的输入地址,该地址链接到区块链上先前记录的交易的交易哈希。
每个输出都需要有一个相应的输入及其签名,以证明它确实可以花费比特币,除非它是基于硬币的交易。
每个资源管理器根据其本地节点或他们选择跟踪的内容,以其自己的不同方式显示并跟踪指标。
我们可以在blockchain.info的解码器中观察到,它也显示了对其执行的不同操作。
在接下来的文章中,我打算展示如何组成您自己的事务并将其中继到网络。
由于我将不断在bitcoinjs-testing存储库的分支上尝试新的东西,并且可能与您的实验相冲突,因此,出于本文的目的,我打包了一个发行版。
在这里可用。 在发布本文时,它应包含代码。
随意分叉,玩转并尝试新的东西。
参考文献:
干杯!
From: https://hackernoon.com/deconstructing-a-confirmed-bitcoin-transaction-12fe84169100