| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -816,12 +816,10 @@ static void stratum_broadcast_message(const char *msg) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						stratum_broadcast(json_msg); | 
					 | 
					 | 
					 | 
						stratum_broadcast(json_msg); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					/* FIXME: This is all a simple workaround till we use a proper database. It
 | 
					 | 
					 | 
					 | 
					/* FIXME: This is all a simple workaround till we use a proper database. */ | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 * does not account for users who have shelved shares but have not mined since | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 * the pool's restart ! */ | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					static void block_solve(ckpool_t *ckp) | 
					 | 
					 | 
					 | 
					static void block_solve(ckpool_t *ckp) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					{ | 
					 | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						double total = 0, retain = 0, window, max_window; | 
					 | 
					 | 
					 | 
						double total = 0, retain = 0, window; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						user_instance_t *instance, *tmp; | 
					 | 
					 | 
					 | 
						user_instance_t *instance, *tmp; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						char *msg; | 
					 | 
					 | 
					 | 
						char *msg; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -829,8 +827,6 @@ static void block_solve(ckpool_t *ckp) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						window = current_workbase->network_diff; | 
					 | 
					 | 
					 | 
						window = current_workbase->network_diff; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						ck_runlock(&workbase_lock); | 
					 | 
					 | 
					 | 
						ck_runlock(&workbase_lock); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						max_window = window * 5; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						LOGWARNING("Block solve user summary"); | 
					 | 
					 | 
					 | 
						LOGWARNING("Block solve user summary"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						ck_rlock(&instance_lock); | 
					 | 
					 | 
					 | 
						ck_rlock(&instance_lock); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -841,8 +837,6 @@ static void block_solve(ckpool_t *ckp) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						/* What proportion of shares should each user retain */ | 
					 | 
					 | 
					 | 
						/* What proportion of shares should each user retain */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if (total > window) | 
					 | 
					 | 
					 | 
						if (total > window) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							retain = (total - window) / total; | 
					 | 
					 | 
					 | 
							retain = (total - window) / total; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if (total > max_window) | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							retain *= (max_window / total); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						HASH_ITER(hh, user_instances, instance, tmp) { | 
					 | 
					 | 
					 | 
						HASH_ITER(hh, user_instances, instance, tmp) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							double residual, shares; | 
					 | 
					 | 
					 | 
							double residual, shares; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |