The Status module that consumes go-ethereum https://status.im
Go to file
Dmitry Shulyak f2c6fef64c
Persist selected mail server using separate monitor (#1303)
This change allows to connect to the mail server that we were using before the app was restarted. Separate loop is listening for whisper events, and when we receive event that request was completed we will update time on a peer record.

Records are stored in leveldb. Body of the record is marshaled using json. At this point the only field is a timestamp when record was used.

This loop doesn't control connections, it only tracks what mail server we ended up using. It works asynchronously to connection management loop. Which tracks events that are related to connection state and expiry of the requests.

When app starts we look into the database and select the most recently used record. This record is added to connection management loop first. So if this server is available we will stick to using it. If we weren't able to connect to the same server in configured timeout (5s) we will try to connect to any other server from list of active servers.

closes: #1285
2018-12-12 11:39:00 +02:00
.github Reduce number of days required to consider a PR stale to 14 2018-11-20 13:14:33 +01:00
.vscode Streamline configuration in status-go. Part of #1180 (#1183) 2018-09-13 18:31:29 +02:00
_assets add desktop build step 2018-12-11 09:30:35 +01:00
account fix golang/mock (#1310) 2018-12-10 13:53:27 +01:00
api Persist selected mail server using separate monitor (#1303) 2018-12-12 11:39:00 +02:00
cmd Support Mail Server data synchronization (#1302) 2018-12-06 10:48:28 +01:00
config Ensure that `NewNodeConfigWithDefaults` builds a valid configuration 2018-11-09 17:02:55 +01:00
contracts Feature/mailserver registry smart contract (#1135) 2018-08-20 15:55:43 +02:00
db Persist selected mail server using separate monitor (#1303) 2018-12-12 11:39:00 +02:00
discovery Upgrade geth 1.8.17 plus add metrics during compilation time (#1273) 2018-11-14 08:03:58 +01:00
extkeys add ExtendedKey.ChildForPurpose method to derive wallet or chat keys (#1312) 2018-12-11 17:01:30 +01:00
lib Change `NotifyUsers` to allow only data JSON element. Part of status-im/status-react#6772 2018-11-30 13:26:27 +01: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 cursor encoding (#1308) 2018-12-11 11:23:47 +01:00
metrics/node fix collecting p2p/Peers metric (#1269) 2018-11-12 10:27:09 +01:00
node Ensure sent event is received from a mailserver (#1304) 2018-12-06 10:30:57 +01:00
notifications/push fix golang/mock (#1310) 2018-12-10 13:53:27 +01:00
notifier Notifier package to interact with gorush notifications (#910) 2018-05-08 16:30:03 +02:00
params Ensure sent event is received from a mailserver (#1304) 2018-12-06 10:30:57 +01:00
peers Upgrade geth 1.8.17 plus add metrics during compilation time (#1273) 2018-11-14 08:03:58 +01: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 Persist selected mail server using separate monitor (#1303) 2018-12-12 11:39:00 +02:00
signal Fix cursor encoding (#1308) 2018-12-11 11:23:47 +01:00
static Add enabling/disabling of installations (#1264) 2018-11-06 09:05:32 +01:00
t Support Mail Server data synchronization (#1302) 2018-12-06 10:48:28 +01:00
timesource Sanity validate ntp response 2018-06-08 19:10:29 +03:00
transactions fix golang/mock (#1310) 2018-12-10 13:53:27 +01:00
vendor fix golang/mock (#1310) 2018-12-10 13:53:27 +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 Add `canary-test` make target to test beta fleet mailservers. Closes #1274 2018-11-19 19:02:32 +01:00
CONTRIBUTING.md Move CONTRIBUTING.md to top level (#798) 2018-04-04 12:51:05 +02:00
Gopkg.lock fix golang/mock (#1310) 2018-12-10 13:53:27 +01:00
Gopkg.toml Support Mail Server data synchronization (#1302) 2018-12-06 10:48:28 +01:00
LICENSE.md Create LICENSE.md 2016-09-21 10:00:29 +08:00
Makefile add desktop build step 2018-12-11 09:30:35 +01:00
README.md Automate github releases (#1263) 2018-11-05 15:02:16 +01:00
VERSION Hash password before using it (#1306) 2018-12-10 14:11:19 +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.