btcsuite / btcd

An alternative full node bitcoin implementation written in Go (golang)
https://github.com/btcsuite/btcd/blob/master/README.md
ISC License
6.2k stars 2.35k forks source link

Consensus conflict caused by maxWitnessItemsPerInput #1906

Closed brqgoo closed 1 year ago

brqgoo commented 1 year ago

Bitcoin has a consensus rule that limits the number of stack items in a row to 1000. However, a P2TR spend containing OP_SUCCESSx precedes this rule regardless.

I made a P2TR spend containing an OP_SUCCESSx opcode with 500,001 empty pushes, which as a result, caused a consensus conflict between btcd and core: https://blockstream.info/tx/73be398c4bdc43709db7398106609eea2a7841aaf3a4fa2000dc18184faa2a7e

Changing the maxWitnessItemsPerInput parameter from 500,000 to 4,000,000 solves the issue: https://github.com/btcsuite/btcd/blob/master/wire/msgtx.go#L103

MevaTheProducer commented 1 year ago

Hola a todos solo se Leer lo que escriben Todos mas no aplico en desarrollo jajajaj Bitcoin IS HERE the code is FREE :D