On a related note, I recently learnt that if you're on the same local network, there's a much faster way to transfer than the old tar|nc trick[0]: udpcast. You do $ udp-sender --min-receivers 1 --full-duplex --pipe 'tar czvf - theDirectory' on the sender and $ udp-receiver --pipe 'tar xzp' and at least on my home network it's 11x faster than tar|nc. There are some caveats[1] about udp not working well everywhere, and…
Preferably a cryptographic hash... UDP is known for not being reliable at all, and that's partly why it's so fast --- the sender doesn't care whether the packets reached the receiver, it just sends as fast as it can.