MyHush / hush3

Hush: Speak And Transact Freely
https://myhush.org
Other
15 stars 13 forks source link

Thread notify upstream fixes #95

Closed leto closed 4 years ago

leto commented 4 years ago

This is to close #87, needs testing.

@DenioD your PR was very close! It looks like you maybe thought some code was Sprout-specific so you didn't pull it in, but it's necessary. That is the code that actually calls SyncWithWallets() after the refactor.

leto commented 4 years ago

Looks like I have a compile error, looking into it

leto commented 4 years ago

Getting closer, dealing with these compile issues:

validationinterface.cpp: In function ‘void RegisterValidationInterface(CValidationInterface*)’:
validationinterface.cpp:37:69: error: ‘ResetRequestCount’ is not a member of ‘CValidationInterface’
     g_signals.BlockFound.connect(boost::bind(&CValidationInterface::ResetRequestCount, pwalletIn, _1));
                                                                     ^~~~~~~~~~~~~~~~~
validationinterface.cpp: In function ‘void UnregisterValidationInterface(CValidationInterface*)’:
validationinterface.cpp:41:72: error: ‘ResetRequestCount’ is not a member of ‘CValidationInterface’
     g_signals.BlockFound.disconnect(boost::bind(&CValidationInterface::ResetRequestCount, pwalletIn, _1));
                                                                        ^~~~~~~~~~~~~~~~~
validationinterface.cpp: In function ‘void ThreadNotifyWallets(CBlockIndex*)’:
validationinterface.cpp:149:48: error: ‘const struct Consensus::Params’ has no member named ‘NetworkUpgradeActive’
                 if (chainParams.GetConsensus().NetworkUpgradeActive(
                                                ^~~~~~~~~~~~~~~~~~~~
validationinterface.cpp:150:36: error: ‘class CBlockIndex’ has no member named ‘nHeight’; did you mean ‘SetHeight’?
                     pindex->pprev->nHeight, Consensus::UPGRADE_SAPLING)) {
                                    ^~~~~~~
                                    SetHeight
validationinterface.cpp:179:84: error: no matching function for call to ‘ReadBlockFromDisk(CBlock&, CBlockIndex*&, const Consensus::Params&)’
             if (!ReadBlockFromDisk(block, pindexLastTip, chainParams.GetConsensus())) {
                                                                                    ^
In file included from validationinterface.cpp:10:
main.h:810:6: note: candidate: ‘bool ReadBlockFromDisk(CBlock&, const CDiskBlockPos&, bool)’
 bool ReadBlockFromDisk(CBlock& block, const CDiskBlockPos& pos,bool checkPOW);
      ^~~~~~~~~~~~~~~~~
main.h:810:6: note:   no known conversion for argument 2 from ‘CBlockIndex*’ to ‘const CDiskBlockPos&’
main.h:811:6: note: candidate: ‘bool ReadBlockFromDisk(CBlock&, const CBlockIndex*, bool)’
 bool ReadBlockFromDisk(CBlock& block, const CBlockIndex* pindex,bool checkPOW);
      ^~~~~~~~~~~~~~~~~
main.h:811:6: note:   no known conversion for argument 3 from ‘const Consensus::Params’ to ‘bool’
validationinterface.cpp:206:87: error: no matching function for call to ‘ReadBlockFromDisk(CBlock&, CBlockIndex*&, const Consensus::Params&)’
             if (!ReadBlockFromDisk(block, blockData.pindex, chainParams.GetConsensus())) {
                                                                                       ^
In file included from validationinterface.cpp:10:
main.h:810:6: note: candidate: ‘bool ReadBlockFromDisk(CBlock&, const CDiskBlockPos&, bool)’
 bool ReadBlockFromDisk(CBlock& block, const CDiskBlockPos& pos,bool checkPOW);
      ^~~~~~~~~~~~~~~~~
main.h:810:6: note:   no known conversion for argument 2 from ‘CBlockIndex*’ to ‘const CDiskBlockPos&’
main.h:811:6: note: candidate: ‘bool ReadBlockFromDisk(CBlock&, const CBlockIndex*, bool)’
 bool ReadBlockFromDisk(CBlock& block, const CBlockIndex* pindex,bool checkPOW);
      ^~~~~~~~~~~~~~~~~
main.h:811:6: note:   no known conversion for argument 3 from ‘const Consensus::Params’ to ‘bool’
make[2]: *** [Makefile:4108: libbitcoin_server_a-validationinterface.o] Error 1
m

These are mostly caused by upstream ZEC code being refactored/changed and now having incompatible function signatures

leto commented 4 years ago

This needs some cleanup but is close to ready. There is also some code related to new signals sent to mining code that seems prudent to pull in, before this is merged. I have pulled in some but not all of the code for that.

leto commented 4 years ago

Those other changes I mentioned seem to be for multisig coinbase (with ZEC uses) but we do not have, so it doesn't seem needed.