Monitor Implementation
Contents
types.go
: type declarations for monitor context and some basic monitor methods definitionsmonitor.go
: implementation of clientside monitor functions that will be used by monitor_server in the server foldermonitor_process.go
: contains only process valid gossip object functions
types.go
-Monitor_context
: monitor context is an object that contains all the configuration and storage information about the monitor
methods
: internal methods defined in this file includes savestorage, loadstorage, getobject, isduplicate, and storeobject
monitor.go
Queryloggers
: send HTTP get request to loggersQueryAuthorities
: send HTTP get request to CAsCheck_entity_pom
: check if there is a pom against the provided URLisLogger
: check if the entities is in the Loggers list from the public config fileIsAuthority
: check if the entities is in the CAs list from the public config fileCheck_entity_pom
: check if there is a PoM aganist this entityAccuseEntity
: accuses the entity if its URL is providedSend_to_gossiper
: send the input gossip object to the gossiperPeriodicTasks
: query loggers once per MMD, accuse if the logger is inactive
monitor_process.go
Process_valid_object
:
If the monitor receives a valid sth from a logger or valid revocation information from a CA (both need to be in the form of a gossip object),
this function will send the raw version of the gossip object to the gossiper, wait for gossip_wait_time, check updated local PoM database,
if there is no PoM against the signer of this sth/revocation information, threshold sign this sth/revocation information and send it to the gossiper
Code Owners
- types.go is written by Finn and Marcus
- monitor_process.go is written by Jie, reviewed by Finn
Queryloggers
andQueryAuthorities
functions in monitor.go are written by Marcus, reviewed and edited by FinnAccuseEntity
andSend_to_Gossiper
functions in monitor.go are written by Jie, reviewed by FinnCheck_entity_pom
isLogger
andIsAuthority
functions monitor.go are written by Jie, reviewed and edited by FinnPeriodicTasks
function in monitor.go is written by Finn