4个版本 (1个稳定版)
1.0.0 | 2024年4月23日 |
---|---|
0.9.2 | 2024年4月21日 |
0.9.1 | 2024年4月21日 |
0.9.0 | 2024年4月21日 |
#9 in #mars
每月下载 35 次
用于 mars-cli
195KB
2.5K SLoC
包含 (ELF exe/lib, 795KB) tests/buffers/metadata_program.bpf
火星
源自并归功于 Ore,火星是银河系中Mirascape Horizon上独立个体的加密货币。你可以在地球上的任何地方挖掘火星。火星的最终目标是使其在独立个体和智能物种(如AI)之间流通,并在智能物种之间交换。它使用一种新颖的工作量证明算法来保证没有任何矿工会因为无法获得奖励而被淘汰。
工作原理
Mars的主要特点是提供非排他性的挖掘奖励。这意味着一个矿工找到有效解决方案并不会阻止另一个矿工也找到解决方案。Mars不是将所有矿工都放在一场赢家通吃的竞争中,而是给每个矿工一个个性化的计算挑战。只要矿工为其自己的个人挑战提供有效解决方案,协议就能保证他们可以获得供应的一部分。由于没有矿工可以被网络审查,且有效解决方案是非排他的,因此可以避免饥饿。
供应
Mars旨在保护持有者免受供应通货膨胀。无论世界上有多少矿工活跃,供应增长都严格限制在每分钟 0 ≤ R(eward) ≤ 10 MARS/min
的比率。换句话说,线性。挖掘奖励率 – 支付给矿工的有效解决方案的金额 – 每隔60秒动态调整,以保持平均供应增长率为 10 MARS/min
。这一水平被选择是因为它的简单性、规模无关性和在指数型通货膨胀的一端和停滞型通货紧缩的另一端之间取得平衡。
程序
Consts
– 程序常量。Entrypoint
– 程序入口点。Errors
– 自定义程序错误。Idl
– 客户端、探索者和程序的接口。Instruction
– 声明的指令和参数。Loaders
– 加载 Solana 账户的验证逻辑。
指令
Initialize
– 初始化 Mars 程序,创建总线、铸币和财政账户。Reset
– 为新纪元重置程序。Register
– 为潜在矿工创建新的证明账户。Mine
– 验证矿工提供的哈希,并颁发可领取的奖励。Claim
– 将可领取的奖励作为代币从国库分配给矿工。UpdateAdmin
– 更新管理权限。UpdateDifficulty
- 更新哈希难度。
状态
Bus
- 一个账户(共8个),用于跟踪和限制每个纪元挖掘的奖励数量。Proof
- 一个账户(每个矿工1个),用于跟踪矿工的哈希、可领取的奖励和终身统计。Treasury
– 一个单例账户,用于管理程序范围内的变量和权限。
测试
要运行测试套件,请使用 Solana 工具链
cargo test-sbf
要获取行覆盖率,请使用 llvm-cov
cargo llvm-cov
依赖关系
~26–36MB
~590K SLoC