Feathercoin daemon and wallet production version 0.17.0.2

[Dev] Release Candidate Feathercoin 0.9.3.2 - Check List


  • Moderators | Tip wrapper

    I have tried everything I can in my limited GUI experience to change the background colour to the Feathercoin wallet. The gray behind the menus is to dark and it does not match with the graduated background image, it needs to be light gray.

    https://github.com/FeatherCoin/Feathercoin/tree/0.9.3.2/src/qt

    main.cpp is the wallet screen

    and in https://github.com/FeatherCoin/Feathercoin/tree/0.9.3.2/src/qt/forms

    overviewpage.ui


  • Moderators | Tip Wellenreiter

    @aciddude the class named of some classes have changed and the definitions in the test directory haven’t updated.

    I have checked:

    base58_tests.cpp:155:35: error: ‘class CBitcoinSecret’ has no member named ‘GetKey’
    CKey privkey = secret.GetKey();

    secret.GetKey() now is secret.GetSecret()

    base58_tests.cpp:157:41: error: ‘class CKey’ has no member named ‘size’
    BOOST_CHECK_MESSAGE(privkeBOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())BOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())y.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())…

    privkey now must be of type CPrivKey and not Ckey anymore

    To solve the first problem above I’ve searched for ‘secret.’ in all files and compared the definitions and checked the names of the procedures


  • Moderators | Tip wrapper

    Re: Building Feathercoin 0.9.3.2

    The amount of warnings is reduced considerably during the build. I am awaiting @Wellenreiter to push the fix for the open names warnings, he has moved the declarations into UtilitiesDialog.cpp.

    These warnings aren’t fixed, are due to comparisons between signed and unsigned integers (during Loops), can cause bugs at bounds : requires the loops variables to be slightly re- witten …

    multisigdialog.cpp: In member function ‘void MultiSigDialog::createRawTransaction()’:
    multisigdialog.cpp:186:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for ( int i = 0; i < vOutpoints.size(); ++ i )
    ^
    multisigdialog.cpp: In member function ‘void MultiSigDialog::updateAddressList()’:
    multisigdialog.cpp:754:32: warning: unused variable ‘strName’ [-Wunused-variable]
    const std::string& strName = item.second.name;
    ^
    multisigdialog.cpp: In member function ‘void MultiSigDialog::updateAddressDetail()’:
    multisigdialog.cpp:835:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for ( i = 0; i < addresses.size(); ++ i )
    ^
    multisigdialog.cpp:839:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for ( i = 0; i < addresses.size(); ++ i )
    ^
    multisigdialog.cpp: In member function ‘void MultiSigDialog::checkRawTransaction()’:
    multisigdialog.cpp:905:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for ( int i = 0; i < containAddresses.size(); ++ i )

    createmultisigaddrdialog.cpp: In member function ‘void CreateMultiSigAddrDialog::create()’:
    createmultisigaddrdialog.cpp:78:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (unsigned int i = 0; i < total; i++)

    transactiondesc.cpp: In static member function ‘static QString TransactionDesc::toHTML(CWallet*, CWalletTx&, int, int)’:
    transactiondesc.cpp:228:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (int k = 0; k < wtx.vout.size(); ++k)

    Warning needs investigation

    /home/tony/Feathercoin/src/qt/forms/shiftdialog.ui: Warning: The name ‘horizontalLayout_1_Wallet’ (QHBoxLayout) is already in use, defaulting to ‘horizontalLayout_1_Wallet1’.

    I had to leave these warnings in as they are in contained sub Libraries

    util/bloom.cc:50:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (size_t i = 0; i < n; i++) {

    db/memtable.cc:104:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    assert((p + val_size) - buf == encoded_len);

    util/logging.cc:67:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    (v == kMaxUint64/10 && delta > kMaxUint64%10)) {

    db/version_set.cc:58:13: warning: ‘std::__cxx11::string leveldb::{anonymous}::IntSetToString(const std::set<long unsigned int>&)’ defined but not used [-Wunused-function]
    inlevel db


  • Moderators | Tip AcidD

    @Wellenreiter said:

    @aciddude the class named of some classes have changed and the definitions in the test directory haven’t updated.

    I have checked:

    base58_tests.cpp:155:35: error: ‘class CBitcoinSecret’ has no member named ‘GetKey’
    CKey privkey = secret.GetKey();

    secret.GetKey() now is secret.GetSecret()

    base58_tests.cpp:157:41: error: ‘class CKey’ has no member named ‘size’
    BOOST_CHECK_MESSAGE(privkeBOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())BOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())y.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())…

    privkey now must be of type CPrivKey and not Ckey anymore

    To solve the first problem above I’ve searched for ‘secret.’ in all files and compared the definitions and checked the names of the procedures

    Ok so now line 155 on base58_tests.cpp I’ve changed it to read:

    CPrivKey privkey = secret.GetSecret();  
    
    
    make[4]: Entering directory '/home/aciddude/FTC0932/Feathercoin/src/test'
      CXX      test_bitcoin-base58_tests.o
    base58_tests.cpp: In member function ‘void base58_tests::base58_keys_valid_parse::test_method()’:
    base58_tests.cpp:155:49: error: no matching function for call to ‘CBitcoinSecret::GetSecret()’
                 CPrivKey privkey = secret.GetSecret();
                                                     ^
    In file included from base58_tests.cpp:5:0:
    ../../src/base58.h:130:13: note: candidate: CSecret CBitcoinSecret::GetSecret(bool&)
         CSecret GetSecret(bool &fCompressedOut);
                 ^
    
    
    

    ideas ?


  • Moderators | Tip wrapper

    Thanxs @Aciddude
    I note this Test failure is something to do with stealth addresses

    They are a new feature : We need ask @Lizhi if he can help

    I’m nearly ready to push the Test fixes you found so far, so he can just pull 0.9.3.2 and see where we got to…

    Meanwhile try to bypass that test and see the rest pass…


  • Moderators | Tip AcidD

    In my previous post it wasnt getting past this test…
    BOOST_AUTO_TEST_CASE(base58_keys_valid_parse)

    I’ve managed to move past this
    Currently I’m getting this error;

    https://i.snag.gy/YsIcuX.jpg

    This is on the test
    BOOST_AUTO_TEST_CASE(base58_keys_valid_gen) (next one in base58_tests)


  • Moderators | Tip AcidD

    @aciddude said:

    @Wellenreiter said:

    @aciddude the class named of some classes have changed and the definitions in the test directory haven’t updated.

    I have checked:

    base58_tests.cpp:155:35: error: ‘class CBitcoinSecret’ has no member named ‘GetKey’
    CKey privkey = secret.GetKey();

    secret.GetKey() now is secret.GetSecret()

    base58_tests.cpp:157:41: error: ‘class CKey’ has no member named ‘size’
    BOOST_CHECK_MESSAGE(privkeBOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())BOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())y.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())…

    privkey now must be of type CPrivKey and not Ckey anymore

    To solve the first problem above I’ve searched for ‘secret.’ in all files and compared the definitions and checked the names of the procedures

    Ok so now line 155 on base58_tests.cpp I’ve changed it to read:

    CPrivKey privkey = secret.GetSecret();  
    
    
    make[4]: Entering directory '/home/aciddude/FTC0932/Feathercoin/src/test'
      CXX      test_bitcoin-base58_tests.o
    base58_tests.cpp: In member function ‘void base58_tests::base58_keys_valid_parse::test_method()’:
    base58_tests.cpp:155:49: error: no matching function for call to ‘CBitcoinSecret::GetSecret()’
                 CPrivKey privkey = secret.GetSecret();
                                                     ^
    In file included from base58_tests.cpp:5:0:
    ../../src/base58.h:130:13: note: candidate: CSecret CBitcoinSecret::GetSecret(bool&)
         CSecret GetSecret(bool &fCompressedOut);
                 ^
    
    
    

    ideas ?

    To get past this error

    1 - edit base58_tests.cpp (line 156)

    CPrivKey privkey = secret.GetPrivKey();
    

    2 - Edit base58.h and add the below at line 134

      //Added by AcidDude
        bool IsCompressed();
        void SetPrivKey(const CPrivKey& vchPrivKey);
        CPrivKey GetPrivKey();
    
    

  • Moderators | Tip wrapper

    This post is deleted!

  • Moderators | Tip AcidD

    @lizhi @Wellenreiter

    I was working with @wrapper on trying to fix the build tests… can you guys check out my commits below ?
    https://github.com/aciddude/Feathercoin/commits/0.9.3.2

    I also merged @Wellenreiters latest commits from the main Feathercoin github for 0.9.3.2. For me the Wallet Builds with --disable-tests

    if I run it with tests, I get to the (3rd?) base58 test.

    I need some help understanding why CKey was removed and replaced with CSecret and CPrivKey


  • Moderators | Tip AcidD

    currently getting these errors

    Making all in test
    make[3]: Entering directory '/home/aciddude/FTC0932/Feathercoin/src/test'
    make  all-am
    make[4]: Entering directory '/home/aciddude/FTC0932/Feathercoin/src/test'
      CXX      test_bitcoin-base58_tests.o
    base58_tests.cpp: In member function ‘void base58_tests::base58_keys_valid_gen::test_method()’:
    base58_tests.cpp:213:79: error: no matching function for call to ‘CBitcoinSecret::SetSecret(std::vector<unsigned char>::iterator, std::vector<unsigned char>::iterator, bool&)’
                 key.SetSecret(exp_payload.begin(), exp_payload.end(), isCompressed);
                                                                                   ^
    In file included from base58_tests.cpp:5:0:
    ../../src/base58.h:131:10: note: candidate: void CBitcoinSecret::SetSecret(const CSecret&, bool)
         void SetSecret(const CSecret& vchSecret, bool fCompressed);
              ^
    ../../src/base58.h:131:10: note:   candidate expects 2 arguments, 3 provided
    base58_tests.cpp:216:34: error: no matching function for call to ‘CBitcoinSecret::SetPrivKey(CBitcoinSecret&)’
                 secret.SetPrivKey(key);
                                      ^
    In file included from base58_tests.cpp:5:0:
    ../../src/base58.h:140:10: note: candidate: void CBitcoinSecret::SetPrivKey(const CPrivKey&)
         void SetPrivKey(const CPrivKey& vchPrivKey);
              ^
    ../../src/base58.h:140:10: note:   no known conversion for argument 1 from ‘CBitcoinSecret’ to ‘const CPrivKey& {aka const std::vector<unsigned char, secure_allocator<unsigned char> >&}’
    In file included from /usr/include/boost/test/unit_test.hpp:19:0,
                     from base58_tests.cpp:19:
    
    

    I feel like am just missing an #Include…

    also check out this
    http://stackoverflow.com/questions/27951537/how-to-convert-unsigned-char-to-stdvectorunsigned-char


  • Moderators | Tip wrapper

    @Lizhi @Wellenreiter @Bushstar

    Re: Testing / Wallet Guide creation.

    What is the current Minimum payment level and where /how is it set on release?
    What is the current Dust fee level and where / how is it set on release?

    How the transition from Litecoin to Bitcoin base effected minimum payments as each has its own system and FTC had a modified version for 0.8.7.x and 0.6.x series?


  • Moderators | Tip AcidD

    Hi Guys,

    I’ve managed to fix the base58 test. you can see all my commits, here:
    https://github.com/aciddude/Feathercoin/commits/0.9.3.2

    I did a few of them on different days.

    currently the following tests are passing:

    CXX test_bitcoin-alert_tests.o
    CXX test_bitcoin-allocator_tests.o
    CXX test_bitcoin-base32_tests.o
    CXX test_bitcoin-base58_tests.o
    CXX test_bitcoin-base64_tests.o
    CXX test_bitcoin-bignum_tests.o
    

    the next test that fails is

    test_bitcoin-bloom_tests
    

    it fails with these errors:

    make[4]: Entering directory '/home/aciddude/FTCNEW/Feathercoin/src/test'
      CXX      test_bitcoin-bloom_tests.o
    bloom_tests.cpp: In member function ‘void bloom_tests::bloom_create_insert_key::test_method()’:
    bloom_tests.cpp:84:26: error: ‘class CBitcoinSecret’ has no member named ‘GetKey’
         CKey key = vchSecret.GetKey();
                              ^
    In file included from ../../src/base58.h:18:0,
                     from bloom_tests.cpp:7:
    ../../src/key.h:76:20: error: ‘unsigned char* CPubKey::begin()’ is private
         unsigned char *begin() {
                        ^
    bloom_tests.cpp:86:50: error: within this context
         vector<unsigned char> vchPubKey(pubkey.begin(), pubkey.end());
                                                      ^
    bloom_tests.cpp:86:65: error: no matching function for call to ‘std::vector<unsigned char>::vector(unsigned char*, const unsigned char*)’
         vector<unsigned char> vchPubKey(pubkey.begin(), pubkey.end());
    
    

    most of this seems to involve the CKey class in key.h as well as stuff in base58.h

    it’s also claiming the CPubKey begin (method?) is private …but from what I can see in key.h it’s public…I could also be blind.

    anyone who wants to replicate or help can just make the changes I did (you can see my commits in the above link)

    or clone and build this
    https://github.com/aciddude/Feathercoin/tree/0.9.3.2

    I’ve included all the recent fixes @Wellenreiter , @lizhi and @wrapper have done.

    it seems the main reason for the tests failing is they need to be updated when there is any code changes, to reflect the names of new variables as well as the way things like keys are now created.
    The remaining warnings are due to type mismatch during “for loops”


  • Moderators | Tip AcidD

    update:

    I’ve fixed the bloom test! below are the tests which are passing.

      CXX      test_bitcoin-alert_tests.o
      CXX      test_bitcoin-allocator_tests.o
      CXX      test_bitcoin-base32_tests.o
      CXX      test_bitcoin-base58_tests.o
      CXX      test_bitcoin-base64_tests.o
      CXX      test_bitcoin-bignum_tests.o
      CXX      test_bitcoin-bloom_tests.o
      CXX      test_bitcoin-canonical_tests.o
      CXX      test_bitcoin-checkblock_tests.o
      CXX      test_bitcoin-Checkpoints_tests.o
      CXX      test_bitcoin-compress_tests.o
      CXX      test_bitcoin-DoS_tests.o
      CXX      test_bitcoin-getarg_tests.o
    
    

    It seems to be more of the same, where i’m just updating how things are done and the names of variables.

    the next test that’s failing is

    key_tests.cpp
    

  • Moderators | Tip AcidD


  • Moderators | Tip AcidD

    Hi Guys,

    the key_tests are now working. I’ll post the fix this evening.

    it passes a few more tests and the next test that’s broken is the multisig_test


  • | Tip lizhi

    I think all test cpp file are bitcoin not feathercoin. When I compile with disable-tests, I don’t think we can use it .


  • Moderators | Tip wrapper

    I think the auto test system is relevent, or should be. Other coins such as Dogecoin have fixed their tests.

    Do we need to update the test data to make them Feathercoin specific?


  • Moderators | Tip AcidD

    @lizhi said in [Dev] Release Candidate Feathercoin 0.9.3.2 - Check List:

    I think all test cpp file are bitcoin not feathercoin. When I compile with disable-tests, I don’t think we can use it .

    Yeah I believe so to.

    With some of the tests, it has hard coded strings that I believe relate to Bitcoin, like some hard coded private keys for testing etc. I’m sure those need to be changed to relate to Feathercoin.


  • Moderators | Tip Wellenreiter

    Then we should adapt the tests to feathercoin.
    We could avoid problems like the sync problem we had with 0.9.3.2, if we have suficient tests coded.
    Tests that we need to have:

    • switch to block version 2
      • select the first 5 or 10 blocks with block version 2 and see if the code accepts the blocks
    • switch from 2.5 minute time to block to 1 Minute time to block
      • select the last 5 blocks bfore the fork and after the fork and check, if the code accepts the blocks
    • switch to neoscrypt
      • select the last 5 blocks bfore the fork and after the fork and check, if the code accepts the blocks

    Probably there are more, but these are important ones and can be done without interaction with other clients.

    in additon we should replace the bitcoin specific tests with the Feathercoin equivalents.


  • Moderators | Tip wrapper

    A friend of mine who does graphic art is helping do a subtle and “tested with different Desktop Themes” update to the wallet.

    The graduated background image was not tilling well, so we will be testing some alternatives. Here is the first test of white with a blue logo, matching the forum.

    I’ve set him up a development environment and we have now found all the places / images need to be adjusted to try make some improvements …

    We also have also produced a Green alternate that matches the Chinese FTC forum that colour scheme that @Lizhi runs, that he could include in his window builds.

    At the moment the priority is to replace the background screen with a more subtle look.

    We have been discussing ideas such as to use the shadow from the FTC graphics library, and have the Logo as “Water mark”.

    I’ve made a Github, for swapping test images :
    https://github.com/wrapperband/FTC-Wallet-Layout-Examples

    Feathercoin wallet overveiw with White background image & Forum Blue Logo
    White Backgound, Blue Logo

    There is a resource directory with the current graphics files from Feathercoin/src/qt/res/images including any new or possible options.

    https://github.com/wrapperband/FTC-Wallet-Layout-Examples

    Blue Logo