解构已确认的比特币交易

本文讨论了比特币交易的内容。
我可能不太正确,但这是基于对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的十六进制格式,我们可以确认交易存在。

解构已确认的比特币交易
十六进制中的498303

我们将剖析这笔交易。

Transaction Hex: 010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff50037f9a07174d696e656420627920416e74506f6f6c685b205a2b1f7bfabe6d6d36afe1910eca9405b66f97750940a656e38e2c0312958190ff8e98fd16761d220400000000000000aa340000d49f0000ffffffff02b07fc366000000001976a9148349212dc27ce3ab4c5b29b85c4dec643d764b1788ac0000000000000000266a24aa21a9ed72d9432948505e3d3062f1307a3f027a5dea846ff85e47159680919c12bf1e400120000000000000000000000000000000000000000000000000000000000000000000000000

我们将使用Blockcypher解码交易。

取交易十六进制并粘贴到解码器中。

解构已确认的比特币交易
Coinbase交易解码器

事务解码器显示中继到网络的事务十六进制包含以下内容:

  • 十六进制交易输入脚本
  • 输出地址
  • 输出脚本和类型

PS:由于它是一个coinbase事务,因此不包含输入地址。

如果我们看一看这个解码交易从块498303

解构已确认的比特币交易
有效支出交易已解码

我们可以看到它有一个先前的输入地址,该地址链接到区块链上先前记录的交易的交易哈希。

每个输出都需要有一个相应的输入及其签名,以证明它确实可以花费比特币,除非它是基于硬币的交易。

每个资源管理器根据其本地节点或他们选择跟踪的内容,以其自己的不同方式显示并跟踪指标。

解构已确认的比特币交易
随机比特币交易在blockchain.info解码器上解码

我们可以在blockchain.info解码器中观察到,它也显示了对其执行的不同操作。

在接下来的文章中,我打算展示如何组成您自己的事务并将其中继到网络。

由于我将不断在bitcoinjs-testing存储库的分支上尝试新的东西,并且可能与您的实验相冲突,因此,出于本文的目的,我打包了一个发行版。

在这里可用。 在发布本文时,它应包含代码。

随意分叉,玩转并尝试新的东西。

参考文献:

干杯!

From: https://hackernoon.com/deconstructing-a-confirmed-bitcoin-transaction-12fe84169100