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
-**Immortaltransactions**:neverexpireandremainvalidindefinitely.Tocreateanimmortaltransaction, settheblockcheckpointto0 (genesisblock), use the genesis hash as reference, and set the validity period to 0.
221
+
-**Immortaltransactions**:neverexpireandremainvalidindefinitely.Tocreateanimmortaltransaction, settheblockcheckpointto0 (genesisblock), use the genesis hash asa reference, and set the validity period to 0.
222
222
223
223
However, immortal transactions pose significant security risks through replay attacks.If an account is reaped (balance drops to zero, account removed) and later re-funded, malicious actors can replay old immortal transactions.
224
224
@@ -246,7 +246,7 @@ Notice that blocks 100 and 200 contain transactions with identical hashes (0x01)
246
246
247
247
Additional complexity comes from PolkadotSDK's origin abstraction.Origins can represent collectives, governance bodies, or other non-account entities that don't maintain nonces like regular accounts and might dispatch identical calls multiple times with the same hash values.Each execution occurs in different chain states with different results.
248
248
249
-
The correct way to uniquely identify an extrinsic on a PolkadotSDK-based chain is to use the block ID (height or hash) and the extrinsic's index.Since the PolkadotSDK defines blocks as headers plus ordered arrays of extrinsics, the index position within a canonical block provides guaranteed uniqueness.
249
+
The correct way to uniquely identify an extrinsic on a PolkadotSDK-based chain is to use the block ID (height or hash) and the extrinsic index.Since the PolkadotSDK defines blocks as headers plus ordered arrays of extrinsics, the index position within a canonical block provides guaranteed uniqueness.
0 commit comments