Skip to content

Commit

Permalink
Added state for blocks and running hashes (#276)
Browse files Browse the repository at this point in the history
* Added state for blocks and running hashes

Signed-off-by: jasperpotts <jasperpotts@users.noreply.github.com>

---------

Signed-off-by: jasperpotts <jasperpotts@users.noreply.github.com>
Co-authored-by: jasperpotts <jasperpotts@users.noreply.github.com>
  • Loading branch information
jasperpotts and jasperpotts authored Jun 1, 2023
1 parent c858be6 commit 96774e9
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 0 deletions.
50 changes: 50 additions & 0 deletions services/state/blockrecords/block_info.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
syntax = "proto3";

package proto;

/*-
* ‌
* Hedera Network Services Protobuf
* ​
* Copyright (C) 2018 - 2023 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 "timestamp.proto";

option java_package = "com.hederahashgraph.api.proto.java";
// <<<pbj.java_package = "com.hedera.hapi.node.state.blockrecords">>> This comment is special code for setting PBJ Compiler java package
option java_multiple_files = true;

/**
* Information about the most recently completed and last 256 blocks.
*/
message BlockInfo {
/**
* The last block number, this is the last completed immutable block.
*/
int64 last_block_no = 1;
/**
* The consensus time of the first transaction of the last block, this is the last completed immutable block.
*/
Timestamp first_cons_time_of_last_block = 2;
/**
* SHA384 48 byte hashes of the last 256 blocks in single byte array.
* First 48 bytes is the oldest block.
* Last 48 bytes is the newest block, which is the last fully completed immutable block.
* If we are shortly after genesis and there are less than 256 blocks then this could contain less than 256 hashes.
*/
bytes block_hashes = 3;
}
50 changes: 50 additions & 0 deletions services/state/blockrecords/running_hashes.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
syntax = "proto3";

package proto;

/*-
* ‌
* Hedera Network Services Protobuf
* ​
* Copyright (C) 2018 - 2023 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.
* ‍
*/

option java_package = "com.hederahashgraph.api.proto.java";
// <<<pbj.java_package = "com.hedera.hapi.node.state.blockrecords">>> This comment is special code for setting PBJ Compiler java package
option java_multiple_files = true;

/**
* The running hash of a transaction records and the previous 3 running hashes. All hashes are 48 bytes SHA384 hashes. If the
* running hashes do not exist yet then they will be default values witch is empty bytes object or zero length byte array.
*/
message RunningHashes {
/**
* A running hash of all record stream items
*/
bytes running_hash = 1;
/**
* The previous running hash of all record stream items
*/
bytes n_minus_1_running_hash = 2;
/**
* The previous, previous running hash of all record stream items
*/
bytes n_minus_2_running_hash = 3;
/**
* The previous, previous, previous running hash of all record stream items
*/
bytes n_minus_3_running_hash = 4;
}

0 comments on commit 96774e9

Please sign in to comment.