比特幣源碼: https://github.com/bitcoin/bitcoin
swift的編寫環(huán)境 沒什么好說的 MAC 上裝個 xcode 我用的是 xcode9.0
對于一個程序來說肯定是從入口開始
c++程序肯定是 main
這個就是 bitcoin 的 main 函數(shù), 位于 ~/你的比特幣源碼文件夾/src/bitcoind.cpp 里
很明顯的調(diào)用了兩個函數(shù) 返回了一個應(yīng)該是運行循環(huán)函數(shù)的東西
第一個是設(shè)置運行環(huán)境?
第二個注釋說得很清楚: 連接bitcoind信號處理程序 ?
----------------------
那么我們開始 copy:
首先創(chuàng)建一個命令行工程
然后 在工程所在文件夾下 創(chuàng)建 src的實體文件夾,并添加進(jìn)工程
然后在src下創(chuàng)建swift 文件取名為 bitcoind?
原工程自帶的main不要刪除, 因為這個文件就是程序的入口, 相當(dāng)于main函數(shù)于c/c++ ,?
我們先按c/c++的思路 在bitcoind文件里寫上main函數(shù), 當(dāng)然按swift來說不用取名main,比如我就沒用
func projectStart(argc: Int,argv:[Any]) -> Int {
print("開始copy bitcoin")
設(shè)置環(huán)境()
// 連接bitcoind信號處理程序
noui_connect()
return Int(AppInit(argc: argc, argv: argv) ? EXIT_SUCCESS : EXIT_FAILURE)
}
然后再回到main文件里, 調(diào)用下剛寫的函數(shù)
/// 當(dāng)前進(jìn)程的arguments
let arguments = ProcessInfo.processInfo.arguments
_ = projectStart(argc: arguments.count, argv: arguments)
把對應(yīng)的函數(shù)補(bǔ)上就不會報錯且可以運行了
設(shè)置環(huán)境 是在 src/util.swift 里, noui_connect 在 src/noui.swift 里, AppInit 就在 src/bitcoind.swift 里
看設(shè)置環(huán)境的源碼
注釋都很清楚,不過這里的設(shè)置主要是針對c/c++語言來說的,swift不一定會碰見,我們只能先擱置等碰見的時候再做下補(bǔ)充和適配
區(qū)塊鏈研習(xí)社比特幣源碼研讀班? 孤少