Push notifications are important since Aragon organizations deal with real value and time-sensitive operations, such as:
- Votes that would send funds unless voted otherwise
- Actions going forward unless disputed
The Aragon client clearly needs notifications ASAP if we want people to use Aragon for meaningful use cases.
Purely decentralized solutions for realtime notifications, like Whisper, are not ready for production today, and are very resource and bandwidth expensive.
That’s why I think having an opt-in centralized server makes sense for dispatching push notifications.
1. Choose the notifications you want to get
On the Notifications app (or maybe a section inside Preferences ) you will be able to choose the notifications you want to get from different apps.
2. Opt into registering with a server
After choosing the wanted notifications, you will choose a notifications provider from a dropdown.
That will take you to a different webapp, run by the notifications provider. You can accept their terms, pay if they require a payment for their services, and then click Save .
You may have to authorize your browser to get notifications. That would work for most platforms (desktop and Android) without even installing an app, thanks to the W3C spec on push.
For iOS, which doesn’t have support for that standard, you can always sign up for email notifications.
3. The server tracks organizations and dispatches events
The notifications provider has servers running. Those servers will index all events regarding that organization and its apps, and will dispatch events when they see something that requires a notification for a user.
4. You can click the notification and discover the truth
Even if the server is malicious and wants to trick you, you can always open the notification. That woudl take you to the Aragon client, where you will be able to see the actual state of your organization.
- We need to add support for Radspec (human-readable descriptions for transactions) to smart contract events too. Right now, it only supports functions
- Notification providers need to run a sizable infrastructure of Ethereum nodes in order to run this
- There may be a good business model for notification providers, since they can charge some marginal cost for users to get important notifications, or maybe even the organization is the one paying that itself!
- With the Ethereum nodes and the infrastructure needed, the notification providers can also provide other services, like offering pre-cached, already-reduced state of any Aragon organization. That’s very useful for loading an organization for the first time, since it’d be immediate. Then, over time, the Aragon client can sync in the background and render the final, truthful state without having to trust the server