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

les, light: LES/2 protocol version #14970

Merged
merged 20 commits into from Oct 24, 2017
Merged

les, light: LES/2 protocol version #14970

merged 20 commits into from Oct 24, 2017

Conversation

@zsfelfoldi
Copy link
Contributor

@zsfelfoldi zsfelfoldi commented Aug 12, 2017

This PR implements the new LES protocol version extensions:

  • new and more efficient Merkle proofs reply format (when replying to a multiple Merkle proofs request, we just send a single set of trie nodes containing all necessary nodes)
  • BBT (BloomBitsTrie) works similarly to the existing CHT and contains the bloombits search data to speed up log searches
  • GetTxStatusMsg returns the inclusion position or the pending/queued/unknown state of a transaction referenced by hash
  • an optional signature of new block data (number/hash/td) can be included in AnnounceMsg to provide an option for "very light clients" (mobile/embedded devices) to skip expensive Ethash check and accept multiple signatures of somewhat trusted servers (still a lot better than trusting a single server completely and retrieving everything through RPC). The new client mode is not implemented in this PR, just the protocol extension.

Updated protocol documentation:
https://github.com/zsfelfoldi/go-ethereum/wiki/Light-Ethereum-Subprotocol-(LES)
https://github.com/zsfelfoldi/go-ethereum/wiki/BloomBits-Trie

@zsfelfoldi zsfelfoldi force-pushed the zsfelfoldi:lesv2 branch 3 times, most recently from dc13160 to a32f506 Aug 18, 2017
@ethereum ethereum deleted a comment from GitCop Aug 18, 2017
@ethereum ethereum deleted a comment from GitCop Aug 18, 2017
@ethereum ethereum deleted a comment from GitCop Aug 18, 2017
@zsfelfoldi zsfelfoldi force-pushed the zsfelfoldi:lesv2 branch 2 times, most recently from 928b039 to 1f5da7d Aug 19, 2017
@zsfelfoldi zsfelfoldi force-pushed the zsfelfoldi:lesv2 branch 8 times, most recently from daf713d to 84faf5c Sep 15, 2017
@zsfelfoldi zsfelfoldi force-pushed the zsfelfoldi:lesv2 branch from 84faf5c to ba40ddb Sep 26, 2017
@ethereum ethereum deleted a comment from GitCop Sep 26, 2017
@ethereum ethereum deleted a comment from GitCop Sep 26, 2017
@ethereum ethereum deleted a comment from GitCop Sep 26, 2017
@ethereum ethereum deleted a comment from GitCop Sep 26, 2017
@ethereum ethereum deleted a comment from GitCop Sep 26, 2017
@ethereum ethereum deleted a comment from GitCop Sep 26, 2017
@zsfelfoldi zsfelfoldi force-pushed the zsfelfoldi:lesv2 branch from ba40ddb to b43a5ba Sep 26, 2017
@zsfelfoldi zsfelfoldi added pr:review and removed in progress labels Sep 26, 2017
@chatchay
Copy link

@chatchay chatchay commented Oct 5, 2017

on pull request

@zsfelfoldi zsfelfoldi force-pushed the zsfelfoldi:lesv2 branch from 0216117 to 0e72e5c Oct 9, 2017
@ethereum ethereum deleted a comment from GitCop Oct 9, 2017
@zsfelfoldi zsfelfoldi force-pushed the zsfelfoldi:lesv2 branch from 17f21ec to a3ca26a Oct 11, 2017
@zsfelfoldi zsfelfoldi force-pushed the zsfelfoldi:lesv2 branch from a3ca26a to c170349 Oct 11, 2017
@fjl
fjl approved these changes Oct 24, 2017
@fjl fjl merged commit ca376ea into ethereum:master Oct 24, 2017
1 of 3 checks passed
1 of 3 checks passed
continuous-integration/appveyor/pr AppVeyor build failed
Details
continuous-integration/travis-ci/pr The Travis CI build failed
Details
commit-message-check/gitcop All commit messages are valid
Details
@ligi
Copy link
Member

@ligi ligi commented Oct 24, 2017

W00t - nice to see this merged - can't wait for 1.7.3 - any chance for a release before DevCon3?

@karalabe
Copy link
Member

@karalabe karalabe commented Oct 24, 2017

No :) That would be far too dangerous :)

@ligi
Copy link
Member

@ligi ligi commented Oct 24, 2017

Yea - I think you are right - but perhaps I use a snapshot for once ;-) Would really love to see a faster light-client ..
Especially on one Device I have there currently - NXP i.MX6UL - this syncs on rinkeby for days now ..
Btw.: this one should close #15342 correct?

@karalabe karalabe added this to the 1.7.3 milestone Nov 21, 2017
vincentserpoul added a commit to vincentserpoul/go-ethereum that referenced this pull request Nov 22, 2017
This PR implements the new LES protocol version extensions:

* new and more efficient Merkle proofs reply format (when replying to
  a multiple Merkle proofs request, we just send a single set of trie
  nodes containing all necessary nodes)
* BBT (BloomBitsTrie) works similarly to the existing CHT and contains
  the bloombits search data to speed up log searches
* GetTxStatusMsg returns the inclusion position or the
  pending/queued/unknown state of a transaction referenced by hash
* an optional signature of new block data (number/hash/td) can be
  included in AnnounceMsg to provide an option for "very light
  clients" (mobile/embedded devices) to skip expensive Ethash check
  and accept multiple signatures of somewhat trusted servers (still a
  lot better than trusting a single server completely and retrieving
  everything through RPC). The new client mode is not implemented in
  this PR, just the protocol extension.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

5 participants