The Status module that consumes go-ethereum https://status.im
Go to file
Andrea Maria Piana cef7f367ab Add topic negotiation
This commit add topic negotiation to the protocol.

On receiving a message from a client with version >= 1, we will generate
a shared key using Diffie-Hellman. We will record also which
installationID has sent us a message.

This key will be passed back to the above layer, which will then use to
start listening to a whisper topic (the `chat` namespace has no
knowledge of whisper).

When sending a message to a set of InstallationIDs, we check whether we
have agreed on a topic with all of them, and if so, we will send on this
separate topic, otherwise we fallback on discovery.

This change is backward compatible, as long as there is no downgrade of
the app on the other side.

A few changes:

* Factored out the DB in a separate namespace as now it is
being used by multiple services (TopicService and EncryptionService).

* Factored out multidevice management in a separate namespace

* Moved all the test to test the whole protoocl rather than just the encryption service

* Moved all the filter management in status-go
2019-06-19 17:38:45 +02:00
.github Configure recipients for Gopkg.lock changes in PRs 2019-01-22 08:18:15 +01:00
.vscode Streamline configuration in status-go. Part of #1180 (#1183) 2018-09-13 18:31:29 +02:00
_assets remove GOCACHE=off from Jenkinfile.xgo 2019-06-12 13:12:00 +02:00
account Login with keycard (#1358) 2019-01-24 16:44:46 +01:00
api Download transfers starting from latest block header (#1467) 2019-06-14 13:16:30 +03:00
build/bin add .gitkeep to build/bin so it always exists 2019-03-05 14:22:00 +01:00
cmd update linter 2019-06-12 13:12:00 +02:00
config Add postgres 2019-05-15 11:01:34 +02:00
contracts Feature/mailserver registry smart contract (#1135) 2018-08-20 15:55:43 +02:00
db Execute writes atomically only after request was processed without errors (#1454) 2019-05-06 09:33:19 +03:00
discovery migrate to go 1.12 and go modules 2019-06-12 13:12:00 +02:00
exportlogs Export logs content with hexary encoding (#1457) 2019-05-06 19:08:47 +03:00
extkeys update linter 2019-06-12 13:12:00 +02:00
lib fix HashMessage to decode hex only if needed (#1450) 2019-04-30 01:26:41 +02:00
logutils Redirect log output to mobile system loggers 2019-03-07 17:07:12 +02:00
mailserver Add topic negotiation 2019-06-19 17:38:45 +02:00
metrics/node Gomobile support (#1164) 2019-02-01 18:02:52 +01:00
mobile fix HashMessage to decode hex only if needed (#1450) 2019-04-30 01:26:41 +02:00
node Download transfers starting from latest block header (#1467) 2019-06-14 13:16:30 +03:00
notifications/push Add `SendDataNotification` method (#1352) 2019-01-18 14:03:32 +01:00
notifier Notifier package to interact with gorush notifications (#910) 2018-05-08 16:30:03 +02:00
params Add topic negotiation 2019-06-19 17:38:45 +02:00
peers migrate to go 1.12 and go modules 2019-06-12 13:12:00 +02:00
profiling Add profiling with pprof (#754) 2018-03-23 14:58:40 +01:00
rpc Download transfers starting from latest block header (#1467) 2019-06-14 13:16:30 +03:00
services Add topic negotiation 2019-06-19 17:38:45 +02:00
signal Add topic negotiation 2019-06-19 17:38:45 +02:00
sqlite Download transfers starting from latest block header (#1467) 2019-06-14 13:16:30 +03:00
static Add topic negotiation 2019-06-19 17:38:45 +02:00
t Add topic negotiation 2019-06-19 17:38:45 +02:00
timesource Sanity validate ntp response 2018-06-08 19:10:29 +03:00
transactions validate signature size on SendTransactionWithSignature (#1401) 2019-03-01 14:49:30 +01:00
vendor migrate to go 1.12 and go modules 2019-06-12 13:12:00 +02:00
.codeclimate.yml Add postgres 2019-05-15 11:01:34 +02:00
.dockerignore Ignore *.test files from all folders (#635) 2018-02-08 14:23:08 +02:00
.gitignore add compose setup for a bootnode 2019-03-21 16:42:44 +01:00
.golangci.yml Download transfers starting from latest block header (#1467) 2019-06-14 13:16:30 +03:00
.travis.yml migrate to go 1.12 and go modules 2019-06-12 13:12:00 +02:00
CONTRIBUTING.md Move CONTRIBUTING.md to top level (#798) 2018-04-04 12:51:05 +02:00
LICENSE.md Create LICENSE.md 2016-09-21 10:00:29 +08:00
Makefile Add topic negotiation 2019-06-19 17:38:45 +02:00
README.md add a short doc about config.json 2019-04-25 16:20:11 +02:00
RELEASING.md Update RELEASING.md 2019-01-02 18:57:20 +01:00
VERSION bump version 2019-06-12 13:12:00 +02:00
go.mod migrate to go 1.12 and go modules 2019-06-12 13:12:00 +02:00
go.sum migrate to go 1.12 and go modules 2019-06-12 13:12:00 +02:00