Forum Home
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular

    [Dev] Feathercoin 0.11.x Intergration, Testing and Building

    Technical Development
    3
    11
    5326
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • wrapper
      wrapper Moderators last edited by wrapper

      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/f700fb6a34582e1551c1d02747eb04266b5c0888

      Status key - ToDo, review(ing), work(ing on), complete(d)

      1. Sendalert - bitcoinrpc.cpp / rpcnett.cpp / review - @Wellenreiter, @Aciddude, @wrapper work
      2. ACP
      3. Bignum.h
      4. OpenSSL
      5. pchMessageStart
      6. getwork
      7. Opennames
      8. 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 Bitcoin Fixed

      QRCodes 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 bitcoin

      Verify message - tool tip on Advanced menu option - Verify message - Verify message tab says bitcoin

      Advanced / 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.x

      opennames 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. :
      if [ ! -d “$DIRECTORY” ]; then
      # Control will enter here if $DIRECTORY doesn’t exist.
      fi
      Refers to install directory now.

      Update 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.html

      find not utf-8 characters grep -axv ‘.*’ main.cpp

      Propose launch option shrink debug file :
      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.
      Issue created. #208

      wallet.cpp change control :
      // 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).
      Needs review

      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 :
      libevent-2.0-5 libevent-dev libevent-extra-2.0-5 libevent-openssl-2.0-5 libevent-pthreads-2.0-5
      Done.

      LogPrintf(" (no) space error(s) Done
      wallet/wallet.cpp:2746:27: warning: invalid suffix on literal; C++11 requires a space between literal and string macro

      Enter 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.2

      Review 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 merge Done 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.com

      ACP is not working in 0.11

      Sendalert needs reinstating done @Wellenreiter @Acidd

      Cherry 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/ddbdbf6cbff4ca52f87268f28c60d588bf843344

      Build 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-320388996

      openssl version and future use review :
      https://github.com/peercoin/peercoin/commit/3320650372750068dff45193603d17998a975117

      openssl bignum peercoin fix
      https://github.com/peercoin/peercoin/pull/153#issuecomment-320590507

      Loading 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.png

      Overview - Addresses new address leave blank : The entered address “” is not a valid Bitcoin address.
      Multisig Bitcoin address

      Remove the Bitmessage plugin.

      Investigate Bip65/6 status in progress @Bushstar

      Unit 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.

      1 Reply Last reply Reply Quote 0
      • Bushstar
        Bushstar last edited by

        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.

        Donate: 6hf9DF8H67ZEoW9KmPJez6BHh4XPNQSCZz

        1 Reply Last reply Reply Quote 4
        • wrapper
          wrapper Moderators last edited by

          Cheers @Bushstar I’ve run a build test. We should be back to having auto test builds when @Cookieboy gets back.

          1 Reply Last reply Reply Quote 0
          • wrapper
            wrapper Moderators last edited by

            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.

            @Bushstar

            https://github.com/litecoin-project/litecoin/commit/0c3edb9f1991508a26c7ee5865a0fd9c9df430ac

            1 Reply Last reply Reply Quote 0
            • wrapper
              wrapper Moderators last edited by

              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.

              Wellenreiter 1 Reply Last reply Reply Quote 0
              • Wellenreiter
                Wellenreiter Moderators @wrapper last edited by

                @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.

                Feathercoin development donation address: 6p8u3wtct7uxRGmvWr2xvPxqRzbpbcd82A
                Openpgp key: 0x385C34E77F0D74D7 (at keyserver.ubuntu.com)/fingerprint: C7B4 E9EA 17E1 3D12 07AB 1FDB 385C 34E7 7F0D 74D7

                1 Reply Last reply Reply Quote 1
                • wrapper
                  wrapper Moderators last edited by wrapper

                  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 Hours

                  0.11.2 sync speed

                  Blocks against time

                  0.11.2 sync speed

                  1 Reply Last reply Reply Quote 1
                  • wrapper
                    wrapper Moderators last edited by wrapper

                    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;
                    
                    1 Reply Last reply Reply Quote 0
                    • wrapper
                      wrapper Moderators last edited by wrapper

                      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/5ed3743143c8a2da024f32b8845d718fe0f357ea

                      Feathercoin-seeder , see @wellenreiter has contributed.

                      https://github.com/FeatherCoin/feathercoin-seeder

                      1 Reply Last reply Reply Quote 0
                      • wrapper
                        wrapper Moderators last edited by

                        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.

                        1 Reply Last reply Reply Quote 0
                        • wrapper
                          wrapper Moderators last edited by

                          There are a couple of functions to be added back in for ACP, IsInMainChain, GetTotalBlocksEstimate, SetBestChain and PushGetBlocks.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post