Repository: hiero-ledger/hiero-block-node
Pull request #872: feat: changed container work dir from app to opt
Author: login: AlexKehayov
Labels: name: pull request
description: label to get past the "label required" check when no label is needed or appropriate.
Created: 2025-03-18T15:52:25Z | Merged: 2025-05-16T01:36:39Z

## Reviewer Notes
Replaced /app with /opt in the server's Docker and Helm chart configurations, as well as in the simulator's Dockerfile.
Tested local run and Docker run for the server and the simulator.
Tested K8 run for the server.

P.S.
I was unable to test the simulator in K8 due to difficulties connecting it to a running BN server, likely because of a misunderstanding of the configuration steps on my part. While the simulator runs fine in a Docker container and chart changes were not applied, it would still be good to be tested.

A thorough review of these changes, especially regarding the K8 integration, would be greatly appreciated.

## Related Issue(s)
 Closes #684 


Linked issue #684: Change our container work dir from `/app` to `/opt`
### Persona

As a Block Node developer

### Request

I want to adjust the container work dir from `/app` to `/opt`

### Goal

So that we're more inline with linux standards

### Technical Notes

* This idea was first captured here: https://github.com/hiero-ledger/hiero-block-node/issues/371#issuecomment-2590971960
* We will need to be sure our CI pipeline is fully operational after the Hiero changes. The pipeline checks to make sure docker changes do not break our deterministic build requirements.

Linked issue comments: user: login: AlfredoG87
created_at: 2025-03-14T16:02:19Z
body: we need to be careful on this changes, since now whenever I want to run the BN locally on my mac, it fails since `opt/` folder is restricted
author_association: CONTRIBUTOR
user: login: AlexKehayov
created_at: 2025-03-21T08:27:08Z
body: @Nana-EC Could you assign me this issue, please?
author_association: CONTRIBUTOR
user: login: Nana-EC
created_at: 2025-03-23T04:23:35Z
body: > [@Nana-EC](https://github.com/Nana-EC) Could you assign me this issue, please?

Done.
Note we're going through a somewhat mini freeze whiles we work out https://github.com/hiero-ledger/hiero-block-node/pull/890
As such we're trying t minimize contributions that would case further  conflicts.

I'll be looking into tickets that make sense for community members to explore. You may consider the items under [2024 Tech Debt](https://github.com/hiero-ledger/hiero-block-node/issues/595) and [2025 Q1 Tech Debt](https://github.com/hiero-ledger/hiero-block-node/issues/596) but there may be some exceptions
author_association: CONTRIBUTOR
user: login: Nana-EC
created_at: 2025-05-07T15:43:52Z
body: @AlfredoG87 to confirm concerns around `/opt` protection aren't something that need to be managed
author_association: CONTRIBUTOR
user: login: AlfredoG87
created_at: 2025-05-09T17:48:27Z
body: I've checked and due to how the local run is working, nothing to worry about when running locally. we are not using `/opt` but we are using: `block-node/app/build/block-node-storage` so its actually better since thee files only stay on temp folder when running locally for dev purposes.

cc: @Nana-EC 
author_association: CONTRIBUTOR

Diff:
diff --git a/block-node/app/docker/Dockerfile b/block-node/app/docker/Dockerfile
index 47b39f29f4..9ff798544d 100644
--- a/block-node/app/docker/Dockerfile
+++ b/block-node/app/docker/Dockerfile
@@ -14,6 +14,9 @@ ARG SOURCE_DATE_EPOCH="0"
 FROM ubuntu:${UBUNTU_TAG} AS ubuntu-origin
 # Define Build Arguments
 ARG SOURCE_DATE_EPOCH
+ARG UID=2000
+ARG GID=2000
+ARG BN_WORKDIR="/opt/hiero/block-node"
 
 # Define Standard Environment Variables
 ENV DEBIAN_FRONTEND=noninteractive
@@ -64,14 +67,14 @@ RUN set -eux; \
     rm -f /tmp/openjdk.tar.gz /usr/local/java/lib/src.zip;
 
 
-RUN groupadd --gid 2000 hedera && \
-    useradd --no-user-group --create-home --uid 2000 --gid 2000 --shell /bin/bash hedera
+RUN groupadd --gid ${GID} hedera && \
+    useradd --no-user-group --create-home --uid ${UID} --gid ${GID} --shell /bin/bash hedera
 
 # Define version
 ARG VERSION
 
 # Set the working directory inside the container
-WORKDIR /app
+WORKDIR ${BN_WORKDIR}
 
 # Copy Distribution TAR file
 # Ignore Codacy, the `distributions` context is set on command line and
@@ -82,15 +85,15 @@ COPY --from=distributions block-node-app-${VERSION}.tar .
 RUN tar -xvf block-node-app-${VERSION}.tar
 
 # Create a log directory
-RUN mkdir -p /app/logs/config
+RUN mkdir -p ${BN_WORKDIR}/logs/config
 
 # Copy the logging properties file
-COPY logging.properties /app/logs/config/logging.properties
+COPY logging.properties ${BN_WORKDIR}/logs/config/logging.properties
 
 WORKDIR /
 
 # Ensure proper file permissions
-RUN chown -R 2000:2000 /app /opt
+RUN chown -R $UID:$GID ${BN_WORKDIR}
 
 ########################################
 ####    Deterministic Build Hack    ####
@@ -130,6 +133,7 @@ ENV DEBIAN_FRONTEND=noninteractive
 ENV JAVA_VERSION="jdk-21.0.7+6"
 ENV JAVA_HOME=/usr/local/java
 ENV PATH=${JAVA_HOME}/bin:${PATH}
+ENV BN_WORKDIR=/opt/hiero/block-node
 
 # Install Java
 COPY --from=java-builder ${JAVA_HOME}/ ${JAVA_HOME}/
@@ -138,12 +142,12 @@ COPY --from=java-builder ${JAVA_HOME}/ ${JAVA_HOME}/
 EXPOSE 8080/tcp
 
 USER hedera
-WORKDIR /app
+WORKDIR ${BN_WORKDIR}
 
 # HEALTHCHECK for liveness and readiness
 HEALTHCHECK --interval=30s --timeout=10s --start-period=3s --retries=3 \
   CMD curl -f http://localhost:8080/healthz/livez || exit 1 && \
       curl -f http://localhost:8080/healthz/readyz || exit 1
 
-# RUN the bin script for starting the server app
-ENTRYPOINT ["/bin/bash", "-c", "/app/block-node-app-${VERSION}/bin/block-node-app"]
+# RUN the bin script for starting the server
+ENTRYPOINT ["/bin/bash", "-c", "${BN_WORKDIR}/block-node-app-${VERSION}/bin/block-node-app"]
diff --git a/block-node/app/docker/docker-compose.yml b/block-node/app/docker/docker-compose.yml
index 0d52b366e8..39713715ec 100644
--- a/block-node/app/docker/docker-compose.yml
+++ b/block-node/app/docker/docker-compose.yml
@@ -3,7 +3,7 @@ services:
     container_name: block-node-server
     image: block-node-server:${VERSION}
     volumes:
-      - ./logging.properties:/app/logs/config/logging.properties
+      - ./logging.properties:/opt/hiero/block-node/logs/config/logging.properties
     env_file:
       - .env
     ports:
diff --git a/block-node/app/docker/logging.properties b/block-node/app/docker/logging.properties
index a7bdd1ceb9..ad11912e9d 100644
--- a/block-node/app/docker/logging.properties
+++ b/block-node/app/docker/logging.properties
@@ -63,7 +63,7 @@ java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
 # FileHandler properties
 ################################################################################
 # The pattern for the output file name.
-java.util.logging.FileHandler.pattern = /app/logs/blocknode-%g.log
+java.util.logging.FileHandler.pattern = /opt/hiero/block-node/logs/blocknode-%g.log
 # Set append to true if you want to keep appending to existing files
 java.util.logging.FileHandler.append = true
 # The limit in bytes before a new file is started.
diff --git a/block-node/app/docker/update-env.sh b/block-node/app/docker/update-env.sh
index 5f6a01eabe..c13057c4f0 100755
--- a/block-node/app/docker/update-env.sh
+++ b/block-node/app/docker/update-env.sh
@@ -18,7 +18,7 @@ project_version=$1
 echo "VERSION=$project_version" > .env
 echo "REGISTRY_PREFIX=" >> .env
 # Storage root path, this is temporary until we have a proper .properties file for all configs
-echo "BLOCKNODE_STORAGE_ROOT_PATH=/app/storage" >> .env
+echo "BLOCKNODE_STORAGE_ROOT_PATH=/opt/hiero/block-node/storage" >> .env
 
 if [ true = "$is_smoke_test" ]; then
   # add smoke test variables
@@ -33,11 +33,11 @@ fi
 if [ true = "$is_debug" ]; then
   # The server will wait for the debugger to attach on port 5005
   # JProfiler can attach on port 8849
-  echo "JAVA_TOOL_OPTIONS='-Djava.util.logging.config.file=/app/logs/config/logging.properties -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005' -agentpath:/path/to/libjprofilerti.so=port=8849 " >> .env
+  echo "JAVA_TOOL_OPTIONS='-Djava.util.logging.config.file=/opt/hiero/block-node/logs/config/logging.properties -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005' -agentpath:/path/to/libjprofilerti.so=port=8849 " >> .env
 else
   # we set normally the JAVA_TOOL_OPTIONS
   # file is mounted in the docker-compose.yml, changes to the file will be reflected in the container by simply restarting it
-  echo "JAVA_TOOL_OPTIONS='-Djava.util.logging.config.file=/app/logs/config/logging.properties '" >> .env
+  echo "JAVA_TOOL_OPTIONS='-Djava.util.logging.config.file=/opt/hiero/block-node/logs/config/logging.properties '" >> .env
 fi
 # Output the values
 echo ".env properties:"
diff --git a/block-node/block-providers/files.historic/src/main/java/org/hiero/block/node/blocks/files/historic/FilesHistoricConfig.java b/block-node/block-providers/files.historic/src/main/java/org/hiero/block/node/blocks/files/historic/FilesHistoricConfig.java
index f9aeb5c0ca..d6aa44473c 100644
--- a/block-node/block-providers/files.historic/src/main/java/org/hiero/block/node/blocks/files/historic/FilesHistoricConfig.java
+++ b/block-node/block-providers/files.historic/src/main/java/org/hiero/block/node/blocks/files/historic/FilesHistoricConfig.java
@@ -24,7 +24,7 @@
  */
 @ConfigData("files.historic")
 public record FilesHistoricConfig(
-        @Loggable @ConfigProperty(defaultValue = "/opt/hashgraph/blocknode/data/historic") Path rootPath,
+        @Loggable @ConfigProperty(defaultValue = "/opt/hiero/block-node/data/historic") Path rootPath,
         @Loggable @ConfigProperty(defaultValue = "ZSTD") CompressionType compression,
         @Loggable @ConfigProperty(defaultValue = "4") @Min(1) @Max(6) int powersOfTenPerZipFileContents) {
     /**
diff --git a/block-node/block-providers/files.historic/src/test/java/org/hiero/block/node/blocks/files/historic/FilesHistoricConfigTest.java b/block-node/block-providers/files.historic/src/test/java/org/hiero/block/node/blocks/files/historic/FilesHistoricConfigTest.java
index a5ae441683..158bc205ee 100644
--- a/block-node/block-providers/files.historic/src/test/java/org/hiero/block/node/blocks/files/historic/FilesHistoricConfigTest.java
+++ b/block-node/block-providers/files.historic/src/test/java/org/hiero/block/node/blocks/files/historic/FilesHistoricConfigTest.java
@@ -39,7 +39,7 @@ class FilesHistoricConfigTest {
     @BeforeEach
     void setup() {
         jimfs = Jimfs.newFileSystem(Configuration.unix());
-        defaultRootPath = jimfs.getPath("/opt/hashgraph/blocknode/data/historic");
+        defaultRootPath = jimfs.getPath("/opt/hiero/block-node/data/historic");
         defaultCompression = CompressionType.ZSTD;
         powersOfTenPerZipFileContents = 4;
     }
diff --git a/block-node/block-providers/files.recent/src/main/java/org/hiero/block/node/blocks/files/recent/FilesRecentConfig.java b/block-node/block-providers/files.recent/src/main/java/org/hiero/block/node/blocks/files/recent/FilesRecentConfig.java
index 4ae71b2cbc..352cdc4b3e 100644
--- a/block-node/block-providers/files.recent/src/main/java/org/hiero/block/node/blocks/files/recent/FilesRecentConfig.java
+++ b/block-node/block-providers/files.recent/src/main/java/org/hiero/block/node/blocks/files/recent/FilesRecentConfig.java
@@ -20,7 +20,7 @@
  */
 @ConfigData("files.recent")
 public record FilesRecentConfig(
-        @Loggable @ConfigProperty(defaultValue = "/opt/hashgraph/blocknode/data/live") Path liveRootPath,
+        @Loggable @ConfigProperty(defaultValue = "/opt/hiero/block-node/data/live") Path liveRootPath,
         @Loggable @ConfigProperty(defaultValue = "ZSTD") CompressionType compression,
         @Loggable @ConfigProperty(defaultValue = "3") int maxFilesPerDir) {
     /**
diff --git a/charts/block-node-server/README.md b/charts/block-node-server/README.md
index e57a2af3a8..834a9430a8 100644
--- a/charts/block-node-server/README.md
+++ b/charts/block-node-server/README.md
@@ -65,14 +65,15 @@ There are several ways to configure the Hiero Block Node. The following is the m
 1. Create an override values file, `values.yaml`:
 2. Add the necessary environment configuration variables to the following section:
 
-   ```yaml
-   blockNode:
-     config:
-       # Add any additional env configuration here
-       # key: value
-       BLOCKNODE_STORAGE_ROOT_PATH: "/app/storage"
+```yaml
+blockNode:
+  config:
+    # Add any additional env configuration here
+    # key: value
+    BLOCKNODE_STORAGE_ROOT_PATH: "/opt/hiero/block-node/storage"
+
+```
 
-   ```
 3. Secrets should be set at the following structure:
 
    ```yaml
diff --git a/charts/block-node-server/templates/deployment.yaml b/charts/block-node-server/templates/deployment.yaml
index a57aa68a8f..6a5346a9d4 100644
--- a/charts/block-node-server/templates/deployment.yaml
+++ b/charts/block-node-server/templates/deployment.yaml
@@ -33,6 +33,9 @@ spec:
         - name: logging-config
           configMap:
             name: {{ include "hiero-block-node.fullname" . }}-logging-config
+        - name: logging-storage
+          persistentVolumeClaim:
+            claimName: {{ if .Values.blockNode.persistence.logging.create }}{{ include "hiero-block-node.fullname" . }}-logging{{ else }}{{ .Values.blockNode.persistence.logging.existingClaim }}{{ end }}
         - name: archive-storage
           persistentVolumeClaim:
             claimName: {{ if .Values.blockNode.persistence.archive.create }}{{ include "hiero-block-node.fullname" . }}-archive{{ else }}{{ .Values.blockNode.persistence.archive.existingClaim }}{{ end }}
@@ -53,12 +56,17 @@ spec:
               chmod 700 /live-pvc/{{ .Values.blockNode.persistence.live.subPath }} && \
               mkdir -p /archive-pvc/{{ .Values.blockNode.persistence.archive.subPath }} && \
               chown 2000:2000 /archive-pvc/{{ .Values.blockNode.persistence.archive.subPath }} && \
-              chmod 700 /archive-pvc/{{ .Values.blockNode.persistence.archive.subPath }}
+              chmod 700 /archive-pvc/{{ .Values.blockNode.persistence.archive.subPath }} && \
+              mkdir -p /logging-pvc/{{ .Values.blockNode.persistence.logging.subPath }} && \
+              chown 2000:2000 /logging-pvc/{{ .Values.blockNode.persistence.logging.subPath }} && \
+              chmod 700 /logging-pvc/{{ .Values.blockNode.persistence.logging.subPath }}
           volumeMounts:
             - name: live-storage
               mountPath: /live-pvc
             - name: archive-storage
               mountPath: /archive-pvc
+            - name: logging-storage
+              mountPath: /logging-pvc
       containers:
       - name: {{ .Chart.Name }}
         securityContext:
@@ -79,8 +87,10 @@ spec:
               name: {{ include "hiero-block-node.fullname" . }}-secret
         volumeMounts:
           - name: logging-config
-            mountPath: /app/logs/config
+            mountPath: {{ .Values.blockNode.logs.configMountPath }}
             readOnly: true
+          - name: logging-storage
+            mountPath: {{ .Values.blockNode.persistence.logging.mountPath }}
           - name: archive-storage
             mountPath: {{ .Values.blockNode.persistence.archive.mountPath }}
             subPath: {{ .Values.blockNode.persistence.archive.subPath }}
diff --git a/charts/block-node-server/templates/pvc-logging.yaml b/charts/block-node-server/templates/pvc-logging.yaml
new file mode 100644
index 0000000000..beca3a9b89
--- /dev/null
+++ b/charts/block-node-server/templates/pvc-logging.yaml
@@ -0,0 +1,17 @@
+ {{- if .Values.blockNode.persistence.logging.create }}
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: {{ include "hiero-block-node.fullname" . }}-logging
+  labels:
+    {{- include "hiero-block-node.labels" . | nindent 4 }}
+spec:
+  accessModes:
+    - ReadWriteOnce
+  resources:
+    requests:
+      storage: {{ .Values.blockNode.persistence.logging.size }}
+  {{- if .Values.blockNode.persistence.logging.storageClass }}
+  storageClassName: {{ .Values.blockNode.persistence.logging.storageClass }}
+  {{- end }}
+{{- end }}
diff --git a/charts/block-node-server/values-overrides/mini.yaml b/charts/block-node-server/values-overrides/mini.yaml
index 4b51e640b1..3452ba99fc 100644
--- a/charts/block-node-server/values-overrides/mini.yaml
+++ b/charts/block-node-server/values-overrides/mini.yaml
@@ -11,7 +11,6 @@ resources:
 
 blockNode:
   config:
-    JAVA_TOOL_OPTIONS: "-Djava.util.logging.config.file=/app/logs/config/logging.properties"
     JAVA_OPTS: "-Xms5G -Xmx5G"
     MEDIATOR_RING_BUFFER_SIZE: "2048"
   persistence:
@@ -19,6 +18,8 @@ blockNode:
       size: 6Gi
     live:
       size: 1Gi
+    logging:
+      size: 1Gi
 
 # Setting the PVC size for the Observability stack to mini claims of 1 Gigabyte
 kubepromstack:
diff --git a/charts/block-node-server/values.yaml b/charts/block-node-server/values.yaml
index d05c19f315..529061cf03 100644
--- a/charts/block-node-server/values.yaml
+++ b/charts/block-node-server/values.yaml
@@ -73,7 +73,7 @@ blockNode:
   config:
     # Add any additional env configuration here
     # key: value
-    JAVA_TOOL_OPTIONS: "-Djava.util.logging.config.file=/app/logs/config/logging.properties"
+    JAVA_TOOL_OPTIONS: "-Djava.util.logging.config.file=/opt/hiero/block-node/logs/config/logging.properties"
     JAVA_OPTS: "-Xms16G -Xmx16G"
     # PRODUCER_TYPE: "NO_OP"
     # PERSISTENCE_STORAGE_TYPE: "NO_OP"
@@ -90,10 +90,22 @@ blockNode:
       subPath: "archive-data"
       # If create is true, the following values are used to create the PVC
       # should match PERSISTENCE_STORAGE_ARCHIVE_ROOT_PATH, leave as is for default.
-      mountPath: "/opt/hashgraph/blocknode/data/historic"
+      mountPath: "/opt/hiero/block-node/data/historic"
       size: 800Gi
       # Optionally add a storage class name if needed
       # storageClass: "your-storage-class"
+    logging:
+      # If false, the chart expects an externally provided PVC
+      create: true
+      # Name of the externally provided PVC
+      existingClaim: ""
+      # Name of the subPath in the PVC to mount to mountPath in the container
+      subPath: "logging-data"
+      # If create is true, the following values are used to create the PVC
+      mountPath: "/opt/hiero/block-node/logs"
+      size: 2Gi
+      # Optionally add a storage class name if needed
+      # storageClass: "your-storage-class"
     live:
       # If false, the chart expects an externally provided PVC
       create: true
@@ -103,7 +115,7 @@ blockNode:
       subPath: "live-data"
       # If create is true, the following values are used to create the PVC
       # should match PERSISTENCE_STORAGE_LIVE_ROOT_PATH, leave as is for default.
-      mountPath: "/opt/hashgraph/blocknode/data/live"
+      mountPath: "/opt/hiero/block-node/data/live"
       size: 20Gi
       # Optionally add a storage class name if needed
       # storageClass: "your-storage-class"
@@ -111,7 +123,7 @@ blockNode:
       # unverified does a hard-coded emptyDir and is ephemeral, however needs to be mounted
       # this does not create a PVC.
       # should match PERSISTENCE_STORAGE_UNVERIFIED_ROOT_PATH, leave as is for default.
-      mountPath: "/opt/hashgraph/blocknode/data/unverified"
+      mountPath: "/opt/hiero/block-node/data/unverified"
   secret:
     PRIVATE_KEY: "fake_private_key"
   health:
@@ -125,6 +137,7 @@ blockNode:
     # Available Levels are (from most verbose to least verbose):
     # ALL FINEST FINER FINE CONFIG INFO WARNING SEVERE OFF
     level: "INFO"
+    configMountPath: "/opt/hiero/block-node/logs/config"
     loggingProperties:
       # com.hedera.block.server.producer.ProducerBlockItemObserver.level: "FINE"
       io.helidon.webserver.level: "INFO"
@@ -135,7 +148,7 @@ blockNode:
       handlers: "java.util.logging.ConsoleHandler, java.util.logging.FileHandler"
       java.util.logging.ConsoleHandler.level: "FINE"
       java.util.logging.ConsoleHandler.formatter: "java.util.logging.SimpleFormatter"
-      java.util.logging.FileHandler.pattern: "/app/logs/blocknode-%g.log"
+      java.util.logging.FileHandler.pattern: "/opt/hiero/block-node/logs/blocknode-%g.log"
       java.util.logging.FileHandler.append: "true"
       java.util.logging.FileHandler.limit: "5_000_000"
       java.util.logging.FileHandler.count: "5"
diff --git a/simulator/docker/Dockerfile b/simulator/docker/Dockerfile
index 54c44aae70..f864758824 100644
--- a/simulator/docker/Dockerfile
+++ b/simulator/docker/Dockerfile
@@ -4,28 +4,29 @@ FROM eclipse-temurin:21
 ARG UNAME=hedera
 ARG UID=2000
 ARG GID=2000
+ARG BN_WORKDIR="/opt/hiero/block-node"
 RUN groupadd --gid $GID $UNAME
 RUN useradd --no-user-group --create-home --uid $UID --gid $GID --shell /bin/bash hedera
-WORKDIR /app
+WORKDIR ${BN_WORKDIR}
 
 # Copy the distribution and resources
 COPY simulator-*.tar ./simulator.tar
 
-RUN mkdir -p /app/logs/config
-COPY logging.properties /app/logs/config/logging.properties
+RUN mkdir -p ${BN_WORKDIR}/logs/config
+COPY logging.properties ${BN_WORKDIR}/logs/config/logging.properties
 
 # Extract the distribution and block data
 RUN tar -xf simulator.tar && \
     rm simulator.tar && \
-    cd /app && \
-    chown -R $UID:$GID /app
+    cd ${BN_WORKDIR} && \
+    chown -R $UID:$GID ${BN_WORKDIR}
 
 # Switch to non-root user
 USER $UNAME
 
 # Run the simulator using the extracted directory name
 RUN SIMULATOR_DIR=$(ls -d simulator-*/) && \
-    echo "#!/bin/bash\n/app/${SIMULATOR_DIR}bin/simulator" > /app/start.sh && \
-    chmod +x /app/start.sh
+    echo "#!/bin/bash\n${BN_WORKDIR}/${SIMULATOR_DIR}bin/simulator" > ${BN_WORKDIR}/start.sh && \
+    chmod +x ${BN_WORKDIR}/start.sh
 
-ENTRYPOINT ["/app/start.sh"]
+ENTRYPOINT ["${BN_WORKDIR}/start.sh"]
diff --git a/simulator/docker/update-env.sh b/simulator/docker/update-env.sh
index 2651358444..3d2f7e355f 100755
--- a/simulator/docker/update-env.sh
+++ b/simulator/docker/update-env.sh
@@ -19,7 +19,7 @@ CONSUMER_BLOCK_STREAM_SIMULATOR_MODE=CONSUMER
 CONSUMER_PROMETHEUS_ENDPOINT_PORT_NUMBER=9997
 EOL
 
-logging_config_file_arg="-Djava.util.logging.config.file=/app/logs/config/logging.properties"
+logging_config_file_arg="-Djava.util.logging.config.file=/opt/hiero/block-node/logs/config/logging.properties"
 debug_arg="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5006"
 # determine if we should include debug opts
 [ "$1" = true ] && is_debug=true || is_debug=false
diff --git a/simulator/src/main/resources/logging.properties b/simulator/src/main/resources/logging.properties
index 80218ab3c9..8229c59a26 100644
--- a/simulator/src/main/resources/logging.properties
+++ b/simulator/src/main/resources/logging.properties
@@ -36,7 +36,7 @@ java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
 # FileHandler properties
 ################################################################################
 # The pattern for the output file name.
-java.util.logging.FileHandler.pattern = /app/logs/blocknode-%g.log
+java.util.logging.FileHandler.pattern = /opt/hiero/block-node/logs/blocknode-%g.log
 # Set append to true if you want to keep appending to existing files
 java.util.logging.FileHandler.append = true
 # The limit in bytes before a new file is started.
diff --git a/suites/src/main/java/org/hiero/block/suites/persistence/positive/PositiveDataPersistenceTests.java b/suites/src/main/java/org/hiero/block/suites/persistence/positive/PositiveDataPersistenceTests.java
index a9cb7f5115..4a6b9c52bc 100644
--- a/suites/src/main/java/org/hiero/block/suites/persistence/positive/PositiveDataPersistenceTests.java
+++ b/suites/src/main/java/org/hiero/block/suites/persistence/positive/PositiveDataPersistenceTests.java
@@ -23,7 +23,7 @@
 @DisplayName("Positive Data Persistence Tests")
 public class PositiveDataPersistenceTests extends BaseSuite {
     private final String[] GET_BLOCKS_COMMAND =
-            new String[] {"find", "../opt/hashgraph/blocknode/data/live", "-mindepth", "5", "-maxdepth", "7"};
+            new String[] {"find", "/opt/hiero/block-node/data/live", "-mindepth", "5", "-maxdepth", "7"};
 
     private Future<?> simulatorThread;
 


Reviews:
user: login: jsync-swirlds
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-18T21:59:49Z
user: login: jsync-swirlds
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-18T22:02:08Z
user: login: Nana-EC
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-19T03:40:37Z
user: login: ata-nas
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-19T08:57:07Z
user: login: jsync-swirlds
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-19T14:21:46Z
user: login: jsync-swirlds
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-19T14:24:12Z
user: login: AlexKehayov
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-19T14:42:13Z
user: login: Nana-EC
body: A few PRs (this included) will likely be delayed and impacted by significant ongoing rewrites of the code base.
I'm blocking the PR for now just to avoid any unintended conflicts and to save you effort.

Once things are in the clear we can decide whether to rebase (if all changes are still applicable), pull some changes into a new PR (in a subset is still applicable) or if to close this underlying ticket if it's no longer applicable.

Thanks for your interest and contributions here, we'll be laying out more tickets that the community can look to to pick up and also exploring how to have community calls to improve the efficiency and sharing of information.
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-23T23:45:14Z
user: login: Nana-EC
body: Seems appropriate.
Added one suggestion.
Also need to rebase again
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-06T05:20:56Z
user: login: AlexKehayov
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-07T14:57:00Z
user: login: jsync-swirlds
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-05-07T21:41:53Z
user: login: Nana-EC
body: LG
Waiting on @AlfredoG87 review to confirm no concern on helm chart deployment side.
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-05-08T13:45:53Z
user: login: AlfredoG87
body: I left 2 comments, but thinking it over, I think this can be worked on a future follow-up PR. Since it does feel like is needed but is not the scope of this PR.

But in any case, we can remove the unneeded named volume and the Key-value on values that are unnecessary. (or complete my comments, your choice)

if you rather leave it for a future PR, maybe you can open up the issue that captures this and I will resolve this and approve. 

if you choose to add the PVC for logs persistence on file, make the changes I will review and approve.

let me know, will review faster so we can merge this one :)
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-09T01:45:38Z
user: login: jsync-swirlds
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-09T15:44:06Z
user: login: jsync-swirlds
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-05-09T15:44:48Z
user: login: AlexKehayov
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T06:45:26Z
user: login: jsync-swirlds
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T18:38:51Z
user: login: AlexKehayov
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T20:39:12Z
user: login: jsync-swirlds
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T20:58:15Z
user: login: jsync-swirlds
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T20:58:56Z
user: login: AlfredoG87
body: looking good, just missing the `pvc-logging.yaml` and some nits like:
size is too big for loggin, 2Gb should be enough for production and 1 for testing.

removed some unneeded override on `mini.yaml`

placed new script adition to thee bottom instead of the middle, since that way is easier to review and we can append as neeeded, also keeps consistency in the order for other volume places where they are in the order as they were added or appeared.

Would have pushed the changes myself but I don't think I have access to your repo.

so I am sending you here a `.patch` file that you can apply using IntelliJ
[fixed-pvc-helm-deployment.patch](https://github.com/user-attachments/files/20179263/fixed-pvc-helm-deployment.patch)

All suggested changes are within the patch file, let me know once is applied so I can re-review and approve :)

state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T00:32:50Z
user: login: AlfredoG87
body: LGTM
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T13:25:49Z
user: login: jsync-swirlds
body: One question and one possible typo.
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T16:56:33Z
user: login: AlfredoG87
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-14T02:41:24Z
user: login: AlfredoG87
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-14T02:42:30Z
user: login: AlexKehayov
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-14T09:34:10Z
user: login: jsync-swirlds
body: LGTM
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-14T15:03:00Z
user: login: ata-nas
body: Looks good! Great job @AlexKehayov 🔥
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-14T18:18:27Z
user: login: AlfredoG87
body: Thank you!  🙏  💯 
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-16T01:35:58Z

Review comments:
diff_hunk: @@ -71,7 +71,7 @@ RUN groupadd --gid 2000 hedera && \
 ARG VERSION
 
 # Set the working directory inside the container
-WORKDIR /app
+WORKDIR /opt
path: block-node/server/docker/Dockerfile
user: login: jsync-swirlds
body: To address [this comment](https://github.com/hiero-ledger/hiero-block-node/issues/684#issuecomment-2725120253) on the original issue, would it make sense to make the workdir (and root for everything else) `/opt/hiero/block-node`?  That _should_ work around the restrictions in some operating systems and also avoid polluting the root of `/opt`.
created_at: 2025-03-18T21:59:49Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,15 +23,15 @@ RUN tar -xf simulator.tar && \
     cd src/main/resources && \
     tar -xzf block-0.0.3.tar.gz && \
     rm block-0.0.3.tar.gz && \
-    cd /app && \
-    chown -R $UNAME:$UNAME /app
+    cd /opt && \
+    chown -R $UNAME:$UNAME /opt
path: simulator/docker/Dockerfile
user: login: jsync-swirlds
body: This isn't right.  `/opt` ownership should never be changed to a regular user, there is too much in the O/S that depends on proper ownership for `/opt` (also, some systems simply won't allow it, including MacOS).
created_at: 2025-03-18T22:02:08Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,15 +23,15 @@ RUN tar -xf simulator.tar && \
     cd src/main/resources && \
     tar -xzf block-0.0.3.tar.gz && \
     rm block-0.0.3.tar.gz && \
-    cd /app && \
-    chown -R $UNAME:$UNAME /app
+    cd /opt && \
+    chown -R $UNAME:$UNAME /opt
path: simulator/docker/Dockerfile
user: login: Nana-EC
body: @jsync-swirlds is correct, I believe by utilizing the above recommended structure the original permissions issue won't be a factor and therefore this work around isn't needed.
created_at: 2025-03-19T03:40:37Z
author_association: CONTRIBUTOR
diff_hunk: @@ -71,7 +71,7 @@ RUN groupadd --gid 2000 hedera && \
 ARG VERSION
 
 # Set the working directory inside the container
-WORKDIR /app
+WORKDIR /opt
path: block-node/server/docker/Dockerfile
user: login: ata-nas
body: +1 here. @AlexKehayov please consider that making the switch to `/opt/hiero/block-node` means that you will also need to address the default persistence roots to match that. Currently they utilize a common root of `/opt/hashgraph/blocknode` and please take a look at all docker/k8s files for correct assignments of rights, groups etc. in case something is missed. 🙏 
created_at: 2025-03-19T08:57:07Z
author_association: CONTRIBUTOR
diff_hunk: @@ -70,7 +70,7 @@ blockNode:
   config:
     # Add any additional env configuration here
     # key: value
-    BLOCKNODE_STORAGE_ROOT_PATH: "/app/storage"
+    BLOCKNODE_STORAGE_ROOT_PATH: "/opt/storage"
path: charts/block-node-server/README.md
user: login: jsync-swirlds
body: This should be `/opt/hiero/block-node/storage`
created_at: 2025-03-19T14:21:46Z
author_association: CONTRIBUTOR
diff_hunk: @@ -24,9 +24,9 @@
  */
 class PersistenceStorageConfigTest {
     private static final Path HASHGRAPH_ROOT_ABSOLUTE_PATH =
-            Path.of("./opt/hashgraph/").toAbsolutePath();
+            Path.of("./opt/hiero/").toAbsolutePath();
     private static final Path PERSISTENCE_STORAGE_ROOT_ABSOLUTE_PATH =
-            HASHGRAPH_ROOT_ABSOLUTE_PATH.resolve("blocknode/data/");
+            HASHGRAPH_ROOT_ABSOLUTE_PATH.resolve("block-node/data/");
path: block-node/base/src/test/java/org/hiero/block/server/persistence/storage/PersistenceStorageConfigTest.java
user: login: jsync-swirlds
body: It would probably be good to move the `block-node` portion to the root path on line 27.
created_at: 2025-03-19T14:24:12Z
author_association: CONTRIBUTOR
diff_hunk: @@ -23,15 +23,15 @@ RUN tar -xf simulator.tar && \
     cd src/main/resources && \
     tar -xzf block-0.0.3.tar.gz && \
     rm block-0.0.3.tar.gz && \
-    cd /app && \
-    chown -R $UNAME:$UNAME /app
+    cd /opt && \
+    chown -R $UNAME:$UNAME /opt
path: simulator/docker/Dockerfile
user: login: AlexKehayov
body: After the changes the permissions are still needed in order to avoid AccessDeniedExceptions, but now they apply just for the specific directory.
created_at: 2025-03-19T14:42:13Z
author_association: CONTRIBUTOR
diff_hunk: @@ -71,7 +71,7 @@ RUN groupadd --gid 2000 hedera && \
 ARG VERSION
 
 # Set the working directory inside the container
-WORKDIR /app
+WORKDIR /opt/hiero/block-node
path: block-node/app/docker/Dockerfile
user: login: Nana-EC
body: Consider an ARG
```suggestion
ARG BN_WORKDIR="/opt/hiero/block-node"
WORKDIR ${BN_WORKDIR}
```

Then use ${BN_WORKDIR} in place of string
created_at: 2025-05-06T05:15:39Z
author_association: CONTRIBUTOR
diff_hunk: @@ -71,7 +71,7 @@ RUN groupadd --gid 2000 hedera && \
 ARG VERSION
 
 # Set the working directory inside the container
-WORKDIR /app
+WORKDIR /opt/hiero/block-node
path: block-node/app/docker/Dockerfile
user: login: AlexKehayov
body: Thanks for the suggestion, I refactored both block-node/app/docker/Dockerfile and simulator/docker/Dockerfile. In the first dockerfile I promoted ARG to ENV in the "Build Final Image" section in order to access the value in the ENTRYPOINT command properly. The path is not a sensitive information so it should not cause any issues.
created_at: 2025-05-07T14:56:59Z
author_association: CONTRIBUTOR
diff_hunk: @@ -130,6 +133,7 @@ ENV DEBIAN_FRONTEND=noninteractive
 ENV JAVA_VERSION="jdk-21.0.6+7"
 ENV JAVA_HOME=/usr/local/java
 ENV PATH=${JAVA_HOME}/bin:${PATH}
+ENV BN_WORKDIR=/opt/hiero/block-node
path: block-node/app/docker/Dockerfile
user: login: jsync-swirlds
body: Just comparing this to line 19.  Is there any way we can use the ARG here so that if the argument is passed from the container build operation this value does not end up mis-matching?
created_at: 2025-05-07T21:37:34Z
author_association: CONTRIBUTOR
diff_hunk: @@ -33,6 +33,7 @@ spec:
         - name: logging-config
           configMap:
             name: {{ include "hiero-block-node.fullname" . }}-logging-config
+        - name: logging-storage
path: charts/block-node-server/templates/deployment.yaml
user: login: AlfredoG87
body: Why name the volume and not specify a given PVC? what is the point?

I think logging files should be persisted across pod re-creations, for that we need to follow the pattern of PVC Creation when not defined.

see examples below for how to achieve it.

keep in mind that the PVC file most exists as `pvc-logs.yaml`
Most be initialized with a `subPath` folder on the `initContainer`.

created_at: 2025-05-09T01:12:08Z
author_association: CONTRIBUTOR
diff_hunk: @@ -153,6 +153,7 @@ blockNode:
       #   %5$ - log message
       #   %6$ - throwable trace
       java.util.logging.SimpleFormatter.format: "%TF %<TT.%<TL%<Tz %4$-7s [%2$s] %5$s%6$s%n"
+    mountPath: "/opt/hiero/block-node/logs"
path: charts/block-node-server/values.yaml
user: login: AlfredoG87
body: where are we using this?

maybe it should be inside `blockNode.persistence.logs` and then have the key-value of `mountPath`, `create`, `existingClaim`, `subPath` and `size` as with every other PVC?
created_at: 2025-05-09T01:12:14Z
author_association: CONTRIBUTOR
diff_hunk: @@ -59,6 +62,8 @@ spec:
               mountPath: /live-pvc
             - name: archive-storage
               mountPath: /archive-pvc
+            - name: logging-storage
+              mountPath: /opt/hiero/block-node/logs
path: charts/block-node-server/templates/deployment.yaml
user: login: jsync-swirlds
body: Shouldn't this be similar to the "live" and "archive" PVCs; something like `mountPath: /logs-pvc`?
created_at: 2025-05-09T15:44:06Z
author_association: CONTRIBUTOR
diff_hunk: @@ -59,6 +62,8 @@ spec:
               mountPath: /live-pvc
             - name: archive-storage
               mountPath: /archive-pvc
+            - name: logging-storage
+              mountPath: /opt/hiero/block-node/logs
path: charts/block-node-server/templates/deployment.yaml
user: login: AlexKehayov
body: You are absolutely right, I have undone that change before the commit by accident, thank you for the heads-up.
created_at: 2025-05-12T06:45:26Z
author_association: CONTRIBUTOR
diff_hunk: @@ -130,6 +133,7 @@ ENV DEBIAN_FRONTEND=noninteractive
 ENV JAVA_VERSION="jdk-21.0.6+7"
 ENV JAVA_HOME=/usr/local/java
 ENV PATH=${JAVA_HOME}/bin:${PATH}
+ENV BN_WORKDIR=/opt/hiero/block-node
path: block-node/app/docker/Dockerfile
user: login: jsync-swirlds
body: @AlexKehayov Raising awareness on this, in case it was missed.
created_at: 2025-05-12T18:38:51Z
author_association: CONTRIBUTOR
diff_hunk: @@ -130,6 +133,7 @@ ENV DEBIAN_FRONTEND=noninteractive
 ENV JAVA_VERSION="jdk-21.0.6+7"
 ENV JAVA_HOME=/usr/local/java
 ENV PATH=${JAVA_HOME}/bin:${PATH}
+ENV BN_WORKDIR=/opt/hiero/block-node
path: block-node/app/docker/Dockerfile
user: login: AlexKehayov
body: @jsync-swirlds With ARG the value is out of scope in the final lines, I still haven’t thought of a way to bypass this issue.
created_at: 2025-05-12T20:39:12Z
author_association: CONTRIBUTOR
diff_hunk: @@ -130,6 +133,7 @@ ENV DEBIAN_FRONTEND=noninteractive
 ENV JAVA_VERSION="jdk-21.0.6+7"
 ENV JAVA_HOME=/usr/local/java
 ENV PATH=${JAVA_HOME}/bin:${PATH}
+ENV BN_WORKDIR=/opt/hiero/block-node
path: block-node/app/docker/Dockerfile
user: login: jsync-swirlds
body: I see.  Might need to be a follow-up, then.
created_at: 2025-05-12T20:58:15Z
author_association: CONTRIBUTOR
diff_hunk: @@ -11,14 +11,15 @@ resources:
 
 blockNode:
   config:
-    JAVA_TOOL_OPTIONS: "-Djava.util.logging.config.file=/app/logs/config/logging.properties"
     JAVA_OPTS: "-Xms5G -Xmx5G"
     MEDIATOR_RING_BUFFER_SIZE: "2048"
   persistence:
     archive:
       size: 6Gi
     live:
       size: 1Gi
+    logging:
+      size: 1i
path: charts/block-node-server/values-overrides/mini.yaml
user: login: jsync-swirlds
body: Should this be `1Gi`?
created_at: 2025-05-13T16:54:27Z
author_association: CONTRIBUTOR
diff_hunk: @@ -79,8 +87,10 @@ spec:
               name: {{ include "hiero-block-node.fullname" . }}-secret
         volumeMounts:
           - name: logging-config
-            mountPath: /app/logs/config
+            mountPath: /opt/hiero/block-node/logs/config
path: charts/block-node-server/templates/deployment.yaml
user: login: jsync-swirlds
body: Should there be a mount path variable for this, like the other mount paths below?
created_at: 2025-05-13T16:55:21Z
author_association: CONTRIBUTOR
diff_hunk: @@ -11,14 +11,15 @@ resources:
 
 blockNode:
   config:
-    JAVA_TOOL_OPTIONS: "-Djava.util.logging.config.file=/app/logs/config/logging.properties"
     JAVA_OPTS: "-Xms5G -Xmx5G"
     MEDIATOR_RING_BUFFER_SIZE: "2048"
   persistence:
     archive:
       size: 6Gi
     live:
       size: 1Gi
+    logging:
+      size: 1i
path: charts/block-node-server/values-overrides/mini.yaml
user: login: AlfredoG87
body: Yes, u are right!! 👍 
created_at: 2025-05-14T02:41:23Z
author_association: CONTRIBUTOR
diff_hunk: @@ -79,8 +87,10 @@ spec:
               name: {{ include "hiero-block-node.fullname" . }}-secret
         volumeMounts:
           - name: logging-config
-            mountPath: /app/logs/config
+            mountPath: /opt/hiero/block-node/logs/config
path: charts/block-node-server/templates/deployment.yaml
user: login: AlfredoG87
body: Yes. it should come from the `Values`

as the others, thank you @jsync-swirlds 👍 
created_at: 2025-05-14T02:42:13Z
author_association: CONTRIBUTOR
diff_hunk: @@ -79,8 +87,10 @@ spec:
               name: {{ include "hiero-block-node.fullname" . }}-secret
         volumeMounts:
           - name: logging-config
-            mountPath: /app/logs/config
+            mountPath: /opt/hiero/block-node/logs/config
path: charts/block-node-server/templates/deployment.yaml
user: login: AlexKehayov
body: @jsync-swirlds @AlfredoG87, just fixed the typo from the patch in mini.yaml, added `configMountPath: "/opt/hiero/block-node/logs/config"` under `logs` in values.yaml (not under `persistence.logging`, to keep the PVC values separate from the config-map value) and 
```
          - name: logging-config
            mountPath: {{ .Values.blockNode.logs.configMountPath }}
```
in deployment.yaml
created_at: 2025-05-14T09:34:10Z
author_association: CONTRIBUTOR

PR comments:
user: login: AlexKehayov
created_at: 2025-03-19T15:40:35Z
body: @jsync-swirlds @Nana-EC Thank you for the guidance and the reviews. Your help is much appreciated.

I am still trying to complete the testing of the Helm chart changes, but I am having some difficulties running the pods with local Docker images (containing the Dockerfile changes) instead of the ones from the registry. Perhaps someone more proficient with Kubernetes than I am could check whether the changes are valid or if a new issue related to the K8s part should be opened.
author_association: CONTRIBUTOR
user: login: jsync-swirlds
created_at: 2025-03-19T15:43:55Z
body: > @jsync-swirlds @Nana-EC Thank you for the guidance and the reviews. Your help is much appreciated.
> 
> I am still trying to complete the testing of the Helm chart changes, but I am having some difficulties running the pods with local Docker images (containing the Dockerfile changes) instead of the ones from the registry. Perhaps someone more proficient with Kubernetes than I am could check whether the changes are valid or if a new issue related to the K8s part should be opened.

Perhaps @AlfredoG87 could take a look once the `0.6.1` release is done.
author_association: CONTRIBUTOR
user: login: AlexKehayov
created_at: 2025-03-20T12:23:39Z
body: I managed to do the K8 run with the updated server Dockerfile locally. Attaching the results below.

<img width="720" alt="image" src="https://github.com/user-attachments/assets/57403482-9d07-479e-b265-eb56c96c05f7" />

<img width="1461" alt="image" src="https://github.com/user-attachments/assets/e9a89c20-767c-4af0-ae9c-6b5ec99acdef" />
<img width="1473" alt="image" src="https://github.com/user-attachments/assets/3b1d18d7-e795-4e97-bac9-831b8c71203d" />


<img width="1049" alt="image" src="https://github.com/user-attachments/assets/dd38ea76-dd42-42f1-8a6d-94e3d44989ad" />
author_association: CONTRIBUTOR
user: login: Nana-EC
created_at: 2025-04-28T16:26:09Z
body: Hey @AlexKehayov , feel free to rebase and update if you're able to now that the refactor to `main` has completed..
A lot has changed so it's possible the issue is no longer applicable or a larger or smaller effort than before.
Take your time and let us know what you find.
author_association: CONTRIBUTOR
user: login: AlexKehayov
created_at: 2025-04-29T09:06:38Z
body: @Nana-EC, the conflicts are resolved :)
author_association: CONTRIBUTOR
user: login: AlfredoG87
created_at: 2025-05-09T01:48:21Z
body: finally, could you re-base as well. thank you! 💯 
author_association: CONTRIBUTOR
user: login: AlexKehayov
created_at: 2025-05-09T08:24:32Z
body: @AlfredoG87, thank you for the feedback. I will push the requested changes shortly. Could you please revisit charts/block-node-server/templates/deployment.yaml and charts/block-node-server/values.yaml again?
author_association: CONTRIBUTOR
user: login: AlexKehayov
created_at: 2025-05-13T08:12:00Z
body: @AlfredoG87 thank you, the changes are applied.
author_association: CONTRIBUTOR
user: login: codecov[bot]
created_at: 2025-05-16T01:37:05Z
body: ## [Codecov](https://app.codecov.io/gh/hiero-ledger/hiero-block-node/pull/872?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=hiero-ledger) Report
All modified and coverable lines are covered by tests :white_check_mark:

```diff
@@            Coverage Diff            @@
##               main     #872   +/-   ##
=========================================
  Coverage     84.86%   84.86%           
  Complexity      916      916           
=========================================
  Files           104      104           
  Lines          3719     3719           
  Branches        396      396           
=========================================
  Hits           3156     3156           
  Misses          411      411           
  Partials        152      152           
```

| [Files with missing lines](https://app.codecov.io/gh/hiero-ledger/hiero-block-node/pull/872?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=hiero-ledger) | Coverage Δ | Complexity Δ | |
|---|---|---|---|
| [...ode/blocks/files/historic/FilesHistoricConfig.java](https://app.codecov.io/gh/hiero-ledger/hiero-block-node/pull/872?src=pr&el=tree&filepath=block-node%2Fblock-providers%2Ffiles.historic%2Fsrc%2Fmain%2Fjava%2Forg%2Fhiero%2Fblock%2Fnode%2Fblocks%2Ffiles%2Fhistoric%2FFilesHistoricConfig.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=hiero-ledger#diff-YmxvY2stbm9kZS9ibG9jay1wcm92aWRlcnMvZmlsZXMuaGlzdG9yaWMvc3JjL21haW4vamF2YS9vcmcvaGllcm8vYmxvY2svbm9kZS9ibG9ja3MvZmlsZXMvaGlzdG9yaWMvRmlsZXNIaXN0b3JpY0NvbmZpZy5qYXZh) | `100.00% <ø> (ø)` | `1.00 <0.00> (ø)` | |
| [...ck/node/blocks/files/recent/FilesRecentConfig.java](https://app.codecov.io/gh/hiero-ledger/hiero-block-node/pull/872?src=pr&el=tree&filepath=block-node%2Fblock-providers%2Ffiles.recent%2Fsrc%2Fmain%2Fjava%2Forg%2Fhiero%2Fblock%2Fnode%2Fblocks%2Ffiles%2Frecent%2FFilesRecentConfig.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=hiero-ledger#diff-YmxvY2stbm9kZS9ibG9jay1wcm92aWRlcnMvZmlsZXMucmVjZW50L3NyYy9tYWluL2phdmEvb3JnL2hpZXJvL2Jsb2NrL25vZGUvYmxvY2tzL2ZpbGVzL3JlY2VudC9GaWxlc1JlY2VudENvbmZpZy5qYXZh) | `100.00% <ø> (ø)` | `1.00 <0.00> (ø)` | |

... and [1 file with indirect coverage changes](https://app.codecov.io/gh/hiero-ledger/hiero-block-node/pull/872/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=hiero-ledger)

<details><summary> :rocket: New features to boost your workflow: </summary>

- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
</details>
author_association: NONE