Merge pull request #439 from Synthesia-Technologies/feat/deterministic-update-encoding
Make encodeStateAsUpdate deterministic
This commit is contained in:
		
						commit
						58b754950e
					
				@ -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) => clientA[0] - clientB[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