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

    [Guide] Build FeathercoinD & Feathercoin-QT v0.9.6.1 on Ubuntu

    Guides
    ubuntu 16.04 howto ubuntu ubuntu 14.04 linuxmint
    5
    17
    21366
    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.
    • AcidD
      AcidD Moderators last edited by AcidD

      Hi All,

      This guide is for anyone who wants to build Feathercoind and Feathercoin-QT on Ubuntu and some Ubuntu based distros…

      The following guide has been tested on:

      • Ubtunu 16.04 LTS
      • Ubuntu 14.04
      • LinuxMint 17.3

      1. Intro + Initial Setup


      First we start by updating our OS a little… I used a VMware images from OsBoxes.org for the three above Distros I used for testing.

      Note: For this guide, you can find/replace my home directory “/home/acid” to your “/home/YourUser” directory and all the commands should work…I recommend reading each command…but also copy and paste was invented for a reason ;-)

      We start by updating the build system OS and then showing the current working directory

      sudo apt-get update
      sudo apt-get upgrade 
      
      pwd
      

      We then make a new directory to work in and move into it.

      acid@osboxes ~ $ pwd
       /home/acid
      mkdir FeathercoinBuild && cd FeathercoinBuild
      

      2. Dependencies

      Some of these you might already have installed, but I recommend running each line.

      sudo apt-get install build-essential
      sudo apt-get install libboost-all-dev
      sudo apt-get install automake
      sudo apt-get install libtool
      sudo apt-get install autoconf
      sudo apt-get install libdb5.3++-dev
      sudo apt-get install libdb++-dev
      sudo apt-get install libprotobuf-dev
      sudo apt-get install protobuf-compiler
      sudo apt-get install libqrencode-dev
      sudo apt-get install qtbase5-dev
      sudo apt-get install libqt5opengl5-dev
      sudo apt-get install qttools5-dev-tools
      sudo apt-get install libminiupnpc-dev
      sudo apt-get install pkg-config
      

      Build Berkeley DB v4.8

      Note: you are free to use any version you wish, if you are importing an old wallet.dat then it should be the same BDB version as the client you used that wallet.dat file on.

      pwd should show /home/$username/FeathercoinBuild

      wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz
      tar -xvf db-4.8.30.NC.tar.gz
      cd db-4.8.30.NC/build_unix
      mkdir -p build
      BDB_PREFIX=$(pwd)/build
      ../dist/configure -disable-shared -enable-cxx -with-pic -prefix=$BDB_PREFIX
      make install
      cd ../..
      

      Build OpenSSL

      pwd should show /home/$username/FeathercoinBuild

      mkdir openSSL && cd openSSL
      wget https://www.openssl.org/source/openssl-1.0.1l.tar.gz
      tar zxvf openssl-1.0.1l.tar.gz
      cd openssl-1.0.1l
      export CFLAGS="-fPIC"
      ./config --prefix=/home/acid/FeathercoinBuild/openSSL/build shared enable-ec enable-ecdh enable-ecdsa -lanl -ldl
      sudo make
      sudo make install
      cd ../..
      

      Build ZXING

      pwd should show /home/$username/FeathercoinBuild

      sudo apt-get install cmake 
      mkdir zxing && cd zxing 
      git clone https://github.com/glassechidna/zxing-cpp.git && cd zxing-cpp
      mkdir build && cd build/
      export CXXFLAGS="-fPIC"
      cmake -G "Unix Makefiles" -DCMAKE_CXX_FLAGS="-fPIC -D_GLIBCXX_USE_CXX11_ABI=1" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=11 -DCMAKE_CXX_STANDARD_REQUIRED=ON ..
      make && sudo make install
      cd ../../..
      

      Edit a bug in zxing

      sudo vi /usr/local/include/zxing/LuminanceSource.h
      

      Edit line 30 from “private:” to “public:” and save

      –

      GIT was not installed by default soo…

      sudo apt-get install git
      

      3. Feathercoin !

      Grab the FTC source

      pwd should show /home/$username/FeathercoinBuild

      git clone https://github.com/FeatherCoin/Feathercoin.git FTC0961 && cd FTC0961
      

      Note: see where I’ve used the BDB_PREFIX which in the ftc configure command which is the same prefix we used when we compiled berkeleyDB earlier

      ./autogen.sh
      ./configure --prefix=/home/acid/FeathercoinBuild/FTCbuild CPPFLAGS="-I${BDB_PREFIX}/include/ -O2" LDFLAGS="-L${BDB_PREFIX}/lib/" PKG_CONFIG_PATH=/home/acid/FeathercoinBuild/openSSL/build/lib/pkgconfig LIBS=-Wl,-rpath=/home/acid/FeathercoinBuild/openSSL/build/lib SSL_LIBS="/home/acid/FeathercoinBuild/openSSL/build/lib/libssl.a /home/acid/FeathercoinBuild/openSSL/build/lib/libcrypto.a -ldl" --with-gui
      make -j 2
      make install
      

      You can run Feathercoin-QT like this

      cd /home/acid/FeathercoinBuild/FTCbuild/bin
      ./feathercoin-qt
      
      Note: Your /bin/ directory will contain the following binaries
      acid@osboxes ~/FeathercoinBuild/FTCbuild/bin $ ls -lrth
      total 398M
      -rwxr-xr-x 1 acid acid  77M May 31 19:34 feathercoind
      -rwxr-xr-x 1 acid acid  17M May 31 19:34 feathercoin-cli
      -rwxr-xr-x 1 acid acid 123M May 31 19:34 feathercoin-qt
      -rwxr-xr-x 1 acid acid  79M May 31 19:34 test_feathercoin-qt
      -rwxr-xr-x 1 acid acid 104M May 31 19:34 test_feathercoin
      acid@osboxes ~/FeathercoinBuild/FTCbuild/bin $
      
      


      I hope this helps someone. ;-)


      Change Log:

      July-2017 Updated for Feathercoin 0.9.6.1
      May-2017 Removed old bugs/bug fixes
      May-2017 Updated Guide for Feathercoin 0.9.6
      May-2017 Updated Commands
      Updated dependency version libdb5.1++-dev is now libdb5.3++-dev
      Updated title to match title convention of other guides I’ve written
      Added command sudo apt-get install pkg-config - Thank you @looarn

      • FTC Block Explorer + API @ https://fsight.chain.tips
      • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
      • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
      • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

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

        @Aciddude great guide, I’ll test using Wellenreiter’s zxing deb for getting 0.9.3.1 to install on 15.10.

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

          @aciddude : Great work :)

          It helped me already. I will implement the change in rpcrawtransaction.cpp and build the binary install package, so users can use their package manager to install/update the feathercoin software.

          Thanks a lot :)

          One remark: did you try to use Berkeley db 5.1, too?
          The configure script should search for 5.1,5.0,4.8 in that order.

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

          AcidD 1 Reply Last reply Reply Quote 2
          • AcidD
            AcidD Moderators @Wellenreiter last edited by

            @Wellenreiter said:

            @aciddude : Great work :)

            It helped me already. I will implement the change in rpcrawtransaction.cpp and build the binary install package, so users can use their package manager to install/update the feathercoin software.

            Thanks a lot :)

            One remark: did you try to use Berkeley db 5.1, too?
            The configure script should search for 5.1,5.0,4.8 in that order.

            On my first try I installed Berkeley DB 5.0 but then the configure script complained about “this build wont be portable because of incompatible bdb…so then I went down to 4.8”

            This needs a bit of QA though…I don’t think BitMessage worked…everytime I clicked it, nothing happened…or does that have to wait for a full blockchain sync ?

            • FTC Block Explorer + API @ https://fsight.chain.tips
            • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
            • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
            • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

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

              The warning about the Berkeley db means, that you can’t copy the block and wallet database to another system, unless it is Berkeley db 5.0 also, but this is true for every version of Berkeley db, so the warning is useless.

              In order to use Bitmessage you need to install Bitmessage on your system, preferably using a packet manager. The program simply checks if there is a bitmessage binary in your path and starts Bitmessage as external program. Bitmessage is not integrated in the code.
              See bitcoingui.cpp lines 704 - 716

              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 2
              • Wellenreiter
                Wellenreiter Moderators last edited by Wellenreiter

                Another remark
                As far as I know, --disable-shared forced a static build, where all libraries are complied into the binary, what increases the size of the binary and overall memory usage.
                For me the compile works without that parameter,too

                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 2
                • AcidD
                  AcidD Moderators last edited by

                  @wrapper - Did you manage to get 15.10 working ? I’m wondering if I should give this a shot and write another guide or maybe you guys can give me something else to do that’s a better use of my time ?

                  let me know!

                  • FTC Block Explorer + API @ https://fsight.chain.tips
                  • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
                  • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
                  • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

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

                    @aciddude said:
                    @wrapper - Did you manage to get 15.10 working ? I’m wondering if I should give this a shot and write another guide or maybe you guys can give me something else to do that’s a better use of my time ?

                    let me know!

                    If you want to see if you can get the 15.10 compile / test finished, please go ahead.

                    Unfortunately, I didn’t use a Virtual box and sort of went bit exotic on the dependency checking and crashed out my 15.10 system.

                    Basically, don’t ever install libqt5-gles-dev, as when you remove it, Kubuntu does not reinstall the kde dependency, libqt5-gles it removed and deleted all the kde dependencies for my desktop.

                    I’ve ended installing 16.04, which didn’t upgrade well, possibly due to multiple sources in software sources list, so I ended up reinstalling / upgrading. It didn’t update lots of programs, so a bit more work to get my home system back up to speed.

                    As that happened, also had the cooling backing plate failed on my NSGminer R9 290 test computer. I’ve had to search the house for a spare I know I’ve kept for 5 years. So I’ve had to reinstall that, luckily had some thermal paste to re-seat the CPU.

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

                      @aciddude said:

                      This needs a bit of QA though…I don’t think BitMessage worked…everytime I clicked it, nothing happened…or does that have to wait for a full blockchain sync ?

                      @Lizhi added Bitmessage feature

                      With regard to Bitmessage, I’m just researching some of that, to fix my install with 16.04.

                      Note : I’ve just tried Bitmessage and failed : so it might be python 2 not installed by default in 16.04 -

                      Your system may be attempting to run PyBitmessage with python 3. In this case, run python2 ~/PyBitmessage/src/bitmessagemain.py

                      Bitmessage requires PyQt and openssl to run

                      Bitmessage dependancies :
                      sudo apt-get install python openssl git python-qt4

                      Additionally on 16.04 :
                      sudo apt install libmessaging-menu-dev

                      Pull latest Bitmessage updates from :
                      https://github.com/Bitmessage/PyBitmessage

                      Bitmessage has been updated quite a bit if anyone wants to test it :

                      BM-Gu7Bm8cUYCW1vrnjcgrte5dLnAc6spmx

                      Note : Bitmessage upgrade - User interface for Bitcoin payments issue #841
                      https://github.com/Bitmessage/PyBitmessage/issues/841

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

                        @aciddude
                        @wrapper

                        I’ve managed to compile for 15.10 and 16.04.
                        The binary packages are just build and will be available this evening at
                        https://software.opensuse.org/package/feathercoin

                        Remark: 0.9.3.x gui does not compile with qt4. You need to specify configure --with-gui=qt5

                        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
                        • U
                          UnklAdM Regular Member last edited by

                          Good information. Thanks everyone!

                          • UnklAdM
                          1 Reply Last reply Reply Quote 1
                          • Wellenreiter
                            Wellenreiter Moderators last edited by

                            Forgot to mention: I also patched rpcrawtransaction.cpp to detect boost 1.58, so no modification of the code is needed to compile for Ubuntu 15.10 and 16.04

                            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 2
                            • wrapper
                              wrapper Moderators last edited by

                              Re : Fixing rcprawtransaction.cpp transaction bug squared .

                              @Wellenreiter I want to give you more kudos +1000 :)

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

                                It’s currently on 0.9.3.1 only, as this is the latest release version.

                                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 2
                                • L
                                  looarn last edited by

                                  Hey,

                                  Just to say thanks a bunch @aciddude !

                                  I got a node running on a debian.

                                  I just need to add this dependency : apt-get install -y pkg-config

                                  Actually syncing. ^^

                                  1 Reply Last reply Reply Quote 3
                                  • AcidD
                                    AcidD Moderators last edited by

                                    Hi All,

                                    Ubuntu has recently changed a few things.

                                    building Feathercoin 0.9.6 - you might come across this error:

                                    libbitcoinqt.a(libbitcoinqt_a-snapwidget.o): In function SnapWidget::on_snapButton_clicked()': [ 743s] /usr/src/packages/BUILD/src/qt/snapwidget.cpp:72: undefined reference tozxing::String::getTextabi:cxx11 const’
                                    

                                    To fix, you need to rebuild zxing like this:

                                    mkdir zxing && cd zxing 
                                    git clone https://github.com/glassechidna/zxing-cpp.git
                                    cd zxing-cpp/
                                    mkdir build
                                    cd build/
                                    export CXXFLAGS="-fPIC"
                                    cmake -G "Unix Makefiles" -DCMAKE_CXX_FLAGS="-fPIC -D_GLIBCXX_USE_CXX11_ABI=1" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=11 -DCMAKE_CXX_STANDARD_REQUIRED=ON ..
                                    make && sudo make install
                                    
                                    • FTC Block Explorer + API @ https://fsight.chain.tips
                                    • FTC Beer Money: 6x4LEQV88zRnBvZoH6ZNK6SeRxx4KiTyJs
                                    • FTC bech32 address: fc1q4tclm3cv4v86ez6el76ewmharexfapxhek5a03
                                    • BTC bech32 address: bc1qk8umuccapuafspk9e5szahvp0detafuzugv4ay

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

                                      That’s the solution to one of the little problems I have while creating the Linux installation packages :)

                                      Many thanks
                                      @aciddude

                                      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 2
                                      • First post
                                        Last post