I know that instances can block other instances from federating with them, but I don't think there is a way fo a user to block an instance short of joining an instance that blocks federation with the undesired instance.
Afaik not yet. However the instance you belong to can block an entire instance. I've also read there is a way to see a list of which instances are blocked by the instance you are trying to join
I would love to have it as an option. Instead of blocking chains of [email protected], we should be able to block the entire *@example.com as user setting alone.