/blockstack

Blockstack documentation and protocol specs

Blockstack

Slack

Blockstack is a new decentralized internet where you own your data and your apps run locally without remote servers.

Blockstack provides decentralized services for naming/DNS, identity, authentication and storage. Developers can use JavaScript libraries to build serverless apps and they don't need to worry about managing infrastructure. Blockstack replaces the current client/server model; users control their data, apps run client-side, and the open Blockstack network replaces server-side functionality.

Table of Contents

Architecture

Blockstack has been used in production for 3+ years and 70,000+ domains have been registered using it.

With the Blockstack software, a network of computers collectively maintain a global registry of names. When you run a Blockstack node, you join this network, which is more secure by design than traditional DNS and identity systems. This is because the system's registry and its records are secured by an underlying blockchain, which is extremely resilient against tampering and control.

In the registry that makes up Blockstack, each of the names has an owner, represented by a cryptographic keypair, and is associated with instructions for how DNS resolvers and other software should resolve the name.

Different layers of Blockstack are shown in the following figure:

You can read more details about Blockstack's architecture by reading our whitepapers:

Code

If you're just starting with Blockstack, here are the main software repositories you should checkout:

  • Blockstack Core - the reference implementation of Blockstack's Consensus core written in Python.
  • Blockstack Browser - the Blockstack Browser provides a graphical interface for interactions with the network.
  • blockstack.js - a JavaScript library for using Blockstack identity, authentication, and gaia storage in your apps.

Here is a link to our latest tutorials!

Papers

Blockstack has published a number of academic white-papers detailing the design of the network:

Online Communities

Events

Swag & Brand

How to Help

  • Contribute code - all Blockstack software is free and open source, so send us pull requests if you have any suggestions for ways the software can be improved
  • Help with software testing - we really appreciate and value our testers, and encourage people who want to support Blockstack to run the software and file issues in the appropriate repository for any bugs that are found
  • Improve the documentation - we can never have enough documentation so if there's anything you'd like to clarify or add, just fork any of the Blockstack repos, start writing and expanding on the docs, and submit a pull request
  • Organize community events - we welcome anyone interested in putting together anything as simple as a meetup at a local library or community center to discuss the latest Blockstack developments and applications with like-minded people from your area
  • Produce and share content - if you have ideas or insights about Blockstack or decentralized applications in general, write a post and submit it to the Blockstack community blog or share it in the forum
  • Become a local Blockstack Community Evangelist