Is there a possibility of scooping the PoW in an invalid block? The process would be something like this: You'd connect to as many nodes as possible and watch all incoming mined blocks. When your software sees an invalid block, your software would submit a valid block with the invalid block's PoW. Your valid block would contain no transactions, in order to guarantee that it is valid.
I suspect this is not feasible, but I don't know why.
Miners hash the block headers. The block headers themselves contain the Merkle root of all the transactions in the block. If you change a single transaction, you change the Merkle root, and you change the hash of the header (which is your pow).
my concern is that it appears they were testing this faulty logic on testnet... had several invalid blocks on testnet as a result... and still deployed this to mainet the next day for the same result.
call me crazy, but was their intent to test this faulty code to see the result. was the desired result invalid blocks?
"The guy who received the double-spend that became invalid never thought he had it in the first place. His software would have shown the transaction go from "unconfirmed" to "invalid". If necessary, the UI can be made to hide transactions until they're sufficiently deep in the block chain."
I agree - this was just a 6.43701991 BTC (USD $170k at the time of writing) bug that could probably have been avoided.
Oooooof. I'm super curious with what they're trying to achieve with their template experiments. Occam would say maximizing revenue and fee ordering might allow them to make adjustments to the template faster? I would assume Core does much of what's obvious here already though.
As the article states, this appears to have been avoidable should they have sent the block proposal to core for validation.1
Based on what I know, I assume they are building their own in-house mining pool implementation to replace the current implementation which is not in-house. Probably to save on licensing/contracting costs?
I assumed there was a FOSS mining pool implementation that everyone was using but after googling around most appear to be GPL'd and/or archived. So bringing pool software development in house makes sense.
Footnotes