#mining #solana #crypto

垃圾程序

终极Solana测试网挑战!进行交易,对网络进行压力测试,并赚取垃圾代币

1个稳定版本

1.2.0 2024年5月6日

#38#mining

27 每月下载量
spam-cli-mod 中使用

Apache-2.0

195KB
2.5K SLoC

包含 (ELF exe/lib, 795KB) tests/buffers/metadata_program.bpf

垃圾

垃圾是一种你可以从任何地方挖掘的数字货币,无论是在家里还是在你的手机上。它使用一种新颖的工作量证明算法来保证没有矿工会被饿死,无法获得奖励。

工作原理

垃圾的主要创新是提供非独占的挖矿奖励。这意味着找到一个有效解的矿工并不会阻止另一个矿工也找到一个。垃圾不是把所有矿工设置在一个赢家通吃的竞赛中相互竞争,而是给每个矿工一个个性化的计算挑战。只要矿工为自己的个人挑战提供有效解,协议就保证他们能获得一部分供应。由于没有矿工可以被网络审查,有效解是非独占的,因此避免了饿死。

供应

垃圾被设计用来保护持有者免受供应通货膨胀失控。无论全球有多少矿工活跃,供应增长严格限制在每分钟0 ≤ R ≤ 2 SPAM的速度。换句话说,线性。挖矿奖励率——支付给矿工的有效解的金额——每60秒动态调整,以维持平均供应增长率为每分钟1 SPAM。这个水平被选择是为了其简单性、规模无关性,以及在指数级通货膨胀的一端和停滞不前的紧缩之间取得平衡。

程序

  • Consts – 程序常量。
  • Entrypoint – 程序入口点。
  • Errors – 自定义程序错误。
  • Idl – 客户端、浏览器和程序的接口。
  • Instruction – 声明的指令和参数。
  • Loaders – 加载Solana账户的验证逻辑。

说明

  • Initialize – 初始化Spam程序,创建总线、铸币和金库账户。
  • Reset – 为新纪元重置程序。
  • Register – 为潜在矿工创建新的证明账户。
  • Mine – 验证矿工提供的散列值并颁发可领取的奖励。
  • Claim – 将可领取的奖励作为代币从金库分配给矿工。
  • UpdateAdmin – 更新管理权限。
  • UpdateDifficulty - 更新哈希难度。

状态

  • Bus - 一个账户(共8个),跟踪并限制每个纪元挖掘奖励的数量。
  • Proof - 一个账户(每个矿工一个),跟踪矿工的散列值、可领取的奖励和终身统计数据。
  • Treasury – 一个单例账户,负责管理程序范围内的变量和权限。

测试

要运行测试套件,请使用Solana工具链

cargo test-sbf

要运行行覆盖率,请使用llvm-cov

cargo llvm-cov

依赖项

~23–32MB
~522K SLoC