switch from LP to credits

As part of open sourcing the software product, we should consider that
loyalty points are not the best language. Switching to "credits" makes
sense from a lot of points of view.

At the same time, this change allows an achitectural change towards
slots. Slots allow daemon resources to get booked based on the HW ratio
configured in the daemon config.
This commit is contained in:
ghe0 2025-06-21 03:45:24 +03:00
parent b8db315af9
commit 5a91f5d5fe
Signed by: ghe0
GPG Key ID: 451028EE56A0FBB4
3 changed files with 31 additions and 21 deletions

@ -83,7 +83,11 @@ message AppNodeListResp {
string region = 4; string region = 4;
string city = 5; string city = 5;
string ip = 6; // required for latency test string ip = 6; // required for latency test
uint64 price = 7; // nanoLP per unit per minute // TODO: understand slot size for apps
// Since apps allow granular tweaking of resources (half a CPU),
// the slot size will be a float, not an int. This makes calculations more complex.
// We should discuss this when we have time.
uint64 price = 7; // nanocredits per slot per month
repeated string reports = 8; // TODO: this will become an enum repeated string reports = 8; // TODO: this will become an enum
} }

@ -47,7 +47,7 @@ message KickReq {
} }
message KickResp { message KickResp {
uint64 nano_lp = 1; uint64 nano_credits = 1;
} }
message BanUserReq { message BanUserReq {

@ -15,14 +15,14 @@ message VmContract {
repeated common_proto.MappedPort mapped_ports = 7; repeated common_proto.MappedPort mapped_ports = 7;
string vm_public_ipv4 = 8; string vm_public_ipv4 = 8;
string vm_public_ipv6 = 9; string vm_public_ipv6 = 9;
uint32 disk_size_gb = 10; uint32 disk_mib = 10;
uint32 vcpus = 11; uint32 vcpus = 11;
uint32 memory_mb = 12; uint32 memory_mib = 12;
string kernel_sha = 13; string kernel_sha = 13;
string dtrfs_sha = 14; string dtrfs_sha = 14;
string created_at = 15; string created_at = 15;
string updated_at = 16; string updated_at = 16;
// total nanoLP cost per minute (for all units) // total nanocredits cost per minute (for all units)
uint64 nano_per_minute = 17; uint64 nano_per_minute = 17;
uint64 locked_nano = 18; uint64 locked_nano = 18;
string collected_at = 19; string collected_at = 19;
@ -54,7 +54,7 @@ message RegisterVmNodeReq {
string country = 4; string country = 4;
string region = 5; string region = 5;
string city = 6; string city = 6;
// nanoLP per unit per minute // nanocredits per slot per month
uint64 price = 7; uint64 price = 7;
} }
@ -64,8 +64,8 @@ message VmNodeResources {
uint32 avail_ipv4 = 3; uint32 avail_ipv4 = 3;
uint32 avail_ipv6 = 4; uint32 avail_ipv6 = 4;
uint32 avail_vcpus = 5; uint32 avail_vcpus = 5;
uint32 avail_memory_mb = 6; uint32 avail_memory_mib = 6;
uint32 avail_storage_gb = 7; uint32 avail_storage_mib = 7;
uint32 max_ports_per_vm = 8; uint32 max_ports_per_vm = 8;
} }
@ -77,9 +77,9 @@ message NewVmReq {
repeated uint32 extra_ports = 5; repeated uint32 extra_ports = 5;
bool public_ipv4 = 6; bool public_ipv4 = 6;
bool public_ipv6 = 7; bool public_ipv6 = 7;
uint32 disk_size_gb = 8; uint32 vcpus = 8;
uint32 vcpus = 9; uint32 memory_mib = 9;
uint32 memory_mb = 10; uint32 disk_mib = 10;
string kernel_url = 11; string kernel_url = 11;
string kernel_sha = 12; string kernel_sha = 12;
string dtrfs_url = 13; string dtrfs_url = 13;
@ -91,16 +91,19 @@ message NewVmReq {
message NewVmResp { message NewVmResp {
string uuid = 1; string uuid = 1;
string error = 2; string error = 2;
MeasurementArgs args = 3; uint32 vcpus = 3;
uint32 memory_mib = 4;
uint32 disk_mib = 5;
MeasurementArgs args = 6;
} }
message UpdateVmReq { message UpdateVmReq {
string uuid = 1; string uuid = 1;
string hostname = 2; string hostname = 2;
string admin_pubkey = 3; string admin_pubkey = 3;
uint32 disk_size_gb = 4; uint32 vcpus = 4;
uint32 vcpus = 5; uint32 memory_mib = 5;
uint32 memory_mb = 6; uint32 disk_mib = 6;
string kernel_url = 7; string kernel_url = 7;
string kernel_sha = 8; string kernel_sha = 8;
string dtrfs_url = 9; string dtrfs_url = 9;
@ -110,7 +113,10 @@ message UpdateVmReq {
message UpdateVmResp { message UpdateVmResp {
string uuid = 1; string uuid = 1;
string error = 2; string error = 2;
MeasurementArgs args = 3; uint32 vcpus = 3;
uint32 memory_mib = 4;
uint32 disk_mib = 5;
MeasurementArgs args = 6;
} }
message DeleteVmReq { message DeleteVmReq {
@ -159,8 +165,8 @@ message VmNodeFilters {
bool offers_ipv4 = 2; bool offers_ipv4 = 2;
bool offers_ipv6 = 3; bool offers_ipv6 = 3;
uint32 vcpus = 4; uint32 vcpus = 4;
uint32 memory_mb = 5; uint32 memory_mib = 5;
uint32 storage_gb = 6; uint32 storage_mib = 6;
string country = 7; string country = 7;
string region = 8; string region = 8;
string city = 9; string city = 9;
@ -176,7 +182,7 @@ message VmNodeListResp {
string city = 5; string city = 5;
string ip = 6; // required for latency test string ip = 6; // required for latency test
repeated string reports = 7; // TODO: this will become an enum repeated string reports = 7; // TODO: this will become an enum
uint64 price = 8; // nanoLP per unit per minute uint64 price = 8; // nanocredits per month per slot
} }
message ExtendVmReq { message ExtendVmReq {