go-randomx/README.md

1.4 KiB

RandomX (Golang Implementation)

Fork from git.dero.io/DERO_Foundation/RandomX. Also related, their Analysis of RandomX writeup.

Original code failed RandomX testcases and was implemented using big.Float.

This package implements RandomX without CGO, using only Golang code, pure float64 ops and two small assembly sections to implement CFROUND modes.

All test cases pass properly.

Uses minimal Go assembly due to having to set rounding mode natively. Support can be added with supporting rounding mode under asm.

JIT is supported on a few platforms but can be hard-disabled via the disable_jit build flag, or at runtime.

Platform Supported SuperScalar JIT Notes
386
amd64 * JIT only on Unix
arm -
arm64
mips -
mips64 -
riscv64 -
wasm -