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:
@@ -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
@@ -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
@@ -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
|
||||
@@ -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
|
||||
@@ -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"
|
||||
Reference in New Issue
Block a user