// Copyright (C) 2019 Storj Labs, Inc. // See LICENSE for copying information. package rpc import ( "net" "storj.io/common/storj" ) var ( knownNodeIDs = map[string]storj.NodeID{} ) func init() { // !!!! NOTE !!!! // // These exist for backwards compatibility. // // Do not add more here, any new satellite MUST use node ID, // Adding new satellites here will break forwards compatibility. for _, nodeURL := range []string{ "12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S@us-central-1.tardigrade.io:7777", "12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S@mars.tardigrade.io:7777", "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6@asia-east-1.tardigrade.io:7777", "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6@saturn.tardigrade.io:7777", "12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs@europe-west-1.tardigrade.io:7777", "12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs@jupiter.tardigrade.io:7777", "118UWpMCHzs6CvSgWd9BfFVjw5K9pZbJjkfZJexMtSkmKxvvAW@satellite.stefan-benten.de:7777", "1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE@saltlake.tardigrade.io:7777", } { url, err := storj.ParseNodeURL(nodeURL) if err != nil { panic(err) } knownNodeIDs[url.Address] = url.ID host, _, err := net.SplitHostPort(url.Address) if err != nil { panic(err) } knownNodeIDs[host] = url.ID } } // KnownNodeID looks for a well-known node id for a given address. func KnownNodeID(address string) (id storj.NodeID, known bool) { id, known = knownNodeIDs[address] if !known { host, _, err := net.SplitHostPort(address) if err != nil { return id, false } id, known = knownNodeIDs[host] } return id, known }