1个稳定版本
1.2.0 | 2024年5月6日 |
---|
#38 在 #mining
27 每月下载量
在 spam-cli-mod 中使用
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