info_tfgrid/collections/tfgrid4specs/zinit_registration.md
2024-10-03 17:29:42 +03:00

1.3 KiB

registration

Zinit needs tools to get this info and report it to the registrar.

struct Registration {
    pub_key     string //public key of the node mycelium
    mycelium_address  string //the ipv6 addr
    capacity    Capacity
    pub_key_signature  string //signed pubkey with TPM on motherboard
}

struct Capacity {
    memory_gb     f64       // Memory size in GB
    disks         []Disk    // List of disks (both SSDs and HDDs)
    cpu      CPU   // Enum for CPU type
}

struct CPU {
    cpu_type   CPUType        // Size of the disk in GB
    description string
    cpu_vcores    int       // Number of CPU virtual cores
}


struct Disk {
    size_gb   f64        // Size of the disk in GB
    disk_type DiskType   // Enum for disk type (SSD or HDD)
}

// Enum for disk types
enum DiskType {
    ssd
    hdd
}
// Enum for CPU types
enum CPUType {
    intel_xeon
    amd_epyc
    intel_core9
}


the registration is done to all known registrars using openrpc

  • register
  • json payload
  • ... see the openrpc spec rest server

failsafe

  • zinit does this every hour on each know registrar, will be used for watchdog
  • zinit at start keeps on trying for at least 1h on all servers each 5 sec, once a registrar found go to maintenance mode (which is once an hour)

implementation

Have a driver which uses zinit, keep zinit small, do in V.