Skip to content
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

Move PoC challenge construction to Consensus Group (HIP draft) #41

Closed
wants to merge 3 commits into from

Conversation

evanmcc
Copy link
Contributor

@evanmcc evanmcc commented Sep 11, 2020

Summary: A proposal to move the role of PoC challenger into the consensus group to enable lighter-weight gateways.

Rendered view: https://github.com/helium/HIP/blob/pevm/group-challenge-hip/0099-group-challenge.md

Currently the network is a sea of undifferentiated nodes, all running more or less the same version of erlang lip2p.
Under this proposal, we will be moving to a network that has nodes with differing capacities (to some extent, we have this today with seed nodes).
Given that many of these nodes will have small memory and little to no persistent storage, it's probable that we'll need to be able to make informed decisions about what network peers we retain knowledge about.
In order to inform those decisions, I think that libp2p peers should start to declare some sort of service information, e.g. "can answer ARP requests", "full node", "poc capable", etc.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

libp2p already allows nodes to advertise the "handler protocols" available on a connection as part of the stream negotiation (there's a ls command)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I meant to have it serialized in the peer, so you could look it up/index it locally without having to contact the remote node.



## Request Generation
[request-generation]: #request-generation
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's not much about the actual generation of a request here. In the current model the request is generated from the combination of chain entropy and a secret ephemeral key generated by the challenger, which is only revealed in the receipt. How do we plan to replicate this on the consensus group?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that's a good question. I'd forgotten that particular detail when I wrote this. Maybe the right solution is that everyone in the group races at random? First to deliver a key and path to a spot wins?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there's a lot of ways we could do this and we should try to decide on the best way. For example the consensus members could simply propose a set of ephemeral keys per block, and we pick a subset of those (depending on the poc rate), combine them with the block hash and use that use for pathing. We could also still allow the challenger to submit a key, or we could do some wild secure multiparty compute over elliptic curves (likely a huge amount of work).

@jamiew jamiew added the draft label Sep 24, 2020
Copy link
Contributor

@jamiew jamiew left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still marked as draft, but I agree with your HIP17 numbering commit and think is fleshed out enough to merge into master and invite more discussion

@evanmcc evanmcc marked this pull request as ready for review October 9, 2020 04:22
@evanmcc
Copy link
Contributor Author

evanmcc commented Oct 9, 2020

OK, I've marked it as non-draft, but I'd like to do a design review with @Vagabond tomorrow before we merge it and move to broader discussion, if that's OK.

@jamiew
Copy link
Contributor

jamiew commented Oct 9, 2020 via email

@jamiew
Copy link
Contributor

jamiew commented Oct 20, 2020

@evanmcc let me know if this one feels closer to being merge'able. No worries if not, just trying to keep things moving along. Thanks!

@jamiew jamiew changed the title Consensus Group PoC Challenges Move PoC Challenge Construction to Consensus Group Oct 29, 2020
@jamiew jamiew changed the title Move PoC Challenge Construction to Consensus Group Move PoC challenge construction to Consensus Group Oct 29, 2020
@jamiew jamiew changed the title Move PoC challenge construction to Consensus Group Move PoC challenge construction to Consensus Group (HIP draft, unnumbered) Oct 31, 2020
@jamiew jamiew closed this Oct 31, 2020
@jamiew jamiew deleted the pevm/group-challenge-hip branch October 31, 2020 13:37
@jamiew jamiew restored the pevm/group-challenge-hip branch October 31, 2020 13:38
@jamiew
Copy link
Contributor

jamiew commented Oct 31, 2020

Oof, sorry, a rogue git cleanup script accidentally deleted & closed. Restoring & re-opening

@jamiew jamiew reopened this Oct 31, 2020
@jamiew jamiew changed the title Move PoC challenge construction to Consensus Group (HIP draft, unnumbered) Move PoC challenge construction to Consensus Group (HIP draft) Nov 4, 2020
@jamiew jamiew added the stale Old and needs attention label Dec 22, 2020
@evanmcc
Copy link
Contributor Author

evanmcc commented Jan 8, 2021

I've spent a fair amount of time thinking about this and how it interacts with upcoming proposals, and I no longer think that it's required.

@evanmcc evanmcc closed this Jan 8, 2021
@jamiew jamiew deleted the pevm/group-challenge-hip branch June 30, 2021 14:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
draft stale Old and needs attention
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants