59 Commits

Author SHA1 Message Date
Richard Ramos
41d523f205 fix: code review 2022-03-03 15:37:07 -04:00
Richard Ramos
fb7c04610c fix: add missing pubsubtopic to store cursor 2022-03-03 08:50:40 -04:00
Richard Ramos
381c5f6116 chore: bump go-waku 2022-02-24 10:07:42 -04:00
Richard Ramos
98784b752a
feat: desktop mailserver cycle (#2481) 2022-01-12 12:02:01 -04:00
Richard Ramos
33250c9134
feat: desktop browser provider (#2465) 2021-12-21 11:44:37 -04:00
Anthony Laibe
268c8304a1
feat: Mark messages as confirmed in waku2 (#2449) 2021-12-01 16:15:18 +01:00
Andrea Maria Piana
f60cf5cd47 Wait for p2p messages to be processed 2021-12-01 12:58:46 +00:00
Richard Ramos
d32f0467ae
feat: Add DiscV5 to Waku2 (#2434)
* feat: Add DiscV5 to Waku2
* fix: null verification for discV5
2021-11-22 09:40:14 -04:00
Andrea Maria Piana
272342fb6b Revert "Revert "Correctly process confirmations""
This reverts commit b4c4cf62418e485905feafd44f038422c1862ebb.
2021-11-22 11:18:09 +00:00
Andrea Maria Piana
b4c4cf6241
Revert "Correctly process confirmations"
This reverts commit 1b9bc4450c8a6382c4ec9243cc800d70eb3c7fdd.
2021-11-18 17:19:41 +00:00
Volodymyr Kozieiev
1b9bc4450c Correctly process confirmations 2021-11-17 09:28:09 +00:00
Andrea Maria Piana
be1a261d9b Check for verified records when creating a contact 2021-11-15 18:53:35 +00:00
Richard Ramos
71555991db fix: waku2 history query 2021-09-27 09:04:28 -04:00
RichΛrd
7d148272e1 feat: functions to add peers and dial (#2345) 2021-09-27 09:04:28 -04:00
Richard Ramos
0575030825 feat: adding peers, fix peer count and fix format of peer stats signal 2021-09-27 09:04:28 -04:00
RichΛrd
842ba229df
feat: add function to obtain bloomfilter (#2334) 2021-08-26 16:25:43 -04:00
RichΛrd
facad9f07e
feat: upload/download rate for waku v1 messages (#2286)
* feat: upload/download rate for waku v1 messages

* reorganize code

* fix failing test
2021-08-03 15:27:15 -04:00
RichΛrd
bfdc000bbc
go-waku: RequestAllHistoricMessages (#2258)
* feat: update wakuv2 store

* check online using waku version for now

* fix peerId and from/to multiplier

* fix: lint

* fix: handle waku2 cursors

* fix: code review

* fix: code review 2

* update go-waku version

* update vendor folder
2021-07-21 15:02:50 -04:00
Andrea Maria Piana
4b0daeb47b Move services to status-node
Move all the services to status-node, as some of them were there, some
of them were in the geth backend and scattered around.
2021-07-20 10:57:38 +02:00
Andrea Maria Piana
d092a2bb49 Fix wallet big int conversion 2021-07-20 10:57:38 +02:00
Shivek Khurana
81171ad9e6
Expose password reset function (#2223)
Handled edge-cases
2021-06-23 14:51:21 +05:30
RichΛrd
40359f9c1b
go-waku integration (#2247)
* Adding wakunode module
* Adding wakuv2 fleet files
* Add waku fleets to update-fleet-config script
* Adding config items for waku v2
* Conditionally start waku v2 node depending on config
* Adapting common code to use go-waku
* Setting log level to info
* update dependencies
* update fleet config to use WakuNodes instead of BootNodes
* send and receive messages
* use hash returned when publishing a message
* add waku store protocol
* trigger signal after receiving store messages
* exclude linting rule SA1019 to check deprecated packages
2021-06-16 16:19:45 -04:00
Andrea Maria Piana
566e9a3ade remove nimbus 2021-05-21 07:22:58 +02:00
Andrea Maria Piana
57b1bc193f Remove whisper 2021-05-21 07:22:58 +02:00
Andrea Maria Piana
be01875d1d remove mailserver logic 2021-05-21 07:22:58 +02:00
Andrea Maria Piana
a1b3e3a772
Clean topics that we don't listen to
There was a bug on status-react where it would save filters that were
not listened to.
This commit adds a task to clean up those filters as they might result
in long syncing times.

This commit also returns topics/ranges/mailserves from messenger in
order to make the initialization of the app simpler and start moving
logic to status-go.

It also removes whisper from vendor.
2021-01-26 09:39:57 +01:00
Andrea Maria Piana
7387049d4b Upgrade linter and address issues 2020-12-28 16:55:14 +01:00
Andrea Maria Piana
75e0809f50 Split datasync messages in batches
When sending messages in quick succession, it might be that multiple
messages are batched together in datasync, resulting in a single large
payload.
This commit changes the behavior so that we can pass a max-message-size
and we split the message in batches before sending.

A more elegant way would be to split at the transport layer (i.e
waku/whisper), but that would be incompatible with older client.

We can still do that eventually to support larger messages.
2020-11-05 12:45:29 +01:00
Andrea Maria Piana
3f63b0c23c Check that server is nil before calling peers count
On logout happens sometimes that `PeersCount` is called when the server
has been removed.
This commit adds a guard to make sure that the server is not nil when
calling `PeersCount`.
2020-11-03 07:21:52 +01:00
Andrea Maria Piana
2ef1aa89f4
Handle connection change
Currently messenger has no notion of being online.
This might cause a problem as we retry to register with a push
notification server even if not connected to any peer, which will
inevitably fail.
This commit adds a method `handleConnectionChange` that will be called
every time the connection change state.
2020-08-27 18:54:31 +02:00
Andrea Maria Piana
aa7f591587 Move networking code for waku under v0 namespace
Why make the change?

As discussed previously, the way we will move across versions is to maintain completely separate
codebases and eventually remove those that are not supported anymore.

This has the drawback of some code duplication, but the advantage is that is more
explicit what each version requires, and changes in one version will not
impact the other, so we won't pile up backward compatible code.
This is the same strategy used by `whisper` in go ethereum and is influenced by
https://www.youtube.com/watch?v=oyLBGkS5ICk .

All the code that is used for the networking protocol is now under `v0/`.
Some of the common parts might still be refactored out.
The main namespace `waku` deals with `host`->`waku` interactions (through RPC),
while `v0` deals with `waku`->`remote-waku` interactions.

In order to support `v1`, the namespace `v0` will be copied over, and changed to
support `v1`. Once `v0` will be not used anymore, the whole namespace will be removed.

This PR does not actually implement `v1`, I'd rather get things looked over to
make sure the structure is what we would like before implementing the changes.

What has changed?

- Moved all code for the common parts under `waku/common/` namespace
- Moved code used for bloomfilters in `waku/common/bloomfilter.go`
- Removed all version specific code from `waku/common/const` (`ProtocolVersion`, status-codes etc)
- Added interfaces for `WakuHost` and `Peer` under `waku/common/protocol.go`

Things still to do

Some tests in `waku/` are still testing by stubbing components of a particular version (`v0`).
I started moving those tests to instead of stubbing using the actual component, which increases
the testing surface. Some other tests that can't be easily ported should be likely moved under
`v0` instead. Ideally no version specif code should be exported from a version namespace (for
example the various codes, as those might change across versions). But this will be a work-in-progress.

Some code that will be common in `v0`/`v1` could still be extract to avoid duplication, and duplicated only
when implementations diverge across versions.
2020-04-27 14:58:02 +02:00
Adam Babik
f86c8cf91e
Update eth-node README (#1916) 2020-04-01 20:13:54 +02:00
Adam Babik
8b61d92d58
Remove protocol and eth-node submodules (#1835) 2020-02-10 12:22:37 +01:00
Adam Babik
bc2d018483
Add support for request messages by topics (#1805) 2020-01-21 08:11:24 +01:00
Andrea Maria Piana
456bcfa022
Peg clock value to whisper timestamp (#1804)
This commit pegs the clock value to maximum + 120 seconds from the whisper
timestamp.
In this way the we avoid the scenario where a client makes the timestamp
increase arbitrarely.
2020-01-20 17:44:32 +01:00
Pedro Pombeiro
d4710faae2 In progress: Use Nimbus keystore 2020-01-20 13:15:17 +01:00
Pedro Pombeiro
6537cae606 Nimbus node support 2020-01-20 13:15:17 +01:00
Andrea Maria Piana
25d46c6d82
Fix waku tests & contact ens (#1802) 2020-01-17 13:39:09 +01:00
Pedro Pombeiro
7f45c43196 make lint-fix 2020-01-16 13:18:36 +01:00
Adam Babik
44aa313981
Make shhext and protocol work with Waku (#1777)
This change makes shhext and protocol submodule work with Waku and Whisper.
2020-01-13 20:17:30 +01:00
Andrea Maria Piana
88a1d0111e
Add Commands (#1731)
This commit adds handling of Transaction commands.
2020-01-10 19:59:01 +01:00
Pedro Pombeiro
cbe2d621f4 Fix Nimbus Post implementation 2020-01-10 16:27:31 +01:00
Adam Babik
37a508a97b
Integrate Waku service (#1759) 2020-01-08 12:12:23 +01:00
Pedro Pombeiro
c8a911ebd1 Use goimports instead of gofmt 2020-01-06 10:17:23 +01:00
Pedro Pombeiro
3eaacaa2f4 Move keystore_geth.go to eth-node/bridge/geth 2020-01-06 10:17:23 +01:00
Pedro Pombeiro
287e5cdf79 Abstract accounts.Key and geth keystore 2020-01-06 10:17:23 +01:00
Adam Babik
1ac515f19e remove reSelectAccount from backend, SelectKeyPair and SelectedKeyPairID methods from Whisper 2019-12-30 12:56:05 +01:00
Pedro Pombeiro
f494576ca2 Run gofmt -s -w 2019-12-20 11:24:26 +01:00
Adam Babik
ea0f12b920
Waku/0 service (#1715) 2019-12-20 10:40:50 +01:00
Pedro Pombeiro
90349b28c7 Use a callReturn type in RoutineQueue 2019-12-19 14:11:48 +01:00