Index: nano.tcl
==================================================================
--- nano.tcl
+++ nano.tcl
@@ -1012,5 +1012,30 @@
 		lappend outBlocks [receive $account $blockHash $signKey]
 	}
 
 	return $outBlocks
 }
+
+proc ::nano::network::_read {fd bytes} {
+	if {[chan configure $fd -blocking]} {
+		tailcall ::read $fd $bytes
+	}
+
+	set data ""
+	while {$bytes > 0} {
+		set readData [read $fd $bytes]
+		if {[string length $readData] == 0} {
+			if {[eof $fd]} {
+				break
+			} else {
+				update
+
+				continue
+			}
+		}
+
+		incr bytes -[string length $readData]
+		append data $readData
+	}
+
+	return $data
+}