You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ This is the **IoTeX Delegate Manual** repository - configuration and operational
13
13
14
14
## Version Alignment
15
15
16
-
This repository is versioned in sync with [iotex-core](https://github.com/iotexproject/iotex-core). The current release is **v2.4.2**. When iotex-core releases a new version:
16
+
This repository is versioned in sync with [iotex-core](https://github.com/iotexproject/iotex-core). The current release is **v2.4.3**. When iotex-core releases a new version:
17
17
1. Update version references in README.md, config files, and scripts
18
18
2. Add a release note in `changelog/`
19
19
3. Create a PR but do NOT merge until the final release is tagged in iotex-core
3. Edit `$IOTEX_HOME/etc/config.yaml`, look for `externalHost` and `producerPrivKey`, uncomment the lines and fill in your external IP and private key. If you leave `producerPrivKey` empty, your node will be assgined with a random key.
v2.4.3 is a **recommended** security patch release on top of v2.4.2. It closes a transaction-log integrity issue where a contract could cause the node to record an `IN_CONTRACT_TRANSFER` transaction log for a native-token transfer that never happened, and adds an optional startup-loaded patch mechanism to correct such records in already-synced databases. No hardfork, no genesis change, and no config schema change is required for existing operators; a new optional `chain.patchTransactionLogPath` is available for operators who choose to apply the transaction-log patch.
6
+
7
+
> Transaction logs are not part of any receipt root or state root, so both the fix and the patch are **consensus-neutral**: block hashes are unchanged and nodes on mixed versions do not fork. On-chain balances were never affected by the issue.
8
+
9
+
## Changes
10
+
11
+
### Security
12
+
13
+
-**Record in-contract transfer logs from MakeTransfer directly** (#4868) — The node records native-token transfers that occur inside contract execution as `IN_CONTRACT_TRANSFER` transaction logs, marked with a reserved log topic. Previously any EVM log carrying that reserved topic was turned into a transaction log, so a contract could emit a crafted `LOG` and have the node record an in-contract transfer with attacker-chosen sender/recipient/amount for a transfer that never occurred. Systems that reconstruct balances from transaction logs (indexers, wallets, exchanges) could be misled by such entries. `MakeTransfer` now records the transfer log directly through a node-only path that a contract cannot reach, and `AddLog` no longer converts the reserved topic into a transaction log. Because such logs were never part of `receipt.Logs`, the change leaves `receipt.Logs`, the receipt root, and the block hash unchanged. The change is not height-gated; forged historical logs are dropped on re-execution.
14
+
15
+
### Feat
16
+
17
+
-**Startup-loaded transaction-log patch (`TransactionLogIndexer`)** (#4870) — Adds a read-only, startup-loaded override for block transaction logs, controlled by the new optional `chain.patchTransactionLogPath` config. A node loads a small key-value file keyed by block height that overrides the transaction logs served for a sparse set of heights, letting operators correct already-recorded forged records without re-syncing. Heights that are not in the patch fall through to the main block store; the set of patched heights is preloaded into memory at startup so that queries for unpatched heights (the common case) avoid a database lookup. Only nodes that configure `patchTransactionLogPath` are affected — the default is unset. Patch files are produced with the `tools/txlogpatch` utility in iotex-core.
18
+
19
+
## Upgrade Priority
20
+
21
+
v2.4.3 is **recommended** for all node types, in particular API / gateway / archive nodes that serve `GetTransactionLogByActionHash` and `GetTransactionLogByBlockHeight`.
22
+
23
+
| Node type | Action |
24
+
| ------------- | ----------------- |
25
+
| Delegate |**Recommended**|
26
+
| Fullnode |**Recommended**|
27
+
| API node |**Recommended**|
28
+
| Archive node |**Recommended**|
29
+
30
+
No genesis or config schema changes are required; v2.4.3 is Go-only and introduces no new activation heights.
31
+
32
+
To also correct already-recorded forged transaction logs on API/archive nodes, download the transaction-log patch file and enable it:
and restart the node. Applying the patch is optional and only affects the transaction logs served for the patched heights; it does not change balances, receipts, or block hashes.
46
+
47
+
> **Important:** only set `patchTransactionLogPath` if the file is present at that path — a node configured with a missing patch file will fail to start. Leave the setting unset (the default) to run without the patch.
0 commit comments