Тема была создана, когда самой новой версией биткоина была 0.13
Прошло время и решил скомпилировать 0.16.2 всего одной консольной командой. Удачно. Кому интересно, вот ссылка на тему:
https://bitcointalk.org/index.php?topic=4912326.msg44246451#msg44246451Дальше описан процесс компиляяции версии 0.13.
Вообще никаких проблем! Даже не ожидал, что опенсорс может так легко собраться.
Делюсь опытом, вдруг кому пригодится. По шагам:
1. Установить Oracle VM VirtualBox - это бесплатная виртуальная машина.
2. Скачать последний дистрибутив убунту
3. Установить убунту на виртуальную машину (!
версия убунту должна быть 14 или выше!)
4. Опционально: Установить дополнения в виртуальную машину (меню Устройства), чтобы можно было работать с буфером обмена
5. Зайти в консоль убунты: Alt+Ctrl+T
6. В консоли по очереди набирать (копипастить) следующие команды:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev
sudo apt-get install libminiupnpc-dev
sudo apt-get install libzmq3-dev
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
sudo apt-get install libqrencode-dev
Замечание: на другом компе у меня команда sudo add-apt-repository ppa:bitcoin/bitcoin
выдала ошибку. Без этой команды все остальное тоже фейлится. Вылечилось так:
sudo apt-get update
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
Ну то есть перед этой командой сначала нужно проапдейтиться.Все вышеперечисленное можно ввести как одну команду (просто скопипастить в терминал)
sudo apt-get update && apt-get upgrade -y && apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev -y && apt-get update -y && add-apt-repository ppa:bitcoin/bitcoin && apt-get update -y && apt-get install libdb4.8-dev libdb4.8++-dev libminiupnpc-dev libzmq3-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler libqrencode-dev -y
Через некоторое время терминал попросит нажать Enter - не стесняйтесь, нажмите.
7. Теперь все готово для скачивания и компиляции битка. Я скачал из ветки релизов последнюю версию:
wget
https://github.com/bitcoin/bitcoin/archive/v0.13.0.tar.gz8. Распаковываем и переходим в папку исходников:
tar -xvzf v0.13.0.tar.gz
cd bitcoin-0.13.0
9. Вводим по очереди:
./autogen.sh
./configure
make
sudo make install 10. Все! Теперь бинарики для убунты лежат в папке /usr/local/bin
Теперь можно издеваться над исходниками в любимом редакторе, а когда надоест опять выполнить из папки исходников:
make
sudo make install
ВАЖНО: Если кто-то захочет делать форк, то учтите что в 13 версии коры из исходников выпилили возможность майнинга. Поэтому для форка нужно либо использовать версии 12 и ниже, либо придется делать еще и форк какого-нибудь майнера.
Мне потребовалась неделя, чтобы понять - почему моя сборка упорно не хочет майнить.
ПО ПУНКТУ 9: Если нужно сделать бинарик, который будет работать не только в убунте, но и в других линуксах, то в пункте 9 нужно проделать такие шаги:
Для Linux 64 bit (собирается и работает только в 64 битном линуксе)
cd depends
make download
make
cd ..
./autogen.sh
./configure --enable-glibc-back-compat --prefix=`pwd`/depends/x86_64-pc-linux-gnu LDFLAGS="-static-libstdc++"
make clean
make
make install
Бинарики будут лежать в папке depends/x86_64-pc-linux-gnu/bin
Для Linux 32 bit (собирается и работает только в 32 битном линуксе)
cd depends
make download
make
cd ..
./autogen.sh
./configure --enable-glibc-back-compat --prefix=`pwd`/depends/i686-pc-linux-gnu LDFLAGS="-static-libstdc++"
make clean
make
make install
Бинарики будут лежать в папке depends/i686-pc-linux-gnu/bin
Такая компиляция прилинкует к бинарику все нужные библиотеки.
Собрать бинарики для винды можно так:
Для Win64
sudo apt-get install g++-mingw-w64-i686 mingw-w64-i686-dev g++-mingw-w64-x86-64 mingw-w64-x86-64-dev curl
cd depends
make download
make HOST=x86_64-w64-mingw32 -j4
cd ..
./configure --prefix=`pwd`/depends/x86_64-w64-mingw32
make clean
make
make install
Бинарики будут лежать в папке depends/x86_64-w64-mingw32/bin
Для Win32
sudo apt-get install g++-mingw-w64-i686 mingw-w64-i686-dev g++-mingw-w64-x86-64 mingw-w64-x86-64-dev curl
cd depends
make download
make HOST=i686-w64-mingw32 -j4
cd ..
./configure --prefix=`pwd`/depends/i686-w64-mingw32
make clean
make
make install
Бинарики будут лежать в папке depends/i686-w64-mingw32/bin
Полезные ссылки в этой теме:Для компиляции нужно не менее 2 ГБ оперативной памяти. Если у вас меньше, можно увеличить:
Как добавить виртуальной памяти в Убунту Если все скомпилировалось а вы решили делать свой форк, то вот инструкция:
Как сделать свой форк биткоина