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
11 tasks done
oskarth opened this issue Nov 14, 2019 · 5 comments
Closed
11 tasks done
Assignees

Comments

@oskarth
Copy link
Contributor

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:

Not solved, but issues created:

Details

See:

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

Possible Solutions

See above for acceptance criteria.

Notes

@oskarth
Copy link
Contributor Author

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 Setting RLPx subprotocol version to 0 crashes 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 Setting RLPx subprotocol version to 0 crashes status-im/nim-eth#119

FYI @kdeme

@oskarth
Copy link
Contributor Author

oskarth commented Nov 15, 2019

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

@oskarth
Copy link
Contributor Author

oskarth commented Nov 20, 2019

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

@oskarth
Copy link
Contributor Author

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
Copy link
Contributor Author

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 as completed Nov 25, 2019
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

No branches or pull requests

2 participants