chore: add missing MIT and Apache v2 licenses
logos-blockchain-ui
A Qt UI plugin for the Logos Blockchain Module, providing a graphical interface to control and monitor the Logos blockchain node.
Features
- Start/Stop blockchain node
- Configure node parameters (config path, deployment)
- Check wallet balances
- Monitor node status and information
Standalone App Quickstart
- Build and run the app with
nix run '.#app'
-
Generate a new config using the some initial peers that are part of the live testnet. You can find some peers here.
-
Start the node, and let it sync with the initial peers. You can track progress by opening a terminal and running:
watch -n1 'curl -s localhost:8080/cryptarchia/info'
And comparing the height with the block height in the block explorer.
-
In the meantime, you can request funds from the faucet, copy one of the keys visible in the ui and paste it into the faucet.
-
Once your node finishes syncing, you can refresh your balance and you should see your funds from the faucet.
At this point, you are done. If you leave this node running, your tokens will age sufficiently such that they will become eligible for participation in consensus. This happens automatically, so long as you don't transfer your tokens for ~3.5 hours.
For a video walkthrough of this process, see this recording.
How to Build
Using Nix (Recommended)
Build Complete UI Plugin
# Build everything (default)
nix build
# Or explicitly
nix build '.#default'
The result will include:
/lib/blockchain_ui.dylib(or.soon Linux) - The Blockchain UI plugin
Build Individual Components
# Build only the library (plugin)
nix build '.#lib'
# Build the standalone Qt application
nix build '.#app'
Development Shell
# Enter development shell with all dependencies
nix develop
Note: In zsh, you need to quote the target (e.g., '.#default') to prevent glob expansion.
If you don't have flakes enabled globally, add experimental flags:
nix build --extra-experimental-features 'nix-command flakes'
The compiled artifacts can be found at result/
Running the Standalone App
After building the app with nix build '.#app', you can run it:
# Run the standalone Qt application
./result/bin/logos-blockchain-ui-app
The app will automatically load the required modules (capability_module, liblogos_blockchain_module) and the blockchain_ui Qt plugin. All dependencies are bundled in the Nix store layout.
Nix Organization
The nix build system is organized into modular files in the /nix directory:
nix/default.nix- Common configuration (dependencies, flags, metadata)nix/lib.nix- UI plugin compilationnix/app.nix- Standalone Qt application compilation
Output Structure
When built with Nix:
Library build (nix build '.#lib'):
result/
└── lib/
└── blockchain_ui.dylib # Logos Blockchain UI plugin
App build (nix build '.#app'):
result/
├── bin/
│ ├── logos-blockchain-ui-app # Standalone Qt application
│ ├── logos_host # Logos host executable (for plugins)
│ └── logoscore # Logos core executable
├── lib/
│ ├── liblogos_core.dylib # Logos core library
│ ├── liblogos_sdk.dylib # Logos SDK library
│ └── Logos/DesignSystem/ # QML design system
├── modules/
│ ├── capability_module_plugin.dylib
│ ├── liblogos_blockchain_module.dylib
│ └── liblogos_blockchain.dylib
└── blockchain_ui.dylib # Qt plugin (loaded by app)
Configuration
Blockchain Node Configuration
The blockchain node can be configured in two ways:
- Via UI: Enter the config path in the "Config Path" field
- Via Environment Variable: Set
LB_CONFIG_PATHto your configuration file path
Example configuration file can be found in the logos-blockchain-module repository at config/node_config.yaml.
QML Hot Reload
During development, you can enable QML hot reload by setting an environment variable:
export BLOCKCHAIN_UI_QML_PATH=/path/to/logos-blockchain-ui/src/qml
This allows you to edit the QML file and see changes by reloading the plugin without recompiling.