# Bootstrap ZOS - automated build process for arm64, amd64 - recent kernel - the configuration of the zinit is done on Bootstrap server (which registrars to connect to, the config file) - download the intitial needed binaries and config files from the bootstrap server - when downloading the files check an md5 and check the signature with the specified pub key of bootstrap server - is done by means of a list (text file) which describes the files which need to be downloaded and hash - the list is signed with priv key of the bootstrap server - binaries we need are zinit, mycelium, youki, ttyd and other minimum required components when booting the node we specify, is then part part of the iso or image created - md5 of bootstrap config file - public key of the bootstrap server (to verify the list of binary files) - url of Bootstrap server (can be http(s), ...) - farmerid (no longer going to tfchain, for now just used and put a value in zos we can query) - farmingpoolid (for now just used and put a value in zos we can query) ### the config file content - registrars see zinit config - size of root partition (if 0 then ramdisk) - which mycelium nodes to connect to - debug mode, see ttyd,if debug mode specify which mycelium nodes can connect as debugger - root ttyd (for debug purposes, is not enabled by default, needs passwd and mycelium only) - description (so the user using bootstrap can see what is going on) - different location (by name) of the binaries e.g. useful for debug - ? the person who sets up (admin) a bootstrap server can specify different config files, when creating the image the user can chose which config file, if only 1 then no choice. the admin can create more than 1 dir with the binary files needed. there is a tool which creates a list of the dir and signs this list with the private key of the bootstrap server. ## requirements - good decent logging to screen if user asks to see - no need to download an flist to get through the bootstrap (the intial used files are downloaded directly from bootstrap server) - small image - everyone an build their own bootstrap server ## remarks - maybe zinit should be part of the bootstrap in the image, and zinit can download the required binaries like ttyd, mycelium,youki - maybe a small 1 GB root parition should be created to have just these intital files, so it doesn't have to be downloaded all the time. ## alternatives - use flist approach, want to try to keep all as simple as possible though, this widens the components needed, if we use flists then need to be part of same bootstrap server, so we basically have it all embedded in one easy to use component.