Files
db/heromodels/src/models/grid4/specs/README.md
2025-08-27 14:44:39 +02:00

8.7 KiB

Grid4 Data Model

This module defines data models for nodes, groups, and slices in a cloud/grid infrastructure. Each root object is marked with @[heap] and can be indexed for efficient querying.

Root Objects Overview

Object Description Index Fields
Node Represents a single node in the grid id, nodegroupid, country
NodeGroup Represents a group of nodes owned by a farmer id, farmerid

Node

Represents a single node in the grid with slices, devices, and capacity.

Field Type Description Indexed
id int Unique node ID
nodegroupid int ID of the owning node group
uptime int Uptime percentage (0-100)
computeslices []ComputeSlice List of compute slices
storageslices []StorageSlice List of storage slices
devices DeviceInfo Hardware device info (storage, memory, etc.)
country string 2-letter country code
capacity NodeCapacity Aggregated hardware capacity
provisiontime u32 Provisioning time (simple/compatible format)

NodeGroup

Represents a group of nodes owned by a farmer, with policies.

Field Type Description Indexed
id u32 Unique group ID
farmerid u32 Farmer/user ID
secret string Encrypted secret for booting nodes
description string Group description
slapolicy SLAPolicy SLA policy details
pricingpolicy PricingPolicy Pricing policy details
compute_slice_normalized_pricing_cc f64 Pricing per 2GB compute slice in cloud credits
storage_slice_normalized_pricing_cc f64 Pricing per 1GB storage slice in cloud credits
reputation int Reputation (0-100)
uptime int Uptime (0-100)

ComputeSlice

Represents a compute slice (e.g., 1GB memory unit).

Field Type Description
nodeid u32 Owning node ID
id int Slice ID in node
mem_gb f64 Memory in GB
storage_gb f64 Storage in GB
passmark int Passmark score
vcores int Virtual cores
cpu_oversubscription int CPU oversubscription ratio
storage_oversubscription int Storage oversubscription ratio
price_range []f64 Price range [min, max]
gpus u8 Number of GPUs
price_cc f64 Price per slice in cloud credits
pricing_policy PricingPolicy Pricing policy
sla_policy SLAPolicy SLA policy

StorageSlice

Represents a 1GB storage slice.

Field Type Description
nodeid u32 Owning node ID
id int Slice ID in node
price_cc f64 Price per slice in cloud credits
pricing_policy PricingPolicy Pricing policy
sla_policy SLAPolicy SLA policy

DeviceInfo

Hardware device information for a node.

Field Type Description
vendor string Vendor of the node
storage []StorageDevice List of storage devices
memory []MemoryDevice List of memory devices
cpu []CPUDevice List of CPU devices
gpu []GPUDevice List of GPU devices
network []NetworkDevice List of network devices

StorageDevice

Field Type Description
id string Unique ID for device
size_gb f64 Size in GB
description string Description of device

MemoryDevice

Field Type Description
id string Unique ID for device
size_gb f64 Size in GB
description string Description of device

CPUDevice

Field Type Description
id string Unique ID for device
cores int Number of CPU cores
passmark int Passmark benchmark score
description string Description of device
cpu_brand string Brand of the CPU
cpu_version string Version of the CPU

GPUDevice

Field Type Description
id string Unique ID for device
cores int Number of GPU cores
memory_gb f64 GPU memory in GB
description string Description of device
gpu_brand string Brand of the GPU
gpu_version string Version of the GPU

NetworkDevice

Field Type Description
id string Unique ID for device
speed_mbps int Network speed in Mbps
description string Description of device

NodeCapacity

Aggregated hardware capacity for a node.

Field Type Description
storage_gb f64 Total storage in GB
mem_gb f64 Total memory in GB
mem_gb_gpu f64 Total GPU memory in GB
passmark int Total passmark score
vcores int Total virtual cores

SLAPolicy

Service Level Agreement policy for slices or node groups.

Field Type Description
sla_uptime int Required uptime % (e.g., 90)
sla_bandwidth_mbit int Guaranteed bandwidth in Mbps (0 = none)
sla_penalty int Penalty % if SLA is breached (0-100)

PricingPolicy

Pricing policy for slices or node groups.

Field Type Description
marketplace_year_discounts []int Discounts for 1Y, 2Y, 3Y prepaid usage (e.g. [30,40,50])
volume_discounts []int Volume discounts based on purchase size (e.g. [10,20,30])