Phase 1: Running a Stellar Testnet Node — Step-by-Step Guide
Overview
This phase was all about understanding how Stellar nodes work, deploying a testnet node using Docker, and exposing the Horizon API for educational and diagnostic purposes. While this setup doesn’t generate income, it’s a powerful way to learn blockchain architecture and prepare for more advanced node hosting.
Step 1: Prepare Your Environment
✅ System Requirements
- OS: Windows 10/11 (64-bit) or Linux/macOS
- RAM: 4 GB minimum
- Docker Desktop installed and running
- WSL 2 enabled (for Windows users)
️ Install Docker (Windows)
- Download Docker Desktop from
- Enable WSL 2 backend during installation
- Reboot and verify with:
bash
docker --version
Step 2: Pull the Stellar Quickstart Image
This image includes stellar-core
, horizon
, and all dependencies.
docker pull stellar/quickstart
Tip: If you’re behind CG-NAT or using T-Mobile 5G Home Internet, this setup will still work locally but won’t expose your node externally.
Step 3: Launch the Testnet Node
Run the container with testnet configuration and expose Horizon on port 8000:
docker run -it -p 8000:8000 stellar/quickstart --testnet
What This Does:
- Starts
stellar-core
in testnet mode - Syncs with Stellar’s testnet ledger
- Launches Horizon API server at
http://localhost:8000
Step 4: Verify Node Sync and Health
Inside the container, you can run diagnostic commands:
stellar-core http-command 'info'
Expected output:
{
"info": {
"state": "Synced!",
"ledger": 123456,
"network": "Test SDF Network ; September 2015"
}
}
If you see
"state": "Catching up"
for a long time, check your internet connection or container logs.
Step 5: Explore Horizon API
Use a browser or Postman to query the Horizon API:
- Ledger Info:
http://localhost:8000/ledgers?order=desc&limit=1
- Account Lookup:
http://localhost:8000/accounts/{public_key}
- Transaction History:
http://localhost:8000/transactions?limit=10
These endpoints are great for building dashboards or integrating with educational tools.
Step 6: Troubleshooting Tips
Issue | Cause | Fix |
---|---|---|
docker: command not found |
Docker not installed | Install Docker Desktop |
Horizon not reachable | Port not exposed | Check -p 8000:8000 in run command |
Node stuck on “Catching up” | Ledger sync delay | Wait or restart container |
WSL version error | Docker backend issue | Update WSL with wsl --update |
Optional: Add Visuals
If you’re blogging this, consider adding:
- Screenshot of Docker container logs showing “Synced!”
- Diagram of Stellar architecture (Core ↔ Horizon ↔ Client)
- Postman request/response examples
What I Learned
- Stellar nodes are educational but not monetizable
- Horizon is a read-only API layer, not a dashboard
- Docker makes node deployment fast and replicable
- This setup is ideal for tutorials, API demos, and blockchain education