Uncategorized

MTP开源挖矿软件赏金挑战赛

By 七月 9, 2017 No Comments

Zcoin正在为在Zcoin中实施的MTP协议中的开源挖矿软件的开发赞助总价值USD21,000的奖金

奖品

CPU挖矿软件获胜者: USD7,000.00

AMD GPU挖矿软件获胜者: USD7,000.00

英伟达GPU挖矿软件获胜者: USD7,000.00

奖品将会根据获胜者的选择支付等值的比特币(按照Bitstamp交易所的价格)或者等值的Zcoin(按照Bittrex交易所的价格),价格将按照公布获胜者的时间和日期来确定。

参赛资格

只要会说英语和达到了居住国的成年人年龄,任何人都有资格参赛。团队组建后,需要指定一个人作为联系人,这个人也是奖金的唯一接受者。所有的参赛选手必须有一个Github账号。

DJM34作为我们团队的挖矿软件开发者只有在满足了下列条件才有资格参赛。

  • 所有的CPU,AMD和英伟达的对照挖矿软件(未优化)由djm34在它的公共Github上发布和开源,并配有文档。
  • 他竞争的领域必须有其他的至少一名参赛选手。如果只有他提交挖矿软件的话,评委有权自行决定如何处理奖金。

评定标准

文档和完备性

提交挖矿软件时请包含精确全面的文档(比如说描述和设计的原理,期望的性能)
精确的文档说明提交的作品哪里可以进一步优化或者改善

兼容性

提交的挖矿软件可以搭建./运行在Linux各种流行的分销系统(至少Centos和Ubuntu)以及Windows。也可以选择使用Mac,但是看起来更有利。
提交的CPU挖矿软件能兼容近五年的主流CPU。
提交挖矿软件的GPU可以运行在各种不同的现代GPU卡上。

  • AMD Radeon R7系统及以上
  • 英伟达Geforce 700系列及以上

质量

提交的作品是否具有自检能力或者是否容易被检查。

性能

这是最重要的标准,但是如果该挖矿软件因为文档质量低下或者与各种系统不兼容,则这不是唯一的决定因素。而且其价值也不如一个性能没那么好,但是文档质量高,容易改善的挖矿软件。
提交的挖矿软件在不同系统上的哈希率。请在你们的文档里提供强度/线程设置的说明。

提交和截止日期

此次比赛挖矿软件提交的截止日期是GMT+8时间的2017年8月9日,下午六点整
允许早点提交,评委也将更好地查看。MTP的代码可以从mtptest Github branch.上获取。
提交后的挖矿软件可以在截止日期前通过专门为了挑战赛目的的Github资源库把代码推送到Github上来修改。

其它要求:

  • CPU代码应当用简单的C99,也可以选择用intrinsics, inline 或者 standalone assembly, pthreads 或者/和 OpenMP。
  • AMD的GPU代码应当用OpenCL写,NVIDIA的CPU代码应当用CUDA写。
  • 提交的挖矿软件必须包含一份许可证声明,好让提交的挖矿软件在MIT许可证下可用。作为例外,当提交的挖矿软件是建在需要其它OSI批准的许可证的第三方组件时,在其它OSI批准的许可证下的提交的挖矿软件也可能会被接受。
  • 对于Windows和Linux需要提供二进制文件。Mac的二进制文件可以选择,但是会优先考虑。必须提供搭建说明。
  • 性能将按照下列参数进行评估:

#define argon_outlen 32
#define argon_timecost 1
#define argon_memcost 2*1024*1024 //32*1024*2 //1024*256*1 //2Gb
#define argon_lanes 4
#define argon_threads 1
#define argon_hashlen 80
#define argon_version 19
#define argon_type 0 // argon2d
#define argon_pwdlen 80 // hash and salt length
#define argon_default_flags 0
#define argon_segment_length argon_memcost/(argon_lanes * ARGON2_SYNC_POINTS)
#define argon_lane_length argon_segment_length * ARGON2_SYNC_POINTS
#define mtp_L 70

  • 挖矿软件不得使用作弊策略,而应当按照MTP论文里描述的方式运行。缺陷/代码的bug隶属于另外一个赏金(将很快宣布)

挖矿软件通过邮件提交给[email protected],邮件标题:Zcoin Miner Challenge Submission: [提交者的名字],应包含:

  • 提交者的名字
  • 如果是一个团队,其他团队成员的名字
  • 提交的Github地址
  • 提交者在不同系统里测试过的测试结果

论文中参考规格的变化信息

MTP论文里(或者说论文没有提及的地方)的参考实施已经做了一些小的改动。

  • 在默克尔树中使用sha256而不是blake2b(就像我们用unit256来使用哈希目标)
  • 增加了X[i]的证明,而不仅仅只是X[i]进入区块头
  • 在argon2中增加除随机数之外的区块头作为压缩函数的输入