What are the benefits using Whisper or swarm/PSS over using a centralized service like Amazon SQS?
My use-case is: deliver information (to say to another party that they should do an action in a smart contract) ?
Ethereum Stack Exchange is a question and answer site for users of Ethereum, the decentralized application platform and smart contract enabled blockchain. It only takes a minute to sign up.Sign up to join this community
Some benefits of Whisper and PSS are:
End-to-end encryption where the encryption keys are provided by and to the ethereum node itself. Both node services offer builtin encryption. With PSS you can also use external encryption.
Forward secrecy whisper natively and PSS optionally supports forward secrecy using symmetric keys that are discarded after a certain time.
Dark routing making it practically infeasible to tell who is the originator of a message and who is the recipient. Whisper is fully dark, where all messages are broadcast to everyone until expiry time is reached. PSS offers the possibility of routing with partial or full address, sacrificing secrecy for efficiency.
Relayed messaging i.e. you don't need to be directly connected (by TCP/IP) to a peer to exchange messages with it.
Protocol schemes specific to PSS, which gives you a framework for implementing communications protocols in your node logic (or even from an external process). In fact, you can use any
devp2p protocol over pss with a little bit of wrapper code.
Both services are native to
go-ethereum (Whisper is also in Parity, I believe). This means that you can send and receive messages from the same node process with code native to it, instead of implementing an extra messaging layer.
There are some caveats, though. Among them:
Efficiency is sacrificed for secrecy, especially in the case of Whisper, that broadcasts all messages to everyone, generating a lot of traffic in the process, and may cause the messages to take a while before arriving.
Mailboxing, meaning delivery service of messages sent while peer is offline, is currently not provided at all by PSS (but is on the roadmap). I believe Whisper uses a system where it gives permission to certain nodes to store messages beyond their expiry time, from whence they later can be retrieved.