--- layout: learn description: Blockstack Zero-to-DApp tutorial permalink: /:collection/:path.html image: /assets/img/zero-to-dapp.png --- # 1 - About DApps and App Mining {:.no_toc} **Zero-to-DApp 1 of 4** Welcome to the Blockstack Zero-to-DApp tutorial. The tutorial uses the Blockstack platform to teach you about blockchain technology and the Blockstack Ecosystem. The tutorial teaches you what makes a DApp different than a traditional application. You'll build and run a DApp. You'll also learn about the Application Mining program which awards funds to DApp developer every month. The tutorial has four parts of which this is first, and it contains the following topics: * TOC {:toc} You can complete the entire Zero-to-DApp tutorial in less than 45 minutes. If you prefer a 10-minute hello-world code sample, see the [Hello, Blockstack Tutorial](/browser/hello-blockstack). ### Skills you need to follow this tutorial {:.no_toc} This tutorial is written for developers and others who want to learn about DApps and how the Blockstack ecosystem supports their development. As a result, the target audience is intentionally broad. Anyone with access to a Windows, Mac, or Linux computer and some familiarity with a command line should be able to follow along. If you are good at following directions, chances are you can complete this tutorial even if you have no programming experience. Knowledgeable developers should easily be able to complete the tutorial within an hour by following along. If you are a developer superhero, you may want to skim or move quickly through the pages and that's fine too. {% include note.html content="For best results, use the Chrome browser for this tutorial. Currently, the Blockstack Browser works best in Chrome and you can encounter problems using browsers such as Safari or Firefox. Currently, IE and the Edge browsers are not supported." %} ## How traditional and decentralized applications differ In this tutorial, you build, run, modify, and deploy a decentralized application (DApp) called Animal Kingdom. A DApp uses blockchain technology for the authentication and data storage components of an application’s platform. Blockchain applications are decentralized applications, meaning they move data control and identity management from central authorities and organizations to individual users. Anyone who has had their identity stolen or lost money because of a data breach, understands that centralized applications come with personal risk. Anyone who has lived in or visited a foreign country and lost access to a site, to a service, or to information because of government censorship also understands how centralization impacts how people live. Users and businesses see DApps as valuable because they solve the centralization problems of traditional applications. The following table describes the features of traditional applications and the features of blockchain applications:
Traditional application | Decentralized application |
---|---|
Users must create many username and password combinations for each service or application. Each combination must be managed and maintained. Also, each creation requires the user to provide important or unique information into the care of a third-party. | Users create and own one or more identities. They use their identities with all applications and services. For example, a user could use the same identity for buying books online as they use for social media. |
Multiple third-party applications and services store personal data from individual users in backend servers. These backend servers are under the control of the application or service. Users leaving the application leave their data behind. | Personal information and data is encrypted and remains under the control of the user. Users leaving an application leave no data behind because none was stored with the application. |
Multiple accounts across many servers make personal data subject to attack, misuse, and uncontrolled collection. | Users can audit access to their data and know who accessed their data and which data were accessed. |
Central authorities and middlemen control network access enabling them to censor applications and/or users that use them. | Companies are developing blockchains that run over peer-to-peer networks. These future networks can make shutting down or entirely blocking a decentralized application close to impossible. |
DApps that are eligible for application mining must:
Storing data in a Gaia storage hub is optional. Potentially in the future it may be required.
As you work through this Zero-to-DApp tutorial, you’ll build and deploy a sample application that meets these requirements. While the application you build won't be eligible for application mining, completing the tutorial makes you eligible for a free, limited edition t-shirt:
You'll learn how to get your t-shirt in part 4 of this tutorial.
Click to enlarge | Description |
---|---|
Users log in (authenticate) with a Blockstack identity. By authenticating, the user gives the application the ability to get and put data in the user's Gaia storage hub. |
|
The Blockstack login dialogs are part of the Blockstack Browser which is itself a DApp. Once a user authenticates, the DApp code automatically returns them to the Kingdom they were attempting to enter. |
|
First-time visitors to a kingdom are prompted to create an animal persona and a territory to rule. Once they make a selection, users click Done to create a kingdom to rule. Behind the scenes, the data about the user's selection is stored in the user's Gaia hub. |
|
Each kingdom has animals and territories. Users can edit their original persona/animal combination. You'll learn how to modify the Animal Kingdom code to add new animals and territories. |
|
Users can add subjects from territories in their own Animal Kingdom. The DApp updates the user's Gaia hub each time the user adds a subject. Users can also visit other Animal Kingdom installations and add subjects from these as well. You'll learn how to modify the Other Kingdoms available in your installation. |