121 lines
7.5 KiB
Markdown
121 lines
7.5 KiB
Markdown
通过本文我们可以清楚的知道自己的的铭文在哪里,以及它是以什么样的形式构建的。
|
||
|
||
我们随便在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 |