Take the 2-minute tour ×
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It's 100% free, no registration required.

I'm studying scripts and am looking for strange or unusual scripts that have appeared in any of the *coin networks..(outside the standard ones listed on this page)

  • Is any one person, or website listing non-standard transactions that are not generated by the default client?

Ideally there would be an analysis of the script and what's going on, but I'm not picky. I'd even settle for a command line method to extract this data and discover it myself.

My goal is to learn what contracts are occurring in each network and determine the frequency of each. (How popular is multi-sig tx over time)

Alternatively, I can use this as a tool to learn how people are using the scripting language.

share|improve this question
add comment

3 Answers

Blockchain Info has a list of strange transactions that its nodes received but were unable to verify.

share|improve this answer
    
They all look like p2pool transactions. –  vertoe Jan 1 at 12:58
add comment

I have been looking into the same thing lately to build a "Bitcoin Bestiary" with strange transactions. I have downloaded bitcoin tools ( https://github.com/gavinandresen/bitcointools ). It has an option to trace non-standard transactions: dbdump.py --search-blocks=NONSTANDARD_CSCRIPTS

I have built on that a python program to study my local blk000x.dat files with the blockchain info. BCDataStream and deserialize come from bitcoin tools.

#!/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()

The program dumps the Script in all transactions with the previous block number (I have to improve that, but you can later find the right block). The whole file is about 3 GB.

In my Linux terminal I redirect the output to a scripts.txt file and then use grep to find commands, like:

grep 'IF ' scripts.txt > IF.txt

MIN, IF, DROP, SWAP, for instance, show interesting things. Some of them are errors (see https://bitcointalk.org/index.php?topic=67158.0), some I don't know.

share|improve this answer
add comment

Lacking any other resource to track notable transaction, the following answer is made CW so that anyone can edit it and update as needed.

  • Block 728: The most common payment type is pubkey-hash which first appeared here. [source]
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.