Why does the Satoshi client does not use blocking synchronous communication with peers? I think that is mush simpler than the current asynchronous scheme.
I mean after a node sends out a request, it waits for the response in a blocking manner, with a timeout deadline. After the response has arrived, it starts to send the next request. Doesn't this way have better control of communication context?