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

Conversation

Projects
None yet
5 participants
@zsfelfoldi
Contributor

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

@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

@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

@chatchay

This comment has been minimized.

Show comment
Hide comment
@chatchay

chatchay Oct 5, 2017

on pull request

chatchay commented Oct 5, 2017

on pull request

@ethereum ethereum deleted a comment from GitCop Oct 9, 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

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

This comment has been minimized.

Show comment
Hide comment
@ligi

ligi Oct 24, 2017

Member

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

Member

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

This comment has been minimized.

Show comment
Hide comment
@karalabe

karalabe Oct 24, 2017

Member

No :) That would be far too dangerous :)

Member

karalabe commented Oct 24, 2017

No :) That would be far too dangerous :)

@ligi

This comment has been minimized.

Show comment
Hide comment
@ligi

ligi Oct 24, 2017

Member

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?

Member

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

les, light: LES/2 protocol version (ethereum#14970)
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