This commit is contained in:
2024-08-06 17:33:59 +02:00
parent 6e1f478ce5
commit da14091106
81 changed files with 549 additions and 185 deletions

View File

@@ -1,3 +1,3 @@
qsss_1.png
smartcontract_deploy.png
zmachine_storage.png
zero_vm_storage.png

View File

@@ -1,7 +1,7 @@
## Unbreakable Storage
![](img/zmachine_storage.png)
![](img/zero_vm_storage.png)
- unlimited history
- survives network, datacenter or node breakdown

View File

@@ -1,26 +0,0 @@
## Zero-Chance = Deterministic Deployment
![](img/smartcontract_deploy.png)
The Dedupe filesystem flist uses an interface which allows you to create the file system interface in user space, it is a virtual filesystem.
Metadata is exposed. The system sees the full tree of the image, but data itself is not there, data is downloaded whenever they are accessed and fully deduped (unique data).
>TODO: improve
### Benefits
- Smart contract for IT
The smart contract for IT concept is applicable to any workload: containers, VMs, all gateways primitives, volumes, kubernetes and network.
It is a static agreement between farmer and user about deployment of an IT workload
- no dynamic behavior for deployment at runtime
- no process can start unless the files are 100% described on flist level
### There are multiple ways to create an flist:
- Convert an existing docker image which is hosted on the docker hub
- Push an archive like a tgz on the hub
- A library and CLI tool exist to build the flist from scratch: doing it this way, the directory is locally populated, and the flist is then created from the CLI tool
- A [GitHub action](https://github.com/threefoldtech/publish-flist) allows to build a flist directly from GitHub action, useful for developers on GitHub

View File

@@ -0,0 +1,36 @@
## Deterministic Deployment
The concept of Zero-Deploy is a key component of the **Smart Contract for IT** framework, which can be applied to any type of workload—whether it's containers, virtual machines (VMs), network gateways, volumes, Kubernetes resources, or other network elements. This framework serves as a formal agreement between a farmer (provider) and a user regarding the deployment of an IT workload.
### Process
1. **Build Your Code**
Develop and prepare your application code.
2. **Convert to Zero-Image**
Use a CI/CD solution (e.g., Hero CI/CD) to convert your Docker build (or other format) into a Zero-Image format.
3. **Define the Workload**
Specify all the details of your workload, including network bridges, web gateways, required machines, and more.
4. **Register and Sign**
Register the workload and sign it with your private key.
5. **Automatic Detection**
All necessary Zero-OS nodes (our infrastructure) will detect that a new workload needs to be deployed.
6. **Deployment Process**
The nodes will pull down the formal workload descriptions and initiate the deployment process.
7. **Validation**
Every step of the deployment is verified by Zero-OS (ZOS) to ensure that the intended result is accurately replicated. If any discrepancies are detected, ZOS will halt the deployment and provide an error message.
### Benefits
- **Deterministic Deployment**: There is no dynamic behavior during deployment at runtime, ensuring a consistent and predictable outcome.
- **Strict Compliance**: No process can start unless all files and configurations are fully described at the flist level.

View File

@@ -4,22 +4,28 @@
The Zero-OS is delivered to the 3Nodes over the internet network (network boot) and does not need to be installed.
### 3Node Install
1. Acquire a computer (server)
1. Deploy a computer
2. Configure a farm on the TFGrid explorer
3. Download the bootloader and put on a USB stick or configure a network boot device
4. Power on the computer and connect to the internet
5. Boot! The computer will automatically download the components of the operating system (Zero-OS)
The actual bootloader is very small, it brings up the network interface of your computer and queries TFGeid for the remainder of the boot files needed.
The actual bootloader is very small, it brings up the network interface of your computer and queries TFGrid for the remainder of the boot files needed.
The operating system is not installed on any local storage medium (hard disk, ssd), Zero-OS is stateless.
The mechanism to allow this to work in a safe and efficient manner is an innovation called our container virtual filesystem.
This is explained in more detail [in our SDK manual](https://library.threefold.me/info/manual/#/booting_node).
### Process
- optionally: configure booting from secure BIOS
- optionally: install signing certificate in the BIOS, to make sure that only the right bootloader can be started
- the bootloader (ISO, PXE, USB, ...) get's downloaded from Internet (TFGrid CDN or private deployment)
- core-0 (the first boot process) starts, self verification happens
- the metadata for the the required software modules is downloaded and checked against signature and hashes
- the core-0 zero_image service