-
Notifications
You must be signed in to change notification settings - Fork 250
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
Switch code from whisperV5 to whisperV6 #638
Comments
@pombeirp Please, also take attension to switching Status node in 'light' whisper mode. WhisperV6 introduces 2 node types: full and light (see https://github.com/ethereum/go-ethereum/blob/master/whisper/whisperv6/whisper.go#L1034). Full node receives all messages. Light node shares its bloom filter and expects to receive only matched messages.
|
@JekaMas I also noticed a few things I'll need to investigate further:
// double check is necessary, because deriveKeyMaterial() is very slow
if whisper.symKeys[id] != nil {
return "", fmt.Errorf("critical error: failed to generate unique ID")
} |
@pombeirp 1. https://github.com/ethereum/go-ethereum/blob/master/whisper/whisperv6/message.go#L92
|
It looks like it doesn't make big difference about versions. It just checks is current whisper's version is known to notification. So lets make this fix and create issue to check do we need |
Hah, |
@JekaMas regarding full/light node, that means that for the full node we'll set |
@pombeirp Lets check Ethereum`s code:
It looks like any It test branch with whisperV6 i've solved this with hack in
To
|
Maybe thats a typo, but node is full only if all of the 64 bytes are 0xFF. There is even a unit test for that. Why do you need that hack? Node with full filter will always stay full irrelevant of updates.
|
I dont want any hacks at all :) I just shown the result state we want. |
In order to fully test this (especially the bloom filter initialization), we need to complete #640 |
This issue is ending up being addressed by #665 |
* Update `github.com/ethereum/go-ethereum` package to 1.8.1 branch. Part of #638 * Fix code due to some signature changes. Part of #638 * use upstream for whisper backend * Add patch to downgrade usage of Whisper v6 to v5 in some geth 1.8.1 vendor files. Part of #638 * Take into account the DNS rebinding protection introduced in 1.8.0 by adding exception for localhost. Part of #638 * Add patches required for cross-compiled builds starting with geth 1.8.0. Only applied during build. Part of #638 * Update expected JSON result in `TestRegressionGetTransactionReceipt()` and `TestCallRawResultGetTransactionReceipt()`. Part of #665 * Fix some failing e2e tests. Part of #638 * Address comments in PR #702. Part of #638
* Update project to use Whisper v6. Part of #638 * Revert "Add patch to downgrade usage of Whisper v6 to v5 in some geth 1.8.1 vendor files. Part of #665" - this reverts commit 6aefb4c. * Enable light mode on Whisper v6 for non-mail servers. Part of #638 * Fix race condition in whisperv6/peer.go. Part of #665 (PR already accepted upstream for 1.8.2) * Update bootnode addresses in staticnodes.json. Part of #638 * Add `shh.lightclient` flag and tests for bloom filter setting logic. Part of #638 * Move MakeTestNodeConfig to utils. Part of #638 * Reduce PoW in `whisper_jail_test.go` to fix flaky test. Part of #638
Problem
Switch code from whisperV5 to whisperV6
Implementation
Change imports from "github.com/ethereum/go-ethereum/whisper/whisperv5" to
whisper "github.com/ethereum/go-ethereum/whisper/whisperv6
in status-go code.Also make a patch to change imports in Geth packages:
go-ethereum\whisper\notifications
andgo-ethereum\whisper\mailserver
.Acceptance Criteria
All tests are passed. Patch for go-ethereum packages added.
Part of #634
The text was updated successfully, but these errors were encountered: