package config import ( "os" ) // Config 保存服务运行所需的通用配置。 // MVP 阶段从环境变量加载,缺省值适配本地开发。 type Config struct { APIAddr string ChainAddr string HashAddr string PostgresDSN string RedisAddr string // ChainBackend 选择链实现:memory(纯内存)| pg(内存+PG镜像)| chainmaker(真实链,需 -tags chainmaker 构建) ChainBackend string // ChainMakerSDKConf ChainMaker Go SDK 配置文件路径(节点地址/TLS/组织证书),仅 chainmaker 后端使用 ChainMakerSDKConf string } func getEnv(key, def string) string { if v := os.Getenv(key); v != "" { return v } return def } // Load 从环境变量加载配置。 func Load() Config { return Config{ APIAddr: getEnv("TCS_API_ADDR", ":8080"), ChainAddr: getEnv("TCS_CHAIN_ADDR", ":8081"), HashAddr: getEnv("TCS_HASH_ADDR", ":8082"), PostgresDSN: getEnv("TCS_POSTGRES_DSN", "postgres://postgres@localhost:5432/tcs_iptv?sslmode=disable"), RedisAddr: getEnv("TCS_REDIS_ADDR", "localhost:6379"), // 默认 pg:PG 可用则内存+镜像持久化,不可用自动回退内存(见 api-svc 装配) ChainBackend: getEnv("TCS_CHAIN_BACKEND", "pg"), ChainMakerSDKConf: getEnv("TCS_CHAINMAKER_SDK_CONF", "deploy/chainmaker/sdk_config.yml"), } }