Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # 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 lesv2 branch 3 times, most recently from dc13160 to a32f506 Compare August 18, 2017 20:43
@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 lesv2 branch 2 times, most recently from 928b039 to 1f5da7d Compare August 19, 2017 23:04
@zsfelfoldi zsfelfoldi force-pushed the lesv2 branch 8 times, most recently from daf713d to 84faf5c Compare September 19, 2017 19:43
@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.
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants