Owonero

banner

Current release: v0.5.0 (stable)

A lightweight, proof-of-work blockchain cryptocurrency written in Rust. Features automatic updates, peer-to-peer networking, and efficient mining with the RX/OWO memory-hard algorithm.

IMPORTANT: we publish release binaries on GitHub releases. If you are on Windows we recommend downloading the pre-built release for convenience and correctness.

✨ Features

πŸ“‹ Minimum Requirements

System Requirements

Software Requirements

Network Requirements

πŸš€ Quick Start

1. Download and Install

Option A: Download Pre-built Binary from releases

Option B: Build from Source

# Clone repository
git clone https://github.com/tosterlolz/Owonero.git
cd Owonero

# Build for your platform
sudo make install               # Release build

2. Start Your First Node

# Start daemon (network node)
owonero -d

# Or connect to existing network
owonero  -d -n owonero.yabai.buzz:6969

πŸ”¨ RX/OWO Mining Algorithm

Owonero uses the RX/OWO algorithm, a custom memory-hard proof-of-work system inspired by RandomX. This algorithm is designed to be ASIC-resistant while remaining efficient on general-purpose CPUs.

Algorithm Features

Mining Performance

The algorithm scales well with:

Hardware Recommendations

Install completions

owonero --install-completions <shell>
# for bash:
owonero --install-completions bash

Mining Commands

# Solo mining with 8 threads
owonero --mine --node localhost:6969 --threads 8

# Pool mining (if supported)
owonero  --mine --pool --node pool.example.com:6969 --threads 8

# Mining with TUI interface
owonero  --mine --miner-ui --node localhost:6969 --threads 4

4. Check Your Wallet

# View balance and address
owonero 

πŸ“– Usage Guide

Command Line Options

Daemon Mode

owonero  -d [options]

Mining Mode

owonero  -m [options]

Wallet Mode

owonero  [options]

Network Protocol

Owonero uses a simple TCP-based protocol. Connect using telnet or netcat:

# Connect to daemon
telnet localhost 6969

# Get blockchain height
getheight
42

# Get peer list
getpeers
["192.168.1.100:6969", "node.example.com:6969"]

# Add new peer
addpeer
192.168.1.101:6969
ok

Available Commands

Command Description Response
getchain Full blockchain (JSON) Blockchain JSON
getheight Current block height Integer
getblocks START END Block range Blocks JSON array
submitblock Submit mined block JSON payload required
sendtx Submit transaction JSON payload required
getpeers Known peers list JSON array
addpeer Add peer Address on next line
removepeer Remove peer Address on next line
getwallet Wallet information Address on next line
sync Force sync Initiates sync
mineractive Report active miner Miner address

πŸ› οΈ Building from Source

Prerequisites

Build Commands

# Release build (optimized)
cargo build --release

# Debug build
cargo build

# Windows PowerShell script
./build.ps1

# Cross-platform builds
cargo build --release --target x86_64-unknown-linux-gnu
cargo build --release --target x86_64-pc-windows-gnu
cargo build --release --target x86_64-apple-darwin

Development Setup

# Clone repository
git clone https://github.com/tosterlolz/Owonero.git
cd owonero-rs

# Install dependencies
cargo fetch

# Run tests
cargo test

# Build with debug symbols
cargo build

# Run with debug output
RUST_LOG=debug cargo run -- --help

Dependencies

πŸ“Š Monitoring

Web Stats Interface

When running a daemon, access web stats at http://localhost:6767/

Mining Performance

Network Status

# Check daemon status
echo "getheight" | nc localhost 6969

# View connected peers
echo "getpeers" | nc localhost 6969

οΏ½ Documentation

More detailed developer and build documentation is available in the docs/ directory:

If you’d like, we can add a Dockerfile and CI workflow to produce reproducible release artifacts.

οΏ½πŸ”’ Security

πŸ› Troubleshooting

Common Issues

β€œCannot connect to node”

β€œMining not working”

β€œSync fails”

β€œUpdate fails”

Debug Mode

# Enable debug logging
OWONERO_LOG_LEVEL=debug owonero  -d

# Build with debug symbols
go build -tags debug -o owonero-debug ./src

Getting Help

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes with tests
  4. Test thoroughly: go test ./...
  5. Submit a pull request

Development Guidelines

Project Structure

owonero-rs/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main.rs           # CLI entry point and command routing
β”‚   β”œβ”€β”€ blockchain.rs     # RX/OWO algorithm and blockchain logic
β”‚   β”œβ”€β”€ miner.rs          # Async mining with thread management
β”‚   β”œβ”€β”€ miner_ui.rs       # Ratatui-based terminal interface
β”‚   β”œβ”€β”€ wallet.rs         # ECDSA wallet management
β”‚   β”œβ”€β”€ daemon.rs         # Async TCP server and peer management
β”‚   β”œβ”€β”€ config.rs         # JSON configuration management
β”‚   └── update.rs         # GitHub release checking
β”œβ”€β”€ Cargo.toml           # Rust dependencies and metadata
β”œβ”€β”€ build.ps1            # Cross-platform build script
β”œβ”€β”€ README.md           # This documentation
└── LICENSE             # MIT License

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

⚠️ Disclaimer

Educational Purpose Only

This software is for educational and experimental purposes. It is not intended for production use or real financial transactions. The developers are not responsible for any financial losses or security issues arising from its use.

Known Limitations

πŸ“ž Support


Happy mining! ⛏️</content>