在 Windows 10 上執行 Bitcoind 作為服務
所以我試圖在 Windows 10 上將比特幣守護程序作為服務執行,所以我不必繼續啟動它。
我嘗試了以下命令:
sc create BitcoinServer binpath= "C:\Program Files\Bitcoin\daemon\bitcoind.exe -regetest" start=auto
它創建了一個服務,但是當我嘗試啟動它時,出現錯誤:
有沒有辦法創建一個 bitcoind regetest 服務?
我認為您需要添加
-daemon
到您的命令中才能使其正常工作。此外,您-regetest
的命令中有暗示您要使用回歸測試網路(regtest)。除了您拼寫錯誤(應該是-regtest
)之外,regtest 與 mainnet(主要的比特幣網路)不同,我認為這不一定是您想要做的。因為您拼寫錯誤,您將使用主網。
Windows 與 UNIX 有不同的 Bitcoind。您可以通過以下步驟為 Windows 建構 Bitcoind
WINDOWS BUILD NOTES 下面是一些關於如何為 Windows 建構 Bitcoin Core 的註釋。
已知可用於在 Windows 上建構比特幣核心的選項是:
在 Linux 上,使用 Mingw-w64 交叉編譯工具鏈。Ubuntu Bionic 18.04 是必需的,它是用於建構比特幣核心 Windows 版本二進製文件的平台。在 Windows 上,使用 Windows Subsystem for Linux (WSL) 和 Mingw-w64 交叉編譯器工具鏈。在 Windows 上,使用本機編譯器工具鏈,例如 Visual Studio。請參閱 README.md。其他可能有效但尚未經過廣泛測試的選項是(請提供說明):
在 Windows 上,使用 POSIX 兼容層應用程序,例如 cygwin 或 msys2。安裝適用於 Linux 的 Windows 子系統 在 Windows 10 中,Microsoft 發布了一項名為 Windows 子系統 for Linux (WSL) 的新功能。此功能允許您在基於 Ubuntu 的環境中直接在 Windows 上執行 bash shell。在此環境中,您可以針對 Windows 進行交叉編譯,而無需單獨的 Linux VM 或伺服器。請注意,雖然 WSL 可以與其他 Linux 變體一起安裝,例如 OpenSUSE,但以下說明僅在 Ubuntu 上進行了測試。
Windows 10 之前的 Windows 版本或 Windows Server SKU 不支持此功能。此外,它僅適用於 64 位版本的 Windows。
上面的連結中提供了安裝 WSL 的完整說明。要在安裝了 Fall Creators Update(版本 >= 16215.0)的 Windows 10 上安裝 WSL,請執行以下操作:
啟用適用於 Linux 的 Windows 子系統功能 打開 Windows 功能對話框 (OptionalFeatures.exe) 啟用“適用於 Linux 的 Windows 子系統” 點擊“確定”並在必要時重新啟動 安裝 Ubuntu 打開 Microsoft Store 並蒐索“Ubuntu 18.04”或使用此連結 點擊安裝完成安裝 打開 cmd 提示符並鍵入“Ubuntu1804” 創建一個新的 UNIX 使用者帳戶(這是一個與您的 Windows 帳戶不同的帳戶) 啟動 bash shell 後,您可以按照以下說明進行操作,從“交叉編譯”開始部分。建議編譯 64 位版本,但也可以編譯 32 位版本。
Ubuntu 和 Windows 子系統的交叉編譯 Linux 可以在 Ubuntu(包括在 VM 中)或 WSL 上執行以下步驟。依賴系統也可以在其他 Linux 發行版上執行,但是安裝工具鏈的命令會有所不同。
首先,安裝通用依賴項:
sudo apt update sudo apt upgrade sudo apt install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git 主機工具鏈(build-essential)是必要的,因為一些依賴包需要建構在建構過程中使用的主機實用程序。
有關完整概述,請參閱 dependencies.md。
如果要使用 make deploy 建構 Windows 安裝程序,則需要 NSIS:
sudo apt install nsis 照常獲取源碼:
git clone <https://github.com/bitcoin/bitcoin.git> cd bitcoin 64位Windows搭建第一步,安裝mingw-w64交叉編譯工具鏈:
sudo apt install g++-mingw-w64-x86-64 接下來,將預設的 mingw32 g++ 編譯器選項設置為 POSIX1:
sudo update-alternatives –config x86_64-w64-mingw32-g++ 執行上述命令後,您應該會看到類似於以下的輸出。選擇以posix 結尾的選項。
替代 x86_64-w64-mingw32-g++ 有 2 種選擇(提供 /usr/bin/x86_64-w64-mingw32-g++)。
選擇路徑優先狀態
0 /usr/bin/x86_64-w64-mingw32-g++-win32 60 自動模式
- 1 /usr/bin/x86_64-w64-mingw32-g++-posix 30 手動模式 2 /usr/bin/x86_64-w64-mingw32-g++-win32 60 手動模式
按下以保留目前選擇[*],或輸入選擇編號:安裝工具鏈後,建構步驟很常見:
請注意,對於 WSL,比特幣核心源路徑必須位於預設掛載文件系統中的某個位置,例如 /usr/src/bitcoin,而不是 /mnt/d/ 下。如果不是這種情況,則依賴項 autoconf 腳本將失敗。這意味著您不能使用直接位於主機 Windows 文件系統上的目錄來執行建構。
附加 WSL 注意:WSL 對啟動 Win32 應用程序的支持導致 Autoconf 配置腳本能夠執行 Windows 可移植執行檔。這可能會導致建構過程中出現意外行為,例如缺少庫的 Win32 錯誤對話框。推薦的方法是暫時禁用對 Win32 應用程序的 WSL 支持。
建構使用:
PATH=$(echo “$PATH” | sed -e ’s/:/mnt.*//g’) # 去掉有問題的 Windows %PATH% 導入 var sudo bash -c “echo 0 > /proc/sys/fs /binfmt_misc/status” # 禁用對 Win32 應用程序的 WSL 支持。cd 依賴 make HOST=x86_64-w64-mingw32 cd .. ./autogen.sh CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure –prefix=/ make #use “-j N” for N 個並行作業 sudo bash -c “echo 1 > /proc/sys/fs/binfmt_misc/status” # 為 Win32 應用程序啟用 WSL 支持。依賴系統 有關依賴系統的更多文件,請參閱依賴目錄中的 README.md。
安裝 在使用 Windows 子系統建構之後,將編譯的執行檔複製到 Windows 驅動器上的目錄中,其目錄結構與它們在發布 .zip 存檔中出現的目錄結構相同,這會很有用。這可以通過以下方式完成。這將安裝到 c:\workspace\bitcoin,例如:
make install DESTDIR=/mnt/c/workspace/bitcoin 您還可以使用以下命令創建安裝程序:
腳註 1:從 Ubuntu Xenial 16.04 開始,32 位和 64 位 Mingw-w64 軟體包都安裝了兩個不同的編譯器選項,以允許在 posix 或 win32 執行緒之間進行選擇。預設選項是 win32 執行緒,效率更高,因為它會生成直接與 Windows kernel32.lib 連結的二進制程式碼。不幸的是,支持 win32 執行緒所需的標頭檔與 C++11 標準庫中的某些類衝突,特別是 std::mutex。使用 Win32 版本的 Mingw-w64 交叉編譯器建構比特幣核心程式碼是不可能的(至少在不修改比特幣核心原始碼中的標頭的情況下是不可能的)。