EPICfunded 💰good first issuehelp wantednew feature
Repository metrics
- Stars
- (10 stars)
- PR merge metrics
- (PR metrics pending)
Description
Overview
- This issue describes the task for the Spacemesh Server POET contest - please read the contest terms before applying for the contest.
- Implement the core POET server as defined here in C++.
- Please also refer to #2 - the issue for implementing the server in go-lang.
Contributors Profile
- Proficient in C++ - we expect an efficient and clean implementation
- Some C++ crypto coding experience
- Good technical english reading and writing skills
- Familiar with the principles of modern applied cryptography. A graduate-level applied crypto course e.g http://toc.cryptobook.us/ knowledge
- Able to understand the claims (as well as the algorithms and data structures) in the relevant research papers, though it isn't essential to understand the proofs of these claims
- Able to read Python code and to review the provided reference Python code
- Able to allocate ~15 work days over the calendar month since starting to work on the issue for this issue
- Able to deliver all deliverables in 30 calendar days since starting to work on the issue
- Able to conduct Github code review sessions with Spacemesh open source maintainers and security researchers
Deliverables
- Buildable POET Server implemented in C++ per the pec containing 2 main components: Verifier and Prover
- Efficient supporting data structures and types design and implementation
- All specified tests implemented and all tests pass
- Unit tests implemented for all functions and types and all test passes
- >80% code coverage for unit tests
- Code is well documented - every method, struct and types are documented
- Usage of clean idiomatic modern C++
- Prover works correctly with the Spacemesh POET verifier web service
- External dependencies approved by Spacemesh research team
Code Review
The code will be review based on 3 criteria:
- Efficiency - the implementation will be reviewed for efficiency by the Spacemesh core dev team
- Security - the security of the implementation will be reviewed by the Spacemesh research team
- Correctness - the correctness of the implementation providing a solution for theoretical constructs and correct operation against the Spacemesh POET web service prover and verifier.
Implementation Notes
- Implement a distinct type for the Verifier and a type for the Prover
- Implement all integration tests by using a verifier and a prover instance
- Use the sha256-smd library for sha256()
- Minimize use of external dependencies and only use deps approved by Spacemesh research team