Commit Graph

1227 Commits

Author SHA1 Message Date
Andrea Maria Piana 1f6cccd0fc
Add enabling/disabling of installations (#1264)
This commit adds a list new table, installations, which is used to keep
track of which installation are active for a given identity key.

In general, we limit the number of installation that we keep
synchronized to 5, to avoid excessive usage of resources.

Any installation coming from our own identity, will have to be manually
enabled, otherwise we trust the other peer has correctly paired their
devices.

We use a timestamp to decide which installations to keep synchronized as
a logical clock would have make the creation of the bundle more
complicated, but this can always be converted to a logical clock at
later stages without breaking compatibility.
2018-11-06 09:05:32 +01:00
Dmitry Shulyak 3fe5b25ff2
Implement eth_getFilterLogs (#1265)
Queries logs from remote server using original filter criteria.
2018-11-06 07:41:36 +01:00
Dmitry Shulyak db786ef1d2
Sign typed data implementation (#1250)
* Implement EIP 712

* Cover majority of cases with tests

* Add solidity and signer tests and cover integer edges case

* Add thin api to sign type data using selected status account

* All integers are extended to int256 and marshalled into big.Int

* Document how deps works

* Fix linter

* Fix errors test

* Add validation tests

* Unmarshal every atomic type in separate functions
2018-11-06 07:26:12 +01:00
Andrea Maria Piana ee3c05c79b
Change handling of skipped/deleted keys & add version (#1261)
- Skipped keys

The purpose of limiting the number of skipped keys generated is to avoid a dos
attack whereby an attacker would send a large N, forcing the device to
compute all the keys between currentN..N .

Previously the logic for handling skipped keys was:

- If in the current receiving chain there are more than maxSkip keys,
throw an error

This is problematic as in long-lived session dropped/unreceived messages starts
piling up, eventually reaching the threshold (1000 dropped/unreceived
messages).

This logic has been changed to be more inline with signals spec, and now
it is:

- If N is > currentN + maxSkip, throw an error

The purpose of limiting the number of skipped keys stored is to avoid a dos
attack whereby an attacker would force us to store a large number of
keys, filling up our storage.

Previously the logic for handling old keys was:

- Once you have maxKeep ratchet steps, delete any key from
currentRatchet - maxKeep.

This, in combination with the maxSkip implementation, capped the number of stored keys to
maxSkip * maxKeep.

The logic has been changed to:

- Keep a maximum of MaxMessageKeysPerSession

and additionally we delete any key that has a sequence number <
currentSeqNum - maxKeep

- Version

We check now the version of the bundle so that when we get a bundle from
the same installationID with a higher version, we mark the previous
bundle as expired and use the new bundle the next time a message is sent
2018-11-05 20:00:04 +01:00
Andrea Maria Piana 58bd36e79e
Automate github releases (#1263) 2018-11-05 15:02:16 +01:00
Adam Babik 0961e1039e
fix peerID logging in mail server (#1260) 2018-10-28 23:33:58 +01:00
Dmitry Shulyak 539fa01d48
Implement cache for recording removed logs due to reorg (#1241)
Adjust criteria if replaced logs were received and add more tests

Improve validation

Changes after review
2018-10-28 17:12:16 +01:00
Andrea Maria Piana 22eb53ea8c shhext: increase max skip keys (#1257) 2018-10-26 10:44:10 +02:00
b00ris bdbceba6eb
added ulc config params (#1255)
* added ulc config params

* fmt

* fix lint
2018-10-24 19:31:41 +03:00
Dmitry Shulyak 29b55bd445
Add local implementation of the newFilter call using remote getLogs call (#1235)
* Implement subscriptions and filtering

* Add e2e test with log filter polling logs from EVM with clique backend

* Apply review comments

* Move devnode to t/devtests to avoid cycle in imports
2018-10-23 08:11:11 +03:00
Adam Babik a75f9c34cf
Request historical messages in batches (#1245) 2018-10-19 11:09:13 +02:00
Igor Mandrigin ba504e99c4
Mailserver: return error response. (#1244) 2018-10-18 12:25:00 +02:00
Adam Babik b71058d73f
update golangci to 1.10.2 (#1246) 2018-10-17 12:17:58 +02:00
Andrea Franz b9baa48d87 Add metrics for mailserver errors (#1242) 2018-10-16 17:24:37 +02:00
Ivan Daniluk e7c588fcd0
Change API of BuildDirectMessage function to use variadic arguments (#1243) 2018-10-16 17:22:28 +02:00
b00ris 820217ea7a added ulc patch (#1239) 2018-10-16 14:27:11 +03:00
Andrea Maria Piana e4ba365b8a
Add bundles.added signal & pairing endpoint (#1237) 2018-10-16 12:31:05 +02:00
Dmitry Shulyak 659d79277b
Exit from register and discover gracefully is rendezvous was stopped (#1238) 2018-10-16 12:31:44 +03:00
Andrea Franz c86f8bf6ca
allow multiple topics in mailserver requests (#1240)
* allow multiple topics in mailserver requests

* simplify topicsToBloom function

* create test topics simply from the string without hash

* add deprecated comment to MessagesRequest.Topic
2018-10-15 23:15:04 +02:00
Adam Babik 20f8f1f2cc
allow configure HTTPVirtualHosts and HTTPCors settings (#1236) 2018-10-12 14:58:32 +02:00
Ivan Daniluk 4d5f808085
Add IPC path command line flag (#1229) 2018-10-11 12:29:59 +02:00
Ivan Daniluk 802197879a
Remove statusd-cli (#1231) 2018-10-10 00:57:53 +03:00
Dmitry Shulyak fbd3c9ca80
Limit number of proxied records and proxy only recently observed nodes (#1227)
* Limit number of proxied records and proxy only recently observed nodes

* Explicitly verify that limit is preserved and records removed eventually
2018-10-08 08:24:39 +03:00
Andrea Maria Piana 9f8f0089a3
Add extract group membership signatures (#1226) 2018-10-04 18:53:48 +02:00
Igor Mandrigin 1136176f4a Make statusd compile with go 1.11 (#1225)
* upgrading github.com/rjeczalik/notify to the latest release
2018-10-04 17:57:39 +02:00
Adam Babik fc54e0b06c
make node-canary working again (#1221)
* removed fleet validation (no fleet is allowed)
2018-10-04 12:40:26 +02:00
Dmitry 5b551c67fa Use status-im whisper/whisperv6 module everywhere 2018-10-03 09:27:51 +03:00
Andrea Maria Piana f3880f8fe1 Return always json struct (#1220) 2018-09-28 13:53:36 +02:00
Adam Babik ac8da3c0f0
Use patched go-ethereum from our fork instead of patching it on-the-fly (#1184)
* update to 1.8.16
2018-09-27 21:16:15 +02:00
Andrea Maria Piana b309718fdc
Add sign & verify api calls (#1218) 2018-09-27 15:07:32 +02:00
Adam Babik 9e7643dfb0
enabling mailserver does not imply making a node discoverable (#1217) 2018-09-27 08:58:25 +02:00
Adam Babik 298939b5fd
add networkid as switch between ropsten/mainnet is often (#1209) 2018-09-26 08:49:31 +02:00
Dmitry Shulyak 529e18af33
Update geth to v1.8.15 (#1213)
* Update geth to v1.8.15

* Apply patches
2018-09-25 11:55:54 +03:00
Dmitry ff7c0e0a17 Ensure that discovery producer is stopped 2018-09-25 11:28:37 +03:00
Pedro Pombeiro 6a1cd7f2b0
Fix xgo creating files as `root` (#1210) 2018-09-24 22:21:13 +02:00
Andrea Maria Piana dcaf8caed0
Add x3dh key exchange (#1127)
* Add x3dh key exchange

* Encrypt using the double ratchet

* Multi device with auto-pairing

* Add pfs enabled flag
2018-09-24 20:07:34 +02:00
Jakub ac66ca33a9
configure stale github bot for closing issues (#1214)
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-09-24 11:02:57 -04:00
Dmitry 4ad036f2e1 In general case create enr.Record right before registering it 2018-09-24 13:37:06 +03:00
Dmitry aab84e53dc Ephemeral rendezvous client generates key using seckp256k1 curve 2018-09-24 13:37:06 +03:00
Adam Babik 8aef7c4f15
tune CLI for better docs experience (#1207) 2018-09-21 16:09:31 +02:00
Pedro Pombeiro 5d43eac31c
Add missing changes to node-canary. Part of #1202 (#1205) 2018-09-20 19:15:35 +02:00
Pedro Pombeiro 518234803a
Add support for testing static nodes to node-canary. Closes #1202 (#1203) 2018-09-20 13:25:32 +02:00
Pedro Pombeiro 8247f8ef0e
Fix typo in PR checklist text (#1204) 2018-09-20 11:53:01 +02:00
Pedro Pombeiro 8057ac47d5
Update README.md to point to docs.status.im (#1200) 2018-09-20 10:36:40 +02:00
Pedro Pombeiro 678d05a06d
Add PR checklist regarding documentation (#1201) 2018-09-20 10:23:58 +02:00
Dmitry a11d970112 Update rendezvous nodes accordingle to our inventory
Rendezvous node identities were changed. Probably, previous private keys were
removed due to replacament of the VM. Additional node is from HK DC.
2018-09-20 09:46:59 +03:00
Adam Babik fd99487328
fix updating peers limit if LES is enabled in CLI (#1199) 2018-09-19 20:29:42 +02:00
Pedro Pombeiro 99d7bc207d
Only keep two random static nodes from fleets.status.im (#1196) 2018-09-19 17:08:54 +02:00
Pedro Pombeiro 452b7e2198
Disable listening on port 30303 for the canary (#1198) 2018-09-19 14:45:43 +02:00
Dmitry b32ef629f4 NoDiscovery must be false for discovery v5 to be enabled
Current change removes NoDiscovery from every config as it is a default value.
2018-09-18 16:42:47 +03:00