[Dev] Feathercoin 0.11.x Intergration, Testing and Building
-
Feathercoin 0.11.x – Notes and discussion
A merge has been completed of the main UI elements of 0.9.6.2 and a working build of Feathercoin 0.11.2 is now available. It currently is development only.
A number of areas are outstanding, including a review of each function. Internal areas of code have also changed in structure or need including, such as Sendalert and ACP.
The Feathercoin specific help and documentation is to be brought over separately and updated.These functions are to be tested / completed by reference to 0.9.6.2, in particular user interface.
To some extent FTC 0.11.x is ahead of development. 0.9.6.1 has just been released a 6 month period before expecting pools and miners to upgrade is sensible. It gives time to understand and refine the new version.
Whilst the current development team can handle most matters, given time, they are volunteers so some specialist advice may be needed, to speed up development or audit work by previous developers. i.e. GUI, remove smart contract demo, opennames, sendalert, ACP, openssl, stealth transactions, transaction messages, etc.
Task List / Notes for 0.11.x
Task : The smart contract testing in the master branch of 0.11, that should be in a development side branch and removed from the main branch.
smart contract step one
https://github.com/wrapperband/Feathercoin/commit/0e457b6e89c2eef64deb9028d9f2ae9baf53e7d8
smart contract UI
https://github.com/wrapperband/Feathercoin/commit/53359e5d7ee85608cfcc8d76362a41c3d405bba9
smart contract test1
https://github.com/wrapperband/Feathercoin/commit/a59897340c37dbe5ee3de455a1b7f550022a3503
smart contract test1 cont
https://github.com/wrapperband/Feathercoin/commit/f700fb6a34582e1551c1d02747eb04266b5c0888Status key - ToDo, review(ing), work(ing on), complete(d)
- Sendalert - bitcoinrpc.cpp / rpcnett.cpp / review - @Wellenreiter, @Aciddude, @wrapper work
- ACP
- Bignum.h
- OpenSSL
- pchMessageStart
- getwork
- Opennames
- Chinese Language files need update.
Issue Notes :
Whilst syncing a (fresh blockchain database/wallet) Feathercoin 0.11.2-dev , mouse over the exclamation mark next to Balances . says BitcoinFixedQRCodes did not work - need review after merge complete
Check : Transaction fee set to 0.00001 FTC/kB
Sign message - tool tip on Advanced menu option - Verify message sign message tab says bitcoinVerify message - tool tip on Advanced menu option - Verify message - Verify message tab says bitcoinAdvanced / Options / Wallet : Check default coin control settings are correct
There are quite a few changes made to the wallet structure, the bitcoin connection animation etc. feathercoin.qrc need including in 0.11.xopennames is missing.
@AFB helped to do some fiddling to bring in all the improvements we did into 0.11.2 , possibly make a couple more icons / update some bad new forms.
(Note : There is another test (that would help us move to head) - Fork Bitcoin, checkout 0.11 last version - merge ftc 0.11.2)
Update autoconfig.sh to test for zxing Directory e.g. :Refers to install directory now.
if [ ! -d “$DIRECTORY” ]; then
# Control will enter here if $DIRECTORY doesn’t exist.
fiUpdate Re-Indexing message to be more friendly / informative? (when you upgrade)
Why do we have uFTC and mFTC surely DecaFTC is more logical??(needs review)Test and document Smart contracts.
Smart contracts is just a form, review and remove, smart contract form.
SX search for stealth coins not included.
Review cherry pick possible updates to stealth.cpp
https://github.com/StealthSend/Stealth/blob/master/src/stealthaddress.cpp
https://cevap.github.io/devwiki/db/d2d/stealth_8cpp_source.htmlfind not utf-8 characters grep -axv ‘.*’ main.cpp
Propose launch option shrink debug file :Issue created. #208
Add -shrinkdebuglog to the options you use to start feathercoin, or add shrinkdebuglog=1 to your feathercoin.conf. Every startup, if the log is larger than 1MB, it will shrink it to 200KB.wallet.cpp change control :Needs review
// TODO: fix handling of ‘change’ outputs. The assumption is that any
// payment to a script that is ours, but is not in the address book
// is change. That assumption is likely to break when we implement multisignature
// wallets that return change back into a multi-signature-protected address;
// a better way of identifying which outputs are ‘the send’ and which are
// ‘the change’ will need to be implemented (maybe extend CWalletTx to remember
// which output, if any, was change).Fri, 12 September 2014 16:29:30 -0400 build date incorrect, debug information shown in GUI @Wellenreiter
Add these dependencies to FTC unix build docs :Done.
libevent-2.0-5 libevent-dev libevent-extra-2.0-5 libevent-openssl-2.0-5 libevent-pthreads-2.0-5LogPrintf(" (no) space error(s)Done
wallet/wallet.cpp:2746:27: warning: invalid suffix on literal; C++11 requires a space between literal and string macroEnter multisync, new address, press ok with no address. – Incorrect error message.
The entered address “” is not a valid Bitcoin address.Multisig page, - verify message button - not connected to anything …
Re-Integrate updated Documents from 0.9.6.2Review MAN pages - copied in from 0.9.6.1 because 0.11.2 MANs were deleted. need review against Bitcoin 0.11.1
src/qt/forms/debugdialog.ui - Reused (for smart contract demo) form SX form and menu options need reapplying.
feathercoin.qrc has not been implemented in 0.11 - being worked on as part of mergeDone completed in merge and splash fix.Icons are missing, test icons - being tested / brought in as part of merge
https://github.com/litecoin-project/litecoin/pull/362 SSE2 Litecoin enhancement.
https://uk.mathworks.com/matlabcentral/answers/93455-what-is-the-sse2-instruction-set-how-can-i-check-to-see-if-my-processor-supports-it?requestedDomain=www.mathworks.comACP is not working in 0.11
Sendalert needs reinstatingdone @Wellenreiter @AciddCherry Pick List : Create the where to cherry pick from list
Neoscrypt.cpp etc - Need updating to latest version. - advice from Ghostlander
https://github.com/ghostlander/Phoenixcoin/commit/ddbdbf6cbff4ca52f87268f28c60d588bf843344Build date is not being updated correctly : 2017-07-28 09:17:26 Feathercoin version v0.9.6.1-ftcit-Standard (Fri, 12 September 2014 16:29:30 -0400)
[libprotobuf WARNING google/protobuf/compiler/parser.cc:547] No syntax specified for the proto file: paymentrequest.proto. Please use ‘syntax = “proto2”;’ or ‘syntax = “proto3”;’ to specify a syntax version. (Defaulted to proto2 syntax.)
rpcmining.cpp:154:9: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
auto_ptr<CBlockTemplate> pblocktemplate(CreateNewBlockWithKey(reservekey));Aboutbox, no longer has ui file - look terrible.
Update the openSSL version used / review : OpenSSL 1.0.2g 1 Mar 2016
Fix openSSL version.
https://github.com/peercoin/peercoin/pull/153#issuecomment-320388996openssl version and future use review :
https://github.com/peercoin/peercoin/commit/3320650372750068dff45193603d17998a975117openssl bignum peercoin fix
https://github.com/peercoin/peercoin/pull/153#issuecomment-320590507Loading Block index seems to take a long time - (May have seen) Is this a darkcoin? / stealth issue
Old FTC Icons in share
https://github.com/FeatherCoin/Feathercoin/tree/0.11.2/share/qt
Note : In ubuntu stored in /usr/share/pixmaps/feathercoin.pngOverview - Addresses new address leave blank : The entered address “” is not a valid Bitcoin address.
Multisig Bitcoin addressRemove the Bitmessage plugin.
Investigate Bip65/6 statusin progress @BushstarUnit Tests need updating.
Checkpointsync does not seem to use the testnet key, just the mainnet key.DNS test - seemed slow, only 1 DNS IP polled? why the same 8 peers all the time?
Check messages works, no error if you don’t put valid key.
-
BIP 66 was added to 0.11 but in 0.8/0.9 it was added to memory pool, this change was not applied to 0.11. I’ve set this change in the following commit.
https://github.com/FeatherCoin/Feathercoin/commit/e42f790b6039ecdb120932acb772c176fb2c0513
The switch time here is redundant as v4 does not yet have consensus.
https://github.com/FeatherCoin/Feathercoin/commit/0220702e993d462130aa34d6892a0fdfddfcab97
BIP66 is active, I trust the height set is in line with when Ghost added it to 0.8, I think we are somewhat safe on this anyway. Also 0.11 set BIP66 and BIP65 to be active at the same time, BIP66 is active but BIP65 should only be active once we have miner support.
https://github.com/FeatherCoin/Feathercoin/commit/e4ecf654aba6a552d6901dc6f493aa91674ce05b
Reject v2 when v4 is 95%, this code was already in there but here I’ve updated the code from v3 to v4 as v3 is always rejected.
https://github.com/FeatherCoin/Feathercoin/commit/b7c627b34d096f702418aab24d8192020c3dd5ec
Here I’ve removed the code for rejecting v3 at 95% as it is already rejected.
https://github.com/FeatherCoin/Feathercoin/commit/2f0603a051f6b062c4d04a3aba6b61907478991a
Do we need cVersion in the code and what do we need it for?
As the majority of the network is nVersion 2 blocks we can stick to nVersion 4 to soft fork BIP65.
-
Cheers @Bushstar I’ve run a build test. We should be back to having auto test builds when @Cookieboy gets back.
-
Review of usage of OpenSSL
Like Litecoin FTC will need to retain the use of OpenSSL, it is used in ACP, Stealth and scrypt Functionality.
Note: Good point, Litecoin did add SSL for Scrypt, check the commit on Litecoin 0.14.
https://github.com/litecoin-project/litecoin/commit/0c3edb9f1991508a26c7ee5865a0fd9c9df430ac
-
Notes on 0.11.2
This check on the v4 block time is redundant as there is also a IsSuperMajority check that is not going to return true, not even yet.
https://github.com/FeatherCoin/Feathercoin/blob/0.11.2/src/main.cpp#L3226
So we have cVersion and nVersion.
If we soft fork BIP65 and set BIP66 to activate at a set height then we do not really need cVersion.
Ghost’s BIP66 Strict DER code is in 0.11 however Lizhi did not add it to AcceptToMemoryPool, it might be because it is different than before, in 0.9 it was in the Accept function. I’ve added it to 0.11 and will document.
This was missed out.
https://github.com/FeatherCoin/Feathercoin/commit/e42f790b6039ecdb120932acb772c176fb2c0513
Checkpointsync does not seem to use the testnet key, just the mainnet key.
-
@wrapper said in [Dev] Feathercoin 0.11.x Intergration, Testing and Building:
Checkpointsync does not seem to use the testnet key, just the mainnet key.
Correct!
ACP never was implemented for the testnet. -
0.11.2 Synchronisation speed Test
Before Debug message review : Sync completed in 3.5 Hours.
After Debug message review stage 1: Sync completed in 2.75 Hours.
After Debug message review stage 2: Sync completed in 2.70 Hours
After Debug message review stage 3: Sync completed in 2.57 Hours
After Debug message review stage 4: Sync completed in 3.02 Hours
After Debug message review stage 5 with -debug : Sync completed in 4.15 HoursBlocks against time
-
0.11.2 settings. Test
Test changing max outbound connections
Test upping default from lowly 8 to more reasonable 10
net.cpp
static const int MAX_OUTBOUND_CONNECTIONS = 10;
1st test :
Up from 125 to 150:
int nMaxConnections = 150;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;
-
Just found this is it worth adding to FTCseeder?
Plus, these available updates : https://github.com/wrapperband/feathercoin-seeder/compare/master...sipa:master
Poll nodes for new IPs at 1 hour instead of 1 week intervals.
https://github.com/keremhd/mintcoin-seeder/commit/5ed3743143c8a2da024f32b8845d718fe0f357eaFeathercoin-seeder , see @wellenreiter has contributed.
-
Note : is www.showmyip.com in 0.11.2? : https://forum.feathercoin.com/topic/8931/dev-documenting-feathercoin-specific-software-settings-part-2/32
www.showmyip.com is very slow / not working. www.showmyip.net worked fine though.
-
There are a couple of functions to be added back in for ACP, IsInMainChain, GetTotalBlocksEstimate, SetBestChain and PushGetBlocks.