[Dev] Feathercoin 0.9.6.2 * Maintenance fix, build & upgrade issues notes.
-
Results of Sync Speed Tests
Found very interesting Result from Sync speed Tests :::::
The sync speed dropped from ~710 Blocks per minute to ~670 Blocks per minute
After the synchronsiation passed the Hard Fork for : One minute Blocks, Neoscrypt and eHRC additional calculations.
This is actually impressive as we are processing 2.5 times the amount of blocks and re-targeting every block! It indicates that Neoscrypt is efficient. Thanks @Ghostlander.
Although it might also be effected by other factors, such as the increasing number of transactions, it mean that it would be worthwhile to do the Neoscrypt update :
https://github.com/ghostlander/Phoenixcoin/commit/ddbdbf6cbff4ca52f87268f28c60d588bf843344
I suggest we test that in 0.9.6.2 as the best version / (none alpha) we have at the moment.
-
Results of dbcache test
Comparison shows a slight improvement with dbcache set to 3000, particularly as glitch in initial test associated with dropout, or network effect.
It may be worth while to increase default to 1000 from 300, minor downside of disk space / memory.
-
Test changing max outbound connections
Test upping default from lowly 8 to more reasonable 30
net.cpp
static const int MAX_OUTBOUND_CONNECTIONS = 30;
1st test : slower only maintained 3 connections.
Up from 125 to 200:
int nMaxConnections = 200; -
It takes some time to build up more connections, I usually have 8 connections and after one or more hours it goes up to 10-12.
The explorer hosts maintain given or taken ~ 100 peers after some days being online -
LTC also recommends 1000MB max dbcache. Testing increase min from 4 to 10.
src/txdb.h
// -dbcache default (MiB) static const int64_t nDefaultDbCache = 100; // max. -dbcache in (MiB) static const int64_t nMaxDbCache = sizeof(void*) > 4 ? 4096 : 1024; // min. -dbcache in (MiB) static const int64_t nMinDbCache = 4;
-
stealth.cpp - 0.9.6.2
std::string CStealthAddress::Encoded() const { // https://wiki.unsystem.net/index.php/DarkWallet/Stealth#Address_format // [version] [options] [scan_key] [N] ... [Nsigs] [prefix_length] ... data_chunk raw; raw.push_back(stealth_version_byte); raw.push_back(options); raw.insert(raw.end(), scan_pubkey.begin(), scan_pubkey.end()); raw.push_back(1); // number of spend pubkeys raw.insert(raw.end(), spend_pubkey.begin(), spend_pubkey.end()); raw.push_back(0); // number of signatures raw.push_back(0); // ? AppendChecksum(raw); return EncodeBase58(raw); };
In this shadow coding why is raw.push_back(0); // ? called twice?
-
[FAQ] How does the stealth keys work
stealth.cpp
int StealthSecret(ec_secret& secret, ec_point& pubkey, const ec_point& pkSpend, ec_secret& sharedSOut, ec_point& pkOut) { /* send: secret = ephem_secret, pubkey = scan_pubkey receive: secret = scan_secret, pubkey = ephem_pubkey c = H(dP) Q = public scan key (EC point, 33 bytes) d = private scan key (integer, 32 bytes) R = public spend key f = private spend key Q = dG // Single use private key R = fG Sender (has Q and R, not d or f): P = eG c = H(eQ) = H(dP) R' = R + cG Recipient gets R' and P test 0 and infinity? */
-
@wrapper said in [Dev] Feathercoin 0.9.6.2 * Maintenance fix, build & upgrade issues notes.:
In this shadow coding why is raw.push_back(0); // ? called twice?
Raw is an array like data structure and you add two items to the array
-
[FAQ] How do I create a file of the Feathercoin blockchain that I can import into other wallets?
You can concatenate the FTC blocks into a bootstrap.dat file. This bootstrap.dat file can be copied into the .feathercoin or blockchain directory of the new wallet.
When it starts the new wallet will recognize the bootstrap.dat and import the blockchain from disk, but will do all the normal synchronization validation checks in the process. Do not restart as it will rename the bootstrap.dat and proceed online.
You can lelete the bootsrap.dat after the sync.
Find your local blockchain:
cd ~/.feathercoin/blocks
Concatenate all your blkxxxxx.dat files and place the result in bootstrap.dat:
cat blk* > bootstrap.dat
In Windows :
COPY /b blk0001.dat+blk0002.dat bootstrap.dat
-
Sync speed test 0.9.6.2-dev using Bootstrap.dat
Interesting points to note :
Change over to Neoscrypt starts at 2:30 hrs or Hard Fork 4 - Block 432000
Blocks processed against time
Block Rate per minute against blocks
-
Review if 0.9.x series Bitcoin Commits
0.9.6.3.x
- Don’t poll showmyip.com, it doesn’t exist anymore
Fixes #4679.
This leaves us with only one candidate, checkip.dyndns.org.
GetMyExternalIP should be phased out as soon as possible.https://github.com/bitcoin/bitcoin/commit/5332b0a429f42c49c4b70e71870f2202c0cfa844
-
Testing @Bushstar fixes / regtest
Console message :
SSE2 unsupported, optimisations disabledinit.cpp ~L480
opt_flags = cpu_vec_exts(); if(GetBoolArg("-sse2", true)) { /* Verify hardware SSE2 support */ if(opt_flags & 0x00000020) { printf("SSE2 optimisations enabled\n"); nNeoScryptOptions |= 0x1000; } else { printf("SSE2 unsupported, optimisations disabled\n"); } } else { printf("SSE2 optimisations disabled\n"); }
Notes
SSE2 stands for Streaming SIMD Extensions 2 which is a standard on processors for a long time. This will enhance the security of your hardware against malicious software attacks by viruses and other malware.
These three are actually a hard core requirement for Windows 8 installation. If anyone of them is missing, Windows 8 will not install on your computer. So this has to be taken care even before you buy a new license of Windows 8.
https://stackoverflow.com/questions/2403660/determine-processor-support-for-sse2
Call CPUID with eax = 1 to load the feature flags in to edx. Bit 26 is set if SSE2 is available.
https://gist.github.com/hi2p-perim/7855506
I’ve output the value of opt_flags
opt_flags : = 0 SSE2 optimisations disabledPutting -sse2=false or true seemed to work , so -sse2 is true
-
It means the flags haven’t been set up properly. Maybe compiled without the assembly code.
-
error message review review.
main.cpp ~L502, ~L 899, ~L2866, L898, L1502
miner…cpp L486
db.cpp L106src/addrman.h ~L422 logprint, ~L411, logprint, ~L442 logprint
net.cpp ~L318 , L362
https://github.com/wrapperband/Feathercoin/commit/042e6c874b8e7a2a79b7daad2ffe6642efbcb291netbase L360 LogPrint(),
checkpointsync.cpp L275, L291, L336 , L470, L381, L438, L444, L516,
https://github.com/wrapperband/Feathercoin/commit/161ac3d8ea70e17a324b5f835788f49fa6b597b3rpcserver.cpp L666,
-
It should be adding the assembly, if you try and compile without setting AM_PROG_AS it complains. I’ll take a look at it and see what’s wrong.
-
Error creating wallet.dat from scratch.
Works with release 0.9.6.1 Doesn’t work with --incompatible database.
BDB 4.8 and 5.1 have worked previously, seems to be issue with bdb 5.3
error creating a new wallet.dat. 0.9.6.2
EXCEPTION: St13runtime_error
CDB : Error 22, can’t open database wallet.dat
feathercoin in Runaway exceptionError initializing wallet database environment /home/wrapper/.feathercoin!
-
@Cookieboy Docker Test set-ups OpenName?
https://michael.mckinnon.id.au/2016/05/13/building-a-namecoin-server-with-ubuntu-16-04/
-
[FAQ] Is it trivial to change a Feathercoin portable wallet file to libdb 4.8?
Version 4.8 is not a requirement, just a recommendation. You can compile your own version and use newer versions of BDB by passing --with-incompatible-bdb to configure.
The main reason it is discouraged is because it breaks compatibility with the pre-built binaries. If you’re building from source you may not care.
But even if you do, it is trivial to convert your wallet back to a 4.8 wallet if you’re stuck with a 5.1 or 5.3 one. Use the bdb tools (packages db4.8-util db5.1-util on Ubuntu):
Code:
db5.1_dump wallet.dat.db5 | db4.8_load wallet.dat.db4
-
0.9.6.2 resync from scratch - debug.log size
Debug.log size ~8GB
Example messages :
2017-09-08 11:01:02 FindStealthTransactions() tx:1a6d82536f8800f9535af0d921c9c4b0bd5ed63f7ed98d496ea489a3c96199d6,BOOST_$ 2017-09-08 11:01:02 txout scriptPubKey= 02bdd2463b241c6983e30fcec049028bd35a2c46b27751267e097d7ea730d86477 OP_CHECKSIG 2017-09-08 11:01:02 txout hash = a70281794fa18919284ce0825bb97985be0fd5351d70790f18cb295171a032cf 2017-09-08 11:01:02 ProcessBlock: ACCEPTED 2017-09-08 11:01:02 ProcessBlock: Preliminary checks 2017-09-08 11:01:02 AcceptBlockHeader,nHeight=14138 2017-09-08 11:01:02 GetNextWorkRequired pindexLast block Height=14137,nBits=486604799 2017-09-08 11:01:02 GetNextWorkRequired the next block Height=14138 2017-09-08 11:01:02 GetNextWorkRequired fork 2017-09-08 11:01:02 ConnectBlock hashPrevBlock=da6f4030e5784d44bf6487f714f97364c4d1d4230c7921ac83fbdb0a75b3da9d 2017-09-08 11:01:02 ConnectBlock view.GetBestBlock()=da6f4030e5784d44bf6487f714f97364c4d1d4230c7921ac83fbdb0a75b3da9d 2017-09-08 11:01:02 AddToWalletIfInvolvingMe,hash=53e2bcbb25acf1d2a5f14f8fa21f1251ec533567ca9c0cf7431fe27944d4f55e .
2017-09-08 11:01:45 ERROR: ProcessBlock() : already have block 528 3d00776e6a58b274553a08f865f243e4c76d2ff2f2bdc80ae9d65$ 2017-09-08 11:01:45 ERROR: ProcessBlock() : already have block 529 8f9ce5631e4da83f485bbaabd05b2103e2031cc171f3bd19c424f$ 2017-09-08 11:01:45 ERROR: ProcessBlock() : already have block 530 5e552737f864c8e40b8870fa6005cda91801042e67d41f96a352b$
2017-09-08 11:13:59 BOOST_FOREACH nOutputIdOuter=1 ,find txout... 2017-09-08 11:13:59 txout scriptPubKey= OP_DUP OP_HASH160 70fd39db258cc19a4d89a3ab0e329927c1688e07 OP_EQUALVERIFY OP_CHECKSIG 2017-09-08 11:13:59 txout hash = 42c514bfd4afd25857c86633b4a645a94a15326308d42a4c63e42bc7a7f0d2d9 2017-09-08 11:13:59 AddToWalletIfInvolvingMe,hash=1dd3621d64f782e0c8200c4063283d38189d1c29976fb0597e674c4ef249c612 . 2017-09-08 11:13:59 FindStealthTransactions() tx:1dd3621d64f782e0c8200c4063283d38189d1c29976fb0597e674c4ef249c612,BOOST_FOREACH nOutputIdOuter=0 ,find txout... 2017-09-08 11:13:59 txout scriptPubKey= OP_DUP OP_HASH160 f1f717b9371a1a39a1c96f1138e0207f44e9b1fc OP_EQUALVERIFY OP_CHECKSIG 2017-09-08 11:13:59 txout hash = beee7a6b781b42fcb81f0e64be3df2e5d8b7dbad17ffb94ab258bd83e705a4fb 2017-09-08 11:13:59 BOOST_FOREACH nOutputIdOuter=1 ,find txout...
2017-09-08 11:48:16 AcceptBlockHeader,nHeight=212619 2017-09-08 11:48:16 GetNextWorkRequired pindexLast block Height=212618,nBits=470153547 2017-09-08 11:48:16 GetNextWorkRequired the next block Height=212619 2017-09-08 11:48:16 GetNextWorkRequired fork 2017-09-08 11:48:16 Difficulty rules regular blocks 2017-09-08 11:48:16 GetNextWorkRequired(), nActualTimespan = 4 before bounds 2017-09-08 11:48:16 RETARGET: nActualTimespanShort = 86, nActualTimespanMedium = 71, nActualTimespanLong = 65, nActualTimeSpanAvg = 74, nActualTimespan (damped) = 63 2017-09-08 11:48:16 RETARGET: nActualTimespan = 63 after bounds 2017-09-08 11:48:16 RETARGET: nTargetTimespan = 60, nTargetTimespan/nActualTimespan = 0.9524 2017-09-08 11:48:16 GetNextWorkRequired RETARGET 2017-09-08 11:48:16 nTargetTimespan = 60 nActualTimespan = 63 2017-09-08 11:48:16 Before: 1c05f94b 0000000005f94b00000000000000000000000000000000000000000000000000 2017-09-08 11:48:16 After: 1c0645c1 000000000645c1f3333333333333333333333333333333333333333333333333 2017-09-08 11:48:16 ConnectBlock hashPrevBlock=c99dcb4dfb188f08e113cc0227dbb078b91a2ba1eb211747df6e93c2a3c1f8f9 2017-09-08 11:48:16 ConnectBlock view.GetBestBlock()=c99dcb4dfb188f08e113cc0227dbb078b91a2ba1eb211747df6e93c2a3c1f8f9
2017-09-08 18:06:29 txout hash = bb18e80f5d0fb64e8ef641b915529ac5e163a65c542117285e35fae601fb1e72 2017-09-08 18:06:29 ProcessBlock: ACCEPTED 2017-09-08 18:06:29 ProcessBlock: Preliminary checks 2017-09-08 18:06:29 ERROR: matches claimed amount, CheckProofOfWork() : hash doesn't match nBits 2017-09-08 18:06:29 AcceptBlockHeader,nHeight=808507 2017-09-08 18:06:29 GetNextWorkRequired pindexLast block Height=808506,nBits=471031556 2017-09-08 18:06:29 GetNextWorkRequired the next block Height=808507
UpdateTip: new best=90ff2216fefd3585d6227b9ad98742c2dee0799950f96008c739853aeaa00a91 height=762942 log2_work=57.908051 tx=2002507 date=2015-06-23 16:01:34 progress=0.476417
-
@wrapper said in [Dev] Feathercoin 0.9.6.2 * Maintenance fix, build & upgrade issues notes.:
[FAQ] Is it trivial to change a Feathercoin portable wallet file to libdb 4.8?
Version 4.8 is not a requirement, just a recommendation. You can compile your own version and use newer versions of BDB by passing --with-incompatible-bdb to configure.
The main reason it is discouraged is because it breaks compatibility with the pre-built binaries. If you’re building from source you may not care.
But even if you do, it is trivial to convert your wallet back to a 4.8 wallet if you’re stuck with a 5.1 or 5.3 one. Use the bdb tools (packages db4.8-util db5.1-util on Ubuntu):
Code:
db5.1_dump wallet.dat.db5 | db4.8_load wallet.dat.db4
Well if one needs to convert the db, it would be easier to export the private keys, compile a wallet with the desired bdb version and import the private keys again.
Our precompiled Linux binaries contained in the installation packages care compiled with the default bdb contained in the distributions, so they will work on a given system/distribution.