1. 麦妖榜首页
  2. 项目
  3. PAI

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

为创建PoUW区块链做贡献并可获得PAI币奖励欢迎加入Project PAI,并成为PoUW贡献团队的一员

我们很高兴有你的加入,也很感谢你为创建真正的”有用工作量证明(PoUW)”区块链协议所做的努力。详情规则请见Project PAI 项目进度- 2020年7月27日,下面为本次挑战题目:

挑战 #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/ful…

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

挑战 #4: 拜占庭探测器

难度等级:简单

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

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

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

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

挑战 #5: 通用计算

难度等级:简单

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

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

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

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

未来其他可能的任务:

● 挑战 #6: 委托验证● 挑战 #7: 评估与付款● 挑战 #8: DKG 协议● 挑战 #9: BLS t-of-n 签名● 挑战 #10: 碰撞检测器

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

Project PAI PoUW Developer Award Programme

Contribute to our goal to create a Proof of Useful Work blockchain and earn PAICoins.

First of all, our team at Project PAI welcomes you to our family of PoUW contributors.

We are happy to have you as part of our community and value your additions to our efforts to create a true ‘proof-of-useful work’ blockchain protocol.

Challenge #1: Docker Machine setup

Level: Easy

Situation: At the moment, PoUW can be run in a Kubernetes cluster or using a local cluster simulation. The local simulation makes use of a single blockchain and it is limited in terms of capabilities. The Kubernetes setup requires the installation of MiniKube and heavy computational resources, hence it is not easy to run on lower equipped machines.

Task: Your task is to create a simpler local setup using Docker Machine.

Action: You can use the project pouw-k8s as guidance, from where you can re-use the Docker images.

Result: You should be able to simulate miners and supervisors running on the same machine, each Docker container running its own full PAI node.

Challenge #2: Grafana dashboard

Level: Intermediate

Situation: Currently, we are unable to follow the training and mining processes in an easy-to-use way using the Kubernetes cluster.

Task: The task is to create a Grafana dashboard in which the user can see all nodes by their types, and for each node to be able to see in realtime what actions it is performing.

Action: Project pouw-k8s must be enhanced with the above-specified provisions.

Result: For miner nodes, we should see the current ML metrics (accuracy and cross-entropy value) and its wallet content. For supervisors, we should see how many messages they have logged so far and from whom.

Challenge #3: Merkle history log

Level: Hard

Situation: The process of recording the message history is tedious and slows down many operations.

Task: Your task is to provide an implementation of the message history based on Merkle history logs.

Actions: You must write an implementation of Wallach& Crosby’s paper found here:

https://www.usenix.org/legacy/event/sec09/tech/full_papers/crosby.pdf

Result: Total replacement of current message history handling as it is now. Miners must each keep their own Merkle history log and supervisors must be able to audit randomly the miners.

Challenge #4: Byzantine detector

Level: Easy

Situation: Supervisors cannot detect now if a Byzantine miner sends harmful gradients.

Task: Your assignment consists of implementing a detection algorithm that can spot gradient poisoning.

Action: Implement 2 algorithms: the Kardam filter from Damaskinos et al. and the Krum function from Blanchard et al.

Result: Each supervisor should be running these 2 algorithms and output to the console a message when gradient poisoning is detected.

Challenge #5: General computation

Level: Easy

Situation: We only run a specific ML training task and our project architecture revolves around it.

Task: Implement a simple calculator as PoUW and provide an architecture that allows arbitrary computation.

Actions: Replace the training and verification with simple arithmetic (+, -, *, /). Should work also with parentheses.

Result: A client can order a simple calculation such as (5+2*4-3)/2. Several miners will pick-up the task, execute it as a single iteration, and return the results. Although simple, the purpose of this task is to create a better architecture that allows generalized computation on our platform.

Other possibly interesting tasks for the future:

Challenge #6: Delegated verificationChallenge #7: Evaluation & paymentChallenge #8: DKG protocolChallenge #9: BLS t-of-n signaturesChallenge #10: Crash detector

来源:PAI

本文由用户:口袋妖精 发布,不代表网站的立场,转转请注明出处:http://www.maiyaotop.com/block/pai/77348.html

发表评论

登录后才能评论