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

Waku 0: Replace Whisper EIP627 with the de facto Whisper fork Status uses #27

Closed
oskarth opened this issue Nov 14, 2019 · 5 comments
Closed
Assignees

Comments

@oskarth
Copy link
Member

@oskarth oskarth commented Nov 14, 2019

Problem

Currently apps such as Status use a forked version of EIP627 that isn't properly documented. This makes it difficult to write additional implementations, such as Nim, since a lot of behavior isn't documented.

Additionally, people often confuse "Whisper" with "our (Status) fork of Whisper" which is undesirable terms of being explicit about what requirements we have and what guarantees we provide.

Finally, this is a stepping stone to address bandwidth consumption in a proper Waku mode, which will happen in Waku v1.

Acceptance criteria

  • EIP627 replaced with a forked, spec with rationale and replacing Whisper with Waku
  • Describe RLPx subprotocol and version numbers
  • Waku/0 spec in uniform format with other specs
  • Reviewed by swarm and merged to specs.vac.dev

The below are optional for a initial release, and can be addressed in e.g. 0.1 spec release (still Waku version 0). At a minimum, the below should be better understood and captured:

  • Describe backwards compatibility with Whisper v6 / v1 (vacp2p/research#14) - sketch in spec

Not solved, but issues created:

  • Describes existing mailserver usage, see #36
  • Describe existing light client usage, see #29
  • Describe current implementation status in terms of capabilities (i.e. geth vs nimbus wrt light node, etc) status-im/specs#63
  • Include privacy, scalability and DDoS considerations (see #39)
  • Describe existing rate limiting #40
  • Describe forward compatibility with waku/1 #41

Details

See:

As well as implementations in status-im/whisper and status-im/nim-eth

Possible Solutions

See above for acceptance criteria.

Notes

@oskarth

This comment has been minimized.

Copy link
Member Author

@oskarth oskarth commented Nov 15, 2019

Few notes/additions:

  1. Version 0 of RLPx subprotocol crashes, unclear if this is spec or impl issue. We might just make waku/1 the original waku/0 idea and go from there (eth is on version 63!), see status-im/nim-eth#119

  2. Subprotocol isn't describe in EIP627, i.e. shh/6 isn't documented like in e.g. https://github.com/ethereum/devp2p/blob/master/caps/eth.md

  3. Subprotocols in nim-eth appears to be limited to three characters, the devp2p/RLPx spec just says "short ascii name" from what I can tell, unclear if spec or impl issue. For now I call this wkk, see status-im/nim-eth#119

FYI @kdeme

@oskarth oskarth mentioned this issue Nov 15, 2019
@oskarth

This comment has been minimized.

Copy link
Member Author

@oskarth oskarth commented Nov 15, 2019

Subtask describe mailserver usage partially blocked by status-im/specs#55

@oskarth oskarth moved this from To do to In progress in Waku project Nov 18, 2019
@oskarth oskarth mentioned this issue Nov 18, 2019
15 of 15 tasks complete
@oskarth

This comment has been minimized.

Copy link
Member Author

@oskarth oskarth commented Nov 20, 2019

Updated issue with latest state and links etc. Please see #28 for changes

@oskarth

This comment has been minimized.

Copy link
Member Author

@oskarth oskarth commented Nov 21, 2019

All current TODOs in #28 text should be pulled out of there and put in Github issue, e.g. one master enhancement issue and/or small specific issues for furher discussion.

@oskarth

This comment has been minimized.

Copy link
Member Author

@oskarth oskarth commented Nov 25, 2019

Initial cut done for Waku 0, closing this.

@decanus will create follow up issue with inlined TODOs and continue improving it (mailserver use, abnf, definitions etc)

@oskarth oskarth closed this Nov 25, 2019
@oskarth oskarth moved this from In progress to Done in Waku project Nov 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Waku project
  
Done
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.