I propose the use of Status Network infrastructure to do this.
graph TB
ethereum["Ethereum Network"]
server["Status.im Service"]
subgraph Status Network
public["Public Chat"]
private["Private Messages"]
nodes["User Nodes"]