探索比特币源码1-运行 Bitcoin Core Node
探索比特幣源碼1-運行 Bitcoin Core Node
上一文我們已經編譯好了Bitcoin Core的可執行文件
本文,我們來嘗試運行一個Bitcoin Core
注:本文是在學習Mastering Bitcoin過程中的記錄,由于代碼的快速迭代,在筆者寫下本文的時刻(2018/7/18),書中給出的包括配置、示例、命令調用等都發送了一定程度的改變。作為一個初學者,我盡可能的探索了改變后的用法及其原因,如有疏漏和錯誤望及時指出,期待和各位的交流。
前言
比特幣的點對點網絡由節點組成,為了更好的學習比特幣的原理以及如何開發比特幣軟件,我們需要運行一個自己的比特幣節點。
但是,運行節點需要一個具有足夠資源來處理所有比特幣交易的系統。根據您是否選擇索引所有交易并保留塊的完整副本,您可能還需要大量的磁盤空間和RAM。Bitcoin Core默認情況下保留區塊鏈的完整副本。在16年底時,全索引節點需要2GB的RAM和125GB的磁盤空間,并且在不斷增長。
直到完整的塊鏈數據集被下載完成之前,Bitcoin Core將無法處理交易或更新帳戶余額。
為了運行我們自己的Bitcoin Core節點,首先要確保有足夠的磁盤空間來完成初始同步。
預留充足的磁盤空間
如果你的電腦磁盤剩余空間充足,那就直接進行下一環節吧。
這里我記錄了我是如何找到最占用空間的文件并給電腦瘦身的,以供參考。
首先使用df -hl命令查看磁盤占用情況
$ df -hl 文件系統 容量 已用 可用 已用% 掛載點 udev 1.9G 0 1.9G 0% /dev tmpfs 390M 6.4M 384M 2% /run /dev/sda5 459G 392G 44G 90% / tmpfs 2.0G 22M 1.9G 2% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/loop0 296M 296M 0 100% /snap/pycharm-professional/66 /dev/loop3 300M 300M 0 100% /snap/pycharm-professional/68 /dev/loop4 79M 79M 0 100% /snap/vscode/37 /dev/loop7 304M 304M 0 100% /snap/pycharm-professional/64 /dev/loop8 87M 87M 0 100% /snap/core/4650 /dev/loop1 79M 79M 0 100% /snap/vscode/38 /dev/loop2 87M 87M 0 100% /snap/core/4830 /dev/loop6 87M 87M 0 100% /snap/core/4917 tmpfs 390M 80K 390M 1% /run/user/1000 /dev/loop9 80M 80M 0 100% /snap/vscode/42 /dev/sda6 452G 163G 266G 38% /media/lsgo-as/Data這是我的磁盤占用情況,可以發現,其中掛載在根目錄/下的SD磁盤居然占用了392G的空間
/dev/sda5 459G 392G 44G 90% /使用sudo du -sh *命令查看當前目錄下文件的大小
使用du -sh .[!.]*命令查看所有隱藏文件的大小
頻繁利用這兩個命令,最終追溯到目錄~/.local/share/Trash/files占用了312G空間
原來是回收站占用了大量空間-_-|
仔細一看,都是團隊小伙伴跑深度學習時刪除的數據集和模型文件。
使用下面命令將回收站清空
$ rm -rf ~/.local/share/Trash/files/*配置Bitcoin Core節點
現在,在主目錄~下,存在.bitcoin目錄
這應該是我們的Bitcoin Core節點的路徑,錢包、區塊鏈等都會存放在這里
注:按照Mastering Bitcoin的說法,我們首次嘗試運行bitcoind時會報錯,提醒你用一個安全密碼給JSON-RPC接口創建一個配置文件.bitcoin/bitcoin.conf。該密碼控制對Bitcoin Core提供的應用程序編程接口(API)的訪問。但在筆者寫下本文的時刻(2018/7/18),發現這個設定已經不存在了,這樣做應該是為了讓bitcoind的使用更加簡潔。
我們可以使用bitcoind --help來查看幫助
$ bitcoind --help Bitcoin Core Daemon version v0.16.1Usage:bitcoind [options] Start Bitcoin Core DaemonOptions:-?Print this help message and exit-versionPrint version and exit......-conf=<file>Specify configuration file (default: bitcoin.conf)......看來仍然存在對于.conf的使用,可以使用-conf=<file>指明配置文件的路徑。
如果你想自定義一些配置,可以詳細閱讀Mastering Bitcoin 第三章
目前,先忽略這個配置文件,你可以直接命令運行比特幣客戶端了。
運行Bitcoin Core節點
使用bitcoind -printtoconsole命令在前臺運行,并打印信息到終端
$ bitcoind -printtoconsole或者使用bitcoind -daemon命令,使用守護進程在后臺運行
$ bitcoind如果想要終止Bitcoin Core客戶端的運行,可以使用如下命令:
$ bitcoin-cli stop其中bitcoin-cli是命令行幫助程序,我們可以通過它訪問比特幣核心客戶端實現的JSON-RPC接口。
注:如果想要停止客戶端,千萬不要用Ctrl + C這種方法。我試了一次,客戶端就無法再次正常運行了,所以一定記住要用上面的方法。
當我們第一次運行客戶端后,實際上Bitcoin Core先要做的是努力同步從創世快以來的所有區塊鏈數據,根據網速,這可能需要幾天甚至幾周。
所以我們趕緊再次把客戶端運行上,開始同步數據。
這個過程中,我們可以隨時使用bitcoin-cli getblockchaininfo查看區塊鏈信息,從而查看同步進度,類似如下:
$ bitcoin-cli getblockchaininfo {"chain": "main","blocks": 31452,"headers": 532626,"bestblockhash": "0000000091e5e4985852a04cfd3032f8be7debfda8a8d1bb8e11beffd0e1fdf4","difficulty": 1,"mediantime": 1261716777,...... }其中”blocks”: 31452是塊高度,也就對應了同步的進度。
注:Mastering Bitcoin 第三章中給出的bitcoin-cli getinfo命令在我寫作時,已經改為了上面給出的bitcoin-cli getblockchaininfo命令。
已經確認程序正在正確同步了,慢慢運行把,我們下一次來使用bitcoin-cli進行一些交互實驗
總結
以上是生活随笔為你收集整理的探索比特币源码1-运行 Bitcoin Core Node的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#编写不安全代码初探
- 下一篇: 吕布机器人唤醒方式能换么_《王者荣耀》推