Blockchain-coordinated decentralized applications represent a radical departure from the client-server model on which most of the currently popular web applications are based. On one hand, such đapps’ approach to scalability is more natural as the computing power and bandwidth available for applications grows in proportion to their user base, while on the other hand the lack of a centralized trusted infrastructure under the control of a single — typically corporate — entity raises unique challenges in trust, reliability and coordination. In my presentation, I will introduce some of the principles and practices of architecting and developing such applications, highlighting both the challenges and the unique opportunities for transcending the limitations of the client-server model.
In addition to developing the underlying infrastructure, the Swarm team also develops some example applications that, while useful themselves for end users, are also meant as a template and a starting point for independent developers. Using these examples as illustrations, the presentation will introduce prospective developers to techniques and approaches of both replicating Web 2.0 patterns in a decentralized fashion and going beyond their limitations, taking full advantage of content-addressed storage and blockchain-arbitrated interactions. In particular, the basic building blocks of decentralized, community-moderated knowledge bases (such as maps or encyclopediae), social networks and other forms of information aggregation are going to be presented.