Bitcoin Devnet

Private Bitcoin Signet network with 10-second blocks for rapid development

Production MIT License Signet

Overview

Bitcoin Devnet is a private Bitcoin Signet network designed for rapid application development and testing. Unlike public testnets or regtest, Devnet provides a realistic peer-to-peer network environment with automatic 10-second block generation, simulating real-world blockchain behavior including network latency, mempool dynamics, and block propagation.

Built on Bitcoin Signet (BIP 325), Devnet uses signature-based block validation instead of proof-of-work, enabling predictable block times while maintaining realistic network topology. The network consists of 3 interconnected Bitcoin Core nodes (node1, node2, node3) running on Fly.io infrastructure, with a Spring Boot controller service managing automated block generation.

Perfect for developers building wallets, payment processors, Lightning applications, or testing transaction broadcasting, mempool behavior, and multi-node synchronization without waiting for unpredictable testnet confirmations.

Why Devnet Instead of Regtest or Testnet?

  • Predictable Block Times: Blocks generated every 10 seconds automatically - no manual mining required. Send a transaction at 12:34:25, expect confirmation at 12:34:35.
  • Real Network Topology: 3-node peer-to-peer network simulates realistic block propagation, mempool broadcasting, and network latency (unlike single-node regtest).
  • Controlled Environment: Private Signet network isolated from public testnet chaos - no spam, no reorgs, no waiting for blocks.
  • Automated Management: REST API controller handles block generation automatically - focus on your application, not infrastructure.
  • Production-Like Testing: Test multi-node scenarios, transaction propagation, and mempool behavior in a realistic but controlled environment.

Network Architecture

The Devnet consists of 4 components running on Fly.io:

  • bitcoin-devnet-node1 (Alpha): Primary Bitcoin Core 27.0 Signet node with RPC enabled
  • bitcoin-devnet-node2 (Beta): Relay node connected to node1 and node3
  • bitcoin-devnet-node3 (Gamma): Relay node connected to node1 and node2
  • mnemore-devnet: Spring Boot controller service that calls generatetoaddress RPC every 10 seconds

All nodes use a deterministic signetchallenge generated from seed mnemore-devnet: 5121020e75a502400f97083b195342e58519c6a532d89e6f1fd016e5505c4186da6251ae

Technical Specifications

Network Type
Bitcoin Signet (BIP 325)
Block Interval
10 seconds (automated)
Nodes
3 Bitcoin Core 27.0 nodes
Infrastructure
Fly.io (Frankfurt region)
Controller
Spring Boot 3.2 + Kotlin
RPC Port
38332
P2P Port
38333
License
MIT
Status
Production (v1.0.0)

Devnet Controller API

The mnemore-devnet service provides a REST API for monitoring and controlling the network. Block generation runs automatically every 10 seconds, but you can also control it manually.

Base URL: https://mnemore-devnet.fly.dev

Monitoring Endpoints

# Check mining status and block count
curl https://mnemore-devnet.fly.dev/api/devnet/status

# Response:
{
  "isMining": true,
  "blockCount": 1523,
  "lastBlockTime": "2025-10-28T14:23:35Z",
  "blockIntervalSeconds": 10,
  "miningAddress": "tb1q..."
}

# Get blockchain information
curl https://mnemore-devnet.fly.dev/api/devnet/blockchain/info

# Get connected peers (should show 2 peers)
curl https://mnemore-devnet.fly.dev/api/devnet/peers

# Get network information
curl https://mnemore-devnet.fly.dev/api/devnet/network/info

Control Endpoints

# Mine a single block immediately
curl -X POST https://mnemore-devnet.fly.dev/api/devnet/mine-block

# Stop automatic block generation
curl -X POST https://mnemore-devnet.fly.dev/api/devnet/stop-mining

# Start automatic block generation
curl -X POST https://mnemore-devnet.fly.dev/api/devnet/start-mining

# View current configuration
curl https://mnemore-devnet.fly.dev/api/devnet/config

Roadmap

v0.1 - Signet Network

3-node Bitcoin Signet network with custom challenge

Completed Q4 2024

v0.2 - Automated Mining

Spring Boot controller with 10-second block generation

Completed Q4 2024

v1.0 - Production Release

REST API, monitoring, Fly.io deployment

Completed Q1 2025

v1.1 - Enhanced Monitoring

Prometheus metrics, Grafana dashboards, alerting

In Progress Q1 2025

v2.0 - Network Simulation

Configurable latency, partition simulation, chaos testing

Planned Q2 2025

Using the Devnet

Connect to any of the three nodes via RPC to broadcast transactions, query the blockchain, or test your application:

# Connect to node1 (primary)
bitcoin-cli -signet -rpcconnect=bitcoin-devnet-node1.fly.dev \
  -rpcport=38332 -rpcuser=bitcoin -rpcpassword=*** \
  getblockchaininfo

# Broadcast a transaction
bitcoin-cli -signet -rpcconnect=bitcoin-devnet-node1.fly.dev \
  -rpcport=38332 -rpcuser=bitcoin -rpcpassword=*** \
  sendrawtransaction <hex>

# Transaction will be included in next block (within 10 seconds)
# Example: Send at 14:23:25 β†’ Confirmed at 14:23:35

# Check mempool
curl https://mnemore-devnet.fly.dev/api/devnet/mempool/info

# Watch blocks being generated in real-time
watch -n 1 'curl -s https://mnemore-devnet.fly.dev/api/devnet/status | jq .blockCount'

Testing Scenarios

  • Transaction Broadcasting: Send transactions to node1, verify they propagate to node2 and node3 within seconds
  • Mempool Behavior: Test transaction replacement (RBF), fee estimation, and mempool eviction
  • Block Propagation: Verify blocks generated on node1 reach node2 and node3 within 1-2 seconds
  • Multi-Node Sync: Test wallet synchronization across multiple nodes
  • Predictable Timing: Build time-sensitive applications knowing exactly when blocks will arrive