Поиск транзакций с редко используемыми кодами операций для тестирования

Я пытаюсь реализовать оценщик сценариев и хотел бы получить реальные данные тестирования из блокчейна (тестовой или основной сети). Существуют ли транзакции, чьи входные scriptSigs в сочетании с scriptPubKey предыдущей транзакции используют какой-либо/все эти op_codes? Я хотел бы собрать коллекцию таких транзакций в качестве тестовых векторов.

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,
Просто чтобы убедиться, что я правильно понимаю, вам нужен скомпилированный список транзакций, которые имеют эти коды OP_ в своем scriptPubKey? Вы бы предпочли электронную таблицу и какая информация вам точно нужна? TXID и ASM?
Я хотел бы, чтобы транзакции, которые тратят utxos с этими кодами операций, были либо в scriptPubKey, либо в redeemScript.
Я считаю, что ранние блоки тестовой сети содержат кучу необычных транзакций в качестве своего рода набора тестов. Так что это может быть одним из мест для начала поиска.
@JimmySong Я написал этот небольшой PHP-скрипт , который, по моему мнению, должен работать, но, проработав его в течение ночи в течение 12 с лишним часов, я быстро понял, что это довольно неэффективно и, вероятно, займет слишком много времени. Возможно, кто-то со знанием SQL может использовать это для получения необходимой информации?
@NateEldredge, я проверил первые 400 или около того блоков тестовой сети и не нашел ничего, что использовало бы какой-либо из этих кодов скриптов.
@JimmySong: Ладно, извини за погоню за дикими гусями. Конечно, вы должны иметь возможность вручную создавать и проводить некоторые подобные транзакции в тестовой сети, что может быть более целесообразным, чем писать код для поиска существующих.
Немного больший поиск дал несколько интересных транзакций в тестовой сети. Я опубликую их как свой собственный ответ.

Ответы (1)

Я немного покопался с написанным мной синтаксическим анализатором и нашел 6 транзакций, которые проверяют множество кодов операций:

efdf1b981d7bba9c941295c0dfc654c4b5e40d7b9744819dd4f78b8e149898e1
9aa3a5a6d9b7d1ac9555be8e42596d06686cc5f76d259b06c560a207d310d5f5
c5d4b73af6eed28798473b05d2b227edd4f285069629843e899b52c2d1c165b7
74ea059a63c7ebddaee6805e1560b15c937d99a9ee9745412cbc6d2a0a5f5305
e335562f7e297aadeed88e5954bc4eeb8dc00b31d829eedb232e39d672b0c009
dc3aad51b4b9ea1ef40755a38b0b4d6e08c72d2ac5e95b8bebe9bd319b6aed7e

Все они находятся в тестовой сети и тестируют очень большое количество запрошенных мной OP_CODES. Вот еще те, которые я ищу:

op_reserved
op_reserved1
op_reserved2
op_ver
op_verif
op_vernotif
op_2rot
op_2swap
op_1add
op_codeseparator
Это будет тяжело. OP_RESERVED, OP_RESERVED1, OP_RESERVED2, OP_VER, OP_VERIF, OP_VERNOTIF немедленно приводят к сбою сценария, поэтому они не могут произойти (если только не в невыполненной ветке IF) в действительной трате. OP_VERIF и OP_VERNOTIF вызывают сбой даже в невыполненной ветке IF.
Спасибо @PieterWuille, меня это смутило. Так что это очень похоже на OP_RETURN, но для ветвей IF? Я думаю, мне просто нужны последние 4, тогда.