I don't know how much effect blocking those countries will have on your rankings directly, but indirectly I think it may have an effect on user engagement statistics they collect. I would opt for providing a stripped-down version of functionality for users from countries where problems originate.
I personally have built my own system to use an open source IP-to-country database to determine where the users are originating. From there, I block some functions which do any types of writes such as comments, contact forms, or anything that doesn't have a read-only nature.
For me, I block China, Russia, Brazil, most of the Middle East and other countries in East Asia. For these users, I don't display comment forms, disallow any ajax and that type of thing. I won't go into the exact coding, but something like -- example in PHP:
function display_CommentForm() {
global $u_valid_location;
if(!$u_valid_location) {
print("Service Unavailable");
}
else {
...
}
}
might do the trick while still providing content.
Of course, you have to have the code to determine which country the IP originates from and define $u_valid_location.