Project PAI 有用工作量证明(PoUW)开发人员奖励计划

为创建PoUW区块链做贡献并可获得PAI币奖励

感谢你的加入!

欢迎加入PAI项目,成为PoUW贡献团队的一员

我们很高兴有你的加入,也很感谢你为创建真正的“有用工作量证明”区块链协议所做的努力。

挑战 #1: Docker机器设置

难度等级:简单

概括:目前,PoUW可以在Kubernetes集群中运行,也可以使用本地集群模拟运行。 本地模拟使用的是单个区块链,并且在功能方面受到限制。 Kubernetes安装需要安装MiniKube和大量的计算资源,因此在配置较低的机器上运行并不容易。

任务:可以使用Docker 机器创建一个更简单的本地设置。

行动:你可以使用pouw-k8s项目作为指导,重用Docker映像。

结果:能够在同一台机器上模拟运行矿工和主管,每个Docker容器都可以运行自己的PAI节点。

挑战 #2: 格拉法纳(Grafana)仪表板

难度等级:中等

概括:目前,我们无法使用Kubernetes集群以简单易用的方式跟踪培训和挖掘过程。

任务:创建一个Grafana仪表板,用户可以在其中按类型查看所有节点,并且每个节点能够实时查看其执行的操作。

行动:必须通过上述规定增强pouw-k8项目。

结果:对于矿工节点,我们应该看到当前的ML指标(准确性和交叉熵值)和钱包内容。 对于主管,我们应该查看他们到目前为止已经记录了多少条消息以及来自谁。

挑战 #3: 默克尔(Merkle)历史记录

难度等级:高等

概括:记录消息历史记录的过程繁琐,并且导致许多操作速度减慢。

任务:实现提供基于Merkle历史记录日志的消息历史。

行动:需要编写实现Wallach&Crosby的论文,下方为论文链接:https://www.usenix.org/legacy/event/sec09/tech/full_papers/crosby.pdf

结果:替换当前的消息历史记录处理。 矿工必须各自保留自己的Merkle历史日志,主管必须能够随机审计矿工。

挑战 #4: 拜占庭探测器

难度等级:简单

概括:主管目前无法检测拜占庭矿工是否发送了有害梯度。

任务:实现可以发现梯度中毒的检测算法。

行动:实施两种算法——Damaskinos等人的Kardam过滤器和Blanchard等人的Krum函数。

结果:每个主管都应该可以运行这两种算法,并在检测到梯度中毒时向控制台发送消息。

挑战 #5: 通用计算

难度等级:简单

概括:目前我们仅运行特定的ML培训任务,而且我们的项目体系结构也都围绕该任务进行。

任务:将一个简单的计算器实现为PoUW,并提供允许进行任意计算的体系结构。

行动:用简单的算术(+,-,*,/)代替训练和验证,括号也应该通用。

结果:客户可以订购简单的计算,例如(5 + 2 * 4-3)/ 2。 多个矿工将接受任务,并将其作为单个迭代执行,然后返回结果。 尽管很简单,但此任务的目的是创建一个更好的体系结构,以允许在我们的平台上进行通用计算。

未来其他可能的任务:

  • 挑战 #6: 委托验证

  • 挑战 #7: 评估与付款

  • 挑战 #8: DKG 协议

  • 挑战 #9: BLS t-of-n 签名

  • 挑战 #10: 碰撞检测器