A complete blockchain implementation featuring: - synord: Full node with GHOSTDAG consensus - explorer-web: Modern React blockchain explorer with 3D DAG visualization - CLI wallet and tools - Smart contract SDK and example contracts (DEX, NFT, token) - WASM crypto library for browser/mobile
3.3 KiB
3.3 KiB
Phase 3, Milestone 1: Testnet Deployment
Deploy and configure the public testnet
Status: ✅ Complete
Priority: High
Components: synord, faucet, explorer
Overview
Deploy a public testnet with seed nodes, faucet for test tokens, and block explorer for transparency.
Tasks
Task 1.1: Network Parameters
- Configure testnet chain ID (1)
- Set block time (100ms)
- Configure K parameter (18)
- Set pruning parameters
- Configure difficulty adjustment
Files:
crates/synor-network/src/config.rsapps/synord/src/config.rs
Task 1.2: Seed Node Deployment
- Deploy 3 geographically distributed nodes
- Configure DNS entries (seed1/2/3.synor.cc)
- Generate node peer IDs
- Add bootstrap addresses to config
Infrastructure:
- seed1.synor.cc - US East
- seed2.synor.cc - EU West
- seed3.synor.cc - Asia Pacific
Files:
crates/synor-network/src/config.rs(bootstrap_peers)
Task 1.3: Testnet Faucet
- Implement faucet web service
- Rate limiting (1 request per address per 24h)
- Cooldown tracking
- HTML UI for web requests
- API endpoints for programmatic access
- Statistics tracking
Files:
apps/faucet/src/main.rs(665 lines)
Endpoints:
GET /- HTML UIPOST /api/claim- Request tokensGET /api/stats- Faucet statistics
Validation:
curl https://faucet.synor.cc/api/claim -X POST \
-H "Content-Type: application/json" \
-d '{"address":"synor:qz..."}'
Task 1.4: Block Explorer Backend
- Block queries by hash/height
- Transaction queries
- Address balance and history
- DAG visualization data
- Network statistics
- Search functionality
Files:
apps/explorer/src/main.rs(1134 lines)
API Endpoints:
GET /api/block/:hashGET /api/tx/:hashGET /api/address/:addrGET /api/dagGET /api/statsGET /api/search
Validation
Validation Commands
# Test seed node connectivity
nc -zv seed1.synor.cc 16111
nc -zv seed2.synor.cc 16111
nc -zv seed3.synor.cc 16111
# Test faucet
curl https://faucet.synor.cc/api/stats
# Test explorer
curl https://explorer.synor.cc/api/stats
Validation Agents
| Agent | Purpose |
|---|---|
code-reviewer |
Review faucet/explorer code |
silent-failure-hunter |
Check error handling |
Load Testing
# Faucet rate limiting test
for i in {1..10}; do
curl -s https://faucet.synor.cc/api/claim -X POST \
-H "Content-Type: application/json" \
-d '{"address":"synor:qztest'$i'"}'
done
# Should see rate limiting after first request per address
Security Checks
- Faucet rate limiting prevents abuse
- Explorer sanitizes user input (search)
- HTTPS enforced on all endpoints
- CORS properly configured
- No sensitive data exposed
Monitoring
| Metric | Target | Alert Threshold |
|---|---|---|
| Seed node uptime | 99.9% | <99% |
| Faucet response time | <500ms | >1s |
| Explorer response time | <200ms | >500ms |
| Block sync lag | <10 blocks | >50 blocks |
Acceptance Criteria
- All 3 seed nodes online and synced
- Faucet dispenses tokens correctly
- Explorer shows real-time data
- Rate limiting working
- All services have health checks
Completed: January 2025