Transactions

是否有在交易中發現的奇怪或不尋常的腳本列表?

  • April 14, 2021

我正在研究腳本,並正在尋找出現在任何 *coin 網路中的奇怪或不尋常的腳本..(在本頁列出的標準腳本之外

  • 是否有任何人或網站列出了預設客戶端未生成的非標準交易?

理想情況下,會對腳本和發生的事情進行分析,但我並不挑剔。我什至會選擇一種命令行方法來提取這些數據並自己發現它。

我的目標是了解每個網路中發生的契約並確定每個契約的頻率。(隨著時間的推移,多重簽名交易有多受歡迎)

或者,我可以將其用作了解人們如何使用腳本語言的工具。

Blockchain Info 有一個其節點收到但無法驗證的奇怪交易列表。

我最近一直在研究同樣的事情,以建立一個帶有奇怪交易的“比特幣寓言”。我已經下載了比特幣工具( <https://github.com/gavinandresen/bitcointools>)。它有一個跟踪非標準事務的選項:dbdump.py –search-blocks=NONSTANDARD_CSCRIPTS

我已經建立了一個 python 程序來研究我的本地 blk000x.dat 文件和區塊鏈資訊。BCDataStream 和反序列化來自比特幣工具。

#!/usr/bin/env python 

from BCDataStream import *
import deserialize

def extract_script(d):

for t in d['transactions']:


    for txOut in t['txOut']:
         print  "Prev hash: "+(d['hashPrev'][::-1]).encode('hex')+" Script: "+deserialize.decode_script(txOut['scriptPubKey'])+'\n'   


return None


def findlock(filename):

   f = open(filename, 'r')

   magic=f.read(4)
   magicref='f9beb4d9'.decode('hex')

   while magic:
       size=f.read(4)[::-1].encode('hex')
       N=int(size,16)

       blk = deserialize.BCDataStream()
       blk.write(f.read(N))
       d=deserialize.parse_Block(blk)
       extract_script(d)

       magic=f.read(4)

   f.close()
   return None

def test():
    findlock('blk0001.dat')
    findlock('blk0002.dat')
    findlock('blk0003.dat')


if __name__ == '__main__':
   test()

該程序將腳本轉儲到具有前一個塊號的所有事務中(我必須改進它,但您稍後可以找到正確的塊)。整個文件大約 3 GB。

在我的 Linux 終端中,我將輸出重定向到 scripts.txt 文件,然後使用 grep 查找命令,例如:

grep ‘IF’ scripts.txt > IF.txt

例如,MIN、IF、DROP、SWAP 顯示有趣的東西。其中一些是錯誤(見<https://bitcointalk.org/index.php?topic=67158.0>),一些我不知道。

引用自:https://bitcoin.stackexchange.com/questions/5883