1. 程式人生 > >bitcoin 0.10.0 版本 linux 交叉編譯 windows 版本 (gitian 編譯) 踩坑指南

bitcoin 0.10.0 版本 linux 交叉編譯 windows 版本 (gitian 編譯) 踩坑指南

因為 bitcoin 最新版本沒有挖礦程式碼,所以本人基於 bitcoin 0.10.0 版本修改創世塊重新打包了一個新的幣

修改創世快教程 https://blog.csdn.net/wab719591157/article/details/80747043

linux 版本編譯教程  https://blog.csdn.net/wab719591157/article/details/81001322

linux 版本編譯按照教程就可以很輕鬆的實現,並且已經可以執行挖礦,所以想在編譯一個 windows 版本的客戶端。

按照也按照教程一步一步來。可現實是殘酷的,原以為很簡單,沒想到有這麼多坑,並且網上基本沒有 0.10.0 版本的

編譯教程所以記錄下。

 

第一個坑:

1、系統要求 必須 ubuntu 14.04 版本,不能用 16.06 版本或以上版本,編譯不通過。因為 0.10.0 不支援,在釋出這個版本的時候 16.04 應該還沒出來。 重要指數  5星

2、虛擬機器要求 也就是硬體要求。 因為方便,所以我是在虛擬機器裡面完成的編譯。

      一開始,我用的 Virtual Box 5.2.8 r121009 版本,就算系統切換到 14.04 也無法編譯。因為 這個版本的虛擬機器不支援 硬體虛       擬化技術。  重要指數  5星

       推薦虛擬機器   VMware  或者  Parallels Desktop  並且溝上 Intel VT-x/EPT  或 AMD-v/RVI(V)(VMware)

       

       

到這裡,硬體基本準備好了,

進入系統 執行 以下命令檢視系統是否支援硬體虛擬化,如果什麼都沒有輸出,則表示不支援。

egrep '(vmx|svm)' /proc/cpuinfo

如果輸出下圖所所示內容,則表示支援硬體虛擬化,可以進行下一步了。

接下來開吃配置軟體。

1、先進行系統依賴的安裝。

# 更新系統
sudo apt-get update
sudo apt-get upgrade


# 安裝系統依賴
sudo apt-get install -y ruby apache2 git apt-cacher-ng python-vm-builder qemu-kvm  g++ git-core pkg-config autoconf2.13 libtool automake faketime bsdmainutils  mingw-w64 g++-mingw-w64 nsis zip debootstrap lxc ruby  apt-cacher-ng

#檢查 apt-cacher-ng 依賴是否正確執行
sudo service apt-cache-ng status  # 如果返回 apt-cacher-ng is running 表示正常,否則表示有問題
	
#執行 
ls -l /dev/kvm  # 如果返回 crw-rw----+ 1 root kvm 10,232 Jul 26 05:50 /dev/kvm 表示成功

2、如果以上都沒有問題,就可以進行程式碼配置了。

#下載專案原始碼
git clone git://github.com/bitcoin/bitcoin.git

#下載 gitian 編譯程式碼
git clone git://github.com/devrandom/gitian-builder.git

# 建立目錄
mkdir gitian-builder/inputs
cd gitian-builder

# 下載 bitcoin 依賴庫(這裡需要注意,因為是國外網站有可能會下載不下來)
# 如果下載不下來,你需要手動下載 我的做法是所有依賴庫都手動下載下來,放入七牛雲,然後修改
# ../bitcoin/depends/packages 目錄下對應的 依賴庫的下載地址。
# 這裡最好是不要有任何錯誤,能一口氣都下載完成,如果出錯,可多次執行,知道完成為止
make -C ../bitcoin/depends download SOURCCE_PATH=`pwd`/cache/common

如果你恰好也是基於 bitcoin 0.10.0 版本進行編譯的話,可以加我微信  cy71959115 找我要一份  depends 國內網站依賴包,下載速度 1m/s 左右(本人一個一個下載完成後上傳到七牛雲,然後編譯依賴基於七牛雲下載)。 

3、執行編譯前系統環境準備

#執行編譯前準備命令,命令比較慢,靜等完成,期間如果沒有報錯則ok
bin/make-base-vm --suite precise --arch amd64

#執行編譯命令,如果出錯,請檢視 var/build.log 編譯日誌,可多次執行
./bin/gbuild --commit bitcoin=master ../bitcoin/contrib/gitian-descriptors/gitian-win.yml

4、重點來了,如果上一步沒有任何異常,則恭喜你,編譯已經完成了。但是如果出錯。那你可以遇到和我一樣的錯誤。

    執行以下命令

vi ../bitcoin/contrib/gitian-descriptors/gitian-win.yml

找到

 

修改為

echo 'export LD_PRELOAD=/usr/lib/x86_64-mingw-w64/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${prog}

#LD_PRELOAD  具體值看你當前環境 libfaketime.so.1 檔案所在目錄。
# 可以使用 find / -name libfaketime.so.1 查詢

重新執行,比較慢,如果不出意外,一直執行到底,應該就沒問題了。


#執行編譯命令,如果出錯,請檢視 var/build.log 編譯日誌,可多次執行
./bin/gbuild --commit bitcoin=master ../bitcoin/contrib/gitian-descriptors/gitian-win.yml

 

加入我的星球,手把手教你山寨幣研發

加入QQ 討論群

個人微信 cy71991157