Problem
Currently the components of the Blockstack ecosystem have confusing naming that does not highlight delineation/borders between the components. This makes getting started with the platform significantly more difficult than it should be. Blockstack has built a working, scalable, feature rich system for Application developers. To drive wider adoption we need to reduce the mental overhead of getting started with the platform. We can accomplish this by bringing our naming closer to the common idioms in blockchain command line tooling.
Components of the system
From a deployment and infrastructure point of view the following components are used in our system:
-
blockstack-browser
- Serves the user interface
- Communicates with the
blockstack api
to complete name operations and auth
-
blockstack
- Command line interface for communicating with the
blockstack api
andblockstack-core
.
- Command line interface for communicating with the
-
blockstack api
- User friendly interface on
blockstack-core
- Proves a programatic way to interact with Blockstack core
- Documentation
- User friendly interface on
-
blockstack-core
- Communicates with a
bitcoind
node and by reading the blockstack virtual chain creates an index of all domain names in the system. - Exposes an API that
blockstack api
interacts with. - Blockstack production deployment running at
node.blockstack.com
- Communicates with a
-
"the flask app"
- A wrapper to make
blockstack api
more performant and safer to expose to the open internet. - Enables a light clients to connect to the network in a safe and performant way.
- A wrapper to make
Proposal
Updating the naming to take into account the additional complexity introduced by the addition of the flask app. We could think about the components as follows:
-
blockstack api
->blockstackd
-
blockstack-core
->blockstack-indexer
-
"the flask app"
->blockstack-api
Architectural diagrams describing the current setup are below with the new and old names. I would love some feedback on this.
Running on a Laptop or Desktop
Run your own full Blockstack installation
Support for both the Desktop usecase and the Light Client Usecase