event.gossip_event.proto Maven / Gradle / Ivy
/**
* # Gossip Event
* An event that is sent and received via gossip
*
* ### Keywords
* The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
* "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
* document are to be interpreted as described in [RFC2119](https://www.ietf.org/rfc/rfc2119).
*/
syntax = "proto3";
package com.hedera.hapi.platform.event;
/*
* Hedera Network Services Protobuf
*
* Copyright (C) 2024 Hedera Hashgraph, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import "event/event_transaction.proto";
import "event/event_core.proto";
option java_package = "com.hedera.hapi.platform.event.legacy";
// <<>> This comment is special code for setting PBJ Compiler java package
option java_multiple_files = true;
/**
* An event that is sent and received via gossip
*/
message GossipEvent {
/**
* The core event data
*/
EventCore event_core = 1;
/**
* A node signature on the event hash.
* The signature SHALL be created with the SHA384withRSA algorithm.
* The signature MUST verify using the public key belonging to the `event_creator`.
* The `event_creator` public key SHALL be read from the address book that corresponds to the event's birth round.
* The signed event hash SHALL be a SHA-384 hash.
* The signed event hash SHALL have the following inputs, in the specified order:
* 1. The bytes of the `event_core` field
* 2. The SHA-384 hash of each individual `EventTransaction`, in the order the transaction appear in the `event_transaction` field
*/
bytes signature = 2;
/**
* The event transaction.
*
* This field MAY contain zero transactions.
* This field MUST NOT exceed `maxTransactionCountPerEvent` entries, initially `245760`.
* This total size of this field MUST NOT exceed `maxTransactionBytesPerEvent`, initially `245760` bytes.
*/
repeated EventTransaction event_transaction = 3;
}