tari_core 0.8.1

Core Tari protocol components
syntax = "proto3";

import "block.proto";
import "mmr_tree.proto";
import "types.proto";

package tari.base_node;

// Request type for a received BaseNodeService request.
message BaseNodeServiceRequest {
    uint64 request_key = 1;
    oneof request {
        // Indicates a GetChainMetadata request. The value of the bool should be ignored.
        bool get_chain_metadata = 2;
        // Indicates a FetchKernels request.
        HashOutputs fetch_kernels = 3;
        // Indicates a FetchHeaders request.
        BlockHeights fetch_headers = 4;
        // Indicates a FetchHeadersWithHashes request.
        HashOutputs fetch_headers_with_hashes = 5;
        // Indicates a FetchMatchingUtxos request.
        HashOutputs fetch_matching_utxos = 6;
        // Indicates a FetchMatchingBlocks request.
        BlockHeights fetch_matching_blocks = 7;
        // Indicates a FetchBlocksWithHashes request.
        HashOutputs fetch_blocks_with_hashes = 8;
        // Indicates a GetNewBlockTemplate request.
        uint64 get_new_block_template = 9;
        // Indicates a GetNewBlock request.
        tari.core.NewBlockTemplate get_new_block = 10;
        // Get headers in best chain following any headers in this list
        FetchHeadersAfter fetch_headers_after = 12;
        // Indicates a FetchMatchingTxos request.
        HashOutputs fetch_matching_txos = 15;
        // Indicates a Fetch block with kernels request
        Signatures fetch_blocks_with_kernels = 16;
        // Indicates a Fetch block with kernels request
        Commitments fetch_blocks_with_stxos = 17;
        // Indicates a Fetch block with kernels request
        Commitments fetch_blocks_with_utxos = 18;
        // Indicates a Fetch kernel by excess signature request
        tari.types.Signature fetch_kernel_by_excess_sig = 19;
    }
}

message BlockHeights {
    repeated uint64 heights = 1;
}

message HashOutputs {
    repeated bytes outputs = 1;
}

message Signatures {
    repeated tari.types.Signature sigs = 1;
}

message Commitments{
    repeated tari.types.Commitment commitments = 1;
}

message FetchHeadersAfter {
    repeated bytes hashes = 1;
    bytes stopping_hash = 2;
}

message FetchMmrNodeCount {
    MmrTree tree = 1;
    uint64 height = 2;
}