Skip to content

zhilinwww/blockstack-core

 
 

Repository files navigation

Blockstack Core

PyPI Slack

blockstack-core is the reference implementation of the Blockstack protocol.

  • blockstack-core
    • Creating and transmitting blockchain transactions,
    • Creating and parsing virtualchain state, and
    • Communicating with the peer network, Atlas. The
  • blockstack-core api
    • Provides a RESTful interface for clients to interact with blockstack-core functionality
    • Contains your bitcoin wallet
    • API Docs (rendered)
  • blockstack
    • A command-line-interface for the blockstack-core api, and blockstack-core

What is Blockstack?

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.

If you are looking to get started with the blockstack platform and register a name, we recommend you start with the Blockstack Browser first.

For more info on Blockstack here are some good links:

Table of Contents

Installing Blockstack

If you are looking to register a name, or use blockstack application, we recommend that you start with the blockstack-browser You can find install instructions for:

  • Linux using our Docker launcher script.
  • Windows - Alpha installer which installs docker utilities and our docker images.
  • macOS

If you are looking to install blockstack-core, there are two methods:

Install with pip

You should use pip2 if you have it instead of pip. Blockstack is built against Python 2.7.

On Mac:

# Install blockstack
$ pip2 install blockstack --upgrade

On Debian & Ubuntu:

# Install dependancies
$ sudo apt-get update && sudo apt-get install -y python-pip python-dev libssl-dev libffi-dev rng-tools libgmp3-dev
$ sudo pip2 install pyparsing

# Install blockstack
$ sudo pip2 install blockstack --upgrade

Setting up blockstack-api

If this is your first time installing blockstack first you will need to run blockstack setup and follow the prompts. Using the defaults is recommended. This process generates your wallet and the blockstack configuration files.

NOTE: This process generates a wallet. BE SURE TO SAVE THE WALLET PASSWORD YOU TYPE IN.

Next you need to start the blockstack api server: blockstack api start. Now, you can test your installation by running blockstack info which should display the last block processed and the latest consensus hash.

Install with docker

WARNING: This install path is currently in developer alpha state. We will be adding more features here in the coming months.

Blockstack API and the Blockstack Browser run well in docker. There is a provided CLI to help you build and launch the docker images if you are not comfortable with docker: launcher. The CLI will pull down the images from our Quay image repository.

You can download the launcher script from our packaging repo: download

# First run the pull command. This will fetch the latest docker images from our image repository.
$ ./launcher pull

# The first time you run ./launcher start, it will create a `$HOME/.blockstack` directory to
# store your Blockstack Core API config and wallet and prompt you for a password to protect those
# Next you can start the Blockstack Core API
$ ./launcher start

# When you are done you can clean up your environment by running
$ ./launcher stop

This will start the Blockstack browser and a paired blockstack-api daemon.

If you would like to build your own docker image, you can use the Dockerfile in the root of this repository.

Running a blockstack-core instance

After installation, you can (optionally) do a fast-sync that quickly syncs a local blockstack-core node with the Atlas network:

# Download the Atlas snapshot
$ blockstack-core --debug fast_sync http://fast-sync.blockstack.org/snapshot.bsk

# start the blockstack-core daemon to index the blockchain
$ blockstack-core --debug start

# Check the server logs for errors
$ tail -f ~/.blockstack-server/blockstack-server.log

Next, visit the usage docs to learn how to register names of your own, as well as transfer them and associate data with them.

If you encounter any technical issues in installing or using Blockstack, please search the open issues and start a new one if your issue is not covered. You can also visit the forum or #support channel in Slack.

Development Status

v0.17.0 is the current stable release of Blockstack Core (available on the master branch).

The next release is being built on the develop. Please submit all pull requests to the develop branch.

In the list of release notes you can find what has changed in each release.

Blockstack Docs

You can learn more by visiting the Blockstack Website and checking out the in-depth articles and documentation:

You can also read the Blockstack paper:

If you have high-level questions about Blockstack, try searching our forum and start a new question if your question is not answered there.

Contributing

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

Developers: You can try out Blockstack Core in a local sandbox using our integration test framework.

You can install the latest release candidate by:

$ git clone https://github.com/blockstack/blockstack-core.git
$ blockstack-core/images/scripts/debian-release-candidate.sh

Copyright and License

The code and documentation copyright are attributed to blockstack.org for the year of 2017.

This code is released under the GPL v3 license, and the docs are released under the Creative Commons license.

About

The reference implementation of Blockstack

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 98.3%
  • Other 1.7%