|  |  |  | @ -348,19 +348,28 @@ class LokiSnodeAPI { | 
		
	
		
			
				|  |  |  |  |     const guards = _.shuffle(this.guardNodes); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     // Create path for every guard node:
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     // Each path needs 2 nodes in addition to the guard node:
 | 
		
	
		
			
				|  |  |  |  |     const maxPath = Math.floor(Math.min(guards.length, otherNodes.length / 2)); | 
		
	
		
			
				|  |  |  |  |     const needPaths = window.lokiFeatureFlags.onionRequestPaths - 1; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     // Each path needs X (needPaths) nodes in addition to the guard node:
 | 
		
	
		
			
				|  |  |  |  |     const maxPath = Math.floor( | 
		
	
		
			
				|  |  |  |  |       Math.min( | 
		
	
		
			
				|  |  |  |  |         guards.length, | 
		
	
		
			
				|  |  |  |  |         needPaths ? otherNodes.length / needPaths : otherNodes.length | 
		
	
		
			
				|  |  |  |  |       ) | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     // TODO: might want to keep some of the existing paths
 | 
		
	
		
			
				|  |  |  |  |     this.onionPaths = []; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     for (let i = 0; i < maxPath; i += 1) { | 
		
	
		
			
				|  |  |  |  |       const path = [guards[i], otherNodes[i * 2], otherNodes[i * 2 + 1]]; | 
		
	
		
			
				|  |  |  |  |       const path = [guards[i]]; | 
		
	
		
			
				|  |  |  |  |       for (let j = 0; j < needPaths; j += 1) { | 
		
	
		
			
				|  |  |  |  |         path.push(otherNodes[i * needPaths + j]); | 
		
	
		
			
				|  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  |       this.onionPaths.push({ path, bad: false }); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     log.info('Built onion paths: ', this.onionPaths); | 
		
	
		
			
				|  |  |  |  |     log.info(`Built ${this.onionPaths.length} onion paths`, this.onionPaths); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   async getRandomSnodeAddress() { | 
		
	
	
		
			
				
					|  |  |  | 
 |