Búsqueda de transacciones con códigos de operación que rara vez se usan para realizar pruebas

Estoy tratando de implementar un evaluador de secuencias de comandos y me gustaría obtener algunos datos de prueba reales de la cadena de bloques (testnet o mainnet). ¿Hay transacciones cuyos scriptSigs de entrada combinados con el scriptPubKey de la transacción anterior usan alguno/todos estos op_codes? Me gustaría compilar una colección de tales transacciones como vectores de prueba.

98: op_ver,
101: op_verif,
102: op_vernotif,
107: op_toaltstack,
108: op_fromaltstack,
109: op_2drop,
111: op_3dup,
112: op_2over,
113: op_2rot,
114: op_2swap,
115: op_ifdup,
116: op_depth,
119: op_nip,
120: op_over,
121: op_pick,
122: op_roll,
123: op_rot,
125: op_tuck,
139: op_1add,
140: op_1sub,
143: op_negate,
144: op_abs,
146: op_0notequal,
147: op_add,
148: op_sub,
154: op_booland,
155: op_boolor,
156: op_numequal,
157: op_numequalverify,
158: op_numnotequal,
159: op_lessthan,
160: op_greaterthan,
161: op_lessthanorequal,
162: op_greaterthanorequal,
163: op_min,
164: op_max,
165: op_within,
168: op_sha256,
170: op_hash256,
171: op_codeseparator,
Solo para asegurarse de que entiendo, ¿le gustaría una lista compilada de transacciones que tienen estos códigos OP_ en su scriptPubKey? ¿Preferirías una hoja de cálculo y qué información necesitas exactamente? TXID y ASM?
Me gustaría transacciones que gasten utxos con estos códigos de operación ya sea en el scriptPubKey o en el redimirScript.
Creo que los primeros bloques de testnet contienen un montón de transacciones inusuales como una especie de conjunto de pruebas. Así que ese podría ser un lugar para empezar a buscar.
@JimmySong Escribí este pequeño script PHP que creo que debería funcionar, pero después de ejecutarlo durante la noche durante más de 12 horas, rápidamente me di cuenta de que esto es bastante ineficiente y probablemente llevará demasiado tiempo. ¿Quizás alguien con conocimiento de SQL pueda utilizar esto para obtener la información requerida?
@NateEldredge, revisé los primeros 400 o más bloques de testnet y no encontré nada que use ninguno de estos códigos de script.
@JimmySong: Bien, perdón por la persecución inútil. Por supuesto, debería poder crear y gastar manualmente algunas transacciones como esta en testnet, lo que puede ser más conveniente que escribir el código para buscar las existentes.
Una búsqueda un poco más grande arrojó algunos tx interesantes en testnet. Los publicaré como mi propia respuesta.

Respuestas (1)

Investigué un poco con un analizador que escribí y encontré 6 transacciones que prueban muchos de los códigos de operación:

efdf1b981d7bba9c941295c0dfc654c4b5e40d7b9744819dd4f78b8e149898e1
9aa3a5a6d9b7d1ac9555be8e42596d06686cc5f76d259b06c560a207d310d5f5
c5d4b73af6eed28798473b05d2b227edd4f285069629843e899b52c2d1c165b7
74ea059a63c7ebddaee6805e1560b15c937d99a9ee9745412cbc6d2a0a5f5305
e335562f7e297aadeed88e5954bc4eeb8dc00b31d829eedb232e39d672b0c009
dc3aad51b4b9ea1ef40755a38b0b4d6e08c72d2ac5e95b8bebe9bd319b6aed7e

Estos están todos en testnet y prueban una gran cantidad de OP_CODES que solicité. Aquí todavía hay algunos que estoy buscando:

op_reserved
op_reserved1
op_reserved2
op_ver
op_verif
op_vernotif
op_2rot
op_2swap
op_1add
op_codeseparator
Eso será difícil. OP_RESERVED, OP_RESERVED1, OP_RESERVED2, OP_VER, OP_VERIF, OP_VERNOTIF hacen que el script falle inmediatamente, por lo que no pueden ocurrir (a menos que en una rama IF no ejecutada) en un gasto válido. OP_VERIF y OP_VERNOTIF incluso causan fallas cuando se encuentran en una rama IF no ejecutada.
Gracias @PieterWuille, estaba confundido al respecto. Entonces, ¿es muy parecido a OP_RETURN pero para sucursales IF? Supongo que solo necesito los últimos 4, entonces.