JAR: JAM Axiomatic Reference

6.1. Block Sealing🔗

🔗def
Jar.Consensus.outsideInSequencer [Jar.JamConfig] (tickets : Array Jar.Ticket) : Array Jar.Ticket
Jar.Consensus.outsideInSequencer [Jar.JamConfig] (tickets : Array Jar.Ticket) : Array Jar.Ticket

Z(tickets) : Outside-in sequencer. GP eq (6.25). Interleaves tickets from outside inward: Z([a,b,c,d,...]) = [a, last, b, second-to-last, ...]. Used to arrange ticket accumulator into seal-key sequence.

🔗def
Jar.Consensus.fallbackKeySequence [Jar.JamConfig] (entropy : Hash) (validators : Array Jar.ValidatorKey) : Array BandersnatchPublicKey
Jar.Consensus.fallbackKeySequence [Jar.JamConfig] (entropy : Hash) (validators : Array Jar.ValidatorKey) : Array BandersnatchPublicKey

F(η, κ) : Fallback seal-key sequence. GP eq (6.26). When tickets are insufficient, generates E keys by hashing entropy ∥ slot_index for each slot independently.

🔗def
Jar.Consensus.verifySealTicketed [Jar.JamConfig] (authorKey : BandersnatchPublicKey) (entropy3 : Hash) (ticket : Jar.Ticket) (unsignedHeader : ByteArray) (sealSig : BandersnatchSignature) : Bool
Jar.Consensus.verifySealTicketed [Jar.JamConfig] (authorKey : BandersnatchPublicKey) (entropy3 : Hash) (ticket : Jar.Ticket) (unsignedHeader : ByteArray) (sealSig : BandersnatchSignature) : Bool

Verify a block seal in ticketed mode. GP eq (6.24). H_s ∈ Ṽ_k^{X_T ∥ η'_3 ∥ i_a}⟨𝓔_U(H)⟩

🔗def
Jar.Consensus.verifySealFallback (authorKey : BandersnatchPublicKey) (entropy3 : Hash) (unsignedHeader : ByteArray) (sealSig : BandersnatchSignature) : Bool
Jar.Consensus.verifySealFallback (authorKey : BandersnatchPublicKey) (entropy3 : Hash) (unsignedHeader : ByteArray) (sealSig : BandersnatchSignature) : Bool

Verify a block seal in fallback mode. GP eq (6.25). H_s ∈ Ṽ_k^{X_F ∥ η'_3}⟨𝓔_U(H)⟩

🔗def
Jar.Consensus.verifyEntropyVrf (authorKey : BandersnatchPublicKey) (sealSig vrfSig : BandersnatchSignature) : Bool
Jar.Consensus.verifyEntropyVrf (authorKey : BandersnatchPublicKey) (sealSig vrfSig : BandersnatchSignature) : Bool

Verify the entropy VRF signature. GP eq (6.27). H_v ∈ Ṽ_k^{X_E ∥ Y(H_s)}⟨⟩