// Copyright (C) 2019 Storj Labs, Inc. // See LICENSE for copying information. syntax = "proto3"; option go_package = "storj.io/common/pb"; package node; import "gogo.proto"; import "google/protobuf/timestamp.proto"; // TODO move statdb.Update() stuff out of here // Node represents a node in the overlay network // Node is info for a updating a single storagenode, used in the Update rpc calls message Node { bytes id = 1 [(gogoproto.customtype) = "NodeID", (gogoproto.nullable) = false]; NodeAddress address = 2; reserved 3 to 13; string deprecated_last_ip = 14 [deprecated=true]; reserved "type", "restrictions", "reputation", "metadata", "latency_list", "audit_success", "is_up", "update_latency", "update_audit_success", "update_uptime", "version"; } // NodeType is an enum of possible node types enum NodeType { INVALID = 0; SATELLITE = 1; STORAGE = 2; UPLINK = 3; BOOTSTRAP = 4 [deprecated=true]; } // NodeAddress contains the information needed to communicate with a node on the network message NodeAddress { NodeTransport transport = 1; string address = 2; } // NodeTransport is an enum of possible transports for the overlay network enum NodeTransport { TCP_TLS_GRPC = 0; } // NodeOperator contains info about the storage node operator message NodeOperator { string email = 1; string wallet = 2; } // NodeCapacity contains all relevant data about a nodes ability to store data message NodeCapacity { int64 free_bandwidth = 1 [deprecated=true]; int64 free_disk = 2; } // Deprecated: use NodeOperator instead message NodeMetadata { string email = 1; string wallet = 2; } // Deprecated: use NodeCapacity instead message NodeRestrictions { int64 free_bandwidth = 1; int64 free_disk = 2; } // NodeVersion contains message NodeVersion { string version = 1; // must be semver formatted string commit_hash = 2; google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; bool release = 4; }