Transactions
是否有在交易中發現的奇怪或不尋常的腳本列表?
我正在研究腳本,並正在尋找出現在任何 *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>),一些我不知道。