harmony-one / bounties

Bounty program is to help the community take part in the development of the Harmony blockchain. It covers from core feature to validator tooling, from dApp development to DeFi integration.
MIT License
59 stars 23 forks source link

Research: nnet integration to support message broadcast to all nodes #25

Open LeoHChen opened 3 years ago

LeoHChen commented 3 years ago

Description

This is a research project. The goal is to explore the integration of nnet (https://github.com/nknorg/nnet) into harmony nodes to replace the global pubsub interface.

Context

Currently, Harmony node is using pubsub module of libp2p (https://github.com/libp2p/go-libp2p-pubsub) to send messages within shard and cross-shard. pubsub in libp2p is chosen to ensure the network resiliency and robustness against network partition. However, global pubsub may not be efficient to deliver messages across different shards, especially beacon chain block broadcasting (https://github.com/harmony-one/harmony/blob/1a8494c069dc3f708fdf690456713a2411465199/node/node_handler.go#L139)

This project is to explore to integrate nnet library as a way to broadcast the beacon chain block. nnet is being developed as the networking layer of NKN blockchain (https://nkn.org/).

The goal of this project is to support two ways of broadcast support using either pubsub of libp2p or nnet.

You will need to work with both Harmony and NKN engineers to enable the support.

Acceptance Criteria

Reward

USD $15,000 equivalent of Harmony ONE token.

yilunzhang commented 3 years ago

Let me provide some information on the nnet side.

The first thing I would recommend is to check nnet repo https://github.com/nknorg/nnet and get a feeling of what nnet does.

Then I would recommend taking a look at example directory, especially efficient-broadcast example showing how to use tree broadcasting to efficiently broadcast messages.

A few caveats I can think of:

Feel free to let me know if you have any questions.

gitcoinbot commented 3 years ago

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


This issue now has a funding of 102974.1785 ONE (14976.98 USD @ $0.15/ONE) attached to it.

gitcoinbot commented 3 years ago

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


The funding of 102974.1785 ONE (10814.45 USD @ $0.11/ONE) attached to this issue has been cancelled by the bounty submitter

gitcoinbot commented 3 years ago

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


Work has been started.

These users each claimed they can complete the work by 1 month, 1 week from now. Please review their action plans below:

1) gabrielnicolasavellaneda has started work.

I will research on nnet integration to support message broadcast to all nodes 2) kevinkelley has started work.

Integrate nnet as optional alternative to libp2p, and compare the two

Learn more on the Gitcoin Issue Details page.

KevinKelley commented 3 years ago

Sorry to see this one de-funded; it actually looks pretty interesting to me.
...I've worked with libp2p before, and I'm pretty interested in nnet, so this would have been a good experience :)

LeoHChen commented 3 years ago

Hi, @KevinKelley , I don't think this bounty was canceled. It was just moved from round one to round two since it wasn't finished in round one.

KevinKelley commented 3 years ago

@LeoHChen Ahh. Good... I'll see what I can do with it :)

vhhsc5 commented 3 years ago

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

This issue now has a funding of 102974.1785 ONE (14976.98 USD @ $0.15/ONE) attached to it.

sdfsd

givp commented 3 years ago

@KevinKelley are you still working on this? We are aiming to close out this bounty this week if not.

KevinKelley commented 3 years ago

@givp I'm still here, still interested, still wanting (and needing) to work.

This one... it seems like a good thing, I'd love to get it working. But I'm scared away by the scope. I haven't done much, in terms of actual time working. I've been thinking about it, reading, research, trying to get a plan going, but not a lot of productive work. So... If you cancel, no harm no foul, deadline is past, and nothing produced.

Maybe better to put the money into other challenges? I'll be watching, trying to get in, lol.

If this one is important? Then, for me... I need to ...I don't know. Maybe reduce the scope, have a couple phases, proof of concept and follow with actual integration...

This cuts across the whole system, far as I can tell... I'm not seeing much way for a single developer to manage that. Switching the comm... yeah, okay, but then there's gonna be a whole lot of issues with the whole network, testing across sharding, across all nodes, how am I gonna manage that?

Thoughts? I really do want to get involved, some way.

givp commented 3 years ago

@KevinKelley No worries. I'll have to let @LeoHChen decide on changing the scope of this bounty.

Either way, I'm sure we can get you involved in other projects. Are you participating in the current Hackathon?

Feel free to DM me on Discord so we can go deeper. [Giv | Harmony#5499]

gitcoinbot commented 3 years ago

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


The funding of 102974.1785 ONE (11923.9 USD @ $0.12/ONE) attached to this issue has been cancelled by the bounty submitter

LeoHChen commented 2 years ago

hi, @KevinKelley are you still interested in working on this project. We can discuss about the scope further, maybe split it into smaller bounties to start with. Please reach out to me on twitter @leo_hao or discord. #lc4331