Golang implementation of RandomX
Go to file
2024-04-11 15:49:22 +02:00
asm Rename fpu to asm package 2024-04-11 15:49:22 +02:00
.drone.yml Added 386 platform to round and tests 2024-04-11 10:36:10 +02:00
aes_const.go Upload files to '' 2019-10-15 19:45:39 +02:00
aes_hash.go Remove superfluous logging 2022-10-24 20:17:59 +02:00
config.go Optimize vm/superscalar, add generic fpu round as panic fallback 2024-04-11 09:40:11 +02:00
go.mod Downgrade to require go 1.17 2024-04-11 09:40:23 +02:00
go.sum Downgrade to require go 1.17 2024-04-11 09:40:23 +02:00
LICENSE Working RandomX with minimal assembly for rounding mode (AMD64,ARM64) 2024-04-11 08:46:34 +02:00
randomx.go Update 'randomx.go' 2019-10-15 20:31:51 +02:00
randomx_test.go Added Benchmark_RandomX 2024-04-11 10:24:12 +02:00
README.md Rename fpu to asm package 2024-04-11 15:49:22 +02:00
superscalar.go Added Benchmark_RandomX 2024-04-11 10:24:12 +02:00
vm.go Rename fpu to asm package 2024-04-11 15:49:22 +02:00
vm_instruction.go Rename fpu to asm package 2024-04-11 15:49:22 +02:00

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.

Supports 386 amd64 arm64 platforms due to rounding mode set via assembly. More can be added with supporting rounding mode under asm.