2个稳定版本
1.2.1 | 2024年4月8日 |
---|---|
1.2.0 | 2024年4月2日 |
1.0.0 |
|
0.0.6 |
|
0.0.3 |
|
#1733 在 神奇豆子
997 每月下载量
在 3 crates 中使用
195KB
2.5K SLoC
包含 (ELF可执行文件/库, 795KB) tests/buffers/metadata_program.bpf
Ore
Ore是一种您可以从任何地方挖掘的数字货币,在家或在您的手机上。 它使用一种新颖的工作量证明算法来保证没有任何矿工会因为得不到奖励而被饿死。
工作原理
Ore的主要创新是提供非排他性挖掘奖励。这意味着一个矿工找到有效解决方案不会阻止另一个矿工也找到。Ore不是将每个矿工设定在相互竞争的胜利者独享的竞赛中,而是为每个矿工提供个性化的计算挑战。只要矿工为自己的个性化挑战提供有效解决方案,协议就保证他们将从供应中分得一部分。由于没有矿工可以被网络审查,并且有效解决方案是非排他的,因此避免了饿死的情况。
供应
Ore旨在保护持有人免受供应通胀失控的影响。无论世界上有多少矿工活跃,供应增长都被严格限制在 0 ≤ R ≤ 2 ORE/min
的比率。换句话说,是线性的。挖掘奖励率——支付给矿工的有效解决方案的金额——每60秒动态调整,以维持平均供应增长率为 1 ORE/min
。这个水平被选择是因为它的简单、规模无关性和在指数级通胀和停滞不前的紧缩之间的平衡。
程序
Consts
– 程序常量。Entrypoint
– 程序入口点。Errors
– 自定义程序错误。Idl
– 客户端、浏览器和程序的接口。Instruction
– 声明的指令和参数。Loaders
– 加载 Solana 账户的验证逻辑。
指令
Initialize
– 初始化 Ore 程序,创建总线、铸造和资金账户。Reset
– 为新纪元重置程序。Register
– 为潜在矿工创建新的证明账户。Mine
– 验证矿工提供的哈希,并发放可领取的奖励。Claim
– 将可领取的奖励作为代币从资金账户发放给矿工。UpdateAdmin
– 更新管理员权限。UpdateDifficulty
- 更新哈希难度。
状态
Bus
- 一个账户(共8个),用于跟踪和限制每个纪元挖掘的奖励数量。Proof
- 一个账户(每个矿工1个),用于跟踪矿工的哈希、可领取的奖励和终身统计数据。Treasury
– 一个单例账户,用于管理程序范围的全局变量和权限。
测试
要运行测试套件,请使用 Solana 工具链
cargo test-sbf
要获取行覆盖率,请使用 llvm-cov
cargo llvm-cov
依赖项
~26–35MB
~591K SLoC