NodeZero Funchal Archipelago Mesh Network

Complete architecture and directory structure for the Funchal micro-economy deployment:

Documentation:
- README.md: Project overview, architecture, services, metrics, governance
- PRD.md: Product requirements document
- ARCHITECTURE.md: Multi-layered mesh architecture, node specs, topology
- GOVERNANCE.md: DAO model, treasury, voting, dispute resolution
- ROADMAP.md: Phased implementation plan (Months 1-24)
- DEPLOYMENT.md: Mesh network deployment guide

Services:
- mobility/: Decentralized ride-sharing
- housing/: Decentralized house-sharing
- logistics/: Local delivery network
- commerce/: Bitcoin-accepting businesses
- workforce/: Job boards, training, competency attestation
- governance/: Mesh services and decentralized operations

Infrastructure:
- infrastructure/: Mesh networks, archipelago nodes (200 nodes), internet
- config/: node.yml, mesh.yml, bitcoin.yml, profiles.yml, redis.yml
- docs/: Funchal service map, business onboarding, mobility plan
- scripts/: Deploy script
- .gitignore
This commit is contained in:
ssmithx
2026-06-25 15:11:27 -04:00
parent 22f39b19a5
commit 9bfa47be7e
23 changed files with 2696 additions and 2 deletions
+105
View File
@@ -0,0 +1,105 @@
# NodeZero - Bitcoin Integration Configuration
# Funchal, Madeira
bitcoin:
# Network
network: "mainnet" # or "testnet"
protocol: "Bitcoin"
lightning: true
# Node settings
node:
binary: "bitcoin"
version: "26.0"
data_dir: "/data/bitcoin"
wallet_path: "/data/bitcoin/wallet.dat"
# Core functionality
core:
transaction_type: "on-chain"
confirmation_blocks: 6
dust_threshold_sat: 546
fee_rate_sat_per_byte: 10
max_fee_rate_sat_per_byte: 100
# Lightning Network
lightning:
enabled: true
implementation: "LND"
grpc_port: 10009
rest_port: 8080
ws_port: 9735
alias: "NodeZeroFunchal"
color: "00FF00"
# Lightning channels
channels:
min_depth: 1
default_expiry: 144
reserve_sat: 10000
min_htlc_msat: 1
# Merchant capabilities
merchant:
pos_type: "qr-code"
supported_currencies: ["BTC", "USD", "EUR"]
auto_convert: true
settlement_currency: "EUR"
conversion_threshold_eur: 100
invoice_expiry_minutes: 60
min_payment_sat: 1
max_payment_sat: 10000
# Treasury
treasury:
type: "multi-sig"
min_balance_btc: 5.0
treasury_address: "bc1q..."
# Allocation percentages
allocation:
hardware: 40
operations: 25
incentives: 15
expansion: 10
contingency: 10
# Hedging
hedging:
enabled: true
stablecoin_ratio: 0.3
stablecoin_type: "USDC"
rebalance_threshold: 0.05
# Identity
identity:
type: "BIP-322"
did_prefix: "did:nodezero:funchal:"
resolver: "mesh.local/bitcoin"
# Fee structure
fees:
mesh_validation: 5
service_discovery: 1
credential_attestation: 2
job_posting: 3
vehicle_listing: 4
housing_listing: 3
merchant_txn_pct: 0.1
# Events
events:
subscription_topics:
- "transactions"
- "invoices"
- "treasury_updates"
- "fee_changes"
- "node_status"
webhook_url: "http://mesh.local:8080/bitcoin/webhook"
# Backup
backup:
frequency: "daily"
retention_days: 30
storage_location: "/data/bitcoin/backup"
sync_to_mesh: true
+128
View File
@@ -0,0 +1,128 @@
# NodeZero - Mesh Network Configuration
# Funchal, Madeira
mesh:
# Network-wide settings
name: "funchal-mesh"
version: "1.0.0"
network_id: "mesh.funchal.madeira"
# Geographic parameters
geography:
primary_coverage_km2: 15
target_coverage_km2: 75
urban_center_km2: 12
elevation_min_m: 0
elevation_max_m: 400
max_node_spacing_m: 50
# Coverage zones
zones:
A:
name: "Centro/Funchal"
area_km2: 2
node_count: 60
elevation_m: 50
fiber_connected: true
B:
name: "Zona Industrial"
area_km2: 3
node_count: 50
elevation_m: 100
fiber_connected: true
C:
name: "Zona Comercial"
area_km2: 3
node_count: 50
elevation_m: 75
fiber_connected: true
D:
name: "Porto"
area_km2: 2
node_count: 40
elevation_m: 10
fiber_connected: true
E:
name: "Zona Residencial Norte"
area_km2: 2
node_count: 40
elevation_m: 150
fiber_connected: false
F:
name: "Áreas Periféricas"
area_km2: 3
node_count: 60
elevation_m: 200
fiber_connected: false
# Protocol settings
protocols:
routing: "bgp-mpls"
consensus: "raft"
discovery: "gossip"
name_resolution: "mesh.local"
data_format: "protobuf"
service_bus: "event-sourced"
# Performance targets
performance:
latency_internal_ms: 20
latency_external_ms: 50
bandwidth_gbps: 1.0
redundancy_paths: 3
failover_ms: 500
max_node_count: 700
# Redundancy
redundancy:
paths_per_node: 3
failover_priority:
- "fiber"
- "cellular-a"
- "cellular-b"
- "satellite"
auto_heal: true
self_optimize: true
# Mesh services
services:
- name: "ride-sharing"
protocol: "mqtt"
port: 1883
mesh_routed: true
- name: "housing"
protocol: "grpc"
port: 50051
mesh_routed: true
- name: "delivery"
protocol: "coap"
port: 5683
mesh_routed: true
- name: "commerce"
protocol: "http"
port: 8080
mesh_routed: true
- name: "workforce"
protocol: "grpc"
port: 50052
mesh_routed: true
- name: "governance"
protocol: "grpc"
port: 50053
mesh_routed: true
- name: "health"
protocol: "mqtt"
port: 1884
mesh_routed: true
- name: "education"
protocol: "ws"
port: 8081
mesh_routed: true
# Security
security:
tls: true
mfa_required: true
certificate_policy: "mesh-ca"
key_rotation_days: 90
encryption: "AES-256-GCM"
+117
View File
@@ -0,0 +1,117 @@
# NodeZero - Archival Node Configuration
# Funchal, Madeira
# Node identification
node:
name: "nodezero-funchal"
id: "${NODE_ID}"
zone: "A" # Zone A-F
type: "core" # core, edge, gateway, micro
firmware_version: "1.0.0"
# Hardware
hardware:
cpu: "ARM64 8-core"
ram_gb: 32
storage_type: "RAID1/Btrfs"
storage_total_tb: 16
battery_capacity_ah: 100
solar_watts: 200
operating_voltage: "24V DC"
# Network
network:
mesh:
protocol: "mesh-overlay"
port: 9001
bootstrap_port: 9002
ssid: "NodeZero"
ipv6_prefix: "fd00:funchal::/48"
beacon_interval_ms: 500
ttl: 64
mtu: 1492
wifi:
standard: "WiFi 6"
channels: [36, 40, 44, 48]
max_stations: 256
lora:
frequency_mhz: 868
spreading_factors: [7, 8, 9, 10, 11, 12]
duty_cycle: 0.01
gateways:
- type: "fiber"
provider: "PT"
bandwidth_gbps: 1.0
latency_ms: 2
- type: "cellular"
provider: "MEO"
bandwidth_gbps: 0.5
latency_ms: 20
- type: "cellular"
provider: "NOS"
bandwidth_gbps: 0.5
latency_ms: 25
- type: "satellite"
provider: "Starlink"
bandwidth_gbps: 0.3
latency_ms: 50
# Storage
storage:
partition_scheme: "btrfs"
backup_policy: "mirror"
retention_days: 90
compression: true
encryption: true
mount_points:
- "/data/mesh"
- "/data/db"
- "/data/logs"
- "/data/cache"
# Service mesh
service_mesh:
enabled: true
discovery_protocol: "gossip"
load_balancing: "round-robin"
circuit_breaker:
enabled: true
threshold: 5
timeout_ms: 3000
# Power management
power:
mode: "solar-primary"
sleep_threshold: "500ms load"
wake_threshold: "100ms load"
auto_sleep: true
auto_wake: true
# Monitoring
monitoring:
enabled: true
heartbeat_interval_s: 30
metrics_collected:
- cpu_usage
- memory_usage
- disk_usage
- network_latency
- packet_loss
- power_level
- node_temperature
alert_thresholds:
cpu_warning: 80
cpu_critical: 95
temp_warning: 65
temp_critical: 80
power_warning: 30
power_critical: 10
# Security
security:
tls: true
tls_version: "1.3"
certificate_authority: "mesh-ca-nodezero"
key_rotation_days: 90
bitcoin_did: true
role_based_access: true
+109
View File
@@ -0,0 +1,109 @@
# NodeZero - User and Service Profiles
# Funchal, Madeira
profiles:
# Resident profile
resident:
type: "resident"
requirements:
- "Funchal address"
- "Mesh identity"
- "BTC wallet"
benefits:
- "Node voting rights"
- "Discounted services"
- "Staking rewards"
staking:
min_tokens: 100
max_tokens: 10000
reward_rate: 0.05
lockup_days: 30
# Business profile
business:
type: "merchant"
categories:
- "restaurants"
- "retail"
- "hotels"
- "healthcare"
- "education"
- "tourism"
- "transportation"
requirements:
- "Active business license"
- "Mesh verification"
- "BTC/Lightning capability"
fees:
onboarding_eur: 50
yearly_fee_eur: 100
transaction_fee_pct: 0.1
benefits:
- "Lightning POS"
- "On-chain receipts"
- "Mesh verification badge"
- "Treasury discounts"
# Worker profile
worker:
type: "worker"
categories:
- "healthcare"
- "hospitality"
- "technology"
- "trades"
- "logistics"
attestation_supported: true
credential_types:
- "skill"
- "certification"
- "license"
- "badge"
benefits:
- "On-chain credentials"
- "Job matching"
- "Lightning payroll"
- "Community voting"
# Tourist profile
tourist:
type: "tourist"
pass_types:
"daily":
duration_days: 1
price_btc: 1000 # 1000 satoshis
features: ["rides", "wifi", "basic_services"]
"weekly":
duration_days: 7
price_btc: 6000
features: ["all_tourist_services", "rides", "wifi", "discovery"]
"monthly":
duration_days: 30
price_btc: 20000
features: ["all_services", "rides", "wifi", "discovery", "delivery"]
# Provider profile
provider:
type: "service_provider"
services:
- "ride"
- "housing"
- "delivery"
- "healthcare"
- "education"
requirements:
- "Mesh identity"
- "Service license"
- "Minimum rating 4.0"
# Node validator profile
validator:
type: "node_validator"
requirements:
- "Minimum stake 100 NFTZ"
- "Node uptime >99%"
- "Valid mesh certificate"
rewards:
staking_rate: 0.05
validation_fee: 2
bonus_multiplier: 1.2
+22
View File
@@ -0,0 +1,22 @@
# NodeZero Redis Configuration Template
redis:
host: localhost
port: 6379
password: "${REDIS_PASSWORD}"
db: 0
# Cache configuration
cache:
default_ttl: 3600
max_memory: 4gb
eviction_policy: allkeys-lru
# Mesh connection
mesh:
enabled: true
connection_timeout_ms: 5000
# Persistence
persistence:
save: "60 1"
appendfile: "appendonly.aof"