An application typically needs three kinds of resources for application services:
- Compute
- Storage
- Messaging
Ethereum EVM and smart contracts provide compute, while Swarm/IPFS handles large data storage and is the decentralized storage layer. Whisper handles Ethereum messages.
Here is a high-level architecture diagram showing these three in action:
![](https://static.packt-cdn.com/products/9781789954111/graphics/assets/d1d26d96-181b-467c-a87a-6e7a9cc2f0f5.png)
Whisper is an Ethereum P2P communication protocol that allows messaging between DApps. It provides a simple API that we can use to send an encrypted message through the Ethereum blockchain and receive and decrypted messages with the hash key. Whisper is currently at the POC 2 stage and supports the Geth and Parity clients. It can be used for DApps publish-subscribe coordination signaling and building secure, untraceable decentralized communication.