10 个版本 (3 个稳定版本)
1.3.0 | 2023年11月1日 |
---|---|
1.1.9 | 2021年9月1日 |
0.5.0 | 2021年1月22日 |
0.4.0 | 2020年7月6日 |
0.1.1 | 2019年11月27日 |
#1174 在 神奇豆子
每月下载量 2,544 次
在 2 个软件包中使用 (通过 tari_core)
1.5MB
15K 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 {} \;