Alisher 48582abcc4
Elide long config paths in the node view (fix status-row overflow) (#43)
* Elide long config paths in the node view instead of wrapping

The User Config path is a long absolute path with no spaces, so Text.WordWrap
can't break it cleanly and it overflows the status row. Switch both the User
Config and Deployment Config labels to Text.ElideMiddle so the path truncates
in the middle — keeping the leading directories and the file name visible —
and the row keeps its height.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Add spacing between the User/Deployment config rows

Drop the negative topMargin that pulled the two config lines together and give
the column a small spacing so they don't read as cramped.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Alisher <xAlisher@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 11:15:45 +02:00
2026-02-25 00:05:51 +01:00
2026-06-23 14:49:35 +02:00
2026-06-19 15:25:12 +02:00
2026-07-03 17:23:18 +02:00

logos-blockchain-ui

A QML + C++ backend UI module for the Logos platform that provides a graphical interface to control and monitor the Logos blockchain node.

Built with logos-module-builder using the mkLogosQmlModule pattern (QML frontend + C++ backend with Qt Remote Objects).

Features

  • Start/Stop blockchain node
  • Configure node parameters (config path, deployment)
  • Check wallet balances
  • Monitor node status and information
  • Account management

Standalone App Quickstart

  1. Build and run the app:
nix run
  1. Generate a new config using initial peers from the live testnet. See the ⚙️ Initialize Your Node section of the latest release notes

Note that what's shown in the release document is a CLI command. For the UI's "Initial peers" field, strip everything but the peer addresses themselves (no quotes, brackets, or commas) and paste one per line.

Like so:

/ip4/203.0.113.10/udp/3000/quic-v1/p2p/12D3KooWh82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmU
/ip4/203.0.113.10/udp/3001/quic-v1/p2p/12D3KooWNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx
/ip4/203.0.113.10/udp/3002/quic-v1/p2p/12D3KooW7RJWhvQBQPEjJmki5fhBboGBWRJhmcFkMvrr4Fu3tMSJ
/ip4/203.0.113.10/udp/3003/quic-v1/p2p/12D3KooW5EdynMEiYSyiWAH9GpcbHpeUzeSQF9ZY6q4x8AhBskUf
  1. Start the node and let it sync. Track progress:
watch -n1 'curl -s localhost:8080/cryptarchia/info'

Compare the height with the block explorer.

  1. Request funds from the faucet — copy one of the keys from the UI and paste it there.

  2. Once synced, refresh your balance to see your funds.

Leaving the node running for ~3.5 hours allows your tokens to age and become eligible for consensus participation (automatic).

For a video walkthrough, see this recording.

How to Run

# Run directly
nix run

# With local workspace overrides
nix run --override-input liblogos_blockchain_module path:../logos-blockchain-module \
        --override-input liblogos_blockchain_module/logos-module-builder path:../logos-module-builder

In Basecamp

# Build LGX
nix build .#lgx

# Install into Basecamp's plugin directory
lgpm --ui-plugins-dir ~/Library/Application\ Support/Logos/LogosBasecampDev/plugins \
     install --file result/*.lgx

Or from the workspace:

ws bundle logos-blockchain-ui --auto-local

Build Targets

nix build            # default — combined plugin + QML output
nix build .#lgx      # .lgx package for distribution
nix build .#install  # lgpm-installed output (modules/ + plugins/)
nix run              # standalone app with blockchain module
nix develop          # enter development shell

Module Structure

logos-blockchain-ui/
├── flake.nix                       # mkLogosQmlModule
├── metadata.json                   # Module config (ui_qml type)
├── CMakeLists.txt                  # logos_module() macro
└── src/
    ├── BlockchainBackend.rep       # RemoteObject interface
    ├── BlockchainBackend.h/cpp     # Business logic (extends BlockchainBackendSimpleSource)
    ├── BlockchainPlugin.h/cpp      # Thin plugin entry point
    ├── BlockchainPluginInterface.h # Plugin interface marker
    ├── AccountsModel.h/cpp         # QAbstractListModel for accounts
    ├── LogModel.h/cpp              # QAbstractListModel for logs
    └── qml/
        └── BlockchainView.qml     # QML frontend (+ sub-views)

Configuration

Blockchain Node Configuration

  • Via UI: Enter the config path in the "Config Path" field
  • Via Environment Variable: Set LB_CONFIG_PATH to your configuration file path

QML Hot Reload

During development, set the environment variable to load QML from disk:

export BLOCKCHAIN_UI_QML_PATH=/path/to/logos-blockchain-ui/src/qml

Dependencies

Dependency Purpose
Qt6 Core, Gui, RemoteObjects, Declarative UI framework + IPC
logos-module-builder Build system (mkLogosQmlModule)
logos-blockchain-module Blockchain backend module
Repository Role
logos-blockchain-module Blockchain backend — this UI's required dependency
logos-module-builder Module build system
logos-liblogos Logos Core platform
Description
Blockchain UI app for Logos Core
Readme
Languages
QML 79.5%
C++ 18.7%
Just 1.1%
CMake 0.4%
Nix 0.3%