syntax = "proto3";
package cometbft.version.v1;

option go_package = "github.com/cometbft/cometbft/api/cometbft/version/v1";

import "gogoproto/gogo.proto";

// App includes the protocol and software version for the application.
// This information is included in ResponseInfo. The App.Protocol can be
// updated in ResponseEndBlock.
message App {
  uint64 protocol = 1;
  string software = 2;
}

// Consensus captures the consensus rules for processing a block in the blockchain,
// including all blockchain data structures and the rules of the application's
// state transition machine.
message Consensus {
  option (gogoproto.equal) = true;

  uint64 block = 1;
  uint64 app   = 2;
}
