惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
S
Secure Thoughts
月光博客
月光博客
美团技术团队
雷峰网
雷峰网
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
News and Events Feed by Topic
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Forbes - Security
Forbes - Security
W
WeLiveSecurity
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
G
GRAHAM CLULEY
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
AI
AI
Last Week in AI
Last Week in AI
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
云风的 BLOG
云风的 BLOG
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Recent Announcements
Recent Announcements
Webroot Blog
Webroot Blog
T
Tor Project blog
Cisco Talos Blog
Cisco Talos Blog
N
News and Events Feed by Topic
罗磊的独立博客
The Register - Security
The Register - Security
Blog — PlanetScale
Blog — PlanetScale
T
Threat Research - Cisco Blogs
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
T
The Exploit Database - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
B
Blog
腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Engineering at Meta
Engineering at Meta
Latest news
Latest news
IT之家
IT之家
D
DataBreaches.Net
博客园 - 司徒正美
N
Netflix TechBlog - Medium
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店 GitHub - EdoardoBambini/Agent-Armor-Iaga: AI agents are getting tool access — shell, file system, databases, APIs, secrets. But **nobody is governing what they actually do with it**. Frameworks like LangChain, CrewAI, AutoGen, and Claude Code give agents the power to execute. Agent Armor gives you the power to control, audit, and approve every single action before it happens. HN Vibes — Week 15, Apr 7–13 2026 GitHub - chojs23/ec: Easy terminal-native 3-way git mergetool vim-like workflow GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - JakOb-dotcom/cloud-sandbox-security-analysis: Technical analysis and Proof of Concept (PoC) regarding environment variable exfiltration in containerized cloud sandboxes via side-channel data leaks. Springboards - Flint Alpha Show HN: A simpler coding agent harness GitHub - audiodude/sudomake-friends GitHub - 256thFission/mini-mythos: OSS clone of Anthropic’s Mythos harness to locate C/C++ memory vulnerabilities Show HN: OpenParallax: OS-level privilege separation for AI agent execution Hacker News Sorted - Chrome 应用商店 Show HN: How to Install Docker on Ubuntu 24.04 LTS: Complete 2026 Guide GitHub - himanshudongre/smriti GitHub - sverrirsig/claude-control: macOS desktop dashboard for monitoring and managing multiple Claude Code sessions GitHub - ory/dockertest: Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work. Chiral - Chrome 应用商店 Show HN: Two Claudes collaborating through shared memory on a $100 mini-PC GitHub - pmichaillat/latex-cv: Minimalist LaTeX template for academic CVs GitHub - oguzbilgic/posse: A web UI for Anthropic Managed Agents. GitHub - sshiraz/depsly: Dependency risk analysis tool for npm packages ABI Add safari/agent-harness — Safari browser automation via safari-mcp by achiya-automation · Pull Request #212 · HKUDS/CLI-Anything GitHub - Halfblood-Prince/trustcheck: Verify PyPI package attestations and improve Python supply-chain security GitHub - oguzbilgic/kern-ai: Agents that do the work and show it. GitHub - bruits/satteri: High-performance Markdown and MDX processing for the JavaScript ecosystem GitHub - tylergibbs1/feedstock: High-performance web crawler and scraper for TypeScript, powered by Bun and Playwright GitHub - Grimm67123/grimmbot: The self-improving sandboxed and open-source AI agent. With persistent memory and scheduling. GitHub - whitevanillaskies/whitebloom: Local whiteboard that blooms. GitHub - hwdsl2/docker-whisper: Docker image for a self-hosted Whisper speech-to-text server with speaker diarization and OpenAI-compatible transcription and translation APIs. Powered by faster-whisper. Supports all Whisper models, NVIDIA GPU (CUDA) acceleration, JSON/SRT/VTT output, SSE streaming, offline mode, and multi-arch (amd64, arm64). GitHub - yisding/reviewwiggum GitHub - MarwanAlsoltany/serrors: Structured errors for Go: sentinel hierarchies, typed data, custom formatting, and slog integration. GitHub - soatok/age-php GitHub - Luthiraa/markitme GitHub - stagas/rtdiff: realtime git diff gui and AI-assisted commits GitHub - tombedor/excalicharts GitHub - wh1le/excalidraw-edit: Open and edit .excalidraw files from the terminal. Offline, auto-saves to disk. MalExt Sentry - Malicious Extension Scanner - Chrome 应用商店 GitHub - syi0808/asciianimesvg: Generate animated ASCII art SVGs from text. CLI, Rust library, WASM, and web editor. GitHub - zaina-ml/ml_forge: A visual-based graph node editor for training computer vision models. GitHub - anakin87/llm-rl-environments-lil-course: 🌱 A little course on Reinforcement Learning Environments for evaluating and training Language Models GitHub - takaakit/superpowers-uml: Superpowers-UML modifies Superpowers to ensure a software development workflow in which AI agents design through UML modeling. AdriByte Studio - Sviluppo Web e Soluzioni Digitali GitHub - chouligi/angel-copilot: Your personalized Angel Investment Advisor Show HN: MoodSense AI (ML and FastAPI and Gradio, Deployed on Hugging Face) Moodsense Ai - a Hugging Face Space by aman179102 GitHub - agenteractai/lodmem: Level Of Detail Context Management for Agents GitHub - ostefani/subnetlens: A fast, concurrent network scanner with a TUI and plain-text CLI, built in Go. It discovers live hosts on your network, scans their open ports, resolves hostnames, and fingerprints operating systems—delivered. Cyber Pulse: Agentic Intel - Apps on Google Play Whisper API: Self-Hostable Speech to Text Transcription The Agent-Web Protocol Stack: A Research Thesis GitHub - msmarkgu/RelayFreeLLM: A restful API designed to route user prompts to various AI model providers. Show HN: Provepy – A Python decorator that proves your code using Lean and LLMs Show HN: Pardonned.com – A searchable database of US Pardons GitHub - patrickdappollonio/dux: Dux is a terminal UI that lets you run multiple AI coding agents side by side, each in its own git worktree, with full companion terminals, macros, commit generation, and a command palette that knows more tricks than you do. kMC Crystal Simulator Show HN: HyperFlow – A self-improving agent framework built on LangGraph GitHub - stef41/vibescore: 🎵 Grade your vibe-coded project. One command, instant letter grade across security, quality, dependencies, and testing. GitHub - stef41/lmscan: 🔍 Detect AI-generated text and fingerprint which LLM wrote it. Open-source GPTZero alternative. Zero dependencies, works offline. imgur.com GitHub - visionscaper/collabmem: Enabling long-term collaboration with Agentic AI - building up episodic and world model memory over time with in-context awareness 在 Steam 上购买 FriedrichAI: Offline AI 立省 10% GitHub - atripati/ark: AI Runtime Kernel — a context operating system for AI agents. Eliminates tool bloat, loads only what’s needed, and gives LLMs their reasoning space back. GitHub - nowork-studio/toprank: Open-source Claude Code skills for SEO, SEM, Google Ads GitHub - tacomanator/sash: Lightweight macOS menu bar app for reliably cycling through windows of the current application. Appents | Social Media Management for Product-First Teams GitHub - pnhoang/youtube-spam-blocker: Automatically detects and hides spam messages in YouTube Live chat. Set rate limits, keyword filters, and block repeat offenders. GitHub - decisionnode/DecisionNode: CLI + Local MCP - A shared structured memory store across Claude Code, Cursor, Windsurf, Antigravity, and every MCP client. Semantically queryable. GitHub - AvaCodeSolutions/django-email-learning: An open source Django app for creating email-based learning platforms with IMAP integration and React frontend components. The $100K Gap in Kubernetes Security Tooling Function Calling Harness: From 6.75% to 100%
GitHub - OpstanGit/opstan: Opstan is a decentralized Proof-of-Work social network with no central server and no single company controlling the network.
opstan · 2026-06-02 · via Hacker News: Show HN

Opstan is an independent Proof-of-Work blockchain with a decentralized social network.

The main idea of Opstan is simple: a social network should not depend on one central company, one central server, or one administrator who can silently delete public history. Opstan uses a blockchain not only for coin transfers, but also for public channels and public messages.

Public posts written into the blockchain become part of the shared history of the network. This makes Opstan useful for communities where reputation, transparency, and long-term accountability matter: developers, traders, analysts, journalists, independent bloggers, researchers, and open communities.

Official informational website: https://opstan.org
Block explorer: https://opstan.org/blocks.html
X / Twitter: https://x.com/OpstanNews


License

Opstan is released under the MIT License.

Copyright (c) 2026 Opstan Project Contributors

See the LICENSE file for the full license text.

Build

Windows

On Windows, it is recommended to build Opstan from:

x64 Native Tools Command Prompt for VS 2022

This is recommended because Opstan is a Rust project with native dependencies, and the x64 Native Tools environment provides the correct 64-bit build tools and linker.

Build command:

cargo build -p opstan --release --no-default-features --features "mainnet cli" --locked --bins

Table of contents

  • What Opstan is
  • Why Opstan exists
  • Main features
  • Official website and information
  • Important note about private messages
  • How Opstan works
  • Repository structure
  • System requirements
  • Build from source
  • Prepare a Windows release folder
  • Run the CLI node
  • Run the GUI wallet
  • Mining
  • Poollite mining
  • Wallet
  • Public channels
  • P2P network
  • Consensus parameters
  • Environment variables
  • Files created at runtime
  • Security notes
  • Development
  • Contributing
  • License

What Opstan is

Opstan is a full-node blockchain application.

A user can run a node, download and verify the chain, use a wallet, send coins, mine blocks, and publish public messages into public channels. Every full node independently verifies the same consensus rules.

Opstan is not a centralized website with a blockchain label. The core is a real PoW chain where blocks are mined, validated, stored, propagated, and rejected if they do not follow the rules.


Why Opstan exists

Traditional social platforms have one major weakness: public history can be changed after the fact.

A person can publish a prediction, advertisement, political statement, trading signal, or public promise, and later delete the bad parts while keeping only the successful parts. Over time, this creates fake reputation.

Opstan is designed around a different idea:

Public reputation should be built on public history that cannot be quietly rewritten.

This does not mean every message is true. It means that public records are harder to hide, erase, or manipulate later. Users can judge a channel, author, trader, analyst, or project by the full visible history, not only by selected screenshots.


Main features

  • Independent Proof-of-Work blockchain
  • Full node verification
  • Wallet with local keys
  • Coin transfers
  • Solo mining
  • Poollite mining support
  • Public channels
  • Public on-chain messages
  • Block explorer compatibility
  • P2P node synchronization
  • Mempool for pending transactions and public messages
  • GUI wallet/application
  • CLI node/application
  • Export tools for blocks and transactions
  • Payout utility for pool operators
  • Consensus safety guards for mainnet builds

Official website and information

The official informational website for Opstan is:

https://opstan.org

The website is used to present the project, explain the idea, provide public information, and link to the block explorer and official materials. It is an informational entry point for users, miners, developers, and community members.

Important: Opstan itself is not a centralized website. The website can explain the project, but the network is operated by independent nodes. A node can verify blocks, transactions, public messages, balances, and chain state locally according to the consensus rules.

Useful public links:


Important note about private messages

Private/direct messages are disabled in the official Opstan GUI and CLI build.

The current official user-facing version focuses on:

  • wallet
  • coin transfers
  • public channels
  • public on-chain messages
  • mining
  • node synchronization

The repository may still contain protocol-level structures or internal code paths related to encrypted/private message formats. They are not available as a normal user feature in the official build and should not be described to users as an active feature.

Do not present Opstan as a private messenger. The current public version should be presented as a decentralized public-channel and wallet application.


How Opstan works

Opstan works similarly to classic PoW blockchains:

  1. Nodes keep a local database of blocks and state.
  2. Miners build candidate blocks.
  3. A block is valid only if it satisfies the PoW target and consensus rules.
  4. Nodes verify received blocks independently.
  5. Invalid blocks are rejected.
  6. Valid blocks are added to the best chain.
  7. Transactions and public messages can be included in mined blocks.
  8. Public channel history can be read from the blockchain.

A normal user can simply run the GUI. A more technical user can run the CLI node, connect to peers, mine, inspect blocks, and export blockchain data.


Repository structure

.
├── Cargo.toml
├── Cargo.lock
├── build.rs
├── rust-toolchain.toml
├── assets/
│   ├── opstan.ico
│   ├── opstan_gui.rc
│   ├── opstan_icon_256.png
│   └── opstan_logo.png
└── src/
    ├── main.rs                    # CLI node/application
    ├── lib.rs                     # public crate modules
    ├── bin/
    │   ├── opstan_gui.rs          # GUI application
    │   ├── opstan_payout.rs       # payout utility
    │   └── print_consensus_lock.rs
    ├── block.rs                   # block/header types
    ├── chain.rs                   # chain validation and chain logic
    ├── consensus_lock.rs          # consensus lock/freeze check
    ├── deps_fingerprint.rs        # dependency fingerprint check
    ├── emission.rs                # block reward schedule
    ├── merkle.rs                  # merkle roots
    ├── miner.rs                   # PoW mining
    ├── p2p.rs                     # peer-to-peer networking
    ├── params.rs                  # consensus and protocol parameters
    ├── poollite_client.rs         # pool mining client
    ├── pow.rs                     # proof-of-work target/hash logic
    ├── sig.rs                     # signatures and addresses
    ├── storage.rs                 # RocksDB storage/state indexes
    ├── tx.rs                      # transactions and message types
    ├── types.rs                   # common primitive types
    ├── wallet.rs                  # wallet and keys
    └── wire.rs                    # on-chain encoding

System requirements

Recommended:

  • Rust toolchain compatible with this repository
  • Cargo
  • C++ build tools required by RocksDB
  • Enough disk space for the blockchain database
  • Stable internet connection for P2P synchronization

The repository contains rust-toolchain.toml, so rustup should automatically select the intended Rust toolchain when you build the project.

Windows

Install:

Recommended build terminal on Windows:

x64 Native Tools Command Prompt for VS 2022

Open that terminal, go to the Opstan repository folder, and run the official build command from the section below.

Linux

Typical packages:

sudo apt update
sudo apt install -y build-essential clang pkg-config libssl-dev

Then install Rust from https://rustup.rs.


Build from source

Build official release binaries

Recommended official mainnet build command:

cargo build -p opstan --release --no-default-features --features "mainnet cli" --locked --bins

This command builds the release binaries with the mainnet and cli feature set and uses Cargo.lock through --locked so dependency versions stay fixed.

On Windows, build from:

x64 Native Tools Command Prompt for VS 2022

Do not use a normal Command Prompt if the C/C++ build environment is not loaded. Some dependencies, including RocksDB-related native components, may require the Visual Studio C++ build tools environment.

This builds the main binaries, including:

target/release/opstan
target/release/opstan-gui
target/release/opstan_payout
target/release/print_consensus_lock

On Windows, the binaries are created as .exe files.

Prepare a Windows release folder

After compiling on Windows, the .exe files are created in:

For normal use, it is recommended to create a separate folder, for example:

Then copy the compiled .exe files into that folder:

opstan.exe
opstan-gui.exe
opstan_payout.exe
print_consensus_lock.exe

Peer files and bootstrap nodes

The peer files are included in the official Windows release ZIP from GitHub Releases.

If you downloaded the Windows ZIP release, they are already inside the archive:

Keep both files next to opstan.exe and opstan-gui.exe.

Do not delete peersnc.txt. Use the peersnc.txt file from the official Windows ZIP release. This file helps the node handle known non-connectable peers and avoid unnecessary connection inconveniences.

If you build Opstan from source manually, download the latest official Windows ZIP release and copy these files from it:

The peers.txt file contains public bootstrap peers. These first public VPS nodes help new users connect to the Opstan network and download the blockchain:

188.137.252.137:443
89.167.64.16:443

If needed, you can create peers.txt manually and add these bootstrap peers, but peersnc.txt should be copied from the official Windows ZIP release.

The final Windows folder should look like this:

Opstan/
├── opstan.exe
├── opstan-gui.exe
├── opstan_payout.exe
├── print_consensus_lock.exe
├── peers.txt
└── peersnc.txt

For normal Windows users, peers.txt and peersnc.txt should be kept next to opstan.exe and opstan-gui.exe.

Start Opstan from that folder so the node can load the peer files correctly.

Advanced users can override the peer file locations with:

OPSTAN_PEERS_FILE
OPSTAN_PEERS_NC_FILE

Build default development version

Run tests

Format code

Run clippy

cargo clippy --all-targets --all-features

Run the CLI node

After building:

On Windows:

.\target\release\opstan.exe

The CLI node opens an interactive menu. It can:

  • start P2P networking
  • connect to peers
  • show wallet address
  • show balance
  • show chain status
  • send coins
  • publish public channel messages
  • read public channels
  • start solo mining
  • start Poollite mining
  • export blocks
  • export sent transactions
  • show wallet operations

The default local database directory is:

The default wallet file is:


Run the GUI wallet

After building:

./target/release/opstan-gui

On Windows:

.\target\release\opstan-gui.exe

The GUI is the recommended application for normal users. It provides a visual interface for wallet operations, public channels, node status, and mining controls.


Mining

Opstan supports solo mining from the CLI.

In the CLI menu, choose:

You will be asked how many CPU threads to use.

Solo mining works by repeatedly building a candidate block and searching for a nonce that satisfies the current target. When a block is found, the node validates it locally, adds it to the chain if valid, and broadcasts it to peers.

To stop solo mining in the CLI, press:

Mining rewards are not immediately spendable. They become spendable only after coinbase maturity.

Mining and device load

Mining uses computational resources. Carefully monitor CPU load, temperature, power usage, cooling, and the overall condition of your device.

Incorrect settings, excessive thread count, poor cooling, or long operation near hardware limits may lead to overheating, reduced performance, unstable operation, or hardware wear.

Before long mining sessions, it is recommended to:

  • monitor device temperature and load;
  • use reasonable thread and power settings;
  • make sure the cooling system works properly;
  • avoid leaving the device unattended if you are not confident in its stability.

Poollite mining

The CLI also supports Poollite mining.

In the CLI menu, choose:

15) Start Poollite mining

You will be asked for:

  • pool address
  • login/account address
  • number of mining threads

You can also provide the default pool host through an environment variable:

export POOL_HOST="host:port"

On Windows PowerShell:

$env:POOL_HOST="host:port"

The payout utility is available as:

./target/release/opstan_payout --db ./opstan_db --wallet ./wallet.json --payout-file ./payout.json

Dry run:

./target/release/opstan_payout --db ./opstan_db --wallet ./wallet.json --payout-file ./payout.json --dry-run

It is recommended to run payout operations when the main node is stopped, to avoid RocksDB access conflicts.


Wallet

The wallet is local. The user is responsible for protecting the wallet file and seed phrase.

Important rules:

  • Back up your seed phrase.
  • Do not publish wallet.json.
  • Do not commit wallet.json to GitHub.
  • Do not share your seed phrase.
  • Losing the wallet/seed can mean losing access to funds.

The CLI and GUI can show balances, pending operations, confirmed operations, transfers, and mining rewards.

Opstan uses atom units internally:

1 OPST = 1,000,000,000,000,000,000 atoms

Public channels

Public channels are one of the main social features of Opstan.

A channel message contains:

  • sender address
  • channel name
  • message payload
  • fee
  • nonce
  • signature

Channel names are limited to lowercase letters and digits:

Maximum channel name length:

Public messages are placed into the mempool first and then included in mined blocks.

Once included in the blockchain, a public message becomes part of the chain history.


P2P network

Opstan nodes communicate through a custom P2P layer.

The CLI full node opens a TCP P2P listener on the port selected at startup. By default, the CLI asks for a port, for example:

Which port should the node listen on? [1111]:

The node listens on that P2P port for incoming connections. If the port is open in the operating system firewall and forwarded on the router, other Opstan nodes can connect to it from the internet. If UPnP is enabled and supported by the router, the node may also try to open/map the selected port automatically.

On Windows, the firewall may ask whether to allow the Opstan executable to accept network connections. For a public node, allow the connection and make sure the chosen P2P port is reachable. For a private/local test node, keep the port closed or restrict it in the firewall.

IP address and network visibility

Opstan is a P2P network. For normal P2P operation, your IP address may be visible to the nodes you connect to. Your node address may also be shared through peer discovery, stored in peer lists, written into local node files, configuration files, or logs by other participants.

Opstan should not be presented as a network for hiding IP addresses. If hiding your IP address is important to you, use a VPN or other network-protection tools.

If port forwarding, UPnP, or manual port opening is enabled, other network participants may be able to connect to your node. If your port is closed, inbound connections are usually fewer or absent, but outbound connections may still reveal your IP address to the nodes you connect to.

The P2P layer supports:

  • peer connections
  • peer gossip
  • block propagation
  • tip exchange
  • block synchronization
  • mempool synchronization
  • inbound and outbound connection limits
  • basic rate limiting
  • self-connect prevention

Peers can be stored in:

Each line should contain a peer address in this format:

Example:

127.0.0.1:1111
example.com:1111
192.0.2.10:1111

For a public node, the selected P2P port must be reachable from the internet.


Consensus parameters

Some important current parameters:

Parameter Value
Target block time 600 seconds
Retarget interval 144 blocks
Retarget window 86,400 seconds
MTP window 11 blocks
Max future drift 2 hours
Coinbase maturity 100 blocks
Max block size 10 MB
Max total tx bytes per block 4 MB
Max total public message bytes per block 3 MB
Max total private-message-format bytes per block 2 MB
Mempool cap 80,000 items
Per-address mempool cap 50 items
Mempool TTL 12 blocks
Address size 32 bytes / 64 hex characters
Decimals 18

Block reward schedule:

Phase length Reward
52,560 blocks 240 OPST
210,240 blocks 120 OPST
210,240 blocks 60 OPST
210,240 blocks 30 OPST
210,240 blocks 15 OPST
210,240 blocks 8 OPST
210,240 blocks 4 OPST
210,240 blocks 2 OPST
after that 1 OPST forever

Do not change consensus-critical parameters after mainnet without a deliberate protocol upgrade/hard fork.

Consensus-critical files include:

src/params.rs
src/emission.rs
src/pow.rs
src/chain.rs
src/block.rs
src/tx.rs
src/merkle.rs
src/sig.rs
src/canonical.rs
src/wire.rs
src/types.rs

Environment variables

Useful environment variables:

Variable Purpose
OPSTAN_LOG_LEVEL Logging level: off, error, warn, info, debug, trace
OPSTAN_LOG_DIR Directory for rotating logs
POOL_HOST Default Poollite server address in CLI
OPSTAN_PEERS_FILE Path to peers file, default peers.txt
OPSTAN_PEERS_NC_FILE Path to non-connectable peers file, default peersnc.txt
OPSTAN_SELF_ADDR Force advertised public address, for example 1.2.3.4:1111
OPSTAN_UPNP Enable/disable UPnP port mapping. Example: false
OPSTAN_REQUIRE_UPNP Require UPnP success for public advertisement
OPSTAN_MAX_INBOUND Maximum inbound connections
OPSTAN_MAX_INBOUND_PER_IP Maximum inbound connections per IP
OPSTAN_MAX_OUTBOUND Maximum outbound connections
OPSTAN_CONNECT_TIMEOUT_SECS Outbound connection timeout
OPSTAN_RECONNECT_BACKOFFS Reconnect schedule, for example 30,60,120,300,3000
OPSTAN_MEMPOOL_MAX_BEHIND Skip mempool sync if too far behind peer tip
OPSTAN_MEMPOOL_SNAPSHOT_MAX_ITEMS Max mempool items per snapshot
OPSTAN_MEMPOOL_SNAPSHOT_MAX_BYTES Max mempool snapshot size

Example public node on Linux/macOS:

export OPSTAN_LOG_LEVEL=info
export OPSTAN_UPNP=true
export OPSTAN_SELF_ADDR="203.0.113.10:1111"
./target/release/opstan

Example public node on Windows PowerShell:

$env:OPSTAN_LOG_LEVEL="info"
$env:OPSTAN_UPNP="true"
$env:OPSTAN_SELF_ADDR="203.0.113.10:1111"
.\target\release\opstan.exe

If you do not want the node to try UPnP port mapping, set:

On Windows PowerShell:


Files created at runtime

These files/directories are local runtime data and should not be committed:

opstan_db/
wallet.json
wallet.json.locked
peers.txt
peersnc.txt
log1
log2
*.log
opstan_blocks_*.json
opstan_sent_*.json
opstan_payout_latest.json
payout.json

Recommended .gitignore:

/target/
/opstan_db/
/wallet.json
/wallet.json.locked
/wallet*.json
/peers.txt
/peersnc.txt
/log1
/log2
*.log
/opstan_blocks_*.json
/opstan_sent_*.json
/opstan_payout_latest.json
/payout.json
.DS_Store
Thumbs.db
.vscode/
.idea/
*.exe
*.pdb
*.dll
*.so
*.dylib

Security notes

  • This is experimental blockchain software.
  • Do not use funds you cannot afford to lose.
  • Always back up your wallet seed phrase.
  • Never publish private keys or seed phrases.
  • Do not commit local databases or wallets to GitHub.
  • Run mainnet builds in release mode.
  • Do not enable test/legacy features for mainnet releases.
  • Review consensus changes carefully.
  • Public channel messages are public and may be stored permanently.
  • IP addresses may be visible to connected peers in normal P2P operation.
  • Use VPN or other network-protection tools if you need additional IP privacy.
  • Mining can heavily load hardware; monitor temperature, cooling, and power usage.
  • Private/direct messages are not an official user-facing feature in the current build.

Development

Print consensus lock

cargo run --release --bin print_consensus_lock

Build only the GUI

cargo build --release --bin opstan-gui

Build only the CLI

cargo build -p opstan --release --no-default-features --features "mainnet cli" --locked --bin opstan

Build payout utility

cargo build --release --bin opstan_payout

Run with logs in a separate directory

mkdir -p logs
OPSTAN_LOG_DIR=./logs OPSTAN_LOG_LEVEL=info ./target/release/opstan

Contributing

Contributions are welcome, but consensus changes must be treated carefully.

Good contribution areas:

  • documentation
  • build instructions
  • tests
  • GUI improvements
  • explorer compatibility
  • P2P stability
  • wallet UX
  • performance optimization
  • code cleanup that does not change consensus behavior

High-risk areas:

  • block format
  • transaction format
  • reward schedule
  • PoW validation
  • retarget logic
  • signature validation
  • canonical encoding
  • merkle calculations
  • state transition rules

For high-risk changes, clearly explain whether the change is consensus-changing or non-consensus-changing.


Disclaimer

Opstan is experimental software. It is provided for research, development, and community testing. Nothing in this repository is financial advice, investment advice, or a promise of exchange listing, profit, or future value.