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神奇豆子

Download history 880/week @ 2024-03-14 842/week @ 2024-03-21 688/week @ 2024-03-28 542/week @ 2024-04-04 967/week @ 2024-04-11 889/week @ 2024-04-18 661/week @ 2024-04-25 836/week @ 2024-05-02 612/week @ 2024-05-09 703/week @ 2024-05-16 798/week @ 2024-05-23 871/week @ 2024-05-30 411/week @ 2024-06-06 622/week @ 2024-06-13 832/week @ 2024-06-20 614/week @ 2024-06-27

每月下载量 2,544 次
2 个软件包中使用 (通过 tari_core)

BSD-3-Clause

1.5MB
15K SLoC

C++ 8K SLoC // 0.1% comments Visual Studio Project 2K SLoC GNU Style Assembly 1.5K SLoC // 0.1% comments C 1K SLoC // 0.2% comments Assembly 1K SLoC // 0.2% comments Rust 1K SLoC // 0.1% comments Bitbake 263 SLoC Visual Studio Solution 177 SLoC Shell 46 SLoC // 0.2% comments PowerShell 34 SLoC // 0.5% comments

CI Coverage Status

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

安装 Visual Studio 2019 构建工具

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 {} \;

依赖项