Ballot Number or $B$bal
A naive attempt to define a ballot number would be a simple integer [1, 2, 3, ...]. However, this approach is insufficient because it does not provide a way to compare ballots from different nodes or ensure uniqueness across the network. Even if nodes start their sequences randomly, eventually collisions occur.
BALLOT DEFINITION 2.2
To keep different priests from initiating ballots with the same number, the set of possible ballot numbers was partitioned amongthe priests.While it is not known how this was done, an obvious method would have been to let a ballot number be a pair consisting of an integer and a priest, using a lexicographical ordering, whereLAMPORT, P. 10 — §2.2
(13, Γρα˘ι) ≤ (13, Λινσ˘ι) ≤ (15, Γρα˘ι) since Γ came before Λ in the Paxon alphabet. In any case, it is known that every priest had an unbounded set of ballot numbers reserved for his use
Implementation is not as important as what a ballot number must accomplish. It can be a complex number, a hash set or most simply a monotonically increasing id and a node id. (id, node_id).
(1,1) ≤ (1,2), ≤ (3,1).
This ensures that ballot identifiers are totally ordered, discrete, and easy to reason about.