Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
4630 commits
Select commit Hold shift + click to select a range
f13be26
Merge branch 'ai-audit-findings-part2' into claude-findings
sstanculeanu Feb 23, 2026
85cf4f4
fix linter + fix after discussion
sstanculeanu Feb 23, 2026
0e68484
fix test
sstanculeanu Feb 23, 2026
2568564
fix SetEpochChange
sstanculeanu Feb 23, 2026
df060e1
Merge pull request #7746 from multiversx/fix-discountinuous-breadcrumbs
sstanculeanu Feb 23, 2026
b5eedfc
Merge pull request #7754 from multiversx/claude-findings
sstanculeanu Feb 23, 2026
d4add78
Merge branch 'feat/supernova-async-exec' into ai-audit-findings-part2
sstanculeanu Feb 23, 2026
0cac60e
Merge branch 'ai-audit-findings-part2' into test-fast-epochs-feat/sup…
sstanculeanu Feb 23, 2026
07165e2
Merge branch 'feat/supernova-async-exec' into state-snapshot-refactor
BeniaminDrasovean Feb 24, 2026
0e2c83c
add closingNodeStarted flag to stop pruning
BeniaminDrasovean Feb 24, 2026
a3f8832
Merge pull request #7755 from multiversx/ai-audit-findings-part2
sstanculeanu Feb 24, 2026
5644757
Merge branch 'feat/supernova-async-exec' into state-snapshot-refactor
BeniaminDrasovean Feb 24, 2026
f6af721
Merge branch 'feat/supernova-async-exec' into test-fast-epochs-feat/s…
sstanculeanu Feb 24, 2026
4e6dd8f
Merge pull request #7672 from multiversx/state-snapshot-refactor
sstanculeanu Feb 24, 2026
a2f9a8f
Merge branch 'feat/supernova-async-exec' into test-fast-epochs-feat/s…
sstanculeanu Feb 24, 2026
ffd658b
Merge branch 'feat/supernova-async-exec' into pruning-before-closing-fix
BeniaminDrasovean Feb 24, 2026
da4ae2e
add ntp sync cooldown
ssd04 Feb 24, 2026
20e5831
add common func
ssd04 Feb 24, 2026
16bfd05
don't commit state for replaced blocks (consensus failed)
AdoAdoAdo Feb 24, 2026
7029965
fixes after review
ssd04 Feb 24, 2026
3fb0bb3
refactor headersExecutor to commit state before adding execution result
AdoAdoAdo Feb 24, 2026
8412da4
add tests
AdoAdoAdo Feb 24, 2026
0cbe5a4
add new test case and fix race condition
BeniaminDrasovean Feb 24, 2026
7e3a149
Merge pull request #7758 from multiversx/avoid-commit-state-on-consen…
sstanculeanu Feb 24, 2026
41998a1
Merge branch 'feat/supernova-async-exec' into ntp-sync-cooldown
ssd04 Feb 24, 2026
a33c58b
Merge pull request #7757 from multiversx/ntp-sync-cooldown
sstanculeanu Feb 24, 2026
4809323
Merge branch 'feat/supernova-async-exec' into test-fast-epochs-feat/s…
sstanculeanu Feb 24, 2026
3b3955c
convert recursion to loop
AdoAdoAdo Feb 24, 2026
b756ba8
add nil check
BeniaminDrasovean Feb 24, 2026
934de64
Merge branch 'feat/supernova-async-exec' into pruning-before-closing-fix
BeniaminDrasovean Feb 24, 2026
1d62ae7
fix linter issues
BeniaminDrasovean Feb 24, 2026
a15a203
fix revert on worker extend
ssd04 Feb 24, 2026
96765df
Merge pull request #7760 from multiversx/fix-consensus-worker-revert
ssd04 Feb 24, 2026
7ed2a62
Merge branch 'feat/supernova-async-exec' into recursion-into-loop
sstanculeanu Feb 24, 2026
a1bdf14
Merge pull request #7759 from multiversx/recursion-into-loop
sstanculeanu Feb 24, 2026
e3efeb9
Merge branch 'feat/supernova-async-exec' into test-fast-epochs-feat/s…
sstanculeanu Feb 24, 2026
4450b90
add delay after blocking pruning
BeniaminDrasovean Feb 25, 2026
9a34e63
Merge branch 'feat/supernova-async-exec' into pruning-before-closing-fix
BeniaminDrasovean Feb 25, 2026
e8b00e6
fix meta header nonce gaps on shard blocks due to missing data
sstanculeanu Feb 25, 2026
1b912d1
added tests
sstanculeanu Feb 25, 2026
d583880
extra log
miiu96 Feb 25, 2026
d341a57
Merge branch 'feat/supernova-async-exec' into extra-logs-outport-prov…
miiu96 Feb 25, 2026
020127a
removed duplicated test
sstanculeanu Feb 25, 2026
57c6f29
fix after review
BeniaminDrasovean Feb 25, 2026
01e1d6c
fix after review
sstanculeanu Feb 25, 2026
9d14845
fix comment
sstanculeanu Feb 25, 2026
3825068
Merge pull request #7761 from multiversx/fix-referenced-meta-gaps-on-…
AdoAdoAdo Feb 25, 2026
c6375f8
Merge branch 'feat/supernova-async-exec' into test-fast-epochs-feat/s…
sstanculeanu Feb 25, 2026
826e1ff
Merge branch 'feat/supernova-async-exec' into pruning-before-closing-fix
AdoAdoAdo Feb 26, 2026
0338766
fixes
miiu96 Feb 26, 2026
b0b1215
fix linter issues
AdoAdoAdo Feb 26, 2026
4e5264f
Update node/nodeRunner.go
BeniaminDrasovean Feb 26, 2026
5cf270a
Merge pull request #7765 from multiversx/ci-fixes
AdoAdoAdo Feb 26, 2026
f61deac
add num header to request in advance to config
ssd04 Feb 26, 2026
537e261
Merge branch 'feat/supernova-async-exec' into headers-to-request-in-a…
ssd04 Feb 26, 2026
a5a4051
Merge branch 'feat/supernova-async-exec' into extra-logs-outport-prov…
miiu96 Feb 26, 2026
71f58f8
fixes on subroundEndRound to still broadcast the proof after time is …
sstanculeanu Feb 26, 2026
ef77b2d
Merge pull request #7766 from multiversx/headers-to-request-in-advanc…
AdoAdoAdo Feb 26, 2026
c14a858
Merge branch 'feat/supernova-async-exec' into fix-proof-broadcast
sstanculeanu Feb 26, 2026
1d05b13
Merge branch 'feat/supernova-async-exec' into pruning-before-closing-fix
AdoAdoAdo Feb 26, 2026
38bd5c2
Merge pull request #7756 from multiversx/pruning-before-closing-fix
AdoAdoAdo Feb 26, 2026
5c878c0
proper timeLeft computation
sstanculeanu Feb 26, 2026
7c9fd3e
Merge branch 'feat/supernova-async-exec' into fix-proof-broadcast
sstanculeanu Feb 26, 2026
7dc9da1
read txs from storage
miiu96 Feb 26, 2026
a992212
Merge branch 'feat/supernova-async-exec' into extra-logs-outport-prov…
miiu96 Feb 26, 2026
709a104
extend multikey check
sstanculeanu Feb 26, 2026
94653c3
fixed test, new method needed
sstanculeanu Feb 26, 2026
732eace
Merge branch 'fix-proof-broadcast' of https://github.com/multiversx/m…
sstanculeanu Feb 26, 2026
8b525c1
fix after review
sstanculeanu Feb 26, 2026
284f8af
Merge branch 'fix-proof-broadcast' of https://github.com/multiversx/m…
sstanculeanu Feb 26, 2026
1c900ec
use last executed header based on provided header hash
ssd04 Feb 26, 2026
fbcfff8
fix economics edge case return
ssd04 Feb 26, 2026
367d5f8
Merge pull request #7767 from multiversx/fix-proof-broadcast
ssd04 Feb 26, 2026
495430b
fix isMessageFromSelfToSelf for multikey
sstanculeanu Feb 26, 2026
97234e7
Merge branch 'feat/supernova-async-exec' into fix-isMessageFromSelfTo…
AdoAdoAdo Feb 26, 2026
0141524
reverted config change
sstanculeanu Feb 26, 2026
41ef590
reverted config change
sstanculeanu Feb 26, 2026
bee5f56
Merge pull request #7770 from multiversx/fix-isMessageFromSelfToSelf-…
sstanculeanu Feb 26, 2026
3f4efa9
update BlockChainHook to use last executed block header
AdoAdoAdo Feb 27, 2026
6a6a7f2
updated MaxBlockProcessingTimeMs
sstanculeanu Feb 27, 2026
18199b3
fixes
AdoAdoAdo Feb 27, 2026
c2879e6
Merge branch 'feat/supernova-async-exec' into fix-economics-edge-case
AdoAdoAdo Feb 27, 2026
a7f2b5f
Merge branch 'feat/supernova-async-exec' into extra-logs-outport-prov…
miiu96 Feb 27, 2026
b46f665
Merge pull request #7771 from multiversx/blockchain-hook-update
AdoAdoAdo Feb 27, 2026
3f70eb8
Merge branch 'feat/supernova-async-exec' into fix-economics-edge-case
sstanculeanu Feb 27, 2026
67fee25
Merge branch 'feat/supernova-async-exec' into update-max-block-proces…
sstanculeanu Feb 27, 2026
b0f5d72
Merge pull request #7769 from multiversx/fix-economics-edge-case
ssd04 Feb 27, 2026
80d96da
Merge branch 'feat/supernova-async-exec' into update-max-block-proces…
sstanculeanu Feb 27, 2026
fc05662
handle root hash based on execution result
ssd04 Feb 27, 2026
73ce2ec
Merge pull request #7772 from multiversx/update-max-block-processing-…
ssd04 Feb 27, 2026
040beb7
Merge branch 'feat/supernova-async-exec' into sc-query-header
ssd04 Feb 27, 2026
382f22d
decrease peer's rating before sendToConnectedPeer
sstanculeanu Feb 27, 2026
45e15ae
fix typos
ssd04 Feb 27, 2026
1e7dc8d
Merge pull request #7773 from multiversx/decrease-peer-rating-earlier
sstanculeanu Feb 27, 2026
1affe59
save execution result to storage
ssd04 Feb 27, 2026
8d1f476
Merge branch 'feat/supernova-async-exec' into sc-query-header
ssd04 Feb 27, 2026
28adbaa
Merge pull request #7768 from multiversx/sc-query-header
ssd04 Feb 27, 2026
cc1b3f9
force request epoch start header and its proof
AdoAdoAdo Feb 27, 2026
e98d4f9
Merge branch 'feat/supernova-async-exec' into request-epoch-start-block
AdoAdoAdo Feb 27, 2026
45ea36e
fix
AdoAdoAdo Feb 27, 2026
bda7e53
Merge remote-tracking branch 'origin/request-epoch-start-block' into …
AdoAdoAdo Feb 27, 2026
8283bc7
Merge pull request #7774 from multiversx/request-epoch-start-block
sstanculeanu Feb 27, 2026
15e9063
Merge branch 'feat/supernova-async-exec' into extra-logs-outport-prov…
miiu96 Mar 2, 2026
dcec966
Merge pull request #7764 from multiversx/extra-logs-outport-provider
miiu96 Mar 2, 2026
c538797
force updateTriggerFromMeta
sstanculeanu Mar 2, 2026
850044b
closing order change supernova
AdoAdoAdo Mar 2, 2026
c0db568
fix after copilot
sstanculeanu Mar 2, 2026
c90471a
better formatting
sstanculeanu Mar 2, 2026
d01c811
fix api epoch start meta block root hash
ssd04 Mar 2, 2026
70de6d9
save pruningEnabled flag in AccountsDB
BeniaminDrasovean Mar 2, 2026
eedec16
Merge pull request #7776 from multiversx/close-order-supernova
sstanculeanu Mar 2, 2026
a23ea14
Merge branch 'feat/supernova-async-exec' into updateTriggerFromMeta-o…
sstanculeanu Mar 2, 2026
999b0e8
Merge branch 'feat/supernova-async-exec' into check-pruning-enabled-f…
BeniaminDrasovean Mar 2, 2026
234ae9c
Merge branch 'feat/supernova-async-exec' into fix-api-meta-block
sstanculeanu Mar 2, 2026
bd57fc8
Merge pull request #7778 from multiversx/check-pruning-enabled-from-a…
BeniaminDrasovean Mar 2, 2026
dd06a35
Merge branch 'feat/supernova-async-exec' into fix-api-meta-block
ssd04 Mar 2, 2026
41cd88a
fix after claude review
sstanculeanu Mar 2, 2026
d81329b
Merge branch 'feat/supernova-async-exec' into updateTriggerFromMeta-o…
sstanculeanu Mar 2, 2026
1e23047
Merge pull request #7777 from multiversx/fix-api-meta-block
ssd04 Mar 2, 2026
08b2a9c
fix tests
sstanculeanu Mar 2, 2026
47530f4
Merge branch 'feat/supernova-async-exec' into updateTriggerFromMeta-o…
sstanculeanu Mar 2, 2026
870c10c
Merge pull request #7775 from multiversx/updateTriggerFromMeta-on-mis…
sstanculeanu Mar 2, 2026
cccdc75
fix codeql
sstanculeanu Mar 2, 2026
436c53f
Merge pull request #7779 from multiversx/fix-codeql
sstanculeanu Mar 2, 2026
8dd3584
fix race in tests
sstanculeanu Mar 2, 2026
179976e
fix more race in tests
sstanculeanu Mar 2, 2026
84ed5f3
Merge pull request #7781 from multiversx/fix-race
ssd04 Mar 2, 2026
e968e78
wait for execution results when there is time
AdoAdoAdo Mar 2, 2026
e0ad130
Merge branch 'feat/supernova-async-exec' into wait-for-execution-results
AdoAdoAdo Mar 2, 2026
23d1399
fix test
AdoAdoAdo Mar 2, 2026
60c199d
adapt eq proofs request for importdb
AdoAdoAdo Mar 3, 2026
3a0d110
Merge pull request #7782 from multiversx/wait-for-execution-results
AdoAdoAdo Mar 3, 2026
67da65a
Merge branch 'feat/supernova-async-exec' into fix-importdb-proof-requ…
AdoAdoAdo Mar 3, 2026
2647cf8
adapt eq proofs request for importdb
AdoAdoAdo Mar 3, 2026
0c3f870
fix condition for eq proofs, allow request next block also for non im…
AdoAdoAdo Mar 3, 2026
a136f7f
fix referenced meta header on bootstrap
ssd04 Mar 4, 2026
54c6925
Merge pull request #7783 from multiversx/fix-importdb-proof-requests
AdoAdoAdo Mar 5, 2026
cc005e2
Merge branch 'feat/supernova-async-exec' into fix-epoch-start-data-re…
AdoAdoAdo Mar 5, 2026
827d6fd
Merge pull request #7785 from multiversx/fix-epoch-start-data-reference
AdoAdoAdo Mar 5, 2026
041a0de
fix: update root hash handling in last executed block header
AdoAdoAdo Mar 6, 2026
0323f05
Merge pull request #7786 from multiversx/fix-blockchain-hook-roothash…
AdoAdoAdo Mar 6, 2026
50c92b6
fix: synchronize last executed block header with current block header…
AdoAdoAdo Mar 9, 2026
4c1b646
Merge pull request #7787 from multiversx/fix-last-executed-on-reverts
AdoAdoAdo Mar 9, 2026
c649d1d
delay for sending signatures on competing block
AdoAdoAdo Mar 9, 2026
c8b97bd
fix linter issue
ssd04 Mar 9, 2026
a0ff92b
const for send proof grace duration
ssd04 Mar 10, 2026
476a1c5
add more logging for execution result mismatch
ssd04 Mar 11, 2026
33ef53d
Merge pull request #7789 from multiversx/verify-exec-result-checks
ssd04 Mar 11, 2026
2f6526d
Merge branch 'feat/supernova-async-exec' into improve-delay-for-proof…
ssd04 Mar 11, 2026
d04aece
Merge pull request #7788 from multiversx/improve-delay-for-proof-and-…
ssd04 Mar 12, 2026
2326551
fixes
miiu96 Mar 13, 2026
1f562c9
Merge pull request #7790 from multiversx/update-mx-chain-comm-go
miiu96 Mar 13, 2026
8a32e72
improve delay messages on multikeys
AdoAdoAdo Mar 16, 2026
918129f
improve timing tests
AdoAdoAdo Mar 16, 2026
0af64cd
add grace period for txs selection
AdoAdoAdo Mar 17, 2026
94732d7
Merge pull request #7791 from multiversx/better-delay-management-mult…
AdoAdoAdo Mar 17, 2026
d404759
Merge branch 'feat/supernova-async-exec' into tx-selection-grace-period
AdoAdoAdo Mar 17, 2026
d98be82
fixes after review
AdoAdoAdo Mar 18, 2026
0dca50a
Merge pull request #7792 from multiversx/tx-selection-grace-period
AdoAdoAdo Mar 18, 2026
86c669d
include only exec shard info for pending miniblocks
ssd04 Mar 19, 2026
93d636d
get meta miniblocks headers from execution results
ssd04 Mar 19, 2026
9eecd0a
set round duration as ms
ssd04 Mar 19, 2026
8eab550
Merge pull request #7795 from multiversx/fix-termui-round-time
ssd04 Mar 19, 2026
99b560d
Merge branch 'feat/supernova-async-exec' into fix-pending-miniblocks-…
ssd04 Mar 19, 2026
601eece
fixes api block
miiu96 Mar 20, 2026
71ff436
extra checks
miiu96 Mar 20, 2026
9b5233c
fix removing headers at bootstrap
ssd04 Mar 20, 2026
9943af0
add unit tests
ssd04 Mar 20, 2026
8e8044d
add init metrics before bootstrapping
ssd04 Mar 23, 2026
4bb2624
termui: get shard ID based on sync status
ssd04 Mar 23, 2026
415cacd
extra logs for testing
miiu96 Mar 24, 2026
051f3df
extra logs for testing
miiu96 Mar 24, 2026
5618527
fix fix
miiu96 Mar 24, 2026
b3b2757
one more check
miiu96 Mar 24, 2026
b542cf9
proper fix
miiu96 Mar 24, 2026
225c731
uni tests
miiu96 Mar 24, 2026
839cef7
fixes after review
miiu96 Mar 24, 2026
37ff483
fix unit tests
miiu96 Mar 24, 2026
95ba5fe
trigger trie prunning from async execution flow
ssd04 Mar 24, 2026
1be0302
fix intermediate nonce index
ssd04 Mar 24, 2026
322b33c
add unit tests
ssd04 Mar 24, 2026
247357f
tests fix
ssd04 Mar 24, 2026
e77ce87
tests fix
ssd04 Mar 24, 2026
e04f85c
do not return a partial block if the execution result is missing
miiu96 Mar 25, 2026
c334ab7
fixes after review
ssd04 Mar 25, 2026
76c64e2
fix round index timestamp
miiu96 Mar 25, 2026
1714b93
remove prune trie for metablock v2 flow
ssd04 Mar 25, 2026
2451f5b
Merge pull request #7798 from multiversx/fix-meta-bootstrap-round-index
ssd04 Mar 26, 2026
7afd322
Merge branch 'feat/supernova-async-exec' into update-initial-facade-m…
ssd04 Mar 26, 2026
2569090
Merge branch 'feat/supernova-async-exec' into fix-rounds-index-missin…
miiu96 Mar 26, 2026
12f09f1
Merge branch 'feat/supernova-async-exec' into fix-api-block-receipts
miiu96 Mar 26, 2026
f74ac76
Merge pull request #7801 from multiversx/fix-rounds-index-missing-tim…
miiu96 Mar 26, 2026
f8fff5f
Merge branch 'feat/supernova-async-exec' into fix-api-block-receipts
miiu96 Mar 26, 2026
6ac7375
handle intermediate blocks based on hashes instead of nonces
ssd04 Mar 26, 2026
6d21b8e
add Reset() for spm and ewl
BeniaminDrasovean Mar 26, 2026
587f961
add missing comment
BeniaminDrasovean Mar 26, 2026
75a6db2
export pruning reset on accountsDB
BeniaminDrasovean Mar 26, 2026
ae2aad9
fix unit tests
ssd04 Mar 26, 2026
e2d249a
fix failing test
miiu96 Mar 26, 2026
336b0e9
unit test
miiu96 Mar 26, 2026
b7fa2ee
added more unit tests
ssd04 Mar 26, 2026
78cab66
remove unused common func
ssd04 Mar 26, 2026
4ad7332
Merge pull request #7803 from multiversx/reset-for-storage-pruning-ma…
ssd04 Mar 26, 2026
a1a33e3
integrate pruning context reset
ssd04 Mar 26, 2026
c63af73
fix typo
ssd04 Mar 26, 2026
02eac92
Merge branch 'feat/supernova-async-exec' into async-trie-prunning-tri…
ssd04 Mar 26, 2026
cbf2614
Merge pull request #7797 from multiversx/fix-api-block-receipts
miiu96 Mar 26, 2026
d3e1d8e
Merge branch 'feat/supernova-async-exec' into update-initial-facade-m…
AdoAdoAdo Mar 26, 2026
9d38b65
Merge branch 'feat/supernova-async-exec' into fix-pending-miniblocks-…
AdoAdoAdo Mar 26, 2026
a672116
Merge branch 'feat/supernova-async-exec' into async-trie-prunning-tri…
AdoAdoAdo Mar 26, 2026
f192e3b
Merge pull request #7794 from multiversx/fix-pending-miniblocks-meta
ssd04 Mar 26, 2026
d9f5215
Merge branch 'feat/supernova-async-exec' into update-initial-facade-m…
ssd04 Mar 26, 2026
93f4d3c
Merge branch 'feat/supernova-async-exec' into async-trie-prunning-tri…
ssd04 Mar 26, 2026
e98b2da
Merge pull request #7799 from multiversx/update-initial-facade-metrics
ssd04 Mar 27, 2026
1d50884
Merge branch 'feat/supernova-async-exec' into async-trie-prunning-tri…
ssd04 Mar 27, 2026
c46a0e8
clean ewl on failed consensus
AdoAdoAdo Mar 27, 2026
be28794
add nil check
ssd04 Mar 27, 2026
85aa07a
remove cancelPrune from markForEviction
AdoAdoAdo Mar 27, 2026
54c6ae1
rename receiver
AdoAdoAdo Mar 27, 2026
89f5d18
only one log per verify number of pending results not matching.
AdoAdoAdo Mar 30, 2026
15cfe1f
fix
AdoAdoAdo Mar 30, 2026
25a0ee2
simplify
AdoAdoAdo Mar 30, 2026
3de7218
fix round index timestamp
miiu96 Mar 30, 2026
1efa373
Merge pull request #7808 from multiversx/reduce-log-frequency
AdoAdoAdo Mar 30, 2026
36405f9
Merge branch 'feat/supernova-async-exec' into async-trie-prunning-tri…
AdoAdoAdo Mar 30, 2026
0060eff
Merge branch 'feat/supernova-async-exec' into fix-round-timestamp
miiu96 Mar 30, 2026
e5a00fd
wait for proof before broadcasting
AdoAdoAdo Mar 30, 2026
f2fa07a
early exit for already processed block in delayed broadcaster
AdoAdoAdo Mar 30, 2026
7caded5
Merge pull request #7809 from multiversx/fix-round-timestamp
miiu96 Mar 31, 2026
93df6ac
add trySetBusy
AdoAdoAdo Mar 31, 2026
4f481a4
Merge branch 'master' of https://github.com/multiversx/mx-chain-go in…
sstanculeanu Apr 2, 2026
e82bd35
Merge pull request #7817 from multiversx/merge-master-into-rc/superno…
AdoAdoAdo Apr 2, 2026
3f8d81a
Merge pull request #7806 from multiversx/pruning-v3-cleanup
sstanculeanu Apr 2, 2026
6dd900d
Merge branch 'feat/supernova-async-exec' into async-trie-prunning-tri…
sstanculeanu Apr 2, 2026
60ad785
Merge pull request #7800 from multiversx/async-trie-prunning-trigger
AdoAdoAdo Apr 2, 2026
8fb71e5
Merge branch 'feat/supernova-async-exec' into improve-delayed-broadcast
AdoAdoAdo Apr 2, 2026
5aa64ab
Merge branch 'feat/supernova-async-exec' into status-handler-try-set-…
AdoAdoAdo Apr 2, 2026
2a0abbf
Merge branch 'rc/supernova' of https://github.com/multiversx/mx-chain…
sstanculeanu Apr 2, 2026
e6d3488
fix tests after merge
sstanculeanu Apr 2, 2026
2dbcd45
fix after copilot
sstanculeanu Apr 2, 2026
fe99fe7
Merge pull request #7818 from multiversx/merge-rc-into-feat/supernova…
AdoAdoAdo Apr 2, 2026
0aef165
Merge branch 'feat/supernova-async-exec' into improve-delayed-broadcast
sstanculeanu Apr 2, 2026
6bfb296
Merge branch 'feat/supernova-async-exec' into status-handler-try-set-…
sstanculeanu Apr 2, 2026
b656f3b
add unit tests
AdoAdoAdo Apr 2, 2026
bcca331
Merge branch 'status-handler-try-set-busy' of github.com:multiversx/m…
AdoAdoAdo Apr 2, 2026
ac5fbda
Merge pull request #7815 from multiversx/status-handler-try-set-busy
AdoAdoAdo Apr 2, 2026
7390e9f
Merge branch 'feat/supernova-async-exec' into improve-delayed-broadcast
AdoAdoAdo Apr 2, 2026
909e75d
Merge pull request #7810 from multiversx/improve-delayed-broadcast
AdoAdoAdo Apr 2, 2026
dbf6c9c
fix linter
AdoAdoAdo Apr 2, 2026
293ee7c
Merge pull request #7820 from multiversx/fix-linter
AdoAdoAdo Apr 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 9 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,12 @@ Based on the [Contributing Guidelines](https://github.com/multiversx/mx-chain-go
- was the PR targeted to the correct branch?
- if this is a larger feature that probably needs more than one PR, is there a `feat` branch created?
- if this is a `feat` branch merging, do all satellite projects have a proper tag inside `go.mod`?

## Triggering Tests from Comments
To re-run integration tests with custom branches, add a comment in this format:

```
Run Tests:
mx-chain-simulator-go: feat-sub-second-round-2
mx-chain-testing-suite: fix_ci
```
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ on:
- 'main'
- 'master'
- 'rc/*'
workflow_dispatch:
issue_comment:
types: [created]

permissions:
issues: write
Expand All @@ -18,9 +15,7 @@ permissions:
jobs:
build-and-test:
if: |
github.event_name == 'pull_request' ||
(github.event_name == 'issue_comment' && contains(github.event.comment.body, 'Run Tests:')) ||
github.event_name == 'workflow_dispatch'
github.event_name == 'pull_request'

runs-on: [self-hosted, Linux, X64]
env:
Expand Down Expand Up @@ -67,11 +62,18 @@ jobs:
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const issue_number = context.issue.number;

if (!issue_number) {
core.error('Could not determine PR number from pull_request event');
return;
}

// Get all comments
const comments = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
issue_number: issue_number,
});

// Find the last comment that contains 'Run Tests:'
Expand Down Expand Up @@ -104,7 +106,7 @@ jobs:
} else {
core.info('No comment containing "Run Tests:" was found. Using default branch settings.');
}


- name: Print Target Branches
run: |
Expand Down Expand Up @@ -210,7 +212,7 @@ jobs:
# Wait for the initialization to complete - look for multiple possible success patterns
INIT_COMPLETED=false
RETRY_COUNT=0
MAX_RETRIES=60 # Increase timeout to 60 seconds
MAX_RETRIES=120

echo "Waiting for ChainSimulator initialization..."
while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
Expand Down Expand Up @@ -287,56 +289,38 @@ jobs:
run: |
set +e
pytest mx-chain-testing-suite/scenarios/ --html=report.html --self-contained-html --continue-on-collection-errors
INITIAL_PYTEST_EXIT_CODE=$?
PYTEST_EXIT_CODE=$?
set -e

echo "Initial pytest exit code: $INITIAL_PYTEST_EXIT_CODE"

# Parse the HTML report to determine actual test status
FINAL_PYTEST_EXIT_CODE=$INITIAL_PYTEST_EXIT_CODE


echo "Pytest exit code: $PYTEST_EXIT_CODE"

if [ -f "report.html" ]; then
echo "Report generated successfully."

# Extract test summary from HTML report using multiple parsing approaches
FAILED_TESTS=$(grep -E '[0-9]+ Failed|Failed.*[0-9]+' report.html | head -1 | grep -o '[0-9]\+' | head -1 || echo "0")
ERROR_TESTS=$(grep -E '[0-9]+ Errors|Errors.*[0-9]+' report.html | head -1 | grep -o '[0-9]\+' | head -1 || echo "0")
RERUN_TESTS=$(grep -E '[0-9]+ Reruns|Reruns.*[0-9]+' report.html | head -1 | grep -o '[0-9]\+' | head -1 || echo "0")

# Fallback: check for "0 Failed" pattern directly
if grep -q "0 Failed" report.html && [ "$INITIAL_PYTEST_EXIT_CODE" -ne 0 ]; then
echo "Detected '0 Failed' pattern in report despite non-zero exit code - likely successful reruns"
FAILED_TESTS=0
fi


# Extract test metrics from HTML checkbox spans
FAILED_TESTS=$(grep -oP '\d+(?= Failed,)' report.html | head -1 || echo "0")
ERROR_TESTS=$(grep -oP '\d+(?= Errors,)' report.html | head -1 || echo "0")
RERUN_TESTS=$(grep -oP '\d+(?= Reruns)' report.html | head -1 || echo "0")
PASSED_TESTS=$(grep -oP '\d+(?= Passed,)' report.html | head -1 || echo "0")

echo "Failed tests: $FAILED_TESTS"
echo "Error tests: $ERROR_TESTS"
echo "Rerun tests: $RERUN_TESTS"

# Determine final status based on actual test results
if [ "$FAILED_TESTS" -eq 0 ] && [ "$ERROR_TESTS" -eq 0 ]; then
if [ "$RERUN_TESTS" -gt 0 ]; then
echo "✅ All tests passed after $RERUN_TESTS reruns - considering as SUCCESS"
else
echo "✅ All tests passed on first attempt"
fi
FINAL_PYTEST_EXIT_CODE=0
else
echo "❌ Tests have genuine failures: $FAILED_TESTS failed, $ERROR_TESTS errors"
FINAL_PYTEST_EXIT_CODE=1
fi

# Move report to reports directory
echo "Passed tests: $PASSED_TESTS"

echo "FAILED_TESTS=$FAILED_TESTS" >> $GITHUB_ENV
echo "ERROR_TESTS=$ERROR_TESTS" >> $GITHUB_ENV
echo "RERUN_TESTS=$RERUN_TESTS" >> $GITHUB_ENV
echo "PASSED_TESTS=$PASSED_TESTS" >> $GITHUB_ENV

mkdir -p ./reports
mv report.html ./reports/
else
echo "❌ Report not found - using original exit code"
FINAL_PYTEST_EXIT_CODE=$INITIAL_PYTEST_EXIT_CODE
echo "Report not found"
fi

echo "PYTEST_EXIT_CODE=$FINAL_PYTEST_EXIT_CODE" >> $GITHUB_ENV
echo "Final pytest exit code: $FINAL_PYTEST_EXIT_CODE"

echo "PYTEST_EXIT_CODE=$PYTEST_EXIT_CODE" >> $GITHUB_ENV

- name: Stage report for R2
run: |
mkdir -p r2_upload
Expand Down Expand Up @@ -453,9 +437,16 @@ jobs:
const exitCode = process.env.PYTEST_EXIT_CODE;

const simulatorCommitHash = process.env.SIMULATOR_COMMIT_HASH || 'N/A';
const testingSuiteCommitHash = process.env.CURRENT_COMMIT_HASH || 'N/A';
const r2Url = process.env.R2_REPORT_URL || 'N/A';

const issue_number = context.issue.number;

if (!issue_number) {
console.log('Could not determine PR number');
return;
}

const owner = context.repo.owner;
const repo = context.repo.repo;
const ts = process.env.TS || process.env.TIMESTAMP;
Expand All @@ -475,8 +466,9 @@ jobs:
- **Current Branch:** \`${currentBranch}\`
- **mx-chain-go Target Branch:** \`${goTargetBranch}\`
- **mx-chain-simulator-go Target Branch:** \`${simulatorTargetBranch}\`
- **mx-chain-testing-suite Target Branch:** \`${testingSuiteTargetBranch}\`
- **mx-chain-simulator-go Commit Hash:** \`${simulatorCommitHash}\`
- **mx-chain-testing-suite Target Branch:** \`${testingSuiteTargetBranch}\`
- **mx-chain-testing-suite Commit Hash:** \`${testingSuiteCommitHash}\`

🚀 **Environment Variables:**
- **TIMESTAMP:** \`${ts}\`
Expand Down Expand Up @@ -504,13 +496,22 @@ jobs:
SIMULATOR_COMMIT_HASH: ${{ env.SIMULATOR_COMMIT_HASH }}
TS: ${{ env.TS }}
PYTEST_EXIT_CODE: ${{ env.PYTEST_EXIT_CODE }}
FAILED_TESTS: ${{ env.FAILED_TESTS }}
ERROR_TESTS: ${{ env.ERROR_TESTS }}
RERUN_TESTS: ${{ env.RERUN_TESTS }}
PASSED_TESTS: ${{ env.PASSED_TESTS }}
run: |
status="❌ FAILED"
[ "${PYTEST_EXIT_CODE}" = "0" ] && status="✅ PASSED"
repo="${GITHUB_REPOSITORY##*/}"
base="${{ github.base_ref }}"
pr_url="https://github.com/${{ github.repository }}/pull/${{ github.event.pull_request.number }}"

msg="*MX-CHAIN-GO ChainSimulator CI – ${status}*\
\n============================================\
\n${PASSED_TESTS:-0} PASSED | ${FAILED_TESTS:-0} FAILED | ${ERROR_TESTS:-0} ERRORS | ${RERUN_TESTS:-0} RERUNS\
\n============================================\
\n• *PR:* <${pr_url}|#${{ github.event.pull_request.number }}>\
\n• *Report:* <${R2_REPORT_URL:-N/A}|HTML>\
\n• *Repository:* \`${repo}\`\
\n• *Branch:* \`${BRANCH_NAME}\` → \`${base:-main}\`\
Expand All @@ -532,7 +533,7 @@ jobs:
else
echo "Tests passed successfully."
fi


- name: Cleanup Workspace and Processes
if: always()
Expand Down
3 changes: 3 additions & 0 deletions api/errors/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,9 @@ var ErrGetTransaction = errors.New("getting transaction failed")
// ErrGetSmartContractResults signals an error happening when trying to fetch smart contract results
var ErrGetSmartContractResults = errors.New("getting smart contract results failed")

// ErrGetVirtualNonce signals an error happening when trying to get the virtual nonce of an account
var ErrGetVirtualNonce = errors.New("getting virtual nonce of account failed")

// ErrGetBlock signals an error happening when trying to fetch a block
var ErrGetBlock = errors.New("getting block failed")

Expand Down
12 changes: 9 additions & 3 deletions api/gin/webServer.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,21 @@ import (
"github.com/gin-gonic/gin"
"github.com/multiversx/mx-chain-core-go/core/check"
"github.com/multiversx/mx-chain-core-go/marshal"
logger "github.com/multiversx/mx-chain-logger-go"
"github.com/prometheus/client_golang/prometheus/promhttp"

"github.com/multiversx/mx-chain-go/api/errors"
"github.com/multiversx/mx-chain-go/api/groups"
"github.com/multiversx/mx-chain-go/api/middleware"
"github.com/multiversx/mx-chain-go/api/shared"
"github.com/multiversx/mx-chain-go/config"
"github.com/multiversx/mx-chain-go/facade"
logger "github.com/multiversx/mx-chain-logger-go"
"github.com/prometheus/client_golang/prometheus/promhttp"
)

var log = logger.GetOrCreate("api/gin")

const prometheusMetricsRoute = "/debug/metrics/prometheus"
const readHeaderTimeout = 10 * time.Second

// ArgsNewWebServer holds the arguments needed to create a new instance of webServer
type ArgsNewWebServer struct {
Expand Down Expand Up @@ -126,7 +128,11 @@ func (ws *webServer) StartHttpServer() error {

ws.registerRoutes(engine)

server := &http.Server{Addr: ws.facade.RestApiInterface(), Handler: engine}
server := &http.Server{
Addr: ws.facade.RestApiInterface(),
Handler: engine,
ReadHeaderTimeout: readHeaderTimeout,
}
log.Debug("creating gin web sever", "interface", ws.facade.RestApiInterface())
ws.httpServer, err = NewHttpServer(server)
if err != nil {
Expand Down
40 changes: 40 additions & 0 deletions api/groups/networkGroup.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ const (
getStatusPath = "/status"
economicsPath = "/economics"
enableEpochsPath = "/enable-epochs"
enableEpochsV2Path = "/enable-epochs-v2"
enableRoundsPath = "/enable-rounds"
getESDTsPath = "/esdts"
getFFTsPath = "/esdt/fungible-tokens"
getSFTsPath = "/esdt/semi-fungible-tokens"
Expand Down Expand Up @@ -99,6 +101,16 @@ func NewNetworkGroup(facade networkFacadeHandler) (*networkGroup, error) {
Method: http.MethodGet,
Handler: ng.getEnableEpochs,
},
{
Path: enableEpochsV2Path,
Method: http.MethodGet,
Handler: ng.getEnableEpochsV2,
},
{
Path: enableRoundsPath,
Method: http.MethodGet,
Handler: ng.getEnableRounds,
},
{
Path: getESDTsPath,
Method: http.MethodGet,
Expand Down Expand Up @@ -210,6 +222,34 @@ func (ng *networkGroup) getEnableEpochs(c *gin.Context) {
)
}

// getEnableEpochsV2 returns all enable epoch flags with their activation epochs
func (ng *networkGroup) getEnableEpochsV2(c *gin.Context) {
enableEpochsMetrics := ng.getFacade().StatusMetrics().EnableEpochsMetricsV2()

c.JSON(
http.StatusOK,
shared.GenericAPIResponse{
Data: gin.H{"enableEpochs": enableEpochsMetrics},
Error: "",
Code: shared.ReturnCodeSuccess,
},
)
}

// getEnableRounds returns metrics related to the activation rounds of the network
func (ng *networkGroup) getEnableRounds(c *gin.Context) {
enableRoundsMetrics := ng.getFacade().StatusMetrics().EnableRoundsMetrics()

c.JSON(
http.StatusOK,
shared.GenericAPIResponse{
Data: gin.H{"enableRounds": enableRoundsMetrics},
Error: "",
Code: shared.ReturnCodeSuccess,
},
)
}

// getNetworkStatus returns metrics related to the network status (shard specific)
func (ng *networkGroup) getNetworkStatus(c *gin.Context) {
networkMetrics, err := ng.getFacade().StatusMetrics().NetworkMetrics()
Expand Down
Loading
Loading