dart_randomx

RandomX 证明工作 (PoW) 算法的 Dart 封装。

用法

一个简单的使用示例

import 'dart:typed_data';
import 'package:dart_randomx/dart_randomx.dart';

Future<void> main() async {
  await RandomX.loadLib();

  var randomX = RandomX();

  print(randomX);

  var key = Uint8List.fromList([97, 98, 99, 100, 101, 102, 0]);
  randomX.init(key);

  var data = Uint8List.fromList([65, 66, 67, 68, 69, 0]);

  var hash = randomX.hash(data);
  print(hash);

  randomX.destroy();
}

RandomX 全内存

RandomX 算法有 2 种模式

  • slow:使用较少的内存但速度较慢。
  • fast:速度更快(约 10 倍),但需要 2G+ 内存。

要激活快速模式,只需初始化时传入 fullMemorytrue

Future<void> main() async {
  await RandomX.loadLib();
  
  var randomX = RandomX();
  randomX.init(key, fullMemory: true);
}

项目构建

请参阅脚本 build-ffi-lib.sh 来构建库

  • randomx:RandomX PoW 算法。
  • wrapper_randomx:lib randomxdart:ffi 封装。

目录 wrapper_randomx_library 包含
dart:ffi 封装的源代码和构建脚本

  • build-librandomx.sh:

    将克隆 RandomX 项目,构建它,并将库文件
    librandomx.a 放置在 wrapper_randomx_library/ 中,然后构建封装。

  • build-wrapper.sh:

    构建封装,并链接 librandomx.a

注意:此过程已在 MaxOSUbuntu 上进行测试。

RandomX 项目

RandomX 证明工作 (PoW) 算法可以在

注意:脚本 build-librandomx.sh 会自动克隆并构建它。

RandomX 配置

RandomX 项目为每种币推荐不同的配置,
由文件 RandomX/src/configuration.h 定义。请参阅配置文档

此项目的默认配置与 Monero 相同

  • wrapper_randomx_library/configuration-monero.h

注意: RandomX 最初是为 Monero 开发的。*

作者

Graciliano M. Passos: gmpassos@GitHub

许可证

BSD-3-Clause 许可证

GitHub

查看 Github