swarms/ideas/168-paid-master-nodes/local-mailserver.md

1.7 KiB

How to run and use mail server locally

status-go

Just some notes:

make statusgo
./build/bin/statusd -shh -datadir=paid-data-mailserver -shh.mailserver -shh.passwordfile=wnode-data-mailserver/password.txt -listenaddr=127.0.0.1:30303 -log=DEBUG -ipc

Verify peers are connected separately:

geth attach ~/git/status-go/paid-data-mailserver/geth.ipc
admin.peers

Clojure side

Add local mail server to constants.cljs where address is RLPx in print out above, e.g:

"paid" {:id      "paid"
        :name    "Status testnet mailserver paid, experimental"
        :address
        "enode://9f0a55f116aedb40d4036d9a385d505d9c183fd708ef1aa2f883895df97864f758eee911c26c86732ae13a57664a076de2527189f983ee24dda2a4cb5f5db777@127.0.0.1:30303"}

Connect to it, might need to switch networks and login/logout etc to trigger requestMessages. Make sure networks match. Check logs for offline inbox` to see flow. Can switch offline server in advanced settings.

If there are issues with peers, and mail server has peers, then going into CLJS repl and:

(require 'status-im.transport.inbox)
(status-im.transport.inbox/add-peer "enode://987c40d5761678f030d80de13a2f8a0150da651e5d2c430b96e4f8c2c544389918c7bd820d2d6a5610afb96dcedf8ebb0b941859a0cdbd7dddbbd13994dcbe52@[::]:30303" println println)
(status-im.transport.inbox/fetch-peers println println)

can help with debugging.

Notes

Note that this above flow only modifies the 'server' side of mail server and UI side of client. If you want to modify status-go node on client side you need to make sure status-go is built and linked properly in the app. See https://github.com/status-im/status-react/blob/develop/scripts/bundle-status-go.sh