1 个稳定版本
1.2.1 | 2024 年 2 月 14 日 |
---|
#2704 在 魔法豆
42 每月下载量
在 5 个crate(3个直接)中使用
1.5MB
16K SLoC
RandomX-rs
Rust 对 RandomX 工作量证明(Pow)系统的绑定
构建依赖
此仓库使用了 git 子模块。
第一次编译或在大更新后,可能需要通过以下命令更新子模块
git submodule init
git submodule update
如果您遇到如下错误
fatal: Needed a single revision
Unable to find current revision in submodule path 'RandomX'
您可能需要查看源树中是否存在 RandomX
文件夹。在大小写不敏感的系统上,如 OsX 和 Windows,它可能是 randomx
)。删除此文件夹并重复上面的命令应该可以解决问题。
Mac
安装 XCode,然后使用以下命令安装 XCode 命令行工具
xcode-select --install
对于 macOS Mojave,还需要安装额外的头文件,运行
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
并按照提示操作
安装 Brew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
运行以下命令安装所需的瓶装软件
brew install git
brew install cmake
Linux
运行以下命令安装依赖项
apt-get install git cmake libc++-dev libc++abi-dev
Windows
安装 Git
安装 CMake
Android
要使用 Android NDK 进行构建,需要设置 ANDROID_SDK_ROOT
环境变量。其他变量是可选的,因为它们有默认值。以下为 ARM64 构建示例命令
ANDROID_SDK_ROOT=/home/user/Android/Sdk \
ANDROID_PLATFORM=android-25 \
ANDROID_CMAKE=/home/user/Android/Sdk/cmake/3.22.1/bin/cmake \
ANDROID_CMAKE_TOOLCHAIN=/home/user/Android/Sdk/ndk/22.1.7171670/build/cmake/android.toolchain.cmake \
cargo build --target=aarch64-linux-android
故障排除
Mac/OSX
如果您遇到链接器问题或类似的消息
cstdint:153:8:错误:没有名为'int8_t' 在全局命名空间中
然后你可能安装了多个冲突的clang版本。
尝试
which cc
是否报告了多个二进制文件?如果是,卸载其中一个clang编译器可能有助于解决问题。- 升级cmake。
brew uninstall cmake && brew install cmake
cargoclean
在Apple ARM64硬件和更新的XCode版本中,RandomX可能在randomx-tests
中失败。
[83] Hash test 1e (interpreter) ... PASSED
[84] Hash test 2a (compiler) ... Assertion failed: (equalsHex(hash, "639183aae1bf4c9a35884cb46b09cad9175f04efd7684e7262a0ac1c2f0b4e3f")), function operator(), file tests.cpp, line 966.
zsh: abort ./randomx-tests
或者
[88] Hash test 2e (compiler) ... PASSED
[89] Cache initialization: SSSE3 ... SKIPPED
[90] Cache initialization: AVX2 ... SKIPPED
[91] Hash batch test ... Assertion failed: (equalsHex(hash3, "c36d4ed4191e617309867ed66a443be4075014e2b061bcdaf9ce7b721d2b77a8")), function operator(), file tests.cpp, line 1074.
zsh: abort ./randomx-tests
使用较旧的SDK构建可能会有所帮助。使用xcrun --show-sdk-path
查找当前SDK的位置,例如
export RANDOMX_RS_CMAKE_OSX_SYSROOT="/Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk"
cargo build
使用构建的二进制文件进行快速测试
find target -name randomx-tests -exec {} \;