new check-in resolves an issue with maximum message receive size (for now I set it to 10x the excessive block size). so this is effectively the max block size... Also added AdrianX's artwork and added //BU comments to make merging easier.
A systemic but very solvable issue was discovered switching between forks. Luckily it is generally resolvable by a few restarts (or maybe my patch). Worst case you must delete your blockchain and resync:
On testnet we now have 2 chains that are significantly divergent (XT and core). If a client is on the core chain and then is restarted and chooses the XT chain it has to unwind over 1000 blocks. This takes forever... I'm not sure if it is even working; its going but lots of threads seem blocked. Like the rpc handling ones. It may be possible to speed this up dramatically by skipping the checks in AcceptToMemoryPool (this should be ok because we already accepted the txn once).
however, what we really want to do in a case where we need to unwind more than about a day is to clear the txn memory pool, pop back to where the fork joins and wind forward from there. I'm wondering about the feasibility of this approach and how it will affect the balances in the wallet. Is there an API to basically clear the wallet balances and recalculate them from the best tip?
so either my "fix" worked or restarting bitcoin-qt did except ofc it unwound lots of txns getting to the XT fork but txns in the mempool are not relayed automatically anymore, right?
[
because:
bu/src/bitcoin-cli -testnet getmempoolinfo { "size" : 38580, "bytes" : 46700112 }
(I've been generating a lot of spam)
so I'm coding up an RPC call that is going to flush these txns on our poor unsuspecting testnet
by pushing an unsolicited INV on some node
... I think that this is important for us because what if the network forks and then some user wants to switch from Core to XT or BU?
do we tell him to delete his entire history? Instead, we can maybe add some fixes and plumbing to let it work.