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.
blockstack-core api
- Provides a RESTful interface for clients to interact with
blockstack-core
functionality - Contains your bitcoin wallet
- API Docs (rendered)
- Provides a RESTful interface for clients to interact with
blockstack
- A command-line-interface for the
blockstack-core api
, andblockstack-core
- A command-line-interface for the
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:
- Join our Slack Channel!
- Join our Forum!
- Read the Whitepaper
- Documentation
- Mailing List
blockstack/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:
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
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.
WARNING: This install path is currently in developer alpha state. We will be adding more features here in the coming months.
NOTE: You will need docker installed to do this. The easiest way to install docker is with this quick script:
wget -q0- https://get.docker.com/ | sh
. There are also step by step instructions to install. You will want theCE
install.
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.
First you need to download the launcher script and make it runnable, You will also need to edit 2 variables in the script:
$ wget -O launcher https://raw.githubusercontent.com/blockstack/packaging/master/browser-core-docker/launcher
$ chmod +x launcher
$ nano launcher
# Set the two following variables:
# TAG=v0.18.1
# COREVERSION=0.17.0.9
Then you can run the ./launcher
commands:
# First run the pull command. This will fetch the latest docker images from our image repository.
$ ./launcher pull-core
# The first time you run a core node you will need to sync it with the current state of the network
# This process can take a long time. blockstack-core offers a fast_sync option. To use it with the docker install:
$ ./launcher init-core
# To start the blockstack-core node run
$ ./launcher start-core
# When you are done you can stop the core node with the following
$ ./launcher stop-core
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.
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.
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.
You can learn more by visiting the Blockstack Website and checking out the in-depth articles and documentation:
- How Blockstack Works
- Blockstack vs. DNS
- Blockstack vs. Namecoin
- Blockstack Namespaces
- Blockstack Light Clients
You can also read the Blockstack paper:
- "Blockstack: A Global Naming and Storage System Secured by Blockchains", Proc. USENIX Annual Technical Conference (ATC ’16), June 2016
If you have high-level questions about Blockstack, try searching our forum and start a new question if your question is not answered there.
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
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.