Managing Localnet

Control your local bwickchain with bwick localnet commands.

Start Localnet

bwick localnet start
Starting BWICK localnet...

Initializing chain...
Creating test accounts...
Starting node...

Localnet Started!

RPC:  http://localhost:26657
REST: http://localhost:1317
gRPC: localhost:9090

Test Accounts:
  alice   bwick1alice...  1,000,000 BWICK
  bob     bwick1bob...    500,000 BWICK

Use 'bwick localnet stop' to stop the network

Options

FlagDescriptionDefault
--backgroundRun in backgroundfalse
--resetClear existing data firstfalse

Run in Background

bwick localnet start --background
Logs are written to ~/.bwick-localnet/node.log.

Fresh Start

Clear existing data and start fresh:
bwick localnet start --reset

Check Status

bwick localnet status
Localnet Status: Running

Node:     PID 12345
Uptime:   2h 34m
Block:    1,234

Endpoints:
  RPC:  http://localhost:26657 ✓
  REST: http://localhost:1317  ✓
  gRPC: localhost:9090         ✓

Accounts:
  alice   bwick1alice...   998,500 BWICK
  bob     bwick1bob...     500,000 BWICK
Localnet Status: Stopped

No localnet is currently running.
Run 'bwick localnet start' to start one.

Stop Localnet

bwick localnet stop
Stopping BWICK localnet...

Node stopped (PID 12345)
Localnet stopped successfully.

Data preserved in ~/.bwick-localnet/
Run 'bwick localnet start' to resume.

Options

FlagDescriptionDefault
--cleanAlso remove all datafalse

Stop and Clean

Remove all data when stopping:
bwick localnet stop --clean

View Logs

When running in background:
# Follow logs
tail -f ~/.bwick-localnet/node.log

# Last 100 lines
tail -100 ~/.bwick-localnet/node.log

# Search for errors
grep -i error ~/.bwick-localnet/node.log

Lifecycle

┌─────────────────────────────────────────────────────────┐
│                   Localnet Lifecycle                    │
└─────────────────────────────────────────────────────────┘

   ┌──────────┐    bwick localnet start    ┌─────────┐
   │ Stopped  │ ───────────────────────▶ │ Running │
   └──────────┘                          └─────────┘
        ▲                                     │
        │           bwick localnet stop         │
        └─────────────────────────────────────┘

   State persists between stop/start (unless --reset or --clean)

Common Workflows

Development Session

# Morning: Start localnet
bwick localnet start --background

# Work...deploy contracts, test, etc.

# Evening: Stop localnet
bwick localnet stop

Quick Reset

# Something went wrong, start fresh
bwick localnet stop --clean
bwick localnet start

Check Health

# Is localnet running?
bwick localnet status

# Can I reach the RPC?
curl http://localhost:26657/status

# What block are we on?
curl http://localhost:26657/status | jq '.result.sync_info.latest_block_height'

Environment Integration

With Scripts

#!/bin/bash

# Ensure localnet is running
if ! bwick localnet status | grep -q "Running"; then
  echo "Starting localnet..."
  bwick localnet start --background
  sleep 5  # Wait for startup
fi

# Run tests
./run-tests.sh

# Optionally stop
# bwick localnet stop

With Make

.PHONY: localnet-start localnet-stop test

localnet-start:
	bwick localnet start --background

localnet-stop:
	bwick localnet stop

test: localnet-start
	./run-tests.sh

With Docker Compose

If you prefer Docker:
version: '3'
services:
  bwick-localnet:
    image: bwick-chain:latest
    ports:
      - "26657:26657"
      - "1317:1317"
      - "9090:9090"
    volumes:
      - bwick-data:/root/.bwick
volumes:
  bwick-data:

Troubleshooting

Another process is using required ports:
# Find what's using port 26657
lsof -i :26657

# Kill it
kill -9 <PID>

# Or check for zombie localnet
bwick localnet stop
Check data directory permissions:
ls -la ~/.bwick-localnet/

# Fix if needed
chmod -R 755 ~/.bwick-localnet/
Check logs for errors:
cat ~/.bwick-localnet/node.log | tail -50
Often fixed by resetting:
bwick localnet start --reset
The node process may be stuck:
# Force stop
bwick localnet stop

# Kill any remaining processes
pkill -f bwickd

# Start fresh
bwick localnet start --reset

Advanced Configuration

Custom Genesis

To customize genesis parameters:
# Stop localnet
bwick localnet stop

# Edit genesis
vim ~/.bwick-localnet/config/genesis.json

# Start with existing config
bwick localnet start

Custom Ports

Edit ~/.bwick-localnet/config/config.toml:
[rpc]
laddr = "tcp://0.0.0.0:26657"

[p2p]
laddr = "tcp://0.0.0.0:26656"
And ~/.bwick-localnet/config/app.toml:
[api]
address = "tcp://0.0.0.0:1317"

[grpc]
address = "0.0.0.0:9090"