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

@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
Copy link

chatchay commented Oct 5, 2017

on pull request

@fjl fjl merged commit ca376ea into ethereum:master Oct 24, 2017
@ligi
Copy link
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
Copy link
Member

No :) That would be far too dangerous :)

@ligi
Copy link
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 pushed 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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants