分类目录归档:比特币

在Mac、Linux平台下面编译比特币源码

下载托管在Github上面的比特币源码。以当前最新的 v0.18.0代码为例。

git clone https://github.com/bitcoin/bitcoin.git # 克隆最新版的比特币源码到本地。
cd bitcoin # 切换至比特币根目录。
git checkout v0.18.0 # 在当前分支上切换至 tag 为 v0.18.0 的版本,或省略此步骤以编译最新版。
git status # 查看当前状态(这里会显示版本信息),此步可省略。

Mac下面的依赖安装:

brew install automake berkeley-db4 libtool boost@1.64 miniupnpc openssl pkg-config protobuf python qt libevent qrencode

brew 默认安装指定库的最新版本,可以使用命令$ brew search <libname>查看指定库的所有版本。 bitcoin v0.18.0 对应的 boost 库的版本为1.64.0,可以从 bitcoin/depends/packages/boost.mk 中获取当前版本比特币对应的 boost 库的版本。

Ubuntu 16.04.x下面的依赖安装

安装基础编译依赖:

apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3

安装Boost依赖:

apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev

apt-get install libboost-all-dev

ubuntu 16.04.* 默认安装 boost 库的版本为 1.58.0,可满足 bitcoin v0.18.0 对 boost 库的需求。

安装DB4.8依赖:

apt-get install software-properties-common
add-apt-repository ppa:bitcoin/bitcoin
apt-get update
apt-get install libdb4.8-dev libdb4.8++-dev

安装upnp依赖miniupnpc依赖:

apt-get install libminiupnpc-dev

安装ZMQ依赖:

apt-get install libzmq3-dev

安装QT GUI依赖支持:

apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler # Qt 5
apt-get install libqt4-dev libprotobuf-dev protobuf-compiler # Qt 4 可选
apt-get install libqrencode-dev

编译构建:

./autogen.sh

./configure # 定制并生成 Makefile,例:关闭钱包功能,使用静态库链接得到移植后不依赖库文件的可执行文件,指定 boost 库路径等。

make -j4  # 使用 Makefile 进行比特币源码的编译,编译完成后会生成 4 至 6 个 ELF 程序,分别为 bitcoind、bitcoin-cli、bitcoin-tx、test_bitcoin,若安装了 Qt 图形库,则会增加 bitcoin-qt、test_bitcoin-qt。

make install # 该项可选,把编译好的比特币程序拷贝到系统默认的可执行程序目录 /usr/local/bin 下。

注:Mac 无法构建 bitcoin v0.18.0 的可执行文件 bitcoin-qt,因为 Mac 不支持 bitcoin v0.18.0 对应的 qt5.5 的构建。

在Ubuntu 16.04 以及Windows下面编译生成门罗币(XMR)挖矿程序(xmr-stak)

门罗币作为2014年诞生的真正匿名性加密货币,其潜力巨大,挖矿难度也巨大,批量部署自己的矿机就涉及到编译自己的挖矿程序。
平台
ubuntu 16.04/14.04

apt-get install -y build-essential libtool autotools-dev autoconf pkg-config libssl-dev  git-core libboost-all-dev libqrencode-dev libminiupnpc-dev libevent-dev libsodium-dev build-essential libtool autotools-dev autoconf automake libssl-dev libboost-all-dev libdb-dev libdb++-dev pkg-config libevent-dev git-core cmake libmicrohttpd-dev libssl-dev cmake build-essential libhwloc-dev
https://github.com/fireice-uk/xmr-stak.git
cd xmr-stak  # 可以找到里面donate的地方,将算力捐赠调整为0%
mkdir build
cd build
cmake .. -DCUDA_ENABLE=OFF -DCPU_ENABLE=ON -DOpenCL_ENABLE=ON  # 只支持CPU&AMD
cmake .. -DCUDA_ENABLE=ON -DCPU_ENABLE=ON -DOpenCL_ENABLE=OFF # 只支持CPU&NVIDIA
cmake .. -DCUDA_ENABLE=OFF -DCPU_ENABLE=ON -DOpenCL_ENABLE=OFF # 只支持CPU

因为自己手边都是nvidia的显卡矿机,所以下面添加部署Nvidia CUDA支持的指令步骤
https://developer.nvidia.com/cuda-downloads
在上面的网页里面,有nvidia官方的各平台编译说明
因为我自己是ubuntu 16.04的平台,所以下面的步骤针对ubuntu 16.04平台

https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=debnetwork
wget -c "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.1.85-1_amd64.deb"
dpkg -i cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
apt-get update
apt-get install cuda
ldconfig

平台
Windows x64

https://developer.nvidia.com/compute/cuda/9.1/Prod/local_installers/cuda_9.1.85_windows


cd xmr-stak

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsMSBuildCmd.bat"
set CMAKE_PREFIX_PATH=C:\xmr-stak-dep\hwloc;C:\xmr-stak-dep\libmicrohttpd;C:\xmr-stak-dep\openssl

set CUDA_TOOLKIT_ROOT_DIR=C:\cuda91\dev
set CUDA_NVCC_EXECUTABLE=C:\cuda91\dev\bin
set CUdA_INCLUDE_DIRS=C:\cuda91\dev\include
set CUDA_CUDART_LIBRARY=C:\cuda91\dev\lib
mkdir build
cd build

cuda8 => unknown

cuda9
cmake -G "Visual Studio 15 2017 Win64" -T v141,host=x64 -DCUDA_TOOLKIT_ROOT_DIR=C:/cuda91/dev -DOpenCL_ENABLE=OFF ..
cmake -G "Visual Studio 14 2015 Win64" -T v140,host=x64 -DCUDA_TOOLKIT_ROOT_DIR=C:/cuda91/dev -DOpenCL_ENABLE=OFF ..

cmake --build . --config Release --target install


Visual Studio 2017 Community
blob:https://www.visualstudio.com/26d7f816-38d5-4ace-a55d-249bd2f056d4

在Ubuntu 16.04 x64下面编译比特币源码生成钱包

在Ubuntu 16.04 x64下面编译比特币源码
准备

apt-get install -y build-essential libtool autotools-dev autoconf pkg-config libssl-dev  git-core libboost-all-dev libqrencode-dev libminiupnpc-dev libevent-dev libsodium-dev build-essential libtool autotools-dev autoconf automake libssl-dev libboost-all-dev libdb-dev libdb++-dev pkg-config libevent-dev git-core cmake libmicrohttpd-dev libssl-dev cmake build-essential libhwloc-dev


#apt-get install -y libqt5gui5 libqt5core5 libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler

wget -c '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/ && ../dist/configure --enable-cxx --with-pic --prefix=/usr/local/db4/ && make -j4 && make install

vim /etc/ld.so.conf
/usr/local/db4/lib
ldconfig

编译纯命令行钱包

git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin
bash autogen.sh
./configure LDFLAGS="-L/usr/local/db4/lib" CPPFLAGS="-I/usr/local/db4/include" --without-gui --with-incompatible-bdb
make  -j4

编译QT钱包

apt-get install -y libqt5gui5 libqt5core5 libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler libqt5-dev
git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin
bash autogen.sh
./configure LDFLAGS="-L/usr/local/db4/lib" CPPFLAGS="-I/usr/local/db4/include" --with-gui --with-incompatible-bdb
make  -j4

在Linux下面编译cpu挖矿程序

今年比特币大火,进入又一个超级牛市,也逐渐的从极客圈进入公众的视野,虽然是2013年就开始买币的老韭菜,但是因为2016年买房,虽然2016年全部提现了,导致2017年没有资金买币,完美错过比特币这轮牛市。
但是没事儿啊,作为一个工程师,买不起币,咱还不能挖币么?
下面说说编译CPU挖币程序的步骤,因为很多币没有提供linux下面的挖矿程序,导致我们没法在早起挖到大量的币。
以ubuntu x64举例
准备工作

apt-get update
apt-get install openssl libssl-dev build-essential -y
apt-get install  libcurl4-openssl-dev -y

下载挖矿代码,以 www.vvpool.com 上面新推出的btv为例
btv官方提供的挖矿代码仓库为
https://github.com/bitcoinvote/cpuminer-multi
编译平台目标为【x86-64】

git clone https://github.com/bitcoinvote/cpuminer-multi.git
cd cpuminer-multi
./autogen.sh
./configure CFLAGS="-march=x86-64"
make -j4

则当前目录下面会有一个名字叫【minerd】的程序,copy到/usr/bin/或者/usr/local/bin目录下面

cp minerd /usr/bin/

生成自己的钱包地址,我的btv钱包地址为

15FTEBU2mb41UguPrk4BBS53R5LqYsQt8G

开启挖矿之旅

minerd -a cryptonight -o stratum+tcp://btv.vvpool.com:5700 -u 15FTEBU2mb41UguPrk4BBS53R5LqYsQt8G.10001 -p x -t 4

具体参数,使用 minerd –help可以看到
其他算法的币,流程类似~~~
如此简单~~~