ethberlinzwei / Bounties

Get rewards for your contributions
10 stars 10 forks source link

[BOUNTY] Community Improvement Bounty - libp2p - Wireshark libp2p Lua dissectors #20

Open raulk opened 5 years ago

raulk commented 5 years ago

Wireshark libp2p Lua dissectors

We need to x-ray into the wire. Help us build mature Wireshark dissectors and get 2750 EUR! 🤑

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

The brief for this bounty can be found here: https://github.com/libp2p/devgrants/blob/master/016-wireshark-lua-dissectors.md.

How to qualify

We know you are an amazingly talented hacker, but also recognise that developing a Wireshark dissectors for all of libp2p protocols is not feasible in 2-3 hackathon days! For that reason, we're going to tightly scope this to what we believe is ambitious, but possible.

There has been a previous attempt, but our road block has always been decryption. We'd like you to focus on that. Without decryption, the dissector has limited usability as it won't support debugging live networks.

You'd earn the reward if you:

  1. Fork go-libp2p-secio to dump its symmetric keys when a build tag (e.g. dumpkeys) and an environment variable are both activated (LIBP2P_SECIO_KEYLOG=<path>).
  2. Build a SecIO Wireshark dissector that dissects the SecIO protocol itself.
  3. That dissector should tail the keylog file, and use the symmetric key associated with a peer at an ip:port to decrypt that connection.
  4. Build an mplex dissector (mplex framing is super simple) that operates on a decrypted payload.

Main challenges we expect you to encounter:

Read the devgrant brief referenced above, and review all the past work referenced in resources.

Resources

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

Judging Criteria

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

Prizes

  1. 1000 EUR via Community Improvement Bounties fund.
  2. 1000 EUR via Protocol Labs.
  3. 750 EUR via the Ethereum Foundation.
mariapaulafn commented 5 years ago

Note - The Community Improvement Bounties are funded by the ETHBerlin fundraising efforts - if your project needs these bounties to work better with libp2p - consider helping out. High incentives make happy hackers.

raulk commented 5 years ago

Protocol Labs will be chipping in an extra 1000 EUR towards this bounty for submissions that cover the requirements. 2000 EUR total in the pot so far!

djrtwo commented 5 years ago

The Ethereum Foundation is chipping in 750 EUR to this bounty!

mikevoronov commented 5 years ago

I would like to chose this bounty to work on.

raulk commented 5 years ago

@michaelvonorov find me! I’m at the venue.

raulk commented 5 years ago

This one has been claimed by @michaelvoronov and is underway! 🙌

raulk commented 5 years ago

Submission is here: https://github.com/michaelvoronov/secio-dissector. Demo video: https://drive.google.com/file/d/1B6pqFZFqC3uuScNBkpE6MEoFgXGxXg-n/view.

mikevoronov commented 5 years ago

The repo has been renamed to libp2p-dissector, since it supports not only secio now.

heinrich5991 commented 2 years ago

Is this still open in some way? Can I talk to someone about this? I've written a Wireshark dissector before, and would find it interesting to write another.