Incentivize Users
The purpose of decentralized networks is to benefit users who contribute to the network. Whether you're running a node on a network, or simply running the software as an end user, you should consistently be rewarded and incentivized as being part of the ecosystem. For a messaging application, what could incentivize celebrities or high-profile individuals to join and be part of the fun? Time is valuable, so, in a chat network where anyone could send anyone else a message, why would the highest-profile individuals choose to be exposed to this kind of messaging ecosystem?
Our solution for this is to implement a toll feature, where each user can specify how many tokens must be sent to them along with the message transaction in order for it to pop up in their inbox. This feature could apply to social networks as well, anyone can post to your wall, as long as they pay you what you want for the opportunity to advertise on your profile.
The above example applies to the end users of an application, but what about the people contributing computer resources that run your application's network? Why on earth would people waste their electricity bill running a node with your server code? Well, that's where building a node reward system comes into play. With Shardus, you can set network parameters that reward nodes that have been actively contributing computer resources to your network in the form of tokens for your application. Most blockchain applications, including bitcoin and ethereum, use this already through consensus models like proof-of-work and proof-of-stake. As incentives to secure the network through consensus, lucky computers that solve the hash are rewarded with bitcoin or ether, so many people contribute resources to the network in the hopes of making money through acquiring these software tokens.
You can see how we implemented a node reward system in a basic chat application here.