Skip to content

Commit 302c4c7

Browse files
committed
Merge remote-tracking branch 'remotes/origin/main' into 21734-buffer-force-fix
2 parents f3d8662 + 15aada6 commit 302c4c7

File tree

443 files changed

+12543
-3339
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

443 files changed

+12543
-3339
lines changed

.github/ISSUE_TEMPLATE/good-first-issue-candidate.yaml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1+
# SPDX-License-Identifier: Apache-2.0
12
name: Good First Issue Candidate
23
description: Suggest an idea for this project
3-
labels: [ "Good First Issue Candidate" ]
4+
labels: ["Good First Issue Candidate"]
45
type: Feature
56
body:
67
- type: markdown
78
attributes:
89
value: |
910
## Thanks for submitting a Good First Issue!
10-
11+
1112
This issue targets first time contributors to [Hiero](https://hiero.org).
1213
We know that creating a pull request (PR) is a major barrier for new contributors.
1314
The goal of this issue (and all other issues labeled with) [**'Good First Issue'**](https://github.com/issues?q=is%3Aopen+is%3Aissue+org%3Ahiero-ledger+archived%3Afalse+label%3A%22good+first+issue%22+) is to help you make your first contribution to Hiero.
@@ -53,13 +54,13 @@ body:
5354
attributes:
5455
value: |
5556
------
56-
57+
5758
## Making Contributions
58-
59+
5960
If you have never contributed to an open source project at GitHub, the following step-by-step guide will introduce you to the workflow.
6061
More information and concrete samples for shell commands for each step can be found in our [CONTRIBUTING.md](https://github.com/hiero-ledger/.github/blob/main/CONTRIBUTING.md) file.
6162
A more detailed general documentation of the GitHub PR workflow can be found [here](https://github.com/firstcontributions/first-contributions/blob/master/README.md).
62-
63+
6364
- [ ] **Claim this issue:** Comment below that you are interested in working on the issue
6465
- [ ] **Wait for assignment:** A community member with the given rights will add you as an assignee of the issue
6566
- [ ] **Work on the issue:** Follow the detailed description in our [CONTRIBUTING.md](https://github.com/hiero-ledger/.github/blob/main/CONTRIBUTING.md) file.
@@ -70,17 +71,17 @@ body:
7071
attributes:
7172
value: |
7273
## :jack_o_lantern: Hacktoberfest :jack_o_lantern:
73-
74+
7475
At the time of the [Hacktoberfest](https://hacktoberfest.digitalocean.com) event we try to mark all PRs that solve any good first issue with the `hacktoberfest-accepted` label.
7576
If you want to resolve this issue as part of Hacktoberfest and we missed adding the label, simply add a comment to the issue or PR, and we will add it.
76-
77+
7778
------
7879
- type: markdown
7980
attributes:
8081
value: |
8182
## Additional Questions
82-
83+
8384
If you have any questions about the topic of this issue, please ask us directly by adding a comment below.
8485
Additionally, we invite you to join our community on our [Discord](https://discord.gg/kEnnmB9A) server or attend our [public community calls](https://zoom-lfx.platform.linuxfoundation.org/meetings/hiero?view=week).
85-
86+
8687
A general manual about open-source contributions can be found [here](https://github.com/firstcontributions/first-contributions/blob/master/README.md).

.github/workflows/node-flow-build-application.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,24 @@ jobs:
128128
codacy-project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
129129
codecov-token: ${{ secrets.CODECOV_TOKEN }}
130130

131+
mats-integration-tests:
132+
name: MATS - Integration Tests
133+
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
134+
needs:
135+
- dependency-check
136+
- spotless
137+
with:
138+
custom-job-label: "MATS Integration Tests"
139+
java-version: ${{ github.event.inputs.java-version || '21.0.6' }}
140+
java-distribution: ${{ github.event.inputs.java-distribution || 'temurin' }}
141+
enable-unit-tests: false
142+
enable-integration-tests: ${{ github.event_name == 'push' || github.event.inputs.enable-unit-tests == 'true' }}
143+
enable-network-log-capture: true
144+
secrets:
145+
access-token: ${{ secrets.GITHUB_TOKEN }}
146+
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
147+
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
148+
131149
mats-hapi-tests-misc:
132150
name: MATS - HAPI Tests (Misc)
133151
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
@@ -364,6 +382,7 @@ jobs:
364382
runs-on: hiero-citr-linux-medium
365383
needs:
366384
- mats-unit-tests
385+
- mats-integration-tests
367386
- mats-hapi-tests-misc
368387
- mats-hapi-tests-misc-records
369388
- mats-hapi-tests-crypto
@@ -379,6 +398,7 @@ jobs:
379398
- mats-docker-determinism
380399
if: ${{ (github.event_name == 'push') &&
381400
needs.mats-unit-tests.result == 'success' &&
401+
needs.mats-integration-tests.result == 'success' &&
382402
needs.mats-hapi-tests-misc.result == 'success' &&
383403
needs.mats-hapi-tests-misc-records.result == 'success' &&
384404
needs.mats-hapi-tests-crypto.result == 'success' &&
@@ -419,6 +439,7 @@ jobs:
419439
- dependency-check
420440
- spotless
421441
- mats-unit-tests
442+
- mats-integration-tests
422443
- mats-hapi-tests-misc
423444
- mats-hapi-tests-misc-records
424445
- mats-hapi-tests-crypto
@@ -437,6 +458,7 @@ jobs:
437458
needs.dependency-check.result != 'success' ||
438459
needs.spotless.result != 'success' ||
439460
needs.mats-unit-tests.result != 'success' ||
461+
needs.mats-integration-tests.result != 'success' ||
440462
needs.mats-hapi-tests-misc.result != 'success' ||
441463
needs.mats-hapi-tests-misc-records.result != 'success' ||
442464
needs.mats-hapi-tests-crypto.result != 'success' ||
@@ -522,6 +544,7 @@ jobs:
522544
- name: Calculate MATS Unit Test Result
523545
id: mats-unit-test-result
524546
if: ${{ needs.mats-unit-tests.result != 'success' ||
547+
needs.mats-integration-tests.result != 'success' ||
525548
needs.mats-hapi-tests-misc.result != 'success' ||
526549
needs.mats-hapi-tests-misc-records.result != 'success' ||
527550
needs.mats-hapi-tests-crypto.result != 'success' ||

.github/workflows/node-flow-pull-request-checks.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,22 @@ jobs:
7878
codacy-project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
7979
codecov-token: ${{ secrets.CODECOV_TOKEN }}
8080

81+
integration-tests:
82+
name: Integration Tests
83+
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
84+
needs:
85+
- dependency-check
86+
- spotless
87+
with:
88+
custom-job-label: Standard
89+
enable-unit-tests: false
90+
enable-integration-tests: true
91+
enable-network-log-capture: true
92+
secrets:
93+
access-token: ${{ secrets.GITHUB_TOKEN }}
94+
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
95+
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
96+
8197
hapi-tests-misc:
8298
name: HAPI Tests (Misc)
8399
uses: ./.github/workflows/node-zxc-compile-application-code.yaml

.github/workflows/node-zxc-compile-application-code.yaml

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ on:
2323
type: boolean
2424
required: false
2525
default: false
26+
enable-integration-tests:
27+
description: "Integration Testing Enabled"
28+
type: boolean
29+
required: false
30+
default: false
2631
enable-hapi-tests-misc:
2732
description: "HAPI Testing (misc) Enabled"
2833
type: boolean
@@ -316,6 +321,28 @@ jobs:
316321
path: "**/build/test-results/hammer/TEST-*.xml"
317322
retention-days: 7
318323

324+
- name: Integration Tests
325+
id: gradle-integration-tests
326+
if: ${{ inputs.enable-integration-tests && steps.gradle-build.conclusion == 'success' && !cancelled() }}
327+
run: ${GRADLE_EXEC} testIntegration --continue
328+
329+
- name: Publish Integration Test Report
330+
uses: step-security/publish-unit-test-result-action@5d195d4dec0b9fa7b51a3dbc4298362a021247c7 # v2.20.4
331+
if: ${{ inputs.enable-integration-tests && steps.gradle-build.conclusion == 'success' && !cancelled() }}
332+
with:
333+
check_name: "Node: Integration Test Results"
334+
json_thousands_separator: ","
335+
junit_files: "**/build/test-results/testIntegration/TEST-*.xml"
336+
comment_mode: errors # only comment if we could not find or parse the JUnit XML files
337+
338+
- name: Upload Integration Test Report Artifacts
339+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
340+
if: ${{ inputs.enable-integration-tests && steps.gradle-build.conclusion == 'success' && !cancelled() }}
341+
with:
342+
name: Integration Test Report
343+
path: "**/build/test-results/testIntegration/TEST-*.xml"
344+
retention-days: 7
345+
319346
- name: HAPI Testing (Misc)
320347
id: gradle-hapi-misc
321348
if: ${{ inputs.enable-hapi-tests-misc && steps.gradle-build.conclusion == 'success' && !cancelled() }}
@@ -675,32 +702,50 @@ jobs:
675702
hedera-node/test-clients/build/*-test/**/output/**
676703
retention-days: 7
677704

705+
- name: Upload Otter Integration Tests Turtle Logs
706+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
707+
if: ${{ inputs.enable-integration-tests && inputs.enable-network-log-capture && steps.gradle-integration-tests.conclusion == 'failure' && !cancelled() }}
708+
with:
709+
name: Otter Integration Tests Turtle Logs
710+
path: |
711+
platform-sdk/consensus-otter-tests/build/turtle/**
712+
retention-days: 7
713+
714+
- name: Upload Otter Integration Tests Container Logs
715+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
716+
if: ${{ inputs.enable-integration-tests && inputs.enable-network-log-capture && steps.gradle-integration-tests.conclusion == 'failure' && !cancelled() }}
717+
with:
718+
name: Otter Integration Tests Container Logs
719+
path: |
720+
platform-sdk/consensus-otter-tests/build/container/**
721+
retention-days: 7
722+
678723
- name: Otter Testing
679724
id: gradle-otter-tests
680725
if: ${{ inputs.enable-otter-tests && steps.gradle-build.conclusion == 'success' && !cancelled() }}
681726
env:
682727
LC_ALL: en.UTF-8
683728
LANG: en_US.UTF-8
684-
run: ${GRADLE_EXEC} :consensus-otter-tests:testIntegration
729+
run: ${GRADLE_EXEC} :consensus-otter-tests:testOtter
685730

686731
- name: Publish Otter Testing Report
687732
uses: step-security/publish-unit-test-result-action@5d195d4dec0b9fa7b51a3dbc4298362a021247c7 # v2.20.4
688733
if: ${{ inputs.enable-otter-tests && steps.gradle-build.conclusion == 'success' && !cancelled() }}
689734
with:
690735
check_name: "Node: Otter Tests Results"
691736
json_thousands_separator: ","
692-
junit_files: "**/consensus-otter-tests/build/test-results/testIntegration/TEST-*.xml"
737+
junit_files: "**/consensus-otter-tests/build/test-results/testOtter/TEST-*.xml"
693738
comment_mode: errors # only comment if we could not find or parse the JUnit XML files
694739

695740
- name: Upload Otter Tests Report Artifacts
696741
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
697742
if: ${{ inputs.enable-otter-tests && steps.gradle-build.conclusion == 'success' && !cancelled() }}
698743
with:
699744
name: Otter Tests Report
700-
path: "**/consensus-otter-tests/build/test-results/testIntegration/TEST-*.xml"
745+
path: "**/consensus-otter-tests/build/test-results/testOtter/TEST-*.xml"
701746
retention-days: 7
702747

703-
- name: Upload Otter Turtle Logs
748+
- name: Upload Otter Tests Turtle Logs
704749
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
705750
if: ${{ inputs.enable-otter-tests && inputs.enable-network-log-capture && steps.gradle-otter-tests.conclusion == 'failure' && !cancelled() }}
706751
with:
@@ -709,7 +754,7 @@ jobs:
709754
platform-sdk/consensus-otter-tests/build/turtle/**
710755
retention-days: 7
711756

712-
- name: Upload Otter Container Logs
757+
- name: Upload Otter Tests Container Logs
713758
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
714759
if: ${{ inputs.enable-otter-tests && inputs.enable-network-log-capture && steps.gradle-otter-tests.conclusion == 'failure' && !cancelled() }}
715760
with:
@@ -864,6 +909,7 @@ jobs:
864909
"${{ steps.gradle-timing-sensitive.outcome || 'skipped' }}"
865910
"${{ steps.gradle-time-consuming.outcome || 'skipped' }}"
866911
"${{ steps.gradle-hammer-tests.outcome || 'skipped' }}"
912+
"${{ steps.gradle-integration-tests.outcome || 'skipped' }}"
867913
"${{ steps.gradle-hapi-misc.outcome || 'skipped' }}"
868914
"${{ steps.gradle-hapi-misc-records.outcome || 'skipped' }}"
869915
"${{ steps.gradle-hapi-crypto.outcome || 'skipped' }}"

.github/workflows/support/citr/Taskfile.citr.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ tasks:
413413
silent: true
414414
cmds:
415415
- |
416-
if ! kubectl get svc -l app.kubernetes.io/instance=minio-operator --all-namespaces --no-headers | grep -q . ; then
416+
if ! kubectl get pods -l app.kubernetes.io/instance=minio-operator -l app.kubernetes.io/name=operator --all-namespaces --no-headers | grep -q . ; then
417417
echo "No services found with label app.kubernetes.io/name=operator app.kubernetes.io/instance=minio-operator"
418418
echo "--minio" > {{ .minio_flag_file }}
419419
else
@@ -431,9 +431,9 @@ tasks:
431431
- |
432432
export MINIO_FLAG=$(cat {{ .minio_flag_file }})
433433
if [[ "{{ .solo_ge_0440 }}" == "true" ]]; then
434-
SOLO_HOME_DIR=${SOLO_HOME_DIR} solo cluster-ref config setup --cluster-setup-namespace "${SOLO_CLUSTER_SETUP_NAMESPACE}" ${MINIO_FLAG} ${SOLO_CHARTS_DIR_FLAG} ${CLUSTER_TLS_FLAGS} -q --dev
434+
SOLO_HOME_DIR=${SOLO_HOME_DIR} solo cluster-ref config setup --cluster-setup-namespace "${SOLO_CLUSTER_SETUP_NAMESPACE}" ${MINIO_FLAG} ${SOLO_CHARTS_DIR_FLAG} ${CLUSTER_TLS_FLAGS} --no-prometheus-stack -q --dev
435435
else
436-
SOLO_HOME_DIR=${SOLO_HOME_DIR} solo cluster-ref setup --cluster-setup-namespace "${SOLO_CLUSTER_SETUP_NAMESPACE}" ${MINIO_FLAG} ${SOLO_CHARTS_DIR_FLAG} ${CLUSTER_TLS_FLAGS} -q --dev
436+
SOLO_HOME_DIR=${SOLO_HOME_DIR} solo cluster-ref setup --cluster-setup-namespace "${SOLO_CLUSTER_SETUP_NAMESPACE}" ${MINIO_FLAG} ${SOLO_CHARTS_DIR_FLAG} ${CLUSTER_TLS_FLAGS} --no-prometheus-stack -q --dev
437437
fi
438438
439439
solo:node:addresses:

.github/workflows/support/citr/Taskfile.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ env:
2626
#EXPLORER_CLUSTER_CONTEXT: "kind-solo-cluster"
2727
SOLO_DEPLOYMENT: %SOLO_NAMESPACE%-test
2828
CLUSTER_REF: %SOLO_NAMESPACE%-ref
29-
SOLO_CLUSTER_RELEASE_NAME: cluster_name
29+
SOLO_CLUSTER_RELEASE_NAME: solo-cluster-setup
3030
CONTEXT: hashgraph.teleport.sh-k8s.pft.chi.lat.ope.eng.hashgraph.io
3131
SOLO_CLUSTER_SETUP_NAMESPACE: solo-setup
3232
SOLO_CLUSTER_NAME: solo-cluster-name

.github/workflows/support/citr/log4j2.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
<RollingFile name="BlockNodeCommsFile" fileName="output/blocknode-comms.log"
8080
filePattern="output/blocknode-comms-%i.log">
8181
<PatternLayout>
82-
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %-4L %c{1} - %m{nolookups}%n</pattern>
82+
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %-4L %c{1} - [%t] %m{nolookups}%n</pattern>
8383
</PatternLayout>
8484
<Policies>
8585
<SizeBasedTriggeringPolicy size="100 MB"/>

.github/workflows/zxf-dry-run-extended-test-suite.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ jobs:
7474
- name: Print Params
7575
id: params
7676
run: |
77-
SOLO_GE_0440=$([[ "$(printf '%s\n' "${{vars.ADHOC_SOLO_VERSION}}" "v0.44.0" | sort -V | head -n1)" == "v0.44.0" ]] && echo "true" || echo "false")
77+
SOLO_GE_0440=$([[ "$(printf '%s\n' "${{vars.ADHOC_XTS_SOLO_VERSION}}" "v0.44.0" | sort -V | head -n1)" == "v0.44.0" ]] && echo "true" || echo "false")
7878
HELM_NAME="mirror"
7979
if [[ "${SOLO_GE_0440}" == "true" ]]; then
8080
HELM_NAME="mirror-1"
@@ -89,10 +89,10 @@ jobs:
8989
echo "Enable JSON-RPC Relay Regression Panel: ${{ inputs.enable-rpc-relay-regression-panel }}" | tee -a "${GITHUB_STEP_SUMMARY}"
9090
echo "Enable Block Node Regression Panel: ${{ inputs.enable-block-node-regression-panel }}" | tee -a "${GITHUB_STEP_SUMMARY}"
9191
echo "Additional Parameters: ${{ inputs.additional-parameters }}" | tee -a "${GITHUB_STEP_SUMMARY}"
92-
echo "Solo Version: ${{ vars.ADHOC_SOLO_VERSION }}" | tee -a "${GITHUB_STEP_SUMMARY}"
92+
echo "Solo Version: ${{ vars.ADHOC_XTS_SOLO_VERSION }}" | tee -a "${GITHUB_STEP_SUMMARY}"
9393
echo "Helm Release Name: ${HELM_NAME}" | tee -a "${GITHUB_STEP_SUMMARY}"
9494
95-
echo "solo-version=${{ vars.ADHOC_SOLO_VERSION }}" >> "${GITHUB_OUTPUT}"
95+
echo "solo-version=${{ vars.ADHOC_XTS_SOLO_VERSION }}" >> "${GITHUB_OUTPUT}"
9696
echo "helm-release-name=${HELM_NAME}" >> "${GITHUB_OUTPUT}"
9797
echo "solo-ge-0440=${SOLO_GE_0440}" >> "${GITHUB_OUTPUT}"
9898

hapi/hapi/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44
id("org.hiero.gradle.feature.protobuf")
55
id("org.hiero.gradle.feature.test-fixtures")
66
// ATTENTION: keep pbj version in sync with 'hiero-dependency-versions/build.gradle.kts'
7-
id("com.hedera.pbj.pbj-compiler") version "0.12.1"
7+
id("com.hedera.pbj.pbj-compiler") version "0.12.2"
88
}
99

1010
description = "Hedera API"

hapi/hedera-protobuf-java-api/src/main/proto/block/stream/output/state_changes.proto

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,11 @@ enum StateIdentifier {
473473
*/
474474
STATE_ID_LAMBDA_STORAGE = 52;
475475

476+
/**
477+
* A state identifier fro account to node relation.
478+
*/
479+
STATE_ID_ACCOUNT_NODE_REL = 53;
480+
476481
/**
477482
* A state identifier for the round receipts queue. Queue state.
478483
*/
@@ -1074,6 +1079,11 @@ message MapChangeValue {
10741079
* An EVM hook's state.
10751080
*/
10761081
com.hedera.hapi.node.state.hooks.EvmHookState evm_hook_state_value = 29;
1082+
1083+
/**
1084+
* A node identifier.
1085+
*/
1086+
com.hedera.hapi.platform.state.NodeId node_id_value = 30;
10771087
}
10781088
}
10791089

0 commit comments

Comments
 (0)