mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2025-01-03 17:44:29 +00:00
121 lines
3.3 KiB
Protocol Buffer
121 lines
3.3 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
import "types/types.proto";
|
|
|
|
package remote;
|
|
|
|
option go_package = "./remote;remote";
|
|
|
|
service ETHBACKEND {
|
|
rpc Etherbase(EtherbaseRequest) returns (EtherbaseReply);
|
|
|
|
rpc NetVersion(NetVersionRequest) returns (NetVersionReply);
|
|
|
|
// ProtocolVersion returns the Ethereum protocol version number (e.g. 66 for ETH66).
|
|
rpc ProtocolVersion(ProtocolVersionRequest) returns (ProtocolVersionReply);
|
|
|
|
// ClientVersion returns the Ethereum client version string using node name convention (e.g. TurboGeth/v2021.03.2-alpha/Linux).
|
|
rpc ClientVersion(ClientVersionRequest) returns (ClientVersionReply);
|
|
|
|
rpc Subscribe(SubscribeRequest) returns (stream SubscribeReply);
|
|
|
|
// GetWork returns a work package for external miner.
|
|
//
|
|
// The work package consists of 3 strings:
|
|
// result[0] - 32 bytes hex encoded current block header pow-hash
|
|
// result[1] - 32 bytes hex encoded seed hash used for DAG
|
|
// result[2] - 32 bytes hex encoded boundary condition ("target"), 2^256/difficulty
|
|
// result[3] - hex encoded block number
|
|
rpc GetWork(GetWorkRequest) returns (GetWorkReply);
|
|
|
|
// SubmitWork can be used by external miner to submit their POW solution.
|
|
// It returns an indication if the work was accepted.
|
|
// Note either an invalid solution, a stale work a non-existent work will return false.
|
|
rpc SubmitWork(SubmitWorkRequest) returns (SubmitWorkReply);
|
|
|
|
// SubmitHashRate can be used for remote miners to submit their hash rate.
|
|
// This enables the node to report the combined hash rate of all miners
|
|
// which submit work through this node.
|
|
//
|
|
// It accepts the miner hash rate and an identifier which must be unique
|
|
// between nodes.
|
|
rpc SubmitHashRate(SubmitHashRateRequest) returns (SubmitHashRateReply);
|
|
|
|
// GetHashRate returns the current hashrate for local CPU miner and remote miner.
|
|
rpc GetHashRate(GetHashRateRequest) returns (GetHashRateReply);
|
|
|
|
// Mining returns an indication if this node is currently mining and it's mining configuration
|
|
rpc Mining(MiningRequest) returns (MiningReply);
|
|
}
|
|
|
|
enum Event {
|
|
HEADER = 0;
|
|
PENDING_LOGS = 1;
|
|
PENDING_BLOCK = 2;
|
|
}
|
|
|
|
message EtherbaseRequest {}
|
|
|
|
message EtherbaseReply { types.H160 address = 1; }
|
|
|
|
message NetVersionRequest {}
|
|
|
|
message NetVersionReply { uint64 id = 1; }
|
|
|
|
message ProtocolVersionRequest {}
|
|
|
|
message ProtocolVersionReply { uint64 id = 1; }
|
|
|
|
message ClientVersionRequest {}
|
|
|
|
message ClientVersionReply { string nodeName = 1; }
|
|
|
|
message SubscribeRequest {
|
|
Event type = 1;
|
|
}
|
|
|
|
message SubscribeReply {
|
|
Event type = 1;
|
|
bytes data = 2; // serialized data
|
|
}
|
|
|
|
message GetWorkRequest {}
|
|
|
|
message GetWorkReply {
|
|
string headerHash = 1; // 32 bytes hex encoded current block header pow-hash
|
|
string seedHash = 2; // 32 bytes hex encoded seed hash used for DAG
|
|
string target = 3; // 32 bytes hex encoded boundary condition ("target"), 2^256/difficulty
|
|
string blockNumber = 4; // hex encoded block number
|
|
}
|
|
|
|
message SubmitWorkRequest {
|
|
bytes blockNonce = 1;
|
|
bytes powHash = 2;
|
|
bytes digest = 3;
|
|
}
|
|
|
|
message SubmitWorkReply {
|
|
bool ok = 1;
|
|
}
|
|
|
|
message SubmitHashRateRequest {
|
|
uint64 rate = 1;
|
|
bytes id = 2;
|
|
}
|
|
message SubmitHashRateReply {
|
|
bool ok = 1;
|
|
}
|
|
|
|
message GetHashRateRequest {}
|
|
message GetHashRateReply {
|
|
uint64 hashRate = 1;
|
|
}
|
|
|
|
message MiningRequest {}
|
|
message MiningReply {
|
|
bool enabled = 1;
|
|
bool running = 2;
|
|
}
|
|
|
|
|