When a bitcoin core node is fully synced, does it broadcast to the rest of the network that is has finished syncing? If yes, where in the bitcoin-core source code is this implemented?
No. The nodes notify only about block height in the beginning of connection in
version message. When node wants to notify about new block/tx it received/created, it uses
There is no point to notify other peers about downloading full blockchain. Other nodes have nothing to do with such information.
No it doesn't broadcast a message like that.
Your bitcoin node doesn't know when it's fully synced. All it knows for sure is that it's up to par with all the nodes its currently connected to.
At any given moment, your node is working to be as synced as possible, listening to its peers. But that means you have to trust what they tell you, and trust that they are also up to date. Certainty is impossible, but the probability is pretty high (>99%) that you're up to sync when connected to several peers. The general rule is that if you connect to 8 peers, you can reach everyone. Even if a few are dishonest, the rest aren't, and all you need is one telling the truth.
What your node does broadcast is what services it offers, its version number, the time, and its current blockheight.