This repository is the Rust implementation of the Minotari/Tari base-layer blockchain protocol. It is primarily a large application monorepo, although it embeds deep cryptographic and consensus research. In production, it ships as several runnable binaries: a base node (minotari_node), a console wallet (minotari_console_wallet), a SHA-3 miner (minotari_miner), a Monero merge-mining proxy (minotari_merge_mining_proxy), an offline signer, and experimental MCP servers (minotari_mcp_node, minotari_mcp_wallet) that expose node and wallet capabilities to AI agents. The node validates and stores blockchain data using LMDB for chain state and SQLite for peer/wallet/DHT metadata, synchronizes via block/header/horizon sync state machines, and communicates over a custom stack combining TCP/Tor transports, Noise encryption, and a DHT for discovery and message propagation. Wallets construct confidential transactions with Pedersen commitments, range proofs, covenants, and one-sided payments, and expose gRPC/HTTP APIs. Architecturally, the workspace is divided into base-layer crates (core, wallet, transaction_components, mmr, p2p, sidechain), a custom comms stack (comms/core, comms/dht), shared infrastructure (service_framework, storage, shutdown, metrics, derive, hashing), and application binaries. The service framework uses Tower-style initializers and reply channels; the consensus layer includes multiple PoW algorithms (SHA3x, Cuckaroo, Monero RandomX), validation pipelines, mempool management, reorg handling, and sidechain validator-node logic. Data flows from transaction construction in the wallet through gRPC/HTTP submission to the node's mempool, then into block templates, validation, and LMDB chain storage; P2P messages propagate over the DHT/Tor transport. Code quality is generally strong: core components have extensive integration tests, benches, CI workflows, and careful error typing. The MMR, sparse Merkle tree, hashing, and dedup cache components are cleanly isolated and reusable. However, the size of the codebase leads to some rough edges: MCP servers contain placeholder implementations, wallet FFI code relies on raw unsafe, and a few modules carry stale comments or dead code. Overall, this is a professionally maintained blockchain implementation rather than an experimental research repo.
Prosopo is a privacy-focused, self-hosted CAPTCHA alternative that provides multiple challenge typesβimage selection, puzzle (image jigsaw), proof-of-work, and frictionless (behavioral bot detection). The system comprises an Express-based provider API (with MongoDB and Redis for persistence and caching), a CLI for administrative tasks, client-side embeddable widgets (vanilla JS bundle, React/Angular/Vue/Svelte wrappers), and a suite of supporting libraries for cryptography, locale, datasets, and native Rust modules (JA4 TLS fingerprinting, Merkle tree acceleration, puzzle rendering). Bot detection is multi-layered: client-side behavioral data (mouse/keyboard/touch events, SIMD readings) is collected and server-side scored, combined with JA4 TLS fingerprint analysis, IP reputation (ipapi.is + MaxMind), DNS asymmetry detection, spam email heuristics, and custom decision machines per site key. The architecture is a monorepo with ~70 workspaces, leveraging Vite for bundling, Vitest for unit/integration tests, and Cypress for E2E visual regression testing. The provider enforces access policies (allow/block/restrict) via a Redis-backed rules engine and maintains usage counters for rate limiting. Asset sealing (AES-256-GCM) protects image CDN URLs, and puzzle difficulty is sampled with a CSPRNG-stratified ladder to frustrate solver calibration.