Author

Topic: Node Address Manager Question-CAddrMan,bucket,tried and new addresses problem (Read 697 times)

newbie
Activity: 7
Merit: 0
The question might be a bit in-detail into the bitcoind source code. Help from whoever has read or written the code is especially appreciated.
In file addrman.h, tried buckets (vvTried) are maintained in such a way that whenever a new address from the new buckets need to be added into the tried buckets, addrman will check if the tried bucket for this new address is full. If this tried bucket is full, one old address in this tried bucket will be evicted back to the new buckets.

As I have gone through the complete context of bitcoind source code, the above seems to be the only way tried buckets are updated after addrman is initialized. That is, addresses in the tried buckets will be evicted only when new address needs to come in AND the old bucket is full.

My question is, are there any other possible cases that addresses in tried buckets will be updated(altered/deleted)? If not, this should mean that before the tried buckets are full, no entry in the tried buckets will be removed even though some become not reachable(not routable). Will this practically be a problem? Is it good practice to improve the addr. management technique by introducing some routable checks. For example, if some tried addresses become unreachable, we asynchronously remove them and put back to new buckets?

I am in-depth studying about it for my research on inter-node communication and addr. exchanging in Bitcoin. Please just be as technical as possible. Any suggestion is much appreciated.
Jump to: