-
Notifications
You must be signed in to change notification settings - Fork 62
Node discovery v5 #19
Comments
Edited (@holgerd77): Open again since @Silur seems to not have enough free resources on that. |
Cool. :-) |
For reference: ethereum/go-ethereum#2117 (comment) |
Py-EVM implementation [in progress]: gsalgado/py-evm@f31fbfc |
@Silur Are you still open/do you have time to work on this one? Otherwise I would put this back in "help wanted", with the current comments people interested will think this is already being worked on. |
Issue Status: 1. Open 2. Started 3. Submitted 4. Done This issue now has a funding of 1.5 ETH (1068.95 USD @ $712.63/ETH) attached to it.
|
Hey @holgerd77 interested in this, as we are currently exploring p2p in my team, Prysmatic Labs. Can you elaborate more on the requirements needed to get the bounty accepted? What would an acceptable PR look like? Any specific features you have in mind to close this? |
Interested in helping out with this as well. |
Is there an abstract describing current situation and the problem with discovery? |
I'll update the issue tomorrow with a more specific work description and requirements for a bounty to be accepted. |
Hi everyone, I updated the work specification, this should now hopefully accurately enough describe what is expected here, if you still have questions let me know. This might sound a bit tighter then before (didn't realize that I had this "experimental implementation" in the introduction of the issue description, I replaced this pointing to an actual working implementation). Please re-read, take a breath and maybe sleep over one night and think, if this is a good issue for you. This is an advanced task, requiring some intrinsic motivation as well as some pre-knowledge to not make this too demanding. Thanks everyone to expressing interest in this so far, pretty amazed about the feedback! 😄 |
Hi all, Vivek from Gitcoin here. It looks like @brianherman was first to 'Start Work' here on Gitcoin and thus has precedence to give this a go + @alexanderbez has offered his help as well. We'd encourage a collaborative effort here if it makes sense, as in line with open source ethos 😄perhaps @brianherman gives it a go and comes back around for feedback as needed? @rauljordan good to see you here; @holgerd77 has updated with acceptance criteria above! |
@brianheram Hi Brian, does this still fit your expectations after the updated spec description and do you want to start on this? If you have any questions let me know! |
@brianherman see above^ 🙂 |
@brianherman Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days |
Hi @abitrolly @alexanderbez @rauljordan are any of you interested in taking on this bounty? @holgerd77 and I have discussed and increased the contribution to 2ETH (blockchain syncing now). As an FYI, we understand the expiry date is near on Gitcoin, but will be able to pay this out upon completion, even if it takes beyond the expiration. |
I'm certainly happy to help on this. Seems there are three major topics: packets, node records, and topics. Perhaps we could come up with a plan/design and tackle these in parallel? |
I agree that we should split this up, otherwise it would be a bunch of mega PRs. I am not as experienced on devp2p, but I'm willing to learn more and help on parts of this. Perhaps someone can come up with a proposal that can be split up into several smaller PRs/Issues?
*Raul E. Jordan, Harvard University | Ethereum Protocol Developer*
r auljordan.com
( http://rauljordan.com )
Twitter: @raulitojordan ( https://twitter.com/raulitojordan )
gpg --recv-keys 0x89725027FC8EC0D4
…On Tue, May 29, 2018 at 3:13 PM, Alexander Bezobchuk < ***@***.*** > wrote:
I'm certainly happy to help on this. Seems there are three major topics:
packets, node records, and topics. Perhaps we could come up with a
plan/design and tackle these in parallel?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub (
#19 (comment)
) , or mute the thread (
https://github.com/notifications/unsubscribe-auth/AFUIPfnvvpSrtMhjutjJdQYua-aGPoaTks5t3bnogaJpZM4RDejT
).
|
@alexanderbez @rauljordan Cool guys, that sounds great! |
Hey i'm interested in help in this issue, i'm not experienced in devp2p but i want to learn more about. |
Hi @jvmaia @rauljordan @alexanderbez I wanted to follow up as the bounty funder; is there anything I can do to help coordinate? We're happy to add to the bounty as it looks like it may become a collaborative effort. |
The bounty is good, but I won't have the time to research current p2p protocols and their weaknesses. |
@holgerd77 @vs77bb @gitcoinbot can we get an extension on this? I could get it done by next week, pretty familiar with this code base -- somewhat. |
@tcsiwula Sorry I got over that one, will also circle in @vpulim since he is deeper in the the whole networking topic since he is working on this on the client. Maybe he has some good ideas on demarcation/integration of the current code state of the Discovery v5 features into the existing code base. |
So I realized that I actually don't have the bandwidth to take this on :/ |
@jwasinger Ok, thanks, feedback is really appreciated, better to realize early on then to always postpone or something! Thanks for the initial offer! |
@holgerd77 The PR isn't ready for merging into master as-is. |
Ok, thanks @vpulim for the analysis, then let's do the following: @tcsiwula I've send you a collaborator invite for the repository. Can you do some last basic cleanups mentioned in the comment above and then do a final re-pushing directly to the repository so that we have administrative control over this? I would then say that we'll leave this as an open PR as a future working basis for now and I would recommend @ceresstation that we pay out a bounty of 1.000 DAI for this (with the lesson also learned to never again do |
reminder ping (see message above): @ceresstation @tcsiwula |
@tcsiwula is there anything I can do on my end to help get this across the finish line? It's been outstanding for quite a while. We can of course adjust the bounty amount to be equal to the amount 2 ETH was worth when the bounty began. |
Hi @tcsiwula, see the edited comment from @ceresstation above with a note on adjustment of the bounty value. Please let me know if it is possible to do the last adjustments on this I mentioned above until the end of the year, or if you have a significant reason why this is not possible (you can also PM me on Gitter). I would otherwise close/cancel this bounty. |
Hello @holgerd77 @ceresstation sorry have been behind on my email. Let me process the above thread. So was the amount 1.000 DAI equal to $1000 or what was the USD value? |
1 DAI = 1 US $, so yes. |
Ok, just re-read the thread, seems that we have two a bit conflicting statements here with @ceresstation proposing a 2 ETH adjustment and me some conversion to 1.000 DAI. I would find the 1.000 DAI version a bit more appropriate TBH, since we would leave this task in a very open state with the suggestion I made above, this has exceeded the originally planned time by some order of magnitude and lastly the bounty actually had been defined in ETH with everyone knowing about the risk of ETH price fluctuation. Anyhow, it's Christmas 🎄 😄 and at the end it's up to Gitcoin to decide on the bounty level (since they have to pay! 😄). So let's take the 2 ETH adjustment version, this would be 712,63 $/ETH (price at bounty opening, see Gitcoin Bot comment above) * 2 ETH = 1.425,26 $ ~ 1.425 DAI. I will stick to the end-of-year deadline though. So please do the following:
We can then pay out the bounty. Best |
Hey @holgerd77 sorry we're on the same page, I was just saying I'd be willing to pay a bounty amount equal to the amount 2 ETH was worth when the bounty began in DAI. In other words I can confirm that we'd be able to pay $1,425 DAI. @tcsiwula please confirm that this is good on your end :) |
Okay sounds good to me @holgerd77 @ceresstation will get it done by Sunday for review! |
Sounds good! 😄 |
working on right now, a bit late but expect soon. |
That's ok. |
Just wrapping up. Created a new PR & branch #48 summary here compiles and runs now successfully should be okay to close out the issue. Let me know if you need me to submit or close the bounty manually @holgerd77 @ceresstation Further work still needs to be done with regards to the Node Record Specification and testing. I can try to work on this some more in 2019 or at least define some subset pr's. Kinda in the middle of moving, interviewing and spending holidays with my family (just a fyi). Normally I would be more responsive! Cheers~ 🤓😄 |
We can very well see this as accomplished, Tim @tcsiwula thanks for doing all the work on this, we've learned to do more fine-grained Gitcoin issues in the future. Hope it was not too overwhelming, would be great if you can continue with some work in the time to come. 😄 👍 @ceresstation Can you initiate the bounty payout (the last comment I made on the PR shouldn't be a blocker, this is just some test run fixes and the PR will stay open anyhow)? |
@tcsiwula thanks for getting that done, @holgerd77 initiating the payout now! |
⚡️ A tip worth 2.00000 ETH (301.9 USD @ $150.95/ETH) has been granted to @tcsiwula for this issue from @vs77bb. ⚡️ Nice work @tcsiwula! Your tip has automatically been deposited in the ETH address we have on file.
|
⚡️ A tip worth 700.00000 DAI (700.0 USD @ $1.0/DAI) has been granted to @tcsiwula for this issue from @vs77bb. ⚡️ Nice work @tcsiwula! Your tip has automatically been deposited in the ETH address we have on file.
|
@tcsiwula Please confirm you've received the payment! I remember when this task began - glad to see it across the finish line. Thanks for your patient and thoughtful reviews along the way, @holgerd77 🙂 |
⚡️ A tip worth 425.00000 DAI (425.0 USD @ $1.0/DAI) has been granted to @tcsiwula for this issue from @ceresstation. ⚡️ Nice work @tcsiwula! Your tip has automatically been deposited in the ETH address we have on file.
|
Hi there @tcsiwula , would you mind finishing this on the gitcoin side aswell, so we can finish this bounty? Thank you! Chris |
Pretty sure got the payout, will confirm when I get access to my desktop next. Also will close out on gitcoin side soon! |
Introduction
Node discovery v5 is on it's way, which should make it a lot easier to discover suitable nodes. Though not standardized yet,
it would be good to have some early experimentation/draft implementation to get closer to a feeling how the protocol (could) behaveit would be good to have this library updated with a working implementation to support the practical usage in terms of a light client implementation.Here are some draft documents on this. Also valuable in this regard: Talk from Felix at Devcon3.
Current
py-evm
implementation work: ethereum/py-evm#209Current Situation
Currently the library supports Node discovery v4 implemented in
src/dpt
, where kbucket.js manages the list of peers in aKademlia
-like DHT, message.js implements the different message types likeping
,pong
orneighbours
to discover new peers and server.js sets up a server to handle the discovery communication.There are static tests for the message types in ./test/dpt-message.js, the integrated communication process is tested in ./test/integration/dpt-simulator.js as well as the corresponding
eth
andles
files.With the two
peer-communication
example scripts in theexamples
folder bothETH
andLES
(so full- and light client wire) communication can be tested in a real-world scenario by connecting to an actual network of in-production clients.Task Description
Node discovery v5 updated the structure of Node records, brings changes to the communication flow by adding new packet types and introduces the concept of topics for exchanging on the capability of peers.
A first step into this task would be to work out some concept/idea where these additional/changed components fit into the existing v4 implementation and where current files/classes can be extended and where additional structures have to be set up. Since network communication implementation is very error-prone it will probably ease implementation to early on think along how to extend existing tests and add new tests for added functionality.
Goals
Though being still marked as "experimental" Geth has a working v5 discovery implementation for some time. Sufficient requirement for this issue to be completed is a working
peer-communication
example where it is possible to set the discovery tov5
- e.g. by CL parameter or example internal constant - and get a workingLES
and/or (optimally both)ETH
connection (working means here: e.g.LES
packets are actually passed through) in a reasonable amount of time (repeatedly < 5 min until first connection occurs).Necessary side goals are:
README
docs which gives some usage guides and reflect the API changesRequired Skills
Everyone is invited to join and take on this task. Since this an advanced task requiring deeper knowledge of the Ethereum networking stack it is probably more likely that you succeed if you bring along skills/experience in the following fields:
ES6
JavascriptGuidance
For questions helping to understand the existing code base and the scope of this issue you will get active guidance by the creator of this issue (@holgerd77, EthereumJS team).
The text was updated successfully, but these errors were encountered: