The Status module that consumes go-ethereum https://status.im
Go to file
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
.github configure stale github bot for closing issues (#1214) 2018-09-24 11:02:57 -04:00
.vscode Streamline configuration in status-go. Part of #1180 (#1183) 2018-09-13 18:31:29 +02:00
_assets Automate github releases (#1263) 2018-11-05 15:02:16 +01:00
account Update to geth 1.8.11. Closes #1033 2018-06-22 18:04:13 +02:00
api Add bundles.added signal & pairing endpoint (#1237) 2018-10-16 12:31:05 +02:00
cmd Add IPC path command line flag (#1229) 2018-10-11 12:29:59 +02:00
config enabling mailserver does not imply making a node discoverable (#1217) 2018-09-27 08:58:25 +02:00
contracts Feature/mailserver registry smart contract (#1135) 2018-08-20 15:55:43 +02:00
db Centralize leveldb.OpenFile allowing Recover corrupted db everywhere (#1072) 2018-07-02 10:42:16 +02:00
discovery Exit from register and discover gracefully is rendezvous was stopped (#1238) 2018-10-16 12:31:44 +03:00
extkeys fix child keys derivation adding bytes padding (#1139) 2018-09-04 09:42:40 +02:00
lib Add extract group membership signatures (#1226) 2018-10-04 18:53:48 +02:00
logutils Add LogEnabled attribute to NodeConfig to, used in the call from status-react (#866) 2018-04-26 18:28:42 +02:00
mailserver fix peerID logging in mail server (#1260) 2018-10-28 23:33:58 +01:00
metrics/node Remove EnvelopeTranced and add Whisper metrics as a patch (#1177) 2018-08-31 10:09:38 +02:00
node added ulc config params (#1255) 2018-10-24 19:31:41 +03:00
notifications/push Fix issues reported by lint. Part of #1017 2018-06-14 13:52:51 +02:00
notifier Notifier package to interact with gorush notifications (#910) 2018-05-08 16:30:03 +02:00
params added ulc config params (#1255) 2018-10-24 19:31:41 +03:00
peers Use status-im whisper/whisperv6 module everywhere 2018-10-03 09:27:51 +03:00
profiling Add profiling with pprof (#754) 2018-03-23 14:58:40 +01:00
rpc Block some JSON-RPC methods completely 2018-08-02 09:07:55 +02:00
services Change handling of skipped/deleted keys & add version (#1261) 2018-11-05 20:00:04 +01:00
signal Mailserver: return error response. (#1244) 2018-10-18 12:25:00 +02:00
static Change handling of skipped/deleted keys & add version (#1261) 2018-11-05 20:00:04 +01:00
t Add local implementation of the newFilter call using remote getLogs call (#1235) 2018-10-23 08:11:11 +03:00
timesource Sanity validate ntp response 2018-06-08 19:10:29 +03:00
transactions tune CLI for better docs experience (#1207) 2018-09-21 16:09:31 +02:00
vendor Change handling of skipped/deleted keys & add version (#1261) 2018-11-05 20:00:04 +01:00
.codeclimate.yml #759 Codeclimate config (#843) 2018-04-23 15:55:21 +02:00
.dockerignore Ignore *.test files from all folders (#635) 2018-02-08 14:23:08 +02:00
.gitignore Fix xgo creating files as `root` (#1210) 2018-09-24 22:21:13 +02:00
.golangci.yml update golangci to 1.10.2 (#1246) 2018-10-17 12:17:58 +02:00
.travis.yml Use patched go-ethereum from our fork instead of patching it on-the-fly (#1184) 2018-09-27 21:16:15 +02:00
CONTRIBUTING.md Move CONTRIBUTING.md to top level (#798) 2018-04-04 12:51:05 +02:00
Gopkg.lock Change handling of skipped/deleted keys & add version (#1261) 2018-11-05 20:00:04 +01:00
Gopkg.toml Change handling of skipped/deleted keys & add version (#1261) 2018-11-05 20:00:04 +01:00
LICENSE.md Create LICENSE.md 2016-09-21 10:00:29 +08:00
Makefile Automate github releases (#1263) 2018-11-05 15:02:16 +01:00
README.md Automate github releases (#1263) 2018-11-05 15:02:16 +01:00
VERSION Automate github releases (#1263) 2018-11-05 15:02:16 +01:00

README.md

Status bindings for go-ethereum

TravisCI Builds GoDoc Master Build Status Develop Build Status

Docs

License

Mozilla Public License 2.0

Releasing

To create a release, first increase the VERSION file according to semantic versioning.

You can then build the artifacts for the specific platform.

Once done, you can run:

make prepare-release

and

make release release_branch={{release_branch}}

Where release_branch is the branch you are targeting. You will also need to specify some form of credentials, GITHUB_TOKEN environment variable for example.