-
Notifications
You must be signed in to change notification settings - Fork 3
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.