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