89251e8416
* Added community sync protobuf * Updated community sync send logic * Integrated syncCommunity handling * Added synced_at field and tidied up some other logic * persistence testing * Added testing and join functionality * Fixed issue with empty scan params * Finshed persistence tests for new db funcs * Midway debug of description not persisting after sync * Resolved final issues and tidied up * Polish * delint * Fix error not handled on SetPrivateKey * fix infinite loop, again * Added muted option and test fix * Added Muted to syncing functions, not just in persistence * Fix bug introduced with Muted property * Added a couple of notes for future devs * Added most of the sync RequestToJoin functionality Tests need to be completed and tests are giving some errors * Finished tests for getJoinedAndPending * Added note * Resolving lint * Fix of protobuf gen bug * Fixes to community sync tests * Fixes to test * Continued fix of e2e * Final fix to e2e testing * Updated migration position * resolve missing import * Apparently the linter spellchecks * Fix bug from #2276 merge * Bug fix for leaving quirkiness * Addressed superfluous MessengerResponse field * Addressed feedback * VERSION bump |
||
---|---|---|
.. | ||
migrations | ||
README.md | ||
cleaner.go | ||
cleaner_test.go | ||
db_key.go | ||
db_key_test.go | ||
limiter.go | ||
limiter_test.go | ||
mailserver.go | ||
mailserver_db.go | ||
mailserver_db_leveldb.go | ||
mailserver_db_postgres.go | ||
mailserver_db_postgres_test.go | ||
mailserver_test.go | ||
metrics.go | ||
request.go |
README.md
MailServer
This document is meant to collect various information about our MailServer implementation.
Syncing between mail servers
It might happen that one mail server is behind other due to various reasons like a machine being down for a few minutes etc.
There is an option to fix such a mail server:
- SSH to a machine where this broken mail server runs,
- Add a mail server from which you want to sync:
# sudo might be not needed in your setup
$ echo '{"jsonrpc":"2.0","method":"admin_addPeer", "params": ["enode://c42f368a23fa98ee546fd247220759062323249ef657d26d357a777443aec04db1b29a3a22ef3e7c548e18493ddaf51a31b0aed6079bd6ebe5ae838fcfaf3a49@206.189.243.162:30504"], "id":1}' | \
sudo socat -d -d - UNIX-CONNECT:/docker/statusd-mail/data/geth.ipc
- Mark it as a trusted peer:
# sudo might be not needed in your setup
$ echo '{"jsonrpc":"2.0","method":"shh_markTrustedPeer", "params": ["enode://c42f368a23fa98ee546fd247220759062323249ef657d26d357a777443aec04db1b29a3a22ef3e7c548e18493ddaf51a31b0aed6079bd6ebe5ae838fcfaf3a49@206.189.243.162:30504"], "id":1}' | \
sudo socat -d -d - UNIX-CONNECT:/docker/statusd-mail/data/geth.ipc
- Finally, trigger the sync command:
# sudo might be not needed in your setup
$ echo '{"jsonrpc":"2.0","method":"shhext_syncMessages","params":[{"mailServerPeer":"enode://c42f368a23fa98ee546fd247220759062323249ef657d26d357a777443aec04db1b29a3a22ef3e7c548e18493ddaf51a31b0aed6079bd6ebe5ae838fcfaf3a49@206.189.243.162:30504", "to": 1550479953, "from": 1550393583, "limit": 1000}],"id":1}' | \
sudo socat -d -d - UNIX-CONNECT:/docker/statusd-mail/data/geth.ipc
You can add "followCursor": true
if you want it to automatically download messages until the cursor is empty meaning all data was synced.
Debugging
To verify that your mail server received any responses, watch logs and seek for logs like this:
INFO [02-18|09:08:54.257] received sync response count=217 final=false err= cursor=[]
And it should finish with:
INFO [02-18|09:08:54.431] received sync response count=0 final=true err= cursor=[]