Repository navigation
Address Hinting #213
Description
Address Hinting is a proposed enhancement to optimize the Last Transaction Discovery process by allowing nodes to prioritize specific accounts. This feature extends the current mechanism of AttoBootstrapTransactionPush messages, enabling faster synchronization for nodes interested in particular account states.
Problem
The Last Transaction Discovery process currently operates as follows:
- Nodes exchange AttoBootstrapTransactionPush messages, which contain a selection of random last transactions from accounts.
- Upon receiving a message:
- If the transaction is already known, the message is ignored.
- If the receiving node is behind, it requests votes to confirm the transaction.
- If the receiving node is ahead, it sends back the latest transaction it knows.
This approach helps nodes discover the "heads" of accounts, which are then used by another process to fill in gaps up to the latest known transaction. However, the random selection of accounts can delay synchronization for nodes interested in specific accounts.
Proposed Solution
Introduce an Address Hinting mechanism to augment the Last Transaction Discovery process. A node can specify an account address it is particularly interested in, prompting the network to prioritize this account during AttoBootstrapTransactionPush exchanges.
With Address Hinting:
- Nodes continue to include random transactions in the push message.
- If a hint is provided, the node also includes transactions from the hinted account.
Benefits
-
Faster Targeted Synchronization:
- Nodes can quickly sync with specific accounts, reducing latency for high-priority accounts.
-
Improved Efficiency:
- Eliminates the need to rely solely on randomness for discovering specific account heads, saving network and computational resources.
-
Enhanced Use Cases:
- Ideal for scenarios like debugging, prioritizing high-value accounts, or bootstrapping specific accounts.
Activity
Cryptoloveer commentedon Sep 12, 2026
This changes the bootstrap wire protocol and likely needs a coordinated
commonsrelease before the node implementation. Could a maintainer confirm the intended compatibility behavior: should the hint be an optional field onAttoBootstrapTransactionPush, how many addresses may be hinted per peer, and what limits prevent a peer from forcing repeated database lookups for arbitrary accounts? I would implement this only after those protocol and abuse-control choices are agreed.rotilho commentedon Sep 12, 2026
The idea here is much simpler: the node would have an environment property with a list of addresses to hint.
AttoBootstrapTransactionPushwould keep including random account heads as it does today, but the configured addresses would always be included as well.This way, specific accounts can be advertised more often without relying on them being randomly selected.