hts/apps/migrant/docs/btc.md

121 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

通过本文我们可以清楚的知道自己的的铭文在哪里,以及它是以什么样的形式构建的。
我们随便在Ordinals的浏览器上找到一个Inscription交易比如2c69dcbfed33a02154e45285db2494aa3a9083ff39f31e90edeecd4791731c32。
获取到这个交易的rawtransaction通过btc.com或其他比特币浏览器网站就可以获取到是这样的
0200000000010132e88b831542e2ef752725db3bc12f1985f58a8973216ecb8358a39b51542d890900000000fdffffff01220200000000000016001429905f39cb0ce73cc04316e9a6d6cf043df853730340d9e4a42ba1cde3ee8e6166ad3bb314944ece41bb132ae0908283af67bd23e6b9a70cd6d75205ed964bb1d16701b1d2163133cdc873fe9b509ed81362aba746bb8820117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423eac062a34852d8801750063036f7264010118746578742f706c61696e3b636861727365743d7574662d38003a7b2270223a226272632d3230222c226f70223a226d696e74222c227469636b223a2273617473222c22616d74223a22313030303030303030227d6821c0117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423e00000000
下面我们就来分析一下这些数字都是什么意思。开始之前我们需要先介绍一些编程的基础概念:
bit计算机处理的最小二进制单位即0或1
字节byte每个字节由8个bit组成0001 0001
十六进制hex每数到16就往前进一位的计数方式19的数字和十进制一样1015的标记分别用abcdef标识比如3a换成十进制就是3*16+10=58。之所以用十六进制是因为十六进制的f换成二进制刚好是1111也就是说一个字节的内容可以用两个十六进制字符完整表示。
上面的rawtransaction中也是由许多个十六进制的数字表示的其中每两个可见字符就是一个十六进制字节。
字段名 说明 字段十进制长度byte 内容
version 交易版本号 4 02000000
maker 1 00
flag witness标志位 1 01
input count 输入的数量 1 01
previous output txid 输入的前一个交易哈希 32 32e88b831542e2ef752725db3bc12f1985f58a8973216ecb8358a39b51542d89
previous output index 输入的前一个交易索引 4 09000000
sequence 序列号 4 fdffffff
output count 输出数量 1 01
value 输出的比特币数量 8 2202000000000000
pkscript len 公钥脚本长度 1 16
pkscript 公钥脚本 22 001429905f39cb0ce73cc04316e9a6d6cf043df85373
witness item count witness数量 1 03
witness signature len witness签名长度 1 40
witness signature witness签名 64 d9e4a42ba1cde3ee8e6166ad3bb314944ece41bb132ae0908283af67bd23e6b9a70cd6d75205ed964bb1d16701b1d2163133cdc873fe9b509ed81362aba746bb
witness taproot script len taproot脚本长度 1 88
witness taproot script (ordinal) taproot脚本 136 20117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423eac062a34852d8801750063036f7264010118746578742f706c61696e3b636861727365743d7574662d38003a7b2270223a226272632d3230222c226f70223a226d696e74222c227469636b223a2273617473222c22616d74223a22313030303030303030227d68
witness control block len witness 控制块长度 1 21
witness control block witness 控制块 33 c0117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423e
timelock 时间锁 4 00000000
其中witness taproot script中就保存了我们铸造的铭文我们来进一步分析
字段名 长度 内容 可读内容
pubkey len 1 20
pubkey 32 117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423e
OP_CHECKSIG 1 ac
taproot hash 8 062a34852d880175
OP_FALSE 1 00
OP_IF 1 63
protocol name len 1 03
protocol name 3 6f7264 ord
OP_1 1 01
OP_1 1 01
content type len 1 18
content type 24 746578742f706c61696e3b636861727365743d7574662d38 text/plain;charset=utf-8
OP_0 1 00
inscription len 1 3a
inscription 58 7b2270223a226272632d3230222c226f70223a226d696e74222c227469636b223a2273617473222c22616d74223a22313030303030303030227d {"p":"brc-20","op":"mint","tick":"sats","amt":"100000000"}
OP_ENDIF 1 68
我们可以看到中OP_FALSE开始就完全是Ordinals协议定义的内容了这里面就存储了铭文的知己内容。这里的内容是纯文本如果是图片的话Inscription字段就会很长。
好了现在任何一个Ordinals的交易你也会分析了可以不用浏览器也知道铭文的内容了虽然你并不想自己去解析
```bash
ceshi@gogo:~$ $bcli getrawtransaction 2c69dcbfed33a02154e45285db2494aa3a9083ff39f31e90edeecd4791731c32
0200000000010132e88b831542e2ef752725db3bc12f1985f58a8973216ecb8358a39b51542d890900000000fdffffff01220200000000000016001429905f39cb0ce73cc04316e9a6d6cf043df853730340d9e4a42ba1cde3ee8e6166ad3bb314944ece41bb132ae0908283af67bd23e6b9a70cd6d75205ed964bb1d16701b1d2163133cdc873fe9b509ed81362aba746bb8820117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423eac062a34852d8801750063036f7264010118746578742f706c61696e3b636861727365743d7574662d38003a7b2270223a226272632d3230222c226f70223a226d696e74222c227469636b223a2273617473222c22616d74223a22313030303030303030227d6821c0117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423e00000000
ceshi@gogo:~$ $bcli decoderawtransaction 0200000000010132e88b831542e2ef752725db3bc12f1985f58a8973216ecb8358a39b51542d890900000000fdffffff01220200000000000016001429905f39cb0ce73cc04316e9a6d6cf043df853730340d9e4a42ba1cde3ee8e6166ad3bb314944ece41bb132ae0908283af67bd23e6b9a70cd6d75205ed964bb1d16701b1d2163133cdc873fe9b509ed81362aba746bb8820117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423eac062a34852d8801750063036f7264010118746578742f706c61696e3b636861727365743d7574662d38003a7b2270223a226272632d3230222c226f70223a226d696e74222c227469636b223a2273617473222c22616d74223a22313030303030303030227d6821c0117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423e00000000
{
"txid": "2c69dcbfed33a02154e45285db2494aa3a9083ff39f31e90edeecd4791731c32",
"hash": "1f02ee6a7d60dd9249757d2ccb5960ea6f401c79623f9de1a9334f9a0548900d",
"version": 2,
"size": 321,
"vsize": 142,
"weight": 567,
"locktime": 0,
"vin": [
{
"txid": "892d54519ba35883cb6e2173898af585192fc13bdb252775efe24215838be832",
"vout": 9,
"scriptSig": {
"asm": "",
"hex": ""
},
"txinwitness": [
"d9e4a42ba1cde3ee8e6166ad3bb314944ece41bb132ae0908283af67bd23e6b9a70cd6d75205ed964bb1d16701b1d2163133cdc873fe9b509ed81362aba746bb",
"20117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423eac062a34852d8801750063036f7264010118746578742f706c61696e3b636861727365743d7574662d38003a7b2270223a226272632d3230222c226f70223a226d696e74222c227469636b223a2273617473222c22616d74223a22313030303030303030227d68",
"c0117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423e"
],
"sequence": 4294967293
}
],
"vout": [
{
"value": 0.00000546,
"n": 0,
"scriptPubKey": {
"asm": "0 29905f39cb0ce73cc04316e9a6d6cf043df85373",
"desc": "addr(bc1q9xg97wwtpnnneszrzm56d4k0qs7ls5mn5kqenh)#92wyzvnt",
"hex": "001429905f39cb0ce73cc04316e9a6d6cf043df85373",
"address": "bc1q9xg97wwtpnnneszrzm56d4k0qs7ls5mn5kqenh",
"type": "witness_v0_keyhash"
}
}
]
}
```
7b2270223a226272632d3230222c226f70223a226d696e74222c227469636b223a2273617473222c22616d74223a22313030303030303030227d
{"p":"brc-20","op":"mint","tick":"sats","amt":"100000000"}
content type 24 746578742f706c61696e3b636861727365743d7574662d38 text/plain;charset=utf-8
e7454db518ca3910d2f17f41c7b215d6cba00f29bd186ae77d4fcd7f0ba7c0e1
fdf43592fed06578807c24443b30dded5c7fdfca831b9db17fdb194080ac0a26i0
pk(0494b9d3e76c5b1629ecf97fff95d7a4bbdac87cc26099ada28066c6ff1eb9191223cd897194a08d0c2726c5747f1db49e8cf90e75dc3e3550ae9b30086f3cd5aa)#4clk3zwz