status-go/services/ext
Andrea Maria Piana d60a6713fe Enable mailserver cycle by default
This commit enables mailserver cycle logic by default and make a few
changes:

1) Nodes are graylisted instead of being blacklisted for a set amount of
   time. The reason is that if we blacklist, any cut in connectivity
   might result in long delays before reconnecting, especially on spotty
   connections.

2) Fixes an issue on the devp2p server, whereby the node would not
   connect to one of the static nodes since all the connection slots
   where filled. The fix is a bit inelegant, it always connects to
   static nodes, ignoring maxpeers, but it's tricky to get it to work
   since the code is clearly not written to select a specific node.

3) Adds support to pinned mailservers

4) Add retries to mailservers requests. It uses a closure for now, I
   think we should eventually have a channel etc, but I'd leave that for
   later.
2022-03-19 08:56:22 +00:00
..
mailservers Split shhext into shhext and wakuext (#1803) 2020-01-20 21:56:06 +01:00
README.md Split shhext into shhext and wakuext (#1803) 2020-01-20 21:56:06 +01:00
api.go Enable mailserver cycle by default 2022-03-19 08:56:22 +00:00
api_test.go Split shhext into shhext and wakuext (#1803) 2020-01-20 21:56:06 +01:00
context.go Split shhext into shhext and wakuext (#1803) 2020-01-20 21:56:06 +01:00
handler_mock.go Split shhext into shhext and wakuext (#1803) 2020-01-20 21:56:06 +01:00
mailrequests.go remove nimbus 2021-05-21 07:22:58 +02:00
mailrequests_test.go remove nimbus 2021-05-21 07:22:58 +02:00
node_mock.go go-waku integration (#2247) 2021-06-16 16:19:45 -04:00
requests.go Split shhext into shhext and wakuext (#1803) 2020-01-20 21:56:06 +01:00
requests_test.go Split shhext into shhext and wakuext (#1803) 2020-01-20 21:56:06 +01:00
rpc.go Split shhext into shhext and wakuext (#1803) 2020-01-20 21:56:06 +01:00
service.go Enable mailserver cycle by default 2022-03-19 08:56:22 +00:00
signal.go Add backing up of contacts 2021-11-15 18:53:35 +00:00

README.md

Whisper API Extension

API

shhext_getNewFilterMessages

Accepts the same input as shh_getFilterMessages.

Returns

Returns a list of whisper messages matching the specified filter. Filters out the messages already confirmed received by shhext_confirmMessagesProcessed

Deduplication is made using the whisper envelope content and topic only, so the same content received in different whisper envelopes will be deduplicated.

shhext_confirmMessagesProcessed

Confirms whisper messages received and processed on the client side. These messages won't appear anymore when shhext_getNewFilterMessages is called.

Parameters

Gets a list of whisper envelopes.

shhext_post

Accepts same input as shh_post.

Returns

DATA, 32 Bytes - the envelope hash

shhext_requestMessages

Sends a request for historic messages to a mail server.

Parameters
  1. Object - The message request object:
  • mailServerPeer:URL - Mail servers' enode addess
  • from:QUANTITY - (optional) Lower bound of time range as unix timestamp, default is 24 hours back from now
  • to:QUANTITY- (optional) Upper bound of time range as unix timestamp, default is now
  • topic:DATA, 4 Bytes - Regular whisper topic
  • symKeyID:DATA- ID of a symmetric key to authenticate to mail server, derived from mail server password
Returns

Boolean - returns true if the request was send, otherwise false.

Signals

Sends sent signal once per envelope.

{
  "type": "envelope.sent",
  "event": {
    "hash": "0xea0b93079ed32588628f1cabbbb5ed9e4d50b7571064c2962c3853972db67790"
  }
}

Sends expired signal if envelope dropped from whisper local queue before it was sent to any peer on the network.

{
  "type": "envelope.expired",
  "event": {
    "hash": "0x754f4c12dccb14886f791abfeb77ffb86330d03d5a4ba6f37a8c21281988b69e"
  }
}