Skip to content

Commit 31be928

Browse files
added minimal BlockProof type to add intermediate BlockItem type
Signed-off-by: Matt Peterson <[email protected]>
1 parent 04dd9c5 commit 31be928

File tree

6 files changed

+24
-20
lines changed

6 files changed

+24
-20
lines changed

protos/src/main/protobuf/blockstream.proto

+8-3
Original file line numberDiff line numberDiff line change
@@ -58,17 +58,22 @@ message Block {
5858
message BlockItem {
5959

6060
oneof items {
61-
BlockHeader block_header = 1;
62-
BlockProof state_proof = 2;
61+
BlockHeader header = 1;
62+
EventMetadata start_event = 2;
63+
BlockProof state_proof = 3;
6364
}
6465

65-
string value = 3;
66+
string value = 4;
6667
}
6768

6869
message BlockHeader {
6970
uint64 block_number = 1;
7071
}
7172

73+
message EventMetadata {
74+
uint64 creator_id = 1;
75+
}
76+
7277
message BlockProof {
7378
uint64 block = 1;
7479
}

server/src/main/java/com/hedera/block/server/persistence/Util.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,6 @@ public static long getBlockNumber(final Block block) {
2727
}
2828

2929
public static BlockHeader getBlockHeader(final Block block) {
30-
return block.getBlockItems(0).getBlockHeader();
30+
return block.getBlockItems(0).getHeader();
3131
}
3232
}

server/src/main/java/com/hedera/block/server/persistence/storage/FileSystemBlockStorage.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,11 @@ private Optional<BlockItem> readBlockItem(final String blockItemPath) {
143143

144144
private String getAbsoluteFilePath(final BlockItem blockItem) throws IOException {
145145

146-
if (blockItem.hasBlockHeader()) {
146+
if (blockItem.hasHeader()) {
147147

148148
// A "block" is a directory of blockItems. Create the "block"
149149
// based on the block_number
150-
currentBlockDir = Path.of(String.valueOf(blockItem.getBlockHeader().getBlockNumber()));
150+
currentBlockDir = Path.of(String.valueOf(blockItem.getHeader().getBlockNumber()));
151151

152152
final Path blockPath = blockNodeRootPath.resolve(currentBlockDir);
153153
createPath(blockPath);

server/src/test/java/com/hedera/block/server/persistence/PersistTestUtils.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public static List<Block> generateBlocks(int numOfBlocks) {
3838
case 0:
3939
blockItems.add(
4040
BlockItem.newBuilder()
41-
.setBlockHeader(
41+
.setHeader(
4242
BlockStreamService.BlockHeader.newBuilder()
4343
.setBlockNumber(i + 1)
4444
.build())

server/src/test/java/com/hedera/block/server/persistence/RangeTest.java

+7-10
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,10 @@ public class RangeTest {
3232
@Test
3333
public void testReadRangeWithEvenEntries() {
3434

35-
int maxEntries = 100;
3635
int numOfBlocks = 100;
3736

3837
BlockPersistenceHandler<Block, BlockItem> blockPersistenceHandler =
39-
generateInMemoryTestBlockPersistenceHandler(maxEntries);
38+
generateInMemoryTestBlockPersistenceHandler();
4039

4140
for (Block block : generateBlocks(numOfBlocks)) {
4241
for (BlockItem blockItem : block.getBlockItemsList()) {
@@ -52,22 +51,20 @@ public void testReadRangeWithEvenEntries() {
5251

5352
@Test
5453
public void testReadRangeWithNoBlocks() {
55-
int maxEntries = 100;
5654

5755
BlockPersistenceHandler<Block, BlockItem> blockPersistenceHandler =
58-
generateInMemoryTestBlockPersistenceHandler(maxEntries);
56+
generateInMemoryTestBlockPersistenceHandler();
5957
Queue<Block> results = blockPersistenceHandler.readRange(1, 100);
6058
assertNotNull(results);
6159
assertEquals(0, results.size());
6260
}
6361

6462
@Test
6563
public void testReadRangeWhenBlocksLessThanWindow() {
66-
int maxEntries = 100;
6764
int numOfBlocks = 9;
6865

6966
BlockPersistenceHandler<Block, BlockItem> blockPersistenceHandler =
70-
generateInMemoryTestBlockPersistenceHandler(maxEntries);
67+
generateInMemoryTestBlockPersistenceHandler();
7168
List<Block> blocks = generateBlocks(numOfBlocks);
7269
for (Block block : blocks) {
7370
for (BlockItem blockItem : block.getBlockItemsList()) {
@@ -96,13 +93,13 @@ private static void verifyReadRange(
9693
for (int i = startBlockId; i <= endBlockId && results.peek() != null; ++i) {
9794
Block block = results.poll();
9895
assertNotNull(block);
99-
assertEquals(i, block.getBlockItems(0).getBlockHeader().getBlockNumber());
96+
assertEquals(i, block.getBlockItems(0).getHeader().getBlockNumber());
10097
}
10198
}
10299
}
103100

104101
private static BlockPersistenceHandler<Block, BlockItem>
105-
generateInMemoryTestBlockPersistenceHandler(int maxEntries) {
102+
generateInMemoryTestBlockPersistenceHandler() {
106103

107104
// Mock up a simple, in-memory persistence handler
108105
BlockStorage<Block, BlockItem> blockStorage = new NoOpTestBlockStorage();
@@ -120,8 +117,8 @@ public NoOpTestBlockStorage() {
120117

121118
@Override
122119
public void write(BlockItem blockItem) {
123-
if (blockItem.hasBlockHeader()) {
124-
index = blockItem.getBlockHeader().getBlockNumber();
120+
if (blockItem.hasHeader()) {
121+
index = blockItem.getHeader().getBlockNumber();
125122
}
126123

127124
cache.compute(

server/src/test/resources/producer.sh

+5-3
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,12 @@ trap cleanup SIGINT
4848
for ((i=1; i<=10; i++))
4949
do
5050

51-
if [[ i -eq 1 ]]; then
52-
echo "{\"block_item\": {\"block_header\": $iter,\"value\": \"Payload[...]\"}}"
51+
if [[ $i -eq 1 ]]; then
52+
echo "{\"block_item\": {\"header\": {\"block_number\": $iter},\"value\": \"Payload[...]\"}}"
53+
elif [[ $i -eq 10 ]]; then
54+
echo "{\"block_item\": {\"state_proof\": {\"block\": $iter},\"value\": \"Payload[...]\"}}"
5355
else
54-
echo "{\"block_item\": {\"block_header\": 0,\"value\": \"Payload[...]\"}}"
56+
echo "{\"block_item\": {\"start_event\": {\"creator_id\": $i},\"value\": \"Payload[...]\"}}"
5557
fi
5658

5759
sleep 0.5

0 commit comments

Comments
 (0)