Blockstack

PyPI PyPI Slack

Name registrations on the bitcoin blockchain

Blockstack server provides decentralized DNS by using an underlying blockchain. It enables human-readable name registrations on the Bitcoin blockchain, along with the ability to store associated data in external datastores. You can use it to register globally unique names, bind data records with those names, and transfer them between Bitcoin addresses. Anyone can perform lookups on those names and securely obtain the associated data records.

Blockstack uses the Bitcoin blockchain for storing name operations and data hashes, and the Kademlia-based distributed hash table (DHT) and other external datastores for storing the full data files outside of the blockchain.

Table of contents

Overview

This document is meant to provide an overview of how to get blockstack up and running on Mac OS X, Linux, and other UNIX-like operating systems. It is meant to be a high-level walk-through for application developers who want to run their own Blockstack instance. Basic proficiency with the command-line is required.

Quick start

The fastest way to get started with blockstack is to use pip:

sudo pip install blockstack

If you encounter any problems during the pip install, see the detailed install instructions.

Getting started

Start blockstack-server and index the blockchain:

$ blockstack-server start

Then, perform name lookups:

$ blockstack whois werner.id
{
    "block_preordered_at": 374132,
    "block_renewed_at": 374132,
    "owner_address": "1KRca8gGiCiTNGR65iXMPQ6d5fisDdN3ZF",
    "owner_public_key": "0411d88aa37a0eea476a5b63ca4b1cd392d....",
    "owner_script": "76a914ca19f0c96683b6cabfb5c9a406bebc6771d8ede488ac",
    "preorder_transaction_id": "fa72483237f4b32eff10e88df9b14268fbd2e44...",
    "registered": true
}

Next, learn how to register names of your own, as well as transfer them and associate data with them:

Full usage docs

What's included

Within the install you'll find the following directories and files. You'll see something like this:

blockstack/
├── bin/
│   ├── blockstackd
│   └── README.md
├── blockstack/
│   ├── __init__.py
│   ├── blockmirrord.py
│   ├── blockmirrord.tac
│   ├── blockstack.tac
│   ├── blockstack-testset.tac
│   ├── blockstackd.py
│   ├── build_nameset.py
│   ├── coinkit.patch
│   ├── dht/
│   │   ├── __init__.py
│   │   ├── image/
│   │   │   ├── Dockerfile
│   │   │   └── README.md
│   │   ├── plugin.py
│   │   ├── README.md
│   │   ├── server.tac
│   │   ├── storage.py
│   │   └── test.py
│   ├── lib/
│   │   ├── __init__.py
│   │   ├── b40.py
│   │   ├── config.py
│   │   ├── hashing.py
│   │   ├── nameset/
│   │   │   ├── __init__.py
│   │   │   ├── namedb.py
│   │   │   └── virtualchain_hooks.py
│   │   ├── operations/
│   │   │   ├── __init__.py
│   │   │   ├── nameimport.py
│   │   │   ├── namespacepreorder.py
│   │   │   ├── namespaceready.py
│   │   │   ├── namespacereveal.py
│   │   │   ├── preorder.py
│   │   │   ├── register.py
│   │   │   ├── revoke.py
│   │   │   ├── transfer.py
│   │   │   └── update.py
│   │   ├── README.md
│   │   └── scripts.py
│   ├── tests/
│   │   └── unit_tests.py
│   └── TODO.txt
├── Dockerfile
├── images/
│   └── Dockerfile
├── LICENSE
├── MANIFEST.in
├── README.md
├── requirements.txt
└── setup.py

Documentation

Blockstacks detailed documentation is located included on the website.

Design decisions

Design decisions

Protocol details

Protocol details

Definitions

Definitions

FAQ

FAQ

Community

The Blockstack community is a group of blockchain developers coming together to define and develop a set of software protocols and tools to serve as a common backend for blockchain-powered decentralized applications. We are opening membership to the public, welcoming all developers and organizations that are interested in joining the community and contributing to Blockstack development.

For more information, please visit the community website @ Blockstack.org

Our community is welcoming on both our public Slack and public Forum.

Contributing

We welcome any small or big contributions! Please take a moment to review the following guidelines in order to make the contribution process easy and effective for everyone involved.

The main authors of Blockstack are:

Jude Nelson (@judecnelson)

Muneeb Ali (@muneeb)

Ryan Shea (@ryaneshea)

Along with code contributors and other people who've helped in various ways.

Code and documentation copyright 2016 by Blockstack.org.

Code released under the GPL v3 license. Docs released under Creative Commons.

Description
No description provided
Readme GPL-3.0 130 MiB
Languages
Rust 94.6%
Clarity 2.4%
TypeScript 2.3%
Shell 0.5%