New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build the POET MVP in GO #2

Closed
avive opened this Issue Sep 26, 2018 · 14 comments

Comments

Projects
None yet
4 participants
@avive
Member

avive commented Sep 26, 2018

Overview

Implement an MVP for the POET server in go-lang based on the server specifications

Contributor Profile

  • Proficient in go-lang - we expect an efficient and clean implementation
  • Good technical english reading and writing skills
  • Familiar with the principles of modern applied cryptography. A graduate-level applied acrypto 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
  • Collaborate with other contributors who may be working on this issue. We are looking for 2 contributors to work together on this issue by coordinating and splitting the work between them
  • 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

Deliverables

  • Buildable POET Server implemented in go-lang 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 go-doc style documented - every method, struct and types are documented
  • Usage of clean idiomatic go
  • Buildable linux docker image and instructions for building the MVP and run the tests in an isolated env.

Code Review

The code will be review based on 3 criteria:

  1. Efficiency - the implementation will be reviewed for efficiency by the Spacemesh core dev team
  2. Security - the security of the implementation will be reviewed by the Spacemesh research team
  3. Correctness - the correctness of the implementation providing a solution for theoretical constructs

Implementation Notes

  1. Implement a distinct type for the Verifier and a type for the Prover
  2. Implement all integration tests by using a verifier and a prover instances
  3. Use the sha256-smd library for sha256()
  4. Implement all tests as standard go-lang tests
  5. Minimize use of external dependencies. For external dependencies use go vendor and include the libs distro in your github repo

@avive avive changed the title from Core POET algorithm implementation to Implement the POET Server Sep 26, 2018

@avive avive changed the title from Implement the POET Server to Implement the POET Server in go Sep 26, 2018

@samparsky

This comment has been minimized.

Contributor

samparsky commented Sep 26, 2018

@avive Awesome! I can work on this. Can I get a link to reference python code?

@avive

This comment has been minimized.

Member

avive commented Sep 26, 2018

Please see the links at the end of the spec: https://github.com/spacemeshos/POET/blob/core/protocol.md . This is the main Python impl code: https://github.com/avive/proof-of-sequential-work/blob/master/posw.py

@randomshinichi

This comment has been minimized.

randomshinichi commented Sep 26, 2018

Would like to work on this too

@avive avive changed the title from Implement the POET Server in go to Implement the POET Server MVP in go Sep 27, 2018

@avive avive referenced this issue Oct 3, 2018

Open

Implement the POET Server in C++ (Contest) #4

0 of 9 tasks complete
@gitcoinbot

This comment has been minimized.

gitcoinbot commented Oct 9, 2018

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 13.0 ETH (2995.74 USD @ $230.44/ETH) attached to it as part of the Spacemesh - https://spacemesh.io fund__.__

@avive avive changed the title from Implement the POET Server MVP in go to Build the POET MVP in GO Oct 9, 2018

@gitcoinbot

This comment has been minimized.

gitcoinbot commented Oct 9, 2018

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 10 months, 2 weeks from now.
Please review their action plans below:

1) somniastellarum has been approved to start work.

Before I write up the plan, here is a bit of my background. I have been coding in Go since the week it was released. So I understand the language and how to make the code idiomatic. You can look at my github profile to see that much of my programming experience (that is open source) is in Go. I have a general understanding about Cryptography, though I wouldn't call myself an expert. I also have a small amount of python coding experience, however I think my Go experience is what would be most helpful for your project.

My plan would be to first connect with the other contributors you might choose. I would want to make sure that we are on the same page as far as how to get this project done and how we will separate the work to be done. Since you want to have test coverage of this code, I would suggest writing the tests first (which would also serve as a way to specify exactly how it should work). Then we can develop the code to satisfy all the test cases.

If you have any questions about my experience or how I can do this work, I'm happy to answer any of your questions.

Learn more on the Gitcoin Issue Details page.

2) samparsky has been approved to start work.

  1. Implement the appropiate tests
  2. Implement the protocol according to the specification

Learn more on the Gitcoin Issue Details page.

@avive

This comment has been minimized.

Member

avive commented Oct 10, 2018

Welcome @SomniaStellarum and @MangoSmoothie101010 please join the gitter dev chat with us before getting started. We are waiting for you guys there. https://gitter.im/spacemesh-os/POET

@avive

This comment has been minimized.

Member

avive commented Oct 11, 2018

@MangoSmoothie101010

What information from my side do you need to make an educated decision about whether I shall be approved as a worker on this issue?

Do you have the contributor profile in the issue?

Afaik, other workers could theoretically join me in case you approve my proposal and the bounty would then be shared?

Yes - we'd like 2-3 contributors to collaborate on this big task.

Also, what does the "Hiring" label mean?
We are looking for FT developers from any world location and our main hiring criteria is contribution to our open source projects.

Hope this helps

@avive

This comment has been minimized.

Member

avive commented Oct 11, 2018

@ MangoSmoothie101010 - I've rejected you as gitcoin auto accept applied devs in 72 hours and I have yet to see you on our gitter dev talk - if you'd like to apply again then please chat with us on Gitter. Thanks!

@avive

This comment has been minimized.

Member

avive commented Oct 18, 2018

Regarding the correctness requirement - we plan to provide a GO verifier and prover blackbox implementation library. The verifier and prover in this task will be tested against these components. @iddo333 - can you please provide a bit more info?

@avive

This comment has been minimized.

Member

avive commented Oct 24, 2018

Quick update - we are going to provide a verifier via a web service that the prover deliverable can be tested for correctness against it.

moshababo pushed a commit that referenced this issue Nov 15, 2018

Merge pull request #2 from SomniaStellarum/prover
Integrate Prover Branch
@gitcoinbot

This comment has been minimized.

gitcoinbot commented Nov 25, 2018

⚡️ A tip worth 6.50000 ETH (680.16 USD @ $104.64/ETH) has been granted to @SomniaStellarum for this issue from @avive. ⚡️

Nice work @SomniaStellarum! Your tip has automatically been deposited in the ETH address we have on file.

@gitcoinbot

This comment has been minimized.

gitcoinbot commented Nov 25, 2018

⚡️ A tip worth 6.50000 ETH (680.16 USD @ $104.64/ETH) has been granted to @samparsky for this issue from @avive. ⚡️

Nice work @samparsky! Your tip has automatically been deposited in the ETH address we have on file.

@gitcoinbot

This comment has been minimized.

gitcoinbot commented Nov 25, 2018

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This Bounty has been completed.

Additional Tips for this Bounty:

  • avive tipped 6.5000 ETH worth 680.16 USD to samparsky.
  • avive tipped 6.5000 ETH worth 680.16 USD to SomniaStellarum.

@avive avive closed this Nov 28, 2018

@avive

This comment has been minimized.

Member

avive commented Nov 28, 2018

Well done everyone!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment