package meshseed import "time" // MeshSeed 组网凭证 - 按照 README 5.1 节定义 type MeshSeed struct { // ===== 必选参数 ===== NetworkName string `json:"networkName"` // 组网名称 NetworkSecret string `json:"networkSecret"` // 高熵密钥,派生 NetworkID(绝不公开) Subnet string `json:"subnet"` // CIDR 格式,如 10.0.0.0/24 IssuerNodeID string `json:"issuerNodeId"` // 签发者节点 ID(对应 Ed25519 公钥) // ===== 可选参数 ===== MaxUses int `json:"maxUses,omitempty"` // 最大使用次数(默认 10) ExpiresInHours int `json:"expiresInHours,omitempty"` // 有效期小时数(默认 168 = 7 天) Permissions uint32 `json:"permissions,omitempty"` // 权限位掩码 BootstrapPeers []string `json:"bootstrapPeers,omitempty"` // 初始引导节点列表 TURNServers []TURNRef `json:"turnServers,omitempty"` // TURN 服务器引用 DDNSEnabled bool `json:"ddnsEnabled,omitempty"` // 是否允许 DDNS 同步 UpdateVersion int `json:"updateVersion,omitempty"` // 配置版本号(默认 0) // ===== 自动生成 ===== SeedID string `json:"seedId"` // 16 字节随机 Base64 NetworkID uint64 `json:"networkId"` // ❄️ 雪花算法 ID(原为 string,v2.1.0 改为 uint64) IssuedAt time.Time `json:"issuedAt"` // 签发时间戳 ExpiresAt time.Time `json:"expiresAt"` // 过期时间戳 Signature []byte `json:"signature"` // Ed25519 签名 } // TURNRef TURN 服务器引用 type TURNRef struct { Address string `json:"address"` Port int `json:"port"` Username string `json:"username"` Password string `json:"password"` Realm string `json:"realm,omitempty"` }