diff --git a/src/client.py b/src/client.py
--- a/src/client.py
+++ b/src/client.py
@@ -104,3 +104,33 @@ class Client:
 
 		log.info("closing session...")
 		dataFile.close()
+
+	def pullData(self,blocksToTransfer):
+		log.info(blocksToTransfer)
+		dataFile=open(self._filename, mode="rb+")
+		i1=-1
+
+		print(datetime.now(), "receiving data:")
+		with Connection(self._ssl) as (incoming,outcoming):
+			progress=Progress(len(blocksToTransfer))
+			for (k,i2) in enumerate(blocksToTransfer):
+				outcoming.writeMsg({"command":"req", "index":i2, "dataType":"data"})
+				jsonData,binData=incoming.readMsg()
+				assert jsonData["command"]=="send" and jsonData["index"]==i2 and jsonData["dataType"]=="data", jsonData
+
+				if i1+1!=i2:
+					dataFile.seek(i2*HashTree.BLOCK_SIZE)
+				dataFile.write(binData)
+
+				log.info("block #{0}: {1}...{2}".format(i2,binData[:5],binData[-5:]))
+
+				stats.logTransferredBlock()
+				i1=i2
+				progress.p(k)
+		progress.done()
+
+		with Connection(self._ssl) as (incoming,outcoming):
+			outcoming.writeMsg({"command":"end"})
+
+		log.info("closing session...")
+		dataFile.close()
diff --git a/src/morevna.py b/src/morevna.py
--- a/src/morevna.py
+++ b/src/morevna.py
@@ -34,6 +34,17 @@ def push(args):
 	print()
 	print(stats.report())
 
+def pull(args):
+	_checkFile(args.datafile)
+	if args.host: conf.hosts.insert(0,args.host)
+	if args.port: conf.port=args.port
+
+	c=Client(args.datafile)
+	blocksToTransfer=c.negotiate()
+	c.pullData(blocksToTransfer)
+	print()
+	print(stats.report())
+
 def serve(args):
 	_checkFile(args.datafile)
 	if args.tree:
@@ -62,6 +73,12 @@ pUpdate.add_argument("--host",default="1
 pUpdate.add_argument("datafile")
 pUpdate.set_defaults(func=push)
 
+pUpdate=subparsers.add_parser("pull")
+pUpdate.add_argument("-p","--port",type=int)
+pUpdate.add_argument("--host",default="127.0.0.1")
+pUpdate.add_argument("datafile")
+pUpdate.set_defaults(func=pull)
+
 pServe=subparsers.add_parser("serve")
 pServe.add_argument("-p","--port",type=int)
 pServe.add_argument("--host",default="")