Reproduced this issue by recreating a ReconRqstPoly scenario, between SKS and Hockeypuck, Hockeypuck did not converge. However, Hockeypuck *did* converge a poly sync with another Hockeypuck.
Turned out to be a difference between the conflux byte ordering of Zp's and SKS ZZp. This difference crept into other parts of conflux, where byte strings were reversed to match some of my blackbox SKS examples.
Matching the conflux Zp and untangling the compensation mess fixed the issue, and greatly simplified the code and usage. Demonstrated convergence between Hockeypuck and SKS in a poly scenario.
This is what a convergent poly reconcile looks like in Hockeypuck's log:
Reproduced this issue by recreating a ReconRqstPoly scenario, between SKS and Hockeypuck, Hockeypuck did not converge. However, Hockeypuck *did* converge a poly sync with another Hockeypuck.
Turned out to be a difference between the conflux byte ordering of Zp's and SKS ZZp. This difference crept into other parts of conflux, where byte strings were reversed to match some of my blackbox SKS examples.
Matching the conflux Zp and untangling the compensation mess fixed the issue, and greatly simplified the code and usage. Demonstrated convergence between Hockeypuck and SKS in a poly scenario.
This is what a convergent poly reconcile looks like in Hockeypuck's log:
hockeypuck2013/ 08/12 23:36:11 gossip.go:214: gossip: Reconcile [1 1 1 1 1 1] [0 530512889551602 322505127520352 579437338 1 530512889551602 322505127520352 579437337 2 530512889551602 322505127520352 579437336] 0 08/12 23:36:11 gossip.go:205: gossip: solved: localSet= {} remote Set= {}
hockeypuck2013/