日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

探索比特币源码0-bitcoin的编译

發布時間:2024/7/23 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 探索比特币源码0-bitcoin的编译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

探索比特幣源碼0-bitcoin的編譯

前言

區塊鏈領域作為一個新興的熱點,迭代的實在是太快了,剛剛入門,必須要抓緊追趕。

在閱讀了一些優秀的文檔之后,已經對比特幣及其背后的實現技術——區塊鏈有了一定的理解。

為了更深入的理解比特幣及其實現技術的各種細節,開始進行比特幣源碼的學習。

我學習源碼過程中遇到的優秀資源,推薦如下,后續會不斷更新。

比特幣開發者手冊

精通比特幣

比特幣其實是一種協議,而這個基于信任的協議的第一個實現版本,叫做“比特幣(Bitcoin)”或者“Satoshi客戶端”。現在它已經被大大的修改和改進了,演變成所謂的比特幣核心——Bitcoin Core,以區別于其他兼容的實現方式。

比特幣核心是比特幣系統的參考實現,這意味著它是如何實施的權威參考。Bitcoin Core實現了比特幣的所有方面,包括錢包,交易和區塊驗證引擎,以及P2P網絡中的完整網絡節點。

因此讓我們從Bitcoin Core入手,學習源碼,全面了解比特幣。

下載比特幣源碼

我們使用git命令來創建源代碼的本地副本

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

當git克隆操作完成后,進入到項目中

$ cd bitcoin

選擇Bitcoin Core版本

在編譯代碼之前,我們需要先切換到一個穩定的release版本

首先,要找到可用release的標簽,我們使用git tag命令:

$ git tag v0.1.5 v0.1.6test1 v0.10.0 ... v0.11.2 v0.11.2rc1 v0.12.0rc1 v0.12.0rc2 ...

根據慣例,用于測試的發布候選版本具有后綴“rc”

因此我們選一個沒有后綴的版本check下來,就選最新的吧

git checkout v0.16.1

通過輸入命令git status來確認所需的版本

git status

完成后可以簡單觀察下比特幣項目的結構

$ ls autogen.sh build-aux configure.ac contrib CONTRIBUTING.md COPYING depends doc INSTALL.md libbitcoinconsensus.pc.in Makefile.am README.md share src test

配置構建Bitcoin Core

現在嘗試構建命令行比特幣客戶端,也稱為比特幣(bitcoind)。

我是在Linux下進行,可以在doc/build-unix.md中查看編譯bitcoind命令行客戶端的說明。

其他系統可以在doc目錄中找到替代說明,如macOS和Windows的說明,分別為build-osx.md或build-windows.md。

Bitcoin Core 的構建過程從0.9版本開始更改為使用autogen / configure / make系統。也就是說,構建的流程如下:

./autogen.sh ./configure make make install # optional

一步步來,autogen.sh文件是一個shell腳本,我們可以通過使用autogen.sh腳本生成一組build腳本來啟動build過程。

我們嘗試運行autogen.sh腳本

$ ./autogen.sh

得到的結果如下:

configuration failed, please install autoconf first

出現了配置錯誤,我們需要預先安裝autoconf

如官方文檔所述,很友好的是,它會詢問系統以發現正確的設置,并確保你擁有編譯代碼所需的所有庫。

也就是說,它會機智的檢查你缺什么依賴,缺什么包。按照build-unix.md中的提示,各種依賴的安裝走一波

$ sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3 libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev

再次運行autogen.sh腳本,成功~

目前我還不了解shell,但我又有點好奇autogen.sh腳本都做了什么,于是調用如下命令,查詢當前目錄下的文件及最后修改時間,并按時間排序:

$ ls -lc -t 總用量 1216 drwxrwxr-x 21 lsgo-as lsgo-as 4096 712 21:16 src drwxrwxr-x 3 lsgo-as lsgo-as 4096 712 21:16 build-aux -rw-rw-r-- 1 lsgo-as lsgo-as 46452 712 21:16 Makefile.in drwxr-xr-x 2 lsgo-as lsgo-as 4096 712 21:16 autom4te.cache -rwxrwxr-x 1 lsgo-as lsgo-as 1005998 712 21:16 configure -rw-rw-r-- 1 lsgo-as lsgo-as 55075 712 21:16 aclocal.m4 drwxrwxr-x 4 lsgo-as lsgo-as 4096 712 20:57 test drwxrwxr-x 4 lsgo-as lsgo-as 4096 712 20:57 doc drwxrwxr-x 5 lsgo-as lsgo-as 4096 712 20:57 share drwxrwxr-x 17 lsgo-as lsgo-as 4096 712 20:57 contrib drwxrwxr-x 6 lsgo-as lsgo-as 4096 712 20:57 depends -rw-rw-r-- 1 lsgo-as lsgo-as 47128 712 20:57 configure.ac -rw-rw-r-- 1 lsgo-as lsgo-as 13886 712 20:57 CONTRIBUTING.md -rw-rw-r-- 1 lsgo-as lsgo-as 1142 712 20:57 COPYING -rw-rw-r-- 1 lsgo-as lsgo-as 10859 712 20:57 Makefile.am -rwxrwxr-x 1 lsgo-as lsgo-as 527 712 20:55 autogen.sh -rw-rw-r-- 1 lsgo-as lsgo-as 3600 712 20:55 README.md -rw-rw-r-- 1 lsgo-as lsgo-as 295 712 17:42 libbitcoinconsensus.pc.in -rw-rw-r-- 1 lsgo-as lsgo-as 161 712 17:42 INSTALL.md

仔細對比,可以看出autogen.sh腳本沒有在當前目錄下生成新文件,但修改了如下文件

src build-aux Makefile.in autom4te.cache configure aclocal.m4

這些都是和配置有關的,其中最重要的是configure腳本,它提供了許多不同的選項來自定義構建過程。

鍵入“./configure –help”查看各種選項:

$ ./configure --help

看的有點蒙,也不得不說,功能真強大!

configure腳本允許您通過使用--enable-FEATURE和--disable-FEATURE標志來啟用或禁用bitcoind的某些功能,其中FEATURE由功能名稱替換,如幫助輸出中所列。

我還沒有搞清這些功能,這里我們構建具有所有默認功能的bitcoind客戶端。 我們不會使用配置標志。

調用./configure腳本,報了這樣一個錯

$ ./configure ... configure: error: libdb_cxx headers missing, Bitcoin Core requires this library for wallet functionality (--disable-wallet to disable wallet functionality)

錯誤顯示,我沒有安裝錢包的一個依賴庫

這才回想起來,錯誤原因一定是我偷懶了,沒有把build-unix.md讀完,所以重要的事情說三遍

仔細閱讀build-unix.md文檔,并安裝所有的依賴項!

仔細閱讀build-unix.md文檔,并安裝所有的依賴項!

仔細閱讀build-unix.md文檔,并安裝所有的依賴項!

認真安裝所有依賴項后,重新運行./configure腳本,成功~

構建Bitcoin Core可執行文件

下一步,編譯源代碼,這個過程根據CPU和內存資源不同,但一般可能需要1個小時完成。輸入make命令就可以開始編譯了:

$ make Making all in srcCXX crypto/libbitcoinconsensus_la-hmac_sha512.loCXX crypto/libbitcoinconsensus_la-ripemd160.loCXX crypto/libbitcoinconsensus_la-sha1.loCXX crypto/libbitcoinconsensus_la-sha256.loCXX crypto/libbitcoinconsensus_la-sha512.loCXX libbitcoinconsensus_la-hash.loCXX primitives/libbitcoinconsensus_la-transaction.loCXX libbitcoinconsensus_la-pubkey.loCXX script/libbitcoinconsensus_la-bitcoinconsensus.loCXX script/libbitcoinconsensus_la-interpreter.lo[... many more compilation messages follow ...] $

如果一切順利,bitcoind現在已經編譯完成。

最后一步就是通過sudo make install命令,安裝bitcoind可執行文件到你的系統路徑下,可能會提示您輸入用戶密碼,因為此步驟需要管理員權限:

$ sudo make install Password: Making install in src../build-aux/install-sh -c -d '/usr/local/lib' libtool: install: /usr/bin/install -c bitcoind /usr/local/bin/bitcoind libtool: install: /usr/bin/install -c bitcoin-cli /usr/local/bin/bitcoin-cli libtool: install: /usr/bin/install -c bitcoin-tx /usr/local/bin/bitcoin-tx ... $

bitcoind默認的安裝位置是/usr/local/bin。你可以通過詢問系統下面2個可執行文件的路徑,來確認bitcoin是否安裝成功。

$ which bitcoind /usr/local/bin/bitcoind$ which bitcoin-cli /usr/local/bin/bitcoin-cli

總結

以上是生活随笔為你收集整理的探索比特币源码0-bitcoin的编译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲国产精品久久 | 中文字幕一区二区免费 | 欧美日韩一区二区精品 | 在线欧美 | 免费在线播放av | 日韩中文字幕视频在线 | 经典一区二区三区 | 精品无码av一区二区三区 | a级片日本| 九九热只有精品 | 午夜肉伦伦影院 | 日本一级淫片 | 久久91精品国产 | 少妇一级淫片免费放中国 | 日韩在线视频免费观看 | 精品国产乱码久久久久久久软件 | 污污免费在线观看 | 爱爱三级视频 | 久久久久久无码精品大片 | 成人精品久久久午夜福利 | 丝袜人妻一区二区 | 亚洲欧美综合在线观看 | 国产精品一区免费 | 91av精品| 少妇精品无码一区二区三区 | 亚洲国产精品va在线看黑人 | 国产成人av在线播放 | 精品亚洲国产成av人片传媒 | www.日韩欧美 | 亚洲激情在线观看 | 久久久久久一区二区 | 九九热视 | 精品一区二区三区久久 | cao久久| 欧美日韩国产一区二区在线观看 | 一区二区三区在线免费观看视频 | 国内自拍第一页 | www.日批 | 欧亚免费视频 | 自拍偷拍国产精品 | 国产午夜免费视频 | 性猛交富婆╳xxx乱大交天津 | 亚洲最大福利网站 | 逼逼爱插插网站 | www.激情五月| 欧美特黄aaaaaa | 在线1区 | 日日摸夜夜爽 | 91极品蜜桃臀 | 中日韩在线视频 | 欧美一区二区三区爱爱 | 一区三区视频在线观看 | 91精品婷婷国产综合久久蝌蚪 | 国产黄色免费在线观看 | 亚洲av无码一区二区三区人 | 伊人福利在线 | 成人av日韩 | 在线观看网址你懂的 | 喷水少妇| 青草青草久热 | 久成人| 日韩精品电影一区二区 | 日韩三级免费看 | 黄色一级片在线播放 | 快色av| 精品亚洲一区二区三区四区五区 | 成人黄色免费网址 | 欧美日韩少妇精品 | 中文av一区二区三区 | 奇米网久久 | 欧美亚洲黄色片 | 理论在线视频 | 性感美女高潮 | 99re在线播放 | 日本色视频 | 丰满少妇乱子伦精品看片 | 伊人中文字幕在线观看 | 能看av的网址 | 无套内谢88av免费看 | 国产一二精品 | 亚洲一级Av无码毛片久久精品 | 91在线免费视频 | 久操免费在线 | 久久精品91| 一区二区三区四区在线播放 | 日韩精选在线观看 | 亚洲精选一区二区三区 | 欧美色图17p | 久久久影视 | 无码专区久久综合久中文字幕 | 欧美最猛黑人xxxx | 秋霞在线视频观看 | 校园春色综合 | 韩国一级淫片免费看 | 成人深夜免费视频 | 瑟瑟综合| 久久久久无码国产精品 | 国产专区在线播放 | 亚洲爽妇网 |