比特幣源碼研讀1——下載與編譯

身為一個(gè)程序猿,面對(duì)用高手編程實(shí)現(xiàn)的比特幣拴清,不研究下源碼實(shí)在說(shuō)不過(guò)去。廢話少說(shuō)会通,直奔主題口予。第一節(jié)是關(guān)于比特幣源碼的下載與編譯。

本文的操作都是基于Linux環(huán)境進(jìn)行的涕侈。


一 ?基本環(huán)境搭建

虛擬機(jī):Oracle VM VirtualBox

Linux版本:ubuntu-16.04.3-desktop-amd64

當(dāng)然其他版本也行沪停,只要能安裝成功即可。

至于安裝教程裳涛,網(wǎng)上一搜一大堆木张,這里就不給你做伸手黨的機(jī)會(huì)了。

直接進(jìn)入第二步源碼下載


二 源碼下載

1. 軟件更新

新下載的Linux系統(tǒng)调违,建議登錄系統(tǒng)后窟哺,先更新下軟件。

左上角search your computer, 輸入 terminal技肩,或者快捷鍵Ctrl+Alt+T, 打開(kāi)命令行終端且轨,輸入以下命令:

sudo apt-get update

sudo apt-get upgrade

基礎(chǔ)依賴庫(kù)下載,輸入以下命令虚婿,如果怕打錯(cuò)旋奢,可以直接復(fù)制粘貼。

tips: 第三句不要換行執(zhí)行然痊。

sudo apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev

sudo apt-get install libboost-all-dev

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

sudo apt-get install libqrencode-dev

sudo apt-get install libminiupnpc-dev

2. 安裝git 工具

比特幣的源碼都是放在Github網(wǎng)站上面的至朗。需要通過(guò)git工具下載到本地。執(zhí)行下面的語(yǔ)句剧浸,如果報(bào)錯(cuò)說(shuō)明系統(tǒng)沒(méi)有該工具锹引,需要安裝矗钟,已下載的可跳過(guò)。

sudo apt install git

3. 下載源碼

接下來(lái)就是下載源碼了嫌变,

cd ~

git clone https://github.com/bitcoin/bitcoin.git


3. 安裝 berkeley-db4

? ? ? 接著安裝 berkeley-db4吨艇,注意路徑是在個(gè)人Home目錄,需要進(jìn)入使用命令 “cd ~”即可腾啥。這里用的是4.8版本东涡。

cd ~

mkdir bitcoin/db4/

wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'

下載完成后執(zhí)行下面語(yǔ)句進(jìn)行安裝

tar -xzvf db-4.8.30.NC.tar.gz

cd db-4.8.30.NC/build_unix/

../dist/configure --enable-cxx --disable-shared --with-pic --prefix=/home/theusername/bitcoin/db4/

make install

此時(shí)出現(xiàn)了錯(cuò)誤,Permission denied倘待,沒(méi)有權(quán)限創(chuàng)建目錄/home/theusername

所以需要改用root用戶權(quán)限來(lái)執(zhí)行

sudo make install

4. 編譯比特幣源碼

cd ~/bitcoin/

./autogen.sh

./configureLDFLAGS="-L/home/theusername/bitcoin/db4/lib/" CPPFLAGS="-I/home/theusername/bitcoin/db4/include/"

make -s -j5

以下截圖是執(zhí)行前面兩個(gè)語(yǔ)句的結(jié)果

但是在執(zhí)行第三條語(yǔ)句的時(shí)候報(bào)錯(cuò)了

看錯(cuò)誤是libevent沒(méi)找到疮跑,看來(lái)是少了libevent庫(kù),上網(wǎng)搜索了下凸舵,發(fā)現(xiàn)是缺了libevent-dev祖娘,安裝上即可。

sudo apt-get install libevent-dev

執(zhí)行成功

但是執(zhí)行最后一條語(yǔ)句的時(shí)候又報(bào)錯(cuò)了

這個(gè)錯(cuò)誤只是說(shuō)內(nèi)部編譯器錯(cuò)誤贞间,不好定位問(wèn)題贿条,那就再執(zhí)行一遍該語(yǔ)句。這次錯(cuò)誤就很明顯了:Virtual memoryexhausted: Cannot allocate memory. 內(nèi)存不足增热,看來(lái)是我分配的內(nèi)存空間不夠整以。退出Ubuntu后重新分配2G內(nèi)存。

啟動(dòng)后進(jìn)入系統(tǒng)重新執(zhí)行以下語(yǔ)句:

cd ~/bitcoin/

./autogen.sh

./configure LDFLAGS="-L/home/theusername/bitcoin/db4/lib/" CPPFLAGS="-I/home/theusername/bitcoin/db4/include/"

make

sudo make install

tips: 第四個(gè)語(yǔ)句"make"執(zhí)行了25分鐘左右峻仇,需要耐心點(diǎn)哦公黑,這時(shí)不妨泡杯茶或沖杯咖啡喝喝,權(quán)當(dāng)中場(chǎng)休息摄咆。

5. 檢查結(jié)果

我們可以通過(guò)詢問(wèn)系統(tǒng)下面2個(gè)可執(zhí)行文件的路徑凡蚜,來(lái)確認(rèn)bitcoin是否安裝成功。

$ which bitcoind

正確結(jié)果: /usr/local/bin/bitcoind

$ which bitcoin-cli

正確結(jié)果:/usr/local/bin/bitcoin-cli

如果是以上兩個(gè)都與正確結(jié)果相符合吭从,恭喜朝蜘,比特幣客戶端安裝成功!

啟動(dòng)客戶端, 看到彈出的Welcome窗口涩金,心情十分雞凍呀谱醇。。步做。

bitcoin-qt

tips: 只打算體驗(yàn)一下副渴,不打算同步所有數(shù)據(jù)(畢竟有153G),就不要點(diǎn)擊OK全度。

區(qū)塊鏈研習(xí)社源碼研讀班 Jacky

參考資料:

比特幣源碼的編譯及環(huán)境搭建

ubuntu下從源碼編譯比特幣(Bitcoin)客戶端

聊聊比特幣(Bitcoin)客戶端源碼編譯那些事

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末煮剧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌勉盅,老刑警劉巖佑颇,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異菇篡,居然都是意外死亡漩符,警方通過(guò)查閱死者的電腦和手機(jī)一喘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)驱还,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人凸克,你說(shuō)我怎么就攤上這事议蟆。” “怎么了萎战?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵咐容,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蚂维,道長(zhǎng)戳粒,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任虫啥,我火速辦了婚禮蔚约,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘涂籽。我一直安慰自己苹祟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布评雌。 她就那樣靜靜地躺著树枫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪景东。 梳的紋絲不亂的頭發(fā)上砂轻,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音斤吐,去河邊找鬼搔涝。 笑死,一個(gè)胖子當(dāng)著我的面吹牛曲初,可吹牛的內(nèi)容都是我干的体谒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼臼婆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼抒痒!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起颁褂,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤故响,失蹤者是張志新(化名)和其女友劉穎傀广,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體彩届,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡伪冰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了樟蠕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贮聂。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖寨辩,靈堂內(nèi)的尸體忽然破棺而出吓懈,到底是詐尸還是另有隱情,我是刑警寧澤靡狞,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布耻警,位于F島的核電站,受9級(jí)特大地震影響甸怕,放射性物質(zhì)發(fā)生泄漏甘穿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一梢杭、第九天 我趴在偏房一處隱蔽的房頂上張望温兼。 院中可真熱鬧,春花似錦式曲、人聲如沸妨托。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)兰伤。三九已至,卻和暖如春钧排,著一層夾襖步出監(jiān)牢的瞬間敦腔,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工恨溜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留符衔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓糟袁,卻偏偏與公主長(zhǎng)得像判族,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子项戴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 了解底層的技術(shù)形帮,能夠更好的理解區(qū)塊鏈。因此,決定跟隨菜菜子的腳步辩撑,從代碼的角度界斜,看看比特幣的實(shí)現(xiàn)原理。 比特幣客戶...
    electroman閱讀 2,427評(píng)論 0 9
  • Ubuntu 下開(kāi)始準(zhǔn)備編譯比特幣 Ubuntu 16.04.我是裝在了虛擬機(jī)上合冀,參考菜菜子的文章來(lái)配置的 聊聊比...
    孤隨風(fēng)閱讀 6,202評(píng)論 1 2
  • 眨眼之間,親愛(ài)的,你已經(jīng)從1個(gè)小屁孩成長(zhǎng)為能扛動(dòng)飲水罐的女漢子,當(dāng)年瘋起來(lái)翻天覆地的假小子現(xiàn)在束起高高馬尾各薇。...
    朵鹿閱讀 194評(píng)論 0 0
  • 不知不覺(jué)21天又過(guò)去了,時(shí)間總是過(guò)得這么快君躺,仿佛昨天的才開(kāi)始的打卡峭判,今天就要結(jié)束。 打卡讓我了解到了世界這么大晰洒,優(yōu)...
    藍(lán)月雪谷閱讀 58,260評(píng)論 0 2
  • 二十六歲的他獨(dú)自生活朝抖,在一家室內(nèi)設(shè)計(jì)的外包公司工作。 二十八歲的她是一家雜志的美工谍珊,偶爾會(huì)寫(xiě)些文章,養(yǎng)了一只叫...
    了己薰閱讀 320評(píng)論 0 0