7e08250f8c 
								
							 
						 
						
							
							
								
								refactor setting successors and predecessors  
							
							 
							
							
							
						 
						
							2020-06-17 14:29:30 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								2269357ed0 
								
							 
						 
						
							
							
								
								deleting RingMap entries, list conversion  
							
							 
							
							
							
						 
						
							2020-06-17 02:21:37 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								6142ee61d7 
								
							 
						 
						
							
							
								
								WIP: implement adding, setting and taking RingMap entries.  
							
							 
							
							... 
							
							
							
							contributes to #48  
							
						 
						
							2020-06-16 23:51:53 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								22a6becf6b 
								
							 
						 
						
							
							
								
								fix all previously working tests  
							
							 
							
							
							
						 
						
							2020-06-15 16:41:11 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								061bce2b08 
								
							 
						 
						
							
							
								
								adjust types to refactored RingMap NodeCache  
							
							 
							
							
							
						 
						
							2020-06-15 15:14:11 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								6a98b5c6da 
								
							 
						 
						
							
							
								
								fix RingMap function types  
							
							 
							
							
							
						 
						
							2020-06-15 13:53:06 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								b179357ab0 
								
							 
						 
						
							
							
								
								generalise NodeCache implementation to make it usable for neighbour nodes as well  
							
							 
							
							... 
							
							
							
							contributes to #48  
							
						 
						
							2020-06-13 21:41:32 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7612f5532a 
								
							 
						 
						
							
							
								
								create a test for parts of  #48  
							
							 
							
							
							
						 
						
							2020-06-13 14:56:05 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								2739b47162 
								
							 
						 
						
							
							
								
								send stabilise to certain successor or predecessor  
							
							 
							
							
							
						 
						
							2020-06-12 15:49:12 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								1204457a2a 
								
							 
						 
						
							
							
								
								make sure that predecessors are smaller and successors are larger than node ID  
							
							 
							
							
							
						 
						
							2020-06-10 16:53:17 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								2c98d8507d 
								
							 
						 
						
							
							
								
								implement stabilise request sending and parsing  
							
							 
							
							... 
							
							
							
							contributes to #44  
							
						 
						
							2020-06-09 22:11:42 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								f15d83baff 
								
							 
						 
						
							
							
								
								Refactor predecessors and successors to hold RemoteNodeStates  
							
							 
							
							... 
							
							
							
							- neighbour nodes need to be contacted reliably
- Only holding NodeIDs requires a cache lookup for getting hostname and
  port. This is brittle as the entry could've been purged from cache.
- refactored ASN.1 scheme, types and add/ sort/ remove implementations
closes  #46  
							
						 
						
							2020-06-09 15:21:22 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								67cba1b69b 
								
							 
						 
						
							
							
								
								fixup! rename responseTo -> requestID to avoid partial record accessors  
							
							 
							
							
							
						 
						
							2020-06-08 23:18:12 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								4e359775ec 
								
							 
						 
						
							
							
								
								add some debug output prints  
							
							 
							
							
							
						 
						
							2020-06-08 20:31:22 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								2c827ea326 
								
							 
						 
						
							
							
								
								rename responseTo -> requestID to avoid partial record accessors  
							
							 
							
							
							
						 
						
							2020-06-08 20:31:18 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3892dc91aa 
								
							 
						 
						
							
							
								
								Merge branch 'mainline' into dhtNetworking  
							
							 
							
							
							
						 
						
							2020-06-08 18:58:23 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7c87a578d3 
								
							 
						 
						
							
							
								
								move Main executable to app/  closes   #18  
							
							 
							
							
							
						 
						
							2020-06-08 18:57:53 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								6699237243 
								
							 
						 
						
							
							
								
								respond to and handle QueryID requests  
							
							 
							
							... 
							
							
							
							closes  #28  
							
						 
						
							2020-06-08 00:36:59 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								eec751584c 
								
							 
						 
						
							
							
								
								make setPredecessors and setSuccessors enforce the ordering + size limit  
							
							 
							
							... 
							
							
							
							closes  #47  
							
						 
						
							2020-06-07 23:45:28 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								0a9b0547c6 
								
							 
						 
						
							
							
								
								forgot handling the successors and predecessors of the leaving node  
							
							 
							
							... 
							
							
							
							contributes to #28  
							
						 
						
							2020-06-07 00:21:14 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e00da9b84f 
								
							 
						 
						
							
							
								
								respond to and handle Leave requests  
							
							 
							
							... 
							
							
							
							contributes to #28  
							
						 
						
							2020-06-06 18:02:55 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								53308080db 
								
							 
						 
						
							
							
								
								respond to Stabilise requests  
							
							 
							
							
							
						 
						
							2020-06-06 17:31:20 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								43d72128d2 
								
							 
						 
						
							
							
								
								respond to Ping requests  
							
							 
							
							
							
						 
						
							2020-06-06 17:05:54 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								cb769e088f 
								
							 
						 
						
							
							
								
								add test for serialiseMessage part numbering  
							
							 
							
							
							
						 
						
							2020-06-06 13:45:35 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e32f0c9146 
								
							 
						 
						
							
							
								
								process and respond to join requests  
							
							 
							
							... 
							
							
							
							- serialiseMessage now starts numbering parts from the first number it
  gets, to be able to continue responding after having ACKed previous
  parts
contributes to #28  
							
						 
						
							2020-06-06 13:45:18 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								914e07a412 
								
							 
						 
						
							
							
								
								change NodeCache protection to STM  
							
							 
							
							... 
							
							
							
							- putting the NodeCache behind an IORef had been chose because those
  could've been read non-blocking
- the same is true for TVars. The performance characteristics are likely
  worse, but at the advantage of composability within STM monads 
							
						 
						
							2020-06-05 22:07:47 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								dc2e399d64 
								
							 
						 
						
							
							
								
								protect concurrent node state access with STM  
							
							 
							
							... 
							
							
							
							- for allowing concurrent access to predecessors and successors, the
  whole LocalNodeState is passed wrapped into an STM TVar
- this allows keeping the tests for the mostly pure data type, compared
  to protecting only the successor and predecessor list
contributes to #28  
							
						 
						
							2020-06-04 22:31:41 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								f42dfb2137 
								
							 
						 
						
							
							
								
								dispatch incoming requests to their response functions  
							
							 
							
							... 
							
							
							
							- contributes to #28  
							
						 
						
							2020-06-04 14:48:05 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								0660bce299 
								
							 
						 
						
							
							
								
								acknowledge parts when receiving partial requests  
							
							 
							
							
							
						 
						
							2020-05-31 23:21:55 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								88104de9bf 
								
							 
						 
						
							
							
								
								periodically purge request parts  
							
							 
							
							
							
						 
						
							2020-05-31 21:07:40 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								bcd1c34c7c 
								
							 
						 
						
							
							
								
								manage incoming request parts before handling  
							
							 
							
							
							
						 
						
							2020-05-31 01:14:09 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								2542091379 
								
							 
						 
						
							
							
								
								adjust rest of code to new message structure  
							
							 
							
							
							
						 
						
							2020-05-30 13:52:06 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								f8d444d5b6 
								
							 
						 
						
							
							
								
								FediChordMessage: last part has falg instead of parts number in each msg  
							
							 
							
							... 
							
							
							
							Motivation: Including the number of parts in each message part requires
the total number of parts to be known in advance, making dynamic
responses based on the received data difficult 
							
						 
						
							2020-05-30 13:07:28 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								fea9660f80 
								
							 
						 
						
							
							
								
								WIP: start implementing incoming request handling  
							
							 
							
							
							
						 
						
							2020-05-30 01:10:56 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								96e61b726f 
								
							 
						 
						
							
							
								
								adjust hlint hints to ignore lambda-case  
							
							 
							
							
							
						 
						
							2020-05-29 21:30:18 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								61818c58a9 
								
							 
						 
						
							
							
								
								main server thread structure  
							
							 
							
							
							
						 
						
							2020-05-29 17:39:35 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								b4ecf8b0aa 
								
							 
						 
						
							
							
								
								catch and handle more join errors  
							
							 
							
							
							
						 
						
							2020-05-27 23:37:32 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								6ff765c63e 
								
							 
						 
						
							
							
								
								catch and handle bootstrap join errors  
							
							 
							
							
							
						 
						
							2020-05-27 18:59:38 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								27e5c5f9ce 
								
							 
						 
						
							
							
								
								bracket all socket-using operations to avoid resource leakage  
							
							 
							
							
							
						 
						
							2020-05-27 18:08:46 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								b1c5c5e5f4 
								
							 
						 
						
							
							
								
								try all bootstrap nodes until successfully joined  
							
							 
							
							
							
						 
						
							2020-05-26 20:54:02 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								702684b1a9 
								
							 
						 
						
							
							
								
								split fediChordJoin into general purpose and bootstrapping part  
							
							 
							
							
							
						 
						
							2020-05-26 11:02:29 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								43eb04dfea 
								
							 
						 
						
							
							
								
								preliminary passing of bootstrap nodes in Main to fediChordJoin  
							
							 
							
							
							
						 
						
							2020-05-26 09:39:02 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								ad1465c5fe 
								
							 
						 
						
							
							
								
								use global cache adding function  
							
							 
							
							
							
						 
						
							2020-05-26 08:55:44 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e3bfa26ddb 
								
							 
						 
						
							
							
								
								join request + large FediChord refactoring  
							
							 
							
							... 
							
							
							
							- implement sending of initial join request sending, response parsing
  and cache population (untested but compiles)
- refactor basic types and their functions into Hash2Pub.FediChordTypes
  to prevent import loops, leaving Hash2Pub.FediChord to contain the
  high level actions called from Main 
							
						 
						
							2020-05-25 22:03:24 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d5841d13fd 
								
							 
						 
						
							
							
								
								extract queryID message sending function so it can be used for first join  
							
							 
							
							
							
						 
						
							2020-05-22 22:12:38 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								16769d1395 
								
							 
						 
						
							
							
								
								Merge branch 'refactorNodeState' into dhtNetworking  
							
							 
							
							... 
							
							
							
							closes  #20  
							
						 
						
							2020-05-22 00:06:10 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								bbe7078369 
								
							 
						 
						
							
							
								
								adjust tests to work with new NodeState types  
							
							 
							
							... 
							
							
							
							closes  #20  
							
						 
						
							2020-05-22 00:05:23 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e8091b0a29 
								
							 
						 
						
							
							
								
								change all function definitions to new NodeState types  
							
							 
							
							... 
							
							
							
							- adjust implementation
contributes to #20  
							
						 
						
							2020-05-21 23:48:36 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								fe673dc255 
								
							 
						 
						
							
							
								
								make NodeState a typeclasse, define setters and getters on its representations  
							
							 
							
							... 
							
							
							
							contributes to #20  
							
						 
						
							2020-05-21 23:40:10 +02:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								99a2b0ba09 
								
							 
						 
						
							
							
								
								add instance deriving instructions  
							
							 
							
							
							
						 
						
							2020-05-20 19:27:51 +02:00