github.com/google/trillian-examples@v0.0.0-20240520080811-0d40d35cef0e/binary_transparency/firmware/docs/design/diagrams/fw_monitor.puml (about)

     1  @startuml fw_monitor
     2  !include ./puml/style.puml
     3  
     4  PARTICIPANT_VENDOR(vendor, "Firmware Vendor")
     5  PARTICIPANT_MONITOR(monitor, "Obs/Vendor Monitor")
     6  PARTICIPANT_LOG(log, "FT Log")
     7  PARTICIPANT_ARBITER(arbiter, "Arbiter")
     8  
     9      activate monitor
    10          loop Forever
    11  
    12              monitor -> log ++ : GetCheckpoint
    13              return checkpoint
    14              monitor -> log ++: GetConsistencyProof
    15              return consistency proof
    16              monitor -> monitor: Validate ConsistencyProof
    17  
    18              |||
    19  
    20              loop For each new LogEntry e
    21                  monitor -> log ++: GetEntry e
    22                  return entry
    23                  note right
    24                      Monitor verifies inclusion of all entries locally
    25                  endnote
    26                  monitor -> monitor: Inspect entry
    27                  |||
    28                  alt #FAIL Badness detected
    29                      monitor -->o arbiter: Alert
    30                  else #WARNING Firmware from Vendor detected
    31                      monitor -->o vendor: Inform
    32                  else #SUCCESS Ok
    33                  end
    34              end
    35          end
    36      deactivate monitor
    37  @enduml