Hazardaj elektoj, miksitaj trairoj kaj ripetitaj proksejaj finpunktoj
Elektu inter sendependaj hazardaj elektoj, miksita trairo kaj politiko sen tuja ripeto, anstataŭ trakti ripetitan finpunkton kiel difektitan rotacion.
Prokseo B, denove prokseo B, poste prokseo A. Via protokolo ŝajnas suspektinda, sed hazarda elektilo rajtas fari ĝuste tion.
Elekti el la sama listo ĉe ĉiu peto permesas ripetojn. Kun du same verŝajnaj finpunktoj, la sekva sendependa elekto havas ŝancon unu el du koincidi kun la antaŭa. Mallonga sinsekvo kun ripetoj ne pruvas, ke la elektilo ignoris la liston.
Elektu la konduton, kiun vi vere bezonas
| Postulo | Elekta regulo |
|---|---|
| Ĉiu elekto estas sendependa | Elektu el la taŭga listo ĉiufoje |
| Uzu ĉiun finpunkton unufoje antaŭ ol rekomenci | Miksu kopion, konsumu ĝin, poste komencu novan trairon |
| Evitu la tuj antaŭan finpunkton | Ekskludu tiun finpunkton antaŭ la elekto |
Por la lasta politiko, traktu la kazon de unu sola finpunkto eksplice:
candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)
Ĉi tiu fragmento supozas, ke random estas importita kaj la listo de finpunktoj jam validigita. Publika provizo povas komenci per la senpaga proksea listo kiam ĝiaj protokoloj taŭgas por la fina kliento; ĉi tiu elekta regulo ankoraŭ regas ripetojn. Ĉu atendi, reuzi la solan finpunkton aŭ halti estas aplika politiko. Senfina buklo atendanta alian hazardan valoron ne povas solvi liston enhavantan nur unu apartan elekton.
En samtempa dissendilo, elekti kaj registri la antaŭan finpunkton ankaŭ postulas kunordigitan posedon. Alie du laborantoj povas ambaŭ ekskludi la malnovan valoron kaj elekti la saman sekvan valoron.
Fine, ĉi tiu regulo koncernas la identecon de la finpunkto. Du malsamaj finpunktoj povas konduki al unu publika eliro, kaj unu provizanta finpunkto povas konduki al pluraj eliroj. Registru ilin aparte antaŭ ol decidi, ke la rotacio estas difektita.