p9c / pod-archive

ParallelCoin's Omnibus Depositorie
https://parallelcoin.info
The Unlicense
9 stars 5 forks source link

Miner is not constructing blocks with correct merkle roots for additional tx's #128

Closed l0k18 closed 3 years ago

l0k18 commented 3 years ago

This is a pure bug in the kopach controller where there is a muddle happening somewhere between getting the template, constructing the other block version coinbase's tx set, and restoring the cached transactions when receiving a solution

l0k18 commented 3 years ago

completely rewrote the controller server, changed everything over to use the new templates.Message for jobs and for reconstructing blocks to submit to the chain. Currently mines happily but haven't tested transactions.

l0k18 commented 3 years ago

whew that was a big one!

Miner and controller have been rewritten with a new message type and now stores all 9 versions of the block's transactions (we will optimise it later if necessary), miners mine the block, the correct block is assembled and it is submitted.

Mempool now has a callback hook that triggers when there is a change in the mempool, this has been hooked to a closure that sends a signal to a channel, which is hooked into the controller which listens to this channel and when it gets a signal it gets the current latest block and then constructs new templates, and when it is running, sends them out immediately to start miners working on it.

It is now possible to use the rudimentary send and receive pages to send a transaction to the same wallet and see it in action when running on testnet.