區塊鏈與挖礦
如果要問你2018年網際網路什麼最火?肯定是區塊鏈啊!有多火?聽說前幾天區塊鏈大會上毛爺爺都現身了。區塊鏈是啥,百度百科的解釋是區塊鏈是分散式資料儲存、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式
。?好複雜有木有,那區塊鏈能幹啥?那很多啦,比如說發幣、挖礦還有?。再說炒幣,聽說是韭菜割了一茬又一茬,鬱鬱蔥蔥,野火燒不盡啊。
說正事,iOS裝置怎麼挖礦。我使用的是xmrig,官方提供了window平臺的支援,提供了MacOS等平臺的編譯方法,唯獨沒有iOS和Android裝置,可是我想用我的iPhone挖一挖啊,不中,我得看看能不能編譯出來iOS的包。
編譯xmrig for iOS
xmrig的作者使用C++封裝了門羅幣演算法,如果如果我們要在iOS平臺上使用有兩種方案:
- 原始碼拖到iOS工程裡,直接呼叫C++方法,因為OC或者Swift與C++是可混編的。
- 編譯成靜態庫,匯入工程使用。
有興趣的朋友可以試試方法一,反正我是放棄了,卡卡卡全是錯。接下來我介紹方法二。
編譯靜態塊
- clone xmrig
git clone https://github.com/xmrig/xmrig.git
複製程式碼
可以看到根目錄裡面有一個CMakeLists.txt
檔案,這個檔案裡定義了編譯規則。
- ios-cmake
cmake是一個誇平臺編譯工具,具體可參考cmake。github上有一個針對iOS平臺的cmake工具ios-cmake。同樣clone到本地
git clone https://github.com/leetal/ios-cmake
複製程式碼
- 編譯libuv for ios
xmrig依賴於libuv,但libuv沒有iOS的版本,我們需要針對編譯,具體可參考我之前的文章libuv移植的iOS平臺
-
修改 CMakeLists.txt
- 新增靜態庫標識
add_library( # Sets the name of the library. native-lib # Sets the library as a shared library. # SHARED STATIC # Provides a relative path to your source file(s). ${HEADERS} ${SOURCES} ${SOURCES_OS} ${SOURCES_CPUID} ${HEADERS_CRYPTO} ${SOURCES_CRYPTO}) 複製程式碼
- 指定C++版本
set (CMAKE_CXX_STANDARD 11) 複製程式碼
- 新增install 命令
//匯出檔案路徑 set (CMAKE_INSTALL_PREFIX "自定義路徑") install (TARGETS native-lib DESTINATION .) install (FILES ${HEADERS} ${HEADERS_CRYPTO} DESTINATION .) 複製程式碼
**注意:**你需要根據具體報錯資訊去修改這個檔案。
-
開始編譯
在根目錄依次執行如下命令:
//命令1 cmake .. -DWITH_HTTPD=OFF -DWITH_LIBCPUID=OFF -DUV_INCLUDE_DIR="libuv include檔案路徑" -DUV_LIBRARY="libuv.a檔案的路徑" -DCMAKE_TOOLCHAIN_FILE="ios-cmake檔案路徑" -DENABLE_ARC=0 -DENABLE_BITCODE=0 //命令2 make //命令3 make install 複製程式碼
之後你會在第四步設定的匯出檔案裡看到匯出的靜態庫以及標頭檔案。
-
將靜態庫已經標頭檔案拖入工程、呼叫相關方法執行。這裡的具體呼叫我就不細說了。因為不同的版本呼叫方式不一樣,差異挺大。核心的方法都集中在
crypto
檔案下。 -
執行,我用我的iPhone6測試機單執行緒算力在6H/s,雙執行緒在11H/s,下圖是apple測試員在ipad上的執行效果。
上架
目前AppStore是不允許類似的應用上架的,因為違反了
Guideline 1.4.5
。當然你可以以其他方式達到上架的目的。小白挖礦
如果你對挖礦感興趣可以使用哈魚礦工這個軟體,目前這個軟體實現了在Window、MacOS、Linux等系統上一鍵挖礦,而且目前是0抽成還有收徒紅包。並且任何使用問題都可以在官方QQ群中得到回覆。QQ群號:726963092。點選這裡註冊能收到1~10元紅包。