https://www.alphanumeric.blue/
alphanumeric is a Rust blockchain node runtime with integrated networking, wallet management, mining, and diagnostics tooling.
- System Goals
- Technical Architecture
- Build and Run
- Configuration via Environment Variables
- CLI Surface
- Security Posture
alphanumeric is designed as a single-node executable that bundles the full operational stack needed to participate in a live network:
- deterministic local chain-state persistence (
sled) - bounded, framed P2P messaging with peer lifecycle management
- block/transaction propagation and sync workflows
- integrated mining path
- wallet/key workflows plus operator CLI
- local operational telemetry and diagnostics
- protocol stability guarantees across all commits
- audited production security claims
- strict long-term API/CLI compatibility guarantees
- Active development.
- Interfaces and internals can change between commits.
- Not a formally audited production system.
| Capability | Scope |
|---|---|
| Node runtime | Listener, peer connect/disconnect, maintenance loops |
| P2P transport | Length-prefixed framed messaging, bounded payloads |
| Sync | Peer block-range requests and ingestion |
| Persistence | Embedded sled storage and local bootstrap |
| Mining | Local mining manager and miner workflows |
| Wallet ops | Create/rename/list/history/account + transaction creation |
| Ops visibility | Status/sync/connect/discovery commands + stats server hooks |
High-level module map:
src/main.rs: process entrypoint, bootstrap, CLI loop, network command handlingsrc/a9/node.rs: P2P runtime, framing, peer management, sync, event handlingsrc/a9/blockchain.rs: block/transaction validation and persistencesrc/a9/mgmt.rs: wallet management and key workflowsrc/a9/progpow.rs: mining manager and mining flowsrc/a9/velocity.rs: velocity/shred propagation supportsrc/a9/bpos.rs: sentinel/validator-related logicsrc/a9/whisper.rs: whisper messaging support
Runtime shape:
- bootstrap/load DB (
blockchain.db) - initialize blockchain state
- initialize node runtime + listeners
- spawn background tasks:
- peer maintenance
- discovery/announce
- sync
- optional stats
- process interactive commands and network events
flowchart LR
CLI[CLI / main.rs] --> NODE[Node Runtime / node.rs]
NODE --> P2P[P2P Transport]
NODE --> SYNC[Sync + Discovery]
NODE --> CHAIN[Blockchain / blockchain.rs]
CHAIN --> DB[(sled)]
CLI --> MGMT[Wallet Mgmt / mgmt.rs]
CLI --> MINER[Mining / progpow.rs]
- Default node TCP port:
7177(DEFAULT_PORTinsrc/a9/node.rs) - Outbound messaging uses framed transport (length-prefixed payloads)
- Message size limits are enforced (
MAX_MESSAGE_SIZE) - Outbound connection pooling is enabled with:
- idle cleanup
- LRU-style eviction
- per-peer circuit breaker on repeated failures
- Inbound connection handling is concurrency-limited
- DNS/discovery endpoints are environment-configurable
The codebase includes multiple consensus/validation-related components (PoW/mining path, sentinel/validator logic, and propagation optimizations). Behavior is defined by the current code paths in src/a9/*.
If you are integrating against this repository, pin a commit hash and validate behavior at that exact revision.
Prerequisites:
- Rust stable toolchain
- Cargo
Build:
cargo build --releaseRun:
cargo run --releaseStartup bootstrap source (default):
https://alphanumeric.blue/bootstrap/blockchain.db.zip
If blockchain.db already exists locally, that state is used.
Primary local artifacts:
blockchain.dbprivate.key- optional lock files (
*.lock)
Common variables used by the runtime include:
ALPHANUMERIC_BIND_IPALPHANUMERIC_BOOTSTRAP_URLALPHANUMERIC_BOOTSTRAP_REQUIREDALPHANUMERIC_IGNORE_DB_LOCKALPHANUMERIC_STATS_ENABLEDALPHANUMERIC_STATS_BINDALPHANUMERIC_STATS_PORTALPHANUMERIC_DNS_SEEDSALPHANUMERIC_DISCOVERY_BASEALPHANUMERIC_DISCOVERY_BASESALPHANUMERIC_DISCOVERY_URLALPHANUMERIC_ANNOUNCE_URLALPHANUMERIC_HEADERS_URLALPHANUMERIC_PUBLIC_IPALPHANUMERIC_ENABLE_UPNPALPHANUMERIC_PEER_CACHE_PATHALPHANUMERIC_TX_WITNESS_CACHE_SIZE
Interactive command loop examples:
create <sender> <recipient> <amount>whisper <address> <msg>(amount can be provided depending on flow)balancenew [wallet_name]account <address>historyrename <old_name> <new_name>mine <wallet_name>infodiagnostics
Process flags/network commands:
--statusor-s--sync--sync --force--connect <ip:port>--getpeers--discover
This project handles key material and peer input. Treat it accordingly.
private.keyis sensitive. Secure the host and filesystem permissions.- Do not commit key material to source control.
- Treat all network input as untrusted.
- Validate operational assumptions before mainnet-like usage.
Minimum recommended setup for a reachable node:
- open TCP port
7177on host firewall/router - run node on a stable host with persistent disk
- monitor logs and peer count
- back up sensitive key material securely
Windows firewall example:
New-NetFirewallRule -Name "Alphanumeric Network" -DisplayName "Alphanumeric Network (Port 7177)" -Protocol TCP -LocalPort 7177 -Direction Inbound,Outbound -Action AllowQuick local checks:
cargo checkWhen changing protocol/runtime code, prefer:
- explicit message framing
- bounded buffers and timeouts
- clear lock scopes
- deterministic error handling
- Official frontend: https://www.alphanumeric.blue/
- Discord: https://discord.gg/D3r7TRcj9t
MIT
