The Blockvisor stack enables simple configuration, management, and replication of blockchain protocol deployments. It offers several key advantages:
- Code-defined nodes ensuring consistent and repeatable deployments
- Resource isolation by organizations, users, and nodes
- Flexible deployment options including private data centers and bare metal servers
The stack consists of four main components:
Centralized service that manages and provides access to all metadata and information about:
- Protocols
- Running nodes
- Host machines
- Users and organizations
A daemon that runs on each host and communicates with the API either directly or through MQTT topics. It enables the management and coordination of nodes in the stack.
Definitions imported into the API that specify:
- Node runtime parameters
- System requirements (memory, CPU, disk, firewall settings)
- Custom protocol configurations
- Additional custom applications that can run alongside protocol clients
User interface for interacting with the API that provides:
- Node management
- Organization setup and user assignment
- Host onboarding information
- docker
- docker compose
- git
The following steps will deploy the Blockvisor stack in to a development ready environment.
- Checkout the docs repo
include all the submodules too
git clone --recurse-submodules https://github.com/blockjoy/blockvisor-docs.git
cd blockvisor-docs- Start the main stack
start and build all components
docker compose up --build -d- Initialize the database with Roles, Users and a dev Region
This will create an initial admin user and non-admin user with the password you define
docker compose run init[+] Creating 2/2
✔ Container blockvisor-docs-database-1 Running 0.0s
✔ Container blockvisor-docs-api-1 Running 0.0s
[+] Running 1/1
✔ Container blockvisor-docs-database-1 Healthy 0.5s
Enter your email: [email protected]
Enter your first name: demo
Enter your last name: admin
Enter your password:
***Initial User Set is Complete***
----------Credentials----------
Admin User: [email protected]
Non-Admin User: [email protected]
Both user passwords are set to what you defined.
The Blockvisor stack setup is complete. You can now access it at http://<server_ip>- Stack setup is now complete. Should now be able to login to the UI with the credentials you provided at the IP of your server or localhost.
What have we installed? This has deployed all the required services to run the blockvisor stack. Including: blockvisor-api, blockvisor-web, a single blockvisor host, a postgres database, a local mqtt broker (emqx), the necessary proxies for the services, as well as an observability stack (prometheus, opentelemetry, loki, tempo, and grafana).
Some helpful links:
- UI: http://<server_ip>
- Grafana: http://<server_ip/grafana (admin/admin)
- EMQX UI: http://<server_ip>:18083 (admin/public)
🚨 If you want to redeploy the blockvisor stack, you will need take the following steps 🚨
- Bring the stack down
docker compose down- Cleanup temp files
rm setup/success- Now you can redeploy a fresh stack.
Great, so now you have the Blockvisor stack up and running and ready for testing and development. The next items to consider:
- Setup your local machine for bv development: Link
- Building your own node image: Link
- Publishing your protocol image to your API: Link
- Adding additional blockvisor hosts: Link
If you want to deep dive in to the code, how things work, or want more details you can checkout the documentation and code in each of the following repos for the four main components: