syntax = "proto3"; package ethereum.eth.v1alpha1; import "google/api/annotations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; option go_package = "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1;eth"; // Node service API // // Node service provides general information about the node itself, the services // it supports, chain information and node version. service Node { // Retrieve the current network sync status of the node. rpc GetSyncStatus(google.protobuf.Empty) returns (SyncStatus) { option (google.api.http) = { get: "/eth/v1alpha1/node/syncing" }; } // Retrieve information about the genesis of Ethereum 2.0. rpc GetGenesis(google.protobuf.Empty) returns (Genesis) { option (google.api.http) = { get: "/eth/v1alpha1/node/genesis" }; } // Retrieve information about the running Ethereum 2.0 node. rpc GetVersion(google.protobuf.Empty) returns (Version) { option (google.api.http) = { get: "/eth/v1alpha1/node/version" }; } // Retrieve the list of services implemented and enabled by this node. // // Any service not present in this list may return UNIMPLEMENTED or // PERMISSION_DENIED. The server may also support fetching services by grpc // reflection. rpc ListImplementedServices(google.protobuf.Empty) returns (ImplementedServices) { option (google.api.http) = { get: "/eth/v1alpha1/node/services" }; } } // Information about the current network sync status of the node. message SyncStatus { // Whether or not the node is currently syncing. bool syncing = 1; } // Information about the genesis of Ethereum 2.0. message Genesis { // UTC time specified in the chain start event in the deposit contract. google.protobuf.Timestamp genesis_time = 1; // Address of the deposit contract in the Ethereum 1 chain. bytes deposit_contract_address = 2; } // Information about the node version. message Version { // A string that uniquely identifies the node and its version. string version = 1; // Additional metadata that the node would like to provide. This field may // be used to list any meaningful data to the client. string metadata = 2; } message ImplementedServices { repeated string services = 1; }