Removendo código duplicado

Esse commit faz um reaproveitamento de código utilizando no client
e server. Além que implementar mais um pouco da transferencia de blocos