[Dev] Feathercoin 0.9.6.2 * Maintenance fix, build & upgrade issues notes.
-
I have seen that several times dunig my tests with 0.9.6.* . The ORPHAN BLOCK COUNTER going up to
ProcessBlock() ProcessBlock: ORPHAN BLOCK 751.It seems there was a number of forks happening, which where resolved later. I can’t remember the block height where it happened, so I can’t tell, that is is the same block where the messages started to show up
-
3 - 0.9.6.2 mergeTest cherry pick commit :
Changed paperwallet template and copyright strings
commit 07525719698e379f2c721e8e6ffdc6a08468c843 @wellenreiter01 wellenreiter01 committed on 9 Nov 2015
wellenreiter01 committed on 9 Nov 2015
main.cpp
error identified / in Meld merge tool.
There was a problem opening the file “/home/tony/projects/Feathercoin/src/main_LOCAL_17197.cpp”.
There was an encoding conversion error and it was needed to use a fallback character
Chinese character / comment?
-
yes, there are several everywhere in the code.
causing problems to open the files in qt-creator,
too -
Sync test failed, stalled at 1yr 17w - Log size so far 3.1GB.
last 1hr of log :
017-07-22 07:17:08 ProcessBlock: Preliminary checks
2017-07-22 07:17:08 ERROR: matches claimed amount, CheckProofOfWork() : hash doesn’t match nBits
2017-07-22 07:17:08 ProcessBlock() ProcessBlock: ORPHAN BLOCK 751, prev=2ecf35d05b978aabf35ae4f21d2db3f071e4a7e8fafa808d7a8539f392106e88
2017-07-22 07:17:20 ProcessBlock: Preliminary checks
2017-07-22 07:17:20 ERROR: matches claimed amount, CheckProofOfWork() : hash doesn’t match nBits
2017-07-23 10:25:57 ConnectBlock hashPrevBlock=8b8dc2aa0e7a22581c88f11d4ecdecc36db25c03f493c14a7ca962d143740dd5
2017-07-23 10:25:57 ConnectBlock view.GetBestBlock()=8b8dc2aa0e7a22581c88f11d4ecdecc36db25c03f493c14a7ca962d143740dd5
2017-07-23 10:25:57 AddToWalletIfInvolvingMe,hash=a5812c24f3d75f665bdc63ef6c642358c8ad345784032d50c8fc62b4eac44fe6 .
2017-07-23 10:25:57 FindStealthTransactions() tx:a5812c24f3d75f665bdc63ef6c642358c8ad345784032d50c8fc62b4eac44fe6,BOOST_FOREACH nOutputIdOuter=0 ,find txout…
2017-07-23 10:25:57 txout scriptPubKey= OP_DUP OP_HASH160 259393f4a14f2fb640493094cf405747fd6bc3c3 OP_EQUALVERIFY OP_CHECKSIG
2017-07-23 10:25:57 txout hash = a30ec729155f1f38f601b0a8cf9f0945a90f13a5a40260b6ca2a0b102a0d6b6d
2017-07-23 10:25:57 AddToWalletIfInvolvingMe,hash=482bf080c4efc2b1b5a8612598dad56c0ec5d3af092d997fe11e69dad614c6ea .
2017-07-23 10:25:57 FindStealthTransactions() tx:482bf080c4efc2b1b5a8612598dad56c0ec5d3af092d997fe11e69dad614c6ea,BOOST_FOREACH nOutputIdOuter=0 ,find txout…
2017-07-23 10:25:57 txout scriptPubKey= OP_DUP OP_HASH160 5a9f881f142964d8116a0c823616e7136d06d23d OP_EQUALVERIFY OP_CHECKSIG
2017-07-23 10:25:57 txout hash = 702ab3fecd1570cdef322f570483847dc437f661dc3db11a2098c8e8aaab1e98
2017-07-23 10:25:57 BOOST_FOREACH nOutputIdOuter=1 ,find txout…
2017-07-23 10:25:57 txout scriptPubKey= OP_DUP OP_HASH160 e01fd88db9645dae33b2f5bc17b8edaeeebd9408 OP_EQUALVERIFY OP_CHECKSIG
2017-07-23 10:25:57 txout hash = c03e2b97d49cfb1dbfec32445c68e18381f500c4cb0cece2d7a967c9f9025e9d
2017-07-23 10:25:57 AddToWalletIfInvolvingMe,hash=a127f272066bb491d5f7038f8bd810fd53c8d4dc021f66e33972b696956ddf33 .
2017-07-23 10:25:57 FindStealthTransactions() tx:a127f272066bb491d5f7038f8bd810fd53c8d4dc021f66e33972b696956ddf33,BOOST_FOREACH nOutputIdOuter=0 ,find txout…
2017-07-23 10:25:57 txout scriptPubKey= OP_DUP OP_HASH160 484709b19906fc8235c1b526dd9b5956c52991cc OP_EQUALVERIFY OP_CHECKSIG
2017-07-23 10:25:57 txout hash = bab751a3e34c311d9021fc48a3d15bd36a39161b89917d2fce2c1ccfe96a2f70
2017-07-23 10:25:57 BOOST_FOREACH nOutputIdOuter=1 ,find txout…
2017-07-23 10:25:57 txout scriptPubKey= OP_DUP OP_HASH160 72d179a1d3d9495ded9bc117fffcf39c480ec07b OP_EQUALVERIFY OP_CHECKSIG
2017-07-23 10:25:57 txout hash = 1c750af65cc6635a79603d2258087634874c0c89023645280b37316b6c122f80
2017-07-23 10:25:57 AddToWalletIfInvolvingMe,hash=0353351a21572e3993b8d31e83bd693397163e30f9f706cebbb71bcf341b4a2a .
2017-07-23 10:25:57 FindStealthTransactions() tx:0353351a21572e3993b8d31e83bd693397163e30f9f706cebbb71bcf341b4a2a,BOOST_FOREACH nOutputIdOuter=0 ,find txout…
2017-07-23 10:25:57 txout scriptPubKey= OP_DUP OP_HASH160 e99a3f5099e162d75fd7c4e6ed140799cce45481 OP_EQUALVERIFY OP_CHECKSIG
2017-07-23 10:25:57 txout hash = 114941f6d8356ddcd5ba40651dc1791fde3dfdab605887e84988ba70ab82aea0
2017-07-23 10:25:57 BOOST_FOREACH nOutputIdOuter=1 ,find txout…
-
re: 0.9.6.2 merge to 0.11.2
https://github.com/wrapperband/Feathercoin/pull/1/commits/e6e74b08695852dfe0506f2f031df78fee23b8db
src/qt/forms/debugdialog.ui
It appears that Lizhi has reused debugdialog from stealth coin coin search to demo smart contracts. Will save SX debug as debugdialog.ui.1 till resolved / contract test assesed.
-
main.h
From 0.11.2
/** Default for -blockmaxsize and -blockminsize, which control the range of sizes the mining code will create /
static const unsigned int DEFAULT_BLOCK_MAX_SIZE = 750000;
static const unsigned int DEFAULT_BLOCK_MIN_SIZE = 0;
/ Default for -blockprioritysize, maximum space for zero/low-fee transactions /
static const unsigned int DEFAULT_BLOCK_PRIORITY_SIZE = 50000;
/ Default for accepting alerts from the P2P network. /
static const bool DEFAULT_ALERTS = true;
/* The maximum size for transactions we’re willing to relay/mine /
static const unsigned int MAX_STANDARD_TX_SIZE = 100000;
/* Maximum number of signature check operations in an IsStandard() P2SH script /
static const unsigned int MAX_P2SH_SIGOPS = 15;
/* The maximum number of sigops we’re willing to relay/mine in a single tx */
static const unsigned int MAX_STANDARD_TX_SIGOPS = MAX_BLOCK_SIGOPS/5;verse 0.9.6.1 –
/* Maturity threshold for PoW base transactions, in blocks (confirmations) */
extern int nBaseMaturity;
static const int BASE_MATURITY = 100;/** The maximum allowed size for a serialized block, in bytes (network rule) /
static const unsigned int MAX_BLOCK_SIZE = 1000000;
/* Default for -blockmaxsize and -blockminsize, which control the range of sizes the mining code will create /
static const unsigned int DEFAULT_BLOCK_MAX_SIZE = 250000;
static const unsigned int DEFAULT_BLOCK_MIN_SIZE = 0;
/ Default for -blockprioritysize, maximum space for zero/low-fee transactions /
static const unsigned int DEFAULT_BLOCK_PRIORITY_SIZE = 17000;
/ The maximum size for transactions we’re willing to relay/mine /
static const unsigned int MAX_STANDARD_TX_SIZE = 100000;
/* The maximum allowed number of signature check operations in a block (network rule) */
static const unsigned int MAX_BLOCK_SIGOPS = MAX_BLOCK_SIZE/50;from 0.11.2
static const int MAX_BLOCKS_IN_TRANSIT_PER_PEER = 16;
/** Timeout in seconds during which a peer must stall block download progress before being disconnected. /
static const unsigned int BLOCK_STALLING_TIMEOUT = 2;
/* Number of headers sent in one getheaders result. We rely on the assumption that if a peer sends- less than this number, we reached its tip. Changing this value is a protocol upgrade. /
static const unsigned int MAX_HEADERS_RESULTS = 2000;
/* Size of the “block download window”: how far ahead of our current height do we fetch? - Larger windows tolerate larger download speed differences between peer, but increase the potential
- degree of disordering of blocks on disk (which make reindexing and in the future perhaps pruning
- harder). We’ll probably want to make this a per-peer adaptive value at some point. /
static const unsigned int BLOCK_DOWNLOAD_WINDOW = 1024;
/* Time to wait (in seconds) between writing blocks/block index to disk. /
static const unsigned int DATABASE_WRITE_INTERVAL = 60 * 60;
/* Time to wait (in seconds) between flushing chainstate to disk. /
static const unsigned int DATABASE_FLUSH_INTERVAL = 24 * 60 * 60;
/* Maximum length of reject messages. */
static const unsigned int MAX_REJECT_MESSAGE_LENGTH = 111;
From 0.9.6.2
static const int MAX_BLOCKS_IN_TRANSIT_PER_PEER = 128;
/** Timeout in seconds before considering a block download peer unresponsive. */
static const unsigned int BLOCK_DOWNLOAD_TIMEOUT = 60;/** AuxPow Block versions for sanity checks. /
/* bare AuxPoW block version which will be modulated further. /
static const int BLOCK_VERSION_AUXPOW_BARE = CBlockHeader::CURRENT_VERSION | (AUXPOW_CHAIN_ID * BLOCK_VERSION_CHAIN_START);
/* version when AuxPoW exists on the block /
static const int BLOCK_VERSION_AUXPOW_WITH_AUX = BLOCK_VERSION_AUXPOW_BARE | BLOCK_VERSION_AUXPOW;
/* version when no AuxPoW exists on the block */
static const int BLOCK_VERSION_AUXPOW_WITHOUT_AUX = BLOCK_VERSION_AUXPOW_BARE & ~BLOCK_VERSION_AUXPOW;#ifdef USE_UPNP
static const int fHaveUPnP = true;
#else
static const int fHaveUPnP = false;
#endif - less than this number, we reached its tip. Changing this value is a protocol upgrade. /
-
Test : failed
QRcodes in 0.9.6.1 - Only the buttons are visible? has the ui file gone? -
@wrapper without the ui file you’d get errors during compile, as some signals/slots are missing.
-
@Wellenreiter said in [Dev] Feathercoin 0.9.6.2 * Maintenance fix & Issues notes for 0.11.2:
@wrapper without the ui file you’d get errors during compile, as some signals/slots are missing.
This is testing the 0.9.6.1 release. Just noting, haven’t investigated why …
-
@wrapper I have the same with 0.11.2
buttons are there, but nothing happens -
Building 0.11.2 - merge should be LogPrintf(" space …
Noticed this warning, that could be fixed. Noting.
wallet/wallet.cpp:2746:27: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
LogPrintf(“pkExtracted=%“PRIszu”:%s\n”, pkExtracted.size(), HexStr(pkExtracted).c_str()); //Is empty -
@wrapper said in [Dev] Feathercoin 0.9.6.2 * Maintenance fix & Issues notes for 0.11.2:
Building 0.11.2 - merge should be LogPrintf(" space …
Noticed this warning, that could be fixed. Noting.
wallet/wallet.cpp:2746:27: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
LogPrintf(“pkExtracted=%“PRIszu”:%s\n”, pkExtracted.size(), HexStr(pkExtracted).c_str()); //Is emptyThis will HAVE to be fixed for the next release, the main issue is the MacOS build will fail on this warning… linux and windows the build continues with the warning.
-
@AcidD Hate to pile on another request, but can you target at least El Capitan compatibility for the next official build? The 0.9.6.1 build cannot run on 10.11, so I’m stuck with looking at a yellow upgrade banner for a while. Did you compile on 10.12 for a reason, deps, etc.?
-
@AcidD Sorry, that wasn’t a very “community effort” post I made… “Ask not what Feathercoin (dev’s) can do for you, ask what you can do for Feathercoin” :)
I’ll try my hand at compiling the official 0.9.6.1 release on 10.11 (physical Mac, not VM’s!) given your instructions here. 'Bout time I did some Mac compiling, been living in the linux world too long. I do have a 10.12 system to test forward compatibility.
DIY, baby!
-
@bluebox said in [Dev] Feathercoin 0.9.6.2 * Maintenance fix & Issues notes for 0.11.2:
@AcidD Sorry, that wasn’t a very “community effort” post I made… “Ask not what Feathercoin (dev’s) can do for you, ask what you can do for Feathercoin” :)
I’ll try my hand at compiling the official 0.9.6.1 release on 10.11 (physical Mac, not VM’s!) given your instructions here. 'Bout time I did some Mac compiling, been living in the linux world too long. I do have a 10.12 system to test forward compatibility.
DIY, baby!
Follow this one
https://forum.feathercoin.com/topic/8769/guide-build-feathercoind-feathercoin-qt-v0-9-3-1-on-macos-sierrait’s a proper guide I wrote for the 0.9.X series…it is still valid for 0.9.6.1
See post 1.
-
@bluebox said in [Dev] Feathercoin 0.9.6.2 * Maintenance fix & Issues notes for 0.11.2:
@AcidD Hate to pile on another request, but can you target at least El Capitan compatibility for the next official build? The 0.9.6.1 build cannot run on 10.11, so I’m stuck with looking at a yellow upgrade banner for a while. Did you compile on 10.12 for a reason, deps, etc.?
Hi, Please try the download at Feathercoin.com now.
-
@AcidD Works perfectly, thanks!
-
[Dev] Feathercoin 0.9.6.2 * Maintenance fix, build & upgrade issues notes.
Sync speed up recommendations / switches available :
feathercoin-qt -maxorphanblocks=10000 -maxorphantx=10000 -shrinkdebugfile
Blockchain sync speed investigation / improvements and changes.
wallet.cpp - Contains non UTF-8 characters - translated and removed
- Contains unnecessary non-debug / development messages - commented out.main.cpp - Contains unnecessary non-debug / development messages - commented out.
db.cpp - Contains unnecessary non-debug / development messages - commented out.
net.cpp - Contains unnecessary non-debug / development messages - commented out.
util.ccp - Contains unnecessary non-debug / development messages - commented out.
util.h - Contains unnecessary non-debug / development messages - commented out.
noui.cpp - Contains unnecessary non-debug / development messages - commented out.
leveldbwrapper.cpp - Contains unnecessary non-debug / development messages - commented out.
-
Change Oprhan, ERROR to be a debug error. Orphans appear in the chain as part of the normal operation of the blockchain.
main.cpp line 1502
bool CheckProofOfWork(uint256 hash, unsigned int nBits) { CBigNum bnTarget; bnTarget.SetCompact(nBits); // Check range if (bnTarget <= 0 || bnTarget > Params().ProofOfWorkLimit()) return error("Check range CheckProofOfWork() : nBits below minimum work"); // Check proof of work matches claimed amount // LogPrintf("CheckProofOfWork() hash=%s \n",hash.ToString().c_str()); // LogPrintf("CheckProofOfWork() nBits=%i \n",nBits); // LogPrintf("CheckProofOfWork() bnTarget.getuint256=%s \n",bnTarget.getuint256().ToString().c_str()); if (hash > bnTarget.getuint256()) return error("matches claimed amount, CheckProofOfWork() : hash doesn't match nBits"); return true; }
Original Code
if (hash > bnTarget.getuint256()) { if (fDebug) LogPrintf("matches claimed amount, CheckProofOfWork() : hash doesn't match nBits"); } return true; return true; }
Updated code
-
Remaining Messages :
2017-08-12 10:33:13 ProcessBlock() ProcessBlock: ORPHAN BLOCK 135, prev=5adbae1967ce709f0a64d13a248043af2aa628851896655890604a9390e4d6f2
main.cpp Line 3208
{ LogPrintf("ProcessBlock() ProcessBlock: ORPHAN BLOCK %lu, prev=%s\n", (unsigned long)mapOrphanBlocks.size(), pblock->hashPrevBlock.ToString()); // Accept orphans as long as there is a node to request its parents from if (pfrom) {
Original code
{ if (fDebug) LogPrintf("ProcessBlock() ProcessBlock: ORPHAN BLOCK %lu, prev=%s\n", (unsigned long)mapOrphanBlocks.size(), pblock->hashPrevBlock.ToString());
Updated code