1// Copyright (C) 2019 Storj Labs, Inc. 2// See LICENSE for copying information. 3 4syntax = "proto3"; 5option go_package = "storj.io/common/pb"; 6 7package node; 8 9import "gogo.proto"; 10import "google/protobuf/timestamp.proto"; 11 12// Node represents a node in the overlay network. 13// Node is info for a updating a single storagenode, used in the Update rpc calls. 14message Node { 15 bytes id = 1 [(gogoproto.customtype) = "NodeID", (gogoproto.nullable) = false]; 16 NodeAddress address = 2; 17 reserved 3 to 13; 18 string deprecated_last_ip = 14 [deprecated=true]; 19 reserved "type", "restrictions", "reputation", "metadata", "latency_list", "audit_success", "is_up", "update_latency", "update_audit_success", "update_uptime", "version"; 20} 21 22// NodeType is an enum of possible node types. 23enum NodeType { 24 INVALID = 0; 25 SATELLITE = 1; 26 STORAGE = 2; 27 UPLINK = 3; 28 BOOTSTRAP = 4 [deprecated=true]; 29} 30 31// NodeAddress contains the information needed to communicate with a node on the network. 32message NodeAddress { 33 NodeTransport transport = 1; 34 string address = 2; 35} 36 37// NodeTransport is an enum of possible transports for the overlay network. 38enum NodeTransport { 39 TCP_TLS_GRPC = 0; 40} 41 42// NodeOperator contains info about the storage node operator. 43message NodeOperator { 44 string email = 1; 45 string wallet = 2; 46 repeated string wallet_features = 3; 47} 48 49// NodeCapacity contains all relevant data about a nodes ability to store data. 50message NodeCapacity { 51 int64 free_bandwidth = 1 [deprecated=true]; 52 int64 free_disk = 2; 53} 54 55// Deprecated: use NodeOperator instead. 56message NodeMetadata { 57 string email = 1; 58 string wallet = 2; 59} 60 61// Deprecated: use NodeCapacity instead. 62message NodeRestrictions { 63 int64 free_bandwidth = 1; 64 int64 free_disk = 2; 65} 66 67// NodeVersion contains version information about a node. 68message NodeVersion { 69 string version = 1; // must be semver formatted 70 string commit_hash = 2; 71 google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; 72 bool release = 4; 73} 74