比特币源码: https://github.com/bitcoin/bitcoin
swift的编写环境 没什么好说的 MAC 上装个 xcode 我用的是 xcode9.0
对于一个程序来说肯定是从入口开始
c++程序肯定是 main
这个就是 bitcoin 的 main 函数, 位于 ~/你的比特币源码文件夹/src/bitcoind.cpp 里
很明显的调用了两个函数 返回了一个应该是运行循环函数的东西
第一个是设置运行环境
第二个注释说得很清楚: 连接bitcoind信号处理程序
----------------------
那么我们开始 copy:
首先创建一个命令行工程
然后 在工程所在文件夹下 创建 src的实体文件夹,并添加进工程
然后在src下创建swift 文件取名为 bitcoind
原工程自带的main不要删除, 因为这个文件就是程序的入口, 相当于main函数于c/c++ ,
我们先按c/c++的思路 在bitcoind文件里写上main函数, 当然按swift来说不用取名main,比如我就没用
func projectStart(argc: Int,argv:[Any]) -> Int {
print("开始copy bitcoin")
设置环境()
// 连接bitcoind信号处理程序
noui_connect()
return Int(AppInit(argc: argc, argv: argv) ? EXIT_SUCCESS : EXIT_FAILURE)
}
然后再回到main文件里, 调用下刚写的函数
/// 当前进程的arguments
let arguments = ProcessInfo.processInfo.arguments
_ = projectStart(argc: arguments.count, argv: arguments)
把对应的函数补上就不会报错且可以运行了
设置环境 是在 src/util.swift 里, noui_connect 在 src/noui.swift 里, AppInit 就在 src/bitcoind.swift 里
看设置环境的源码
注释都很清楚,不过这里的设置主要是针对c/c++语言来说的,swift不一定会碰见,我们只能先搁置等碰见的时候再做下补充和适配
区块链研习社比特币源码研读班 孤少