And you potentially downloaded and validated the transaction twice if it happened to be relayed to you. Sounds like an ineffective filter. I guess Luke could build in the option to only peer with other Knots nodes but some Knots nodes would still have to peer with Core nodes.

Replies (2)

If my node happened to relay a transaction with a large OP_RETURN to your node, you would download the transaction from me, validate the transaction, and then determine that it violated your mempool policy and drop the transaction. Your node wouldn't relay the transaction to any other nodes. Then if the transaction were to be mined into a block (because it is consensus valid) your node would download and validate the transaction a second time. If you happened to be peered with several #Bitcoin Core 30 nodes it is possible that multiple nodes would relay the transaction to you. I'm not sure if the Bitcoin software has an efficient mechanism in place to drop a transaction it has previously seen and determined to violate the mempool policy or if it will repeat step 1 again of downloading, validating, and dropping. If you were peers with mostly Knots nodes you would likely not see the transaction at all until it ended up in a block. To answer your main question, my transaction with a large OP_RETURN would never be in your mempool.