syntax = "proto3";
package cyber.rank.v1beta1;
import "gogoproto/gogo.proto";
import "google/api/annotations.proto";
import "cyber/rank/v1beta1/types.proto";
import "cyber/rank/v1beta1/pagination.proto";
option go_package = "github.com/cybercongress/go-cyber/x/rank/types";
service Query {
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
option (google.api.http).get = "/cyber/rank/v1beta1/rank/params";
}
rpc Rank(QueryRankRequest) returns (QueryRankResponse) {
option (google.api.http).get = "/cyber/rank/v1beta1/rank/rank/{particle}";
}
rpc Search(QuerySearchRequest) returns (QuerySearchResponse) {
option (google.api.http).get = "/cyber/rank/v1beta1/rank/search/{particle}";
}
rpc Backlinks(QuerySearchRequest) returns (QuerySearchResponse) {
option (google.api.http).get =
"/cyber/rank/v1beta1/rank/backlinks/{particle}";
}
rpc Top(QueryTopRequest) returns (QuerySearchResponse) {
option (google.api.http).get = "/cyber/rank/v1beta1/rank/top";
}
rpc IsLinkExist(QueryIsLinkExistRequest) returns (QueryLinkExistResponse) {
option (google.api.http).get = "/cyber/rank/v1beta1/is_link_exist";
}
rpc IsAnyLinkExist(QueryIsAnyLinkExistRequest)
returns (QueryLinkExistResponse) {
option (google.api.http).get = "/cyber/rank/v1beta1/is_any_link_exist";
}
// Per-particle focus entropy: -pi*log2(pi) from the rank distribution.
// Computed at query time, no state stored.
rpc ParticleNegentropy(QueryNegentropyPartilceRequest)
returns (QueryNegentropyParticleResponse) {
option (google.api.http).get = "/cyber/rank/v1beta1/negentropy/{particle}";
}
// System-wide negentropy: J(pi) = log2(n) - H(pi).
// Measures how far the focus distribution deviates from uniform.
// Computed at query time from current rank values, no state stored.
rpc Negentropy(QueryNegentropyRequest) returns (QueryNegentropyResponse) {
option (google.api.http).get = "/cyber/rank/v1beta1/negentropy";
}
// Deprecated: karma removed. Stub kept for wire compatibility.
rpc Karma(QueryKarmaRequest) returns (QueryKarmaResponse) {
option (google.api.http).get = "/cyber/rank/v1beta1/karma/{neuron}";
}
}
message QueryParamsRequest {}
message QueryParamsResponse {
cyber.rank.v1beta1.Params params = 1 [ (gogoproto.nullable) = false ];
}
message QueryRankRequest { string particle = 1; }
message QueryRankResponse { uint64 rank = 1; }
message QuerySearchRequest {
string particle = 1;
cyber.rank.v1beta1.PageRequest pagination = 2;
}
message QuerySearchResponse {
repeated RankedParticle result = 1 [ (gogoproto.nullable) = false ];
cyber.rank.v1beta1.PageResponse pagination = 2;
}
message QueryTopRequest { cyber.rank.v1beta1.PageRequest pagination = 1; }
message QueryIsLinkExistRequest {
string from = 1;
string to = 2;
string address = 3;
}
message QueryIsAnyLinkExistRequest {
string from = 1;
string to = 2;
}
message QueryLinkExistResponse { bool exist = 1; }
message QueryNegentropyPartilceRequest { string particle = 1; }
message QueryNegentropyParticleResponse { uint64 entropy = 1; }
message QueryNegentropyRequest {}
message QueryNegentropyResponse { uint64 negentropy = 1; }
// Deprecated: karma removed
message QueryKarmaRequest { string neuron = 1; }
message QueryKarmaResponse { uint64 karma = 1; }