76 Commits

Author SHA1 Message Date
Adam Babik
3e303b1d5f
fix a case when Limit is 0 when syncing mailservers (#29)
It also improves passing errors to the requester.
2019-06-26 11:11:20 +02:00
Andrea Maria Piana
f62a6add56
Use rawsyncresponse 2019-05-06 14:33:58 +02:00
Andrea Maria Piana
f55e777bd6
Add SendRawP2PDirect
Adds a function to send RawValue envelopes. This is needed as a
performance optimization, as currently most of the processing time is
spent decoding envelopes and coding them back when sending them.
This will allow us to skip this unnecessary step.
2019-05-06 12:32:09 +02:00
Dmitry Shulyak
4fae75da94
Post request.completed only after envelopes from that request were added to a filter (#27)
* Post completion event after every message was added to a filter

* Add test that request.completed received after all envelope.avaiable

* Process all p2p envelopes and completion events sequantially

* Stop whisper after test
2019-04-19 08:14:44 +03:00
Dmitry Shulyak
efca6fbb0c
Pass information that message was received from a mailsver to a whisper user (#26) 2019-04-18 09:40:45 +03:00
Dmitry Shulyak
b8da753209
Change filter internal message store to inteface (#25) 2019-04-04 11:46:29 +03:00
Dmitry Shulyak
3a4601b568
Receiver notifies sender with reasons for discarding envelopes (#23)
* Receiver notifies sender with reasons for discarding envelopes

On a sender side we want to know if some messages were discarded. For this
purpose new message type was added - messagesResponse. This message type is versioned,
in order to make it easier transition to new message response, if we will want to extend it in near
future.

The response itself is formed from hash of envelopes received in a single batch, and errors
during processing of envelopes. Each error has a code and description, the reason for adding a code
is to provide some kind of user-friendly description to a client explaining why certain envelopes
were not yet delivered. Description will be simply logged on a sender side.

The followup for this change will be an extention on status-go side that will send particular envelope
errors to a client (e.g. status-react).

* Store errors as array and cover new changes with tests
2019-03-26 10:15:16 +02:00
Dmitry Shulyak
37436ddc1e
Keep connection if time is not synchronized between several peers (#22) 2019-03-20 17:21:53 +02:00
Dmitry Shulyak
88b3fdf3bd
Remove flakiness check before broadcast (#20) 2019-02-20 14:06:56 +02:00
Dmitry Shulyak
9e2f8db257
Send event when envelope was received from a peer (#19)
* Send event when envelope was received from a peer

* Update event description
2019-02-19 09:08:40 +02:00
Adam Babik
109fa96320
update geth to 1.8.20 (#16) 2018-12-17 18:22:49 +01:00
Adam Babik
82a7734c36
add event EventMailServerSyncFinished (#15) 2018-12-13 09:51:47 +01:00
Adam Babik
27e2442271
add request validation for mail sync (#14) 2018-12-11 09:22:16 +01:00
Adam Babik
6e5af097a1
add opcodes to sync messages (#13)
Two opcodes were introduced p2pSyncRequestCode and p2pSyncResponseCode. MailServer interface got extended with SyncMail(*Peer, SyncMailRequest) error.

There are no breaking changes.
2018-12-06 09:33:58 +01:00
Dmitry
19c3d76859 Extend mail response with a peer and refactor tests 2018-12-03 10:32:48 +02:00
Dmitry
96d2199ed5 Send events when mail request is sent or expired 2018-11-28 10:49:39 +02:00
Dmitry
76c2447643 Extend whisper protocol with confirmations and add necessary events 2018-11-26 09:32:41 +02:00
Adam Babik
4cd9bb35e2
Upgrade geth 1.8.17 (#8) 2018-11-12 10:03:57 +01:00
Igor Mandrigin
14e1bbfd9b Add an response that mailserver failed to complete request. 2018-10-18 10:59:46 +02:00
Adam Babik
ca91ec35f6
Support batched messages in p2pMessageCode (#3) 2018-10-16 17:41:10 +02:00
Dmitry
502d98953e Apply part of the watchdog change to status-go whisper module 2018-10-01 11:11:09 +03:00
Dmitry
d441b04413 Apply whisper metrics patch 2018-10-01 11:11:05 +03:00
Dmitry
3dff91373a Apply mail server cursor patch 2018-10-01 11:11:00 +03:00
Dmitry
07151c8376 Apply mail server completion response 2018-10-01 11:10:11 +03:00
Dmitry
8ff11fbbc0 Apply time source patch with changes in tests 2018-10-01 11:10:07 +03:00
Dmitry
5e489619d5 Apply whisper confirmations patch 2018-10-01 11:10:01 +03:00
Dmitry
536333e998 Apply 0014-whisperv6-notifications patches to status-go/whisper module 2018-10-01 11:09:03 +03:00
Emil
e050a9667e all: simplify s[:] to s where s is a slice (#17673) 2018-09-14 22:07:13 +02:00
b00ris
1462c1b12a whisper: add light mode check to handshake (#16725) 2018-09-05 10:57:45 +02:00
Adam Babik
739fa07809 whisper: fix loop in expire() (#17532) 2018-08-29 13:56:13 +03:00
Wenbiao Zheng
98fed4d847 all: remove the duplicate 'the' in annotations (#17509) 2018-08-27 11:49:29 +03:00
Eugene Valeyev
b1785a6112 whisper: fixed broken partial topic filtering
Changes in #15811 broke partial topic filtering. Re-enable it.
2018-08-13 16:27:25 +02:00
b00ris
e28f4af720 whisper: remove unused error (#17315) 2018-08-07 15:16:56 +02:00
Ralph Caraveo III
9f139cbd6b all: switch out defunct set library to different one (#16873)
* keystore, ethash, eth, miner, rpc, whisperv6: tech debt with now defunct set.

* whisperv5: swap out gopkg.in/fatih/set.v0 with supported set
2018-07-16 10:54:19 +03:00
Adrià Cidre
6d0071d84c whisper: Reduce message loop log from Warn to Info (#17055) 2018-06-26 04:31:05 -04:00
Armin Braun
f2b01a0e17 #15685 made peer_test.go more portable by using random free port instead of hardcoded port 30303 (#15687)
Improves test portability by resolving 127.0.0.1:0
to get a random free port instead of the hard coded one. Now
the test works if you have a running node on the same
interface already.

Fixes #15685
2018-06-14 10:54:00 +02:00
Felix Lange
bcdcf1cc33 crypto: replace ToECDSAPub with error-checking func UnmarshalPubkey (#16932)
ToECDSAPub was unsafe because it returned a non-nil key with nil X, Y in
case of invalid input. This change replaces ToECDSAPub with
UnmarshalPubkey across the codebase.
2018-06-12 15:26:08 +02:00
gluk256
0a4cbece76 whisper/whisperv6: post returns the hash of sent message (#16495) 2018-04-19 15:34:24 +02:00
thomasmodeneis
3e994ca586 build: enable goimports and varcheck linters (#16446) 2018-04-18 00:53:50 +02:00
Guillaume Ballet
67e431d5be whisper: fix issue in topic list copy (#16381)
- Fixes #16271. What was appeneded was a pointer to
an object that changes during the iteration.
- The topic is allocated as a 4-byte array, fill partial topics
with 0s. Partial topics are currently disabled, but would
crash as they rely on the presence of byte number 3.
2018-03-27 17:26:08 +02:00
David Huie
75cd6be0e4 ecies: drop randomness parameter from PrivateKey.Decrypt (#16374)
The parameter `rand` is unused in `PrivateKey.Decrypt`. Decryption in
the ECIES encryption scheme is deterministic, so randomness isn't
needed.
2018-03-26 13:46:18 +03:00
gluk256
cc64d28841 whisper: final refactoring (#16259)
whisper: final refactoring
2018-03-06 23:37:43 +01:00
gluk256
6f4d8d1c84 Merge pull request #16231 from gluk256/303-reader
whisper: filereader mode introduced to wnode
2018-03-03 09:40:01 +01:00
gluk256
70c41f0771 whisper/whisperv6: delete unused function (#16234) 2018-03-03 00:54:15 +01:00
Vlad
4e423276a6 whisper: filereader mode introduced to wnode 2018-03-02 14:54:54 +01:00
Vlad
31f7f7af81 whisper: topics replaced by bloom filters 2018-03-01 16:04:09 +01:00
Guillaume Ballet
162973eff1 Merge pull request #16210 from gluk256/288-filter-optimization
whisper: message filtering optimization

Only run the message through filters who registered their interest.
2018-02-28 17:28:09 +01:00
Vlad
96e10f14f1 whisper: style fixes 2018-02-28 15:05:35 +01:00
b00ris
3c84f6283c whisper: fix typo 2018-02-28 14:38:42 +03:00
b00ris
4c59e217af whisper: fixed datarace 2018-02-28 09:50:36 +03:00