ethberlinzwei / Bounties

Get rewards for your contributions
10 stars 10 forks source link

[BOUNTY] Community Improvement Bounty - libp2p - mDNS discovery in go #19

Open raulk opened 5 years ago

raulk commented 5 years ago

mDNS discovery in go-libp2p

Our mDNS support has been playing up. Help us fix it and get 1000 EUR! 🤑

See devgrant 11 in the libp2p/devgrants tracker: https://github.com/libp2p/devgrants/issues/11

The brief for this bounty can be found here: https://github.com/libp2p/devgrants/blob/master/011-mdns-go-js.md.

How to qualify

Create a go-libp2p-mdns repository, and develop your solution there. It needs to conform to the recently merged mDNS specification, under libp2p/specs.

Two clients with no access to the Internet, connected to the same local network, should be able to find each other automatically via mDNS (as long as multicast UDP is enabled, of course) and initiate a libp2p connection.

Ideally you'd be able to demonstrate this live once you conclude your hacking! Plus points if you demonstrate this with IPFS.

Resources

Make sure you review the referenced spec, as well as the following discussions to gain full understanding of the problems to address:

Feel free to use @raulk as a walking encyclopedia for all things libp2p.

Judging Criteria

  1. Completeness, correctness, cleanliness and maintainability of code.
  2. Unit tests, integration tests.
  3. Documentation / code comments.
  4. It actually works, and you can demo it.

Prizes

  1. 500 EUR via the Community Improvement Bounties fund.
  2. 500 EUR via Protocol Labs.
raulk commented 5 years ago

Protocol Labs will be chipping in an extra 500 EUR for this bounty! 🎉

shresthagrawal commented 5 years ago

I am working on it!

raulk commented 5 years ago

@shresthagrawal Awesome! Come find me at level 1 by the kitchen. I’m at the libp2p/ipfs helpdesk. I’ll be able to help.

shresthagrawal commented 5 years ago

Hey! @raulk are you at the space?

raulk commented 5 years ago

@shresthagrawal not yet, but I believe we’ve connected through telegram. I’ll help you there!

shresthagrawal commented 5 years ago

Hey! It was nice working with Libp2p. here is the result of my work of past 48 hours. Special Thanks to @raulk for helping. With no sleep and continuous coding, I am sure there might be lot of logging statement and silly mistakes in the codebase; Also there are some parts of the code which still needs to be worked on.

Here is the complete list of what has been done and need to be done:

Parts that are Implemented

Parts that are partially Implemented

Parts that Need to be Implemented

I will make sure I work on them by this week.
During the hackathon We also go two goods insights for libp2p:

I will open proper issues and pull request regarding them! Looking forward to work with the Libp2p community :))

raulk commented 5 years ago

@shresthagrawal thank you so much for taking this on, and for your relentless drive to make it happen!

Kudos for all the discoveries, learnings and contributions you've made during this endeavour. The libp2p community is happy to have you onboard ;-)

I think it would be great for you to open issues under https://github.com/shresthagrawal/go-libp2p-mdns with everything that is pending.

I noticed you opened https://github.com/libp2p/rust-libp2p/issues/1232, thanks for reporting that issue upstream and contributing back.

I'm a bit pressed for time right now, but I will reach out to you on Telegram to continue hacking on this together until we feel it's solid enough to contribute it to the libp2p org.