Make encodeStateAsUpdate deterministic
This commit is contained in:
		
							parent
							
								
									1bc9308566
								
							
						
					
					
						commit
						da052bdb0a
					
				@ -219,7 +219,11 @@ export const createDeleteSetFromStructStore = ss => {
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
export const writeDeleteSet = (encoder, ds) => {
 | 
					export const writeDeleteSet = (encoder, ds) => {
 | 
				
			||||||
  encoding.writeVarUint(encoder.restEncoder, ds.clients.size)
 | 
					  encoding.writeVarUint(encoder.restEncoder, ds.clients.size)
 | 
				
			||||||
  ds.clients.forEach((dsitems, client) => {
 | 
					
 | 
				
			||||||
 | 
					  // Ensure that the delete set is written in a deterministic order
 | 
				
			||||||
 | 
					  Array.from(ds.clients.entries())
 | 
				
			||||||
 | 
					    .sort((clientA, clientB) => clientB[0] - clientA[0])
 | 
				
			||||||
 | 
					    .forEach(([client, dsitems]) => {
 | 
				
			||||||
      encoder.resetDsCurVal()
 | 
					      encoder.resetDsCurVal()
 | 
				
			||||||
      encoding.writeVarUint(encoder.restEncoder, client)
 | 
					      encoding.writeVarUint(encoder.restEncoder, client)
 | 
				
			||||||
      const len = dsitems.length
 | 
					      const len = dsitems.length
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user