Commit graph

256 commits

Author SHA1 Message Date
benjamin202410
be36b32b3e
fix(consensus): fix config object not reference to same one and concurrency issues and refactor access pattern (#2146)
* bug fix for using same config object

* update

* change log level to trace on ispochswtich

---------

Co-authored-by: liam.lai <liam.lai@babylonchain.io>
2026-03-12 12:12:49 -07:00
Daniel Liu
2eed6c057b
fix(consensus): hardening header verification #33860 (#2071) 2026-03-06 11:10:32 +05:30
Daniel Liu
ad0eea0f07
refactor(crypto): vendor in golang.org/x/crypto/sha3 #33323 (#2046)
The upstream libray has removed the assembly-based implementation of
keccak. We need to maintain our own library to avoid a peformance
regression.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: lightclient <lightclient@protonmail.com>
2026-02-28 17:23:57 +04:00
Wanwiset Peerapatanapokin
81416e008c
fix(consensus): use signer pubkey to check for unique signatures and optimize performance, close XFN-03 (#1625)
* use signer pubkey to check for unique signatures and optimize performance

* change waitgroup to errgroup

* optimize

* fix typo

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* format files

* after rebase new commits, refactor from snap.NextEpochCandidates to epochInfo.Masternodes

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-20 14:34:54 +07:00
Wanwiset Peerapatanapokin
f77d4e5668
test(consensus): add tests for getTCEpochInfo() (#2045)
* add tests for getTCEpochInfo()

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-20 14:34:29 +07:00
Wanwiset Peerapatanapokin
e324a78d94
fix(consensus): fix private chain initialization (#1987)
* revert: use masternodes from snapshot to verify vote

* fix underflow during chain initialization

* add previously removed test

* rename snapshot > snap for consistency
2026-02-19 01:47:03 +07:00
Daniel Liu
81ac9cfb7e
fix(core): fix genesis error in #2019 (#2034) 2026-02-10 12:22:17 +08:00
Wanwiset Peerapatanapokin
b53fa6c6d9
skip gaslimit check on genesis block (#1968) 2026-02-09 16:06:16 +07:00
Wanwiset Peerapatanapokin
6120def776
useful logging (#1986) 2026-02-06 17:42:26 +07:00
Daniel Liu
934c8d0679
perf(all): use big.Int.Sign() to compare with 0 (#1969) 2026-02-05 11:45:44 +05:30
Daniel Liu
84ac794e22
consensus: fix missing block header error in vote verification, fix #1850 (#1891)
Previously, vote verification would log errors and fail when the referenced block header was not yet available locally, especially when nodes in the same round processed votes before receiving the block header. This commit changes the logic to defer verification and log at debug level if the header is missing, preventing unnecessary error logs and aligning with upstream geth behavior for out-of-order message arrival during consensus voting.
2026-01-05 15:40:49 +05:30
Wanwiset Peerapatanapokin
9a61a4958d
consensus: verify timeout from epochInfo instead of snap.NextEpochCandidates, close XFN-62 (#1850)
* use epochInfo.Masternodes instead of snap.NextEpochCandidates

* remove missing snapshot test (now irrelevant)

* add masternodes length check in getEpochSwitchInfo

* get blockhash directly from vote object
2025-12-23 16:24:54 +05:30
wit liu
a83c43f240
all: use 0x-prefix string for type Address in log message (#1874) 2025-12-19 08:55:21 +04:00
Daniel Liu
ebbbdf2bff
core/state: move state log mechanism to a separate layer #30569 #30732 (#1775) 2025-12-16 07:33:19 +04:00
wgr523
a3282d4119
XFN-155: consensus V2 initial timer kick-off check (#1849)
* fix: consensus V2 initial timer kick-off check

* style: use Cmp for big.Int
2025-12-10 09:36:58 +08:00
Daniel Liu
348b7fa68f
consensus/XDPoS, core/rawdb: stop node if fail to store snapshot (#1803) 2025-12-08 15:07:22 +05:30
wit liu
d6309612fc
all: fix unnecessary whitespace (#1800) 2025-12-08 15:07:11 +05:30
wit liu
0ef3edf183
consensus: fix unused warnings (#1815) 2025-12-08 12:57:14 +05:30
wit liu
66e96b507c
all: use 0x-prefix for Address type in log (#1830) 2025-12-07 15:36:36 +05:30
Wanwiset Peerapatanapokin
e617598d1d
consensus: verify timeout from epochInfo instead of snap.NextEpochCandidates, close XFN-62 (#1628) 2025-12-06 15:05:49 +05:30
Daniel Liu
ec08863ba0
all: use WaigGroup.Go() to simplify code (#1699) 2025-11-29 17:17:08 +05:30
Daniel Liu
650047c81e
consensus/XDPoS, params: fix some comments, close XFN-125 (#1733) 2025-11-15 16:44:39 +05:30
Daniel Liu
60868c9045
engines/engine_v2: refactor verifyQC by errgroup, close XFN-09 (#1740) 2025-11-15 16:42:15 +05:30
Daniel Liu
8cbbc1e83d
consensus, params: remove SkipV2Validation, close XFN-151 (#1730) 2025-11-14 21:53:05 +05:30
Daniel Liu
eef5242fa3
all: pre-allocate memory for slices and maps, close XFN-148 (#1714) 2025-11-14 20:13:36 +05:30
Daniel Liu
782a7ff5cb
all: fix typos, close XFN-23 (#1725) 2025-11-14 20:02:34 +05:30
wit liu
c82830d228
engines/engine_v2: use errgroup to handle goroutine error (#1758) 2025-11-14 19:59:43 +05:30
Daniel Liu
bd3d30919d
XDPoS/utils: get pool size by key, close XFN-21 (#1666) 2025-11-14 16:29:58 +05:30
wit liu
4c22aa9d4d
consensus: fix misspell errors (#1673) 2025-11-04 11:43:29 +05:30
Daniel Liu
45f7597c97
engine_v2: verify gap number in UpdateMasternodes, close XFN-11 (#1622) 2025-11-03 16:15:48 +05:30
Daniel Liu
5a26279c1c
engine_v2, params: fix unsynchronized reads of V2.CurrentConfig, close XFN-53 (#1642) 2025-11-03 14:51:54 +05:30
Daniel Liu
d8af7fa0d4
consensus/XDPoS: avoid use len as variable, close XFN-25 (#1656) 2025-11-03 12:56:33 +05:30
Daniel Liu
09b66ea8c4
engine_v2: check overflow first, close XFN-20 (#1659) 2025-11-03 12:55:57 +05:30
Daniel Liu
aecb6ff7dc
engine_v2: reject wrong signature earlier, close XFN-29 (#1661) 2025-11-03 12:51:56 +05:30
Daniel Liu
7614a0ad9a
consensus/XDPoS: convert variables to const, close XFN-123 (#1688) 2025-11-03 12:46:35 +05:30
Daniel Liu
fc748cc52a
engine_v2: add comment for type SnapshotV2, close XFN-124 (#1689) 2025-11-03 12:46:05 +05:30
Daniel Liu
d2706538e2
XDPoS/engines, core: fix non idiomatic "comma ok" boolean name, close XFN-126 (#1690) 2025-11-03 12:45:39 +05:30
Daniel Liu
58c066f053
all: handle err from func rlp.Encode, close XFN-127 (#1692) 2025-11-03 12:45:19 +05:30
Daniel Liu
9d85990309
all: fix missing nil check, close XFN-114 (#1695) 2025-11-01 23:21:44 +05:30
Daniel Liu
20ec25c0ca
engine_v2: fix data race when initial v2 parameters, close XFN-10 (#1617) 2025-10-31 11:33:06 +05:30
Wanwiset Peerapatanapokin
b49f6cb0f2
consensus: verify header hash is same as input hash in getEpochSwitchInfo (#1627) 2025-10-28 09:30:38 +07:00
Wanwiset Peerapatanapokin
25a70e8770
consensus: skip gas limit verification for genesis block (#1646) 2025-10-28 08:30:36 +07:00
wit liu
79460e4bfb
all: fix whitespace error of golangci-lint, remove extra empty lines (#1624) 2025-10-19 14:42:12 +08:00
Wanwiset Peerapatanapokin
6abb4f88da
consensus: Verify gaslimit bounds when accepting blocks (#1619)
* Verify gaslimit bounds when accepting blocks

* fix tests
2025-10-16 12:16:34 +04:00
Daniel Liu
0aa7ccb81e
consensus: check gas limit bounds in header, close XFN-07 (#1616) 2025-10-08 13:22:05 +08:00
Daniel Liu
8c101cd961
engine_v2: fix potential modulo by zero, close XFN-17 (#1615) 2025-10-08 13:21:33 +08:00
Daniel Liu
95f0bd2a4b
engine_v2: check minimum timestamp for the first v2 block, close XFN-16 (#1614) 2025-10-08 13:20:29 +08:00
Daniel Liu
2ad225d6d1
engine_v2: fix unsynchronized QC verification Error, close XFN-09 (#1609) 2025-10-08 13:18:57 +08:00
Daniel Liu
c7fb2e875d
consensus, contracts: check input length of ExtractValidatorsFromBytes, close XFN-14 (#1608) 2025-10-08 13:16:01 +08:00
Daniel Liu
3efe26df08
all: refactor so NewBlock, WithBody take types.Body #29482 (#1605) 2025-10-08 13:12:35 +08:00