Kick Contract #2
107
saved_data.yaml
107
saved_data.yaml
@ -129,13 +129,13 @@ operators:
|
|||||||
app_nodes: []
|
app_nodes: []
|
||||||
7V3rEuh6j8VuwMVB5PyGqWKLmjJ4fYSv6WtrTL51NZTB:
|
7V3rEuh6j8VuwMVB5PyGqWKLmjJ4fYSv6WtrTL51NZTB:
|
||||||
escrow: 0
|
escrow: 0
|
||||||
email: ''
|
email: ""
|
||||||
banned_users: []
|
banned_users: []
|
||||||
vm_nodes: []
|
vm_nodes: []
|
||||||
app_nodes:
|
app_nodes:
|
||||||
- BiqoPUEoAxYxMRXUmyofoS9H1TBQgQqvLJ6MbWh88AQg
|
- BiqoPUEoAxYxMRXUmyofoS9H1TBQgQqvLJ6MbWh88AQg
|
||||||
vm_nodes:
|
vm_nodes:
|
||||||
- public_key: 7Xw3RxbP5pvfjZ8U6yA3HHVSS9YXjKH5Vkas3JRbQYd9
|
- public_key: 7Xw3RxbP5pvfjZ8U6yA3HHVSS9YXjKH5Vkas3JRbQYd9
|
||||||
operator_wallet: x52w7jARC5erhWWK65VZmjdGXzBK6ZDgfv1A283d8XK
|
operator_wallet: x52w7jARC5erhWWK65VZmjdGXzBK6ZDgfv1A283d8XK
|
||||||
country: GB
|
country: GB
|
||||||
region: England
|
region: England
|
||||||
@ -151,7 +151,7 @@ vm_nodes:
|
|||||||
price: 20000
|
price: 20000
|
||||||
reports: {}
|
reports: {}
|
||||||
offline_minutes: 0
|
offline_minutes: 0
|
||||||
- public_key: Du3UfPSUUZmA5thQmc9Vrxdy7UimpygcpDsQNnwRQPtu
|
- public_key: Du3UfPSUUZmA5thQmc9Vrxdy7UimpygcpDsQNnwRQPtu
|
||||||
operator_wallet: BFopWmwcZAMF1h2PFECZNdEucdZfnZZ32p6R9ZaBiVsS
|
operator_wallet: BFopWmwcZAMF1h2PFECZNdEucdZfnZZ32p6R9ZaBiVsS
|
||||||
country: FR
|
country: FR
|
||||||
region: Île-de-France
|
region: Île-de-France
|
||||||
@ -167,7 +167,7 @@ vm_nodes:
|
|||||||
price: 20000
|
price: 20000
|
||||||
reports: {}
|
reports: {}
|
||||||
offline_minutes: 0
|
offline_minutes: 0
|
||||||
- public_key: 2Uf5pxhxKTUm6gRMnpbJHYDuyA6BWUfFsdmPyWfbMV1f
|
- public_key: 2Uf5pxhxKTUm6gRMnpbJHYDuyA6BWUfFsdmPyWfbMV1f
|
||||||
operator_wallet: x52w7jARC5erhWWK65VZmjdGXzBK6ZDgfv1A283d8XK
|
operator_wallet: x52w7jARC5erhWWK65VZmjdGXzBK6ZDgfv1A283d8XK
|
||||||
country: CA
|
country: CA
|
||||||
region: Quebec
|
region: Quebec
|
||||||
@ -183,7 +183,7 @@ vm_nodes:
|
|||||||
price: 18000
|
price: 18000
|
||||||
reports: {}
|
reports: {}
|
||||||
offline_minutes: 0
|
offline_minutes: 0
|
||||||
- public_key: DgkbsrwttkZXvzxY5kDwQQoDd79GLmZ5tc7fYJUFkQQb
|
- public_key: DgkbsrwttkZXvzxY5kDwQQoDd79GLmZ5tc7fYJUFkQQb
|
||||||
operator_wallet: BFopWmwcZAMF1h2PFECZNdEucdZfnZZ32p6R9ZaBiVsS
|
operator_wallet: BFopWmwcZAMF1h2PFECZNdEucdZfnZZ32p6R9ZaBiVsS
|
||||||
country: CA
|
country: CA
|
||||||
region: British Columbia
|
region: British Columbia
|
||||||
@ -199,7 +199,7 @@ vm_nodes:
|
|||||||
price: 20000
|
price: 20000
|
||||||
reports: {}
|
reports: {}
|
||||||
offline_minutes: 0
|
offline_minutes: 0
|
||||||
- public_key: 3zRxiGRnf46vd3zAEmpaYBJocTV9oJB6yXf5GZFR1Sq4
|
- public_key: 3zRxiGRnf46vd3zAEmpaYBJocTV9oJB6yXf5GZFR1Sq4
|
||||||
operator_wallet: BFopWmwcZAMF1h2PFECZNdEucdZfnZZ32p6R9ZaBiVsS
|
operator_wallet: BFopWmwcZAMF1h2PFECZNdEucdZfnZZ32p6R9ZaBiVsS
|
||||||
country: US
|
country: US
|
||||||
region: California
|
region: California
|
||||||
@ -215,7 +215,7 @@ vm_nodes:
|
|||||||
price: 20000
|
price: 20000
|
||||||
reports: {}
|
reports: {}
|
||||||
offline_minutes: 0
|
offline_minutes: 0
|
||||||
- public_key: HiyMp21zaBVbRCjDsD5hEjQnHeHv4e1gpUR6pVfHTKqv
|
- public_key: HiyMp21zaBVbRCjDsD5hEjQnHeHv4e1gpUR6pVfHTKqv
|
||||||
operator_wallet: BFopWmwcZAMF1h2PFECZNdEucdZfnZZ32p6R9ZaBiVsS
|
operator_wallet: BFopWmwcZAMF1h2PFECZNdEucdZfnZZ32p6R9ZaBiVsS
|
||||||
country: CA
|
country: CA
|
||||||
region: British Columbia
|
region: British Columbia
|
||||||
@ -232,13 +232,13 @@ vm_nodes:
|
|||||||
reports: {}
|
reports: {}
|
||||||
offline_minutes: 0
|
offline_minutes: 0
|
||||||
vm_contracts:
|
vm_contracts:
|
||||||
- uuid: 958165e3-dea8-407d-8c42-dd17002ef79c
|
- uuid: 958165e3-dea8-407d-8c42-dd17002ef79c
|
||||||
hostname: detee-landing-fr
|
hostname: detee-landing-fr
|
||||||
admin_pubkey: FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL
|
admin_pubkey: FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL
|
||||||
node_pubkey: Du3UfPSUUZmA5thQmc9Vrxdy7UimpygcpDsQNnwRQPtu
|
node_pubkey: Du3UfPSUUZmA5thQmc9Vrxdy7UimpygcpDsQNnwRQPtu
|
||||||
exposed_ports: []
|
exposed_ports: []
|
||||||
public_ipv4: 156.146.63.216
|
public_ipv4: 156.146.63.216
|
||||||
public_ipv6: ''
|
public_ipv6: ""
|
||||||
disk_size_gb: 10
|
disk_size_gb: 10
|
||||||
vcpus: 2
|
vcpus: 2
|
||||||
memory_mb: 3000
|
memory_mb: 3000
|
||||||
@ -249,13 +249,13 @@ vm_contracts:
|
|||||||
price_per_unit: 20000
|
price_per_unit: 20000
|
||||||
locked_nano: 14875500000
|
locked_nano: 14875500000
|
||||||
collected_at: 2025-04-20T00:34:15.461165181Z
|
collected_at: 2025-04-20T00:34:15.461165181Z
|
||||||
- uuid: e807a2fd-cf90-4a14-bc3a-89ce6dc59033
|
- uuid: e807a2fd-cf90-4a14-bc3a-89ce6dc59033
|
||||||
hostname: detee-landing-gb
|
hostname: detee-landing-gb
|
||||||
admin_pubkey: FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL
|
admin_pubkey: FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL
|
||||||
node_pubkey: 7Xw3RxbP5pvfjZ8U6yA3HHVSS9YXjKH5Vkas3JRbQYd9
|
node_pubkey: 7Xw3RxbP5pvfjZ8U6yA3HHVSS9YXjKH5Vkas3JRbQYd9
|
||||||
exposed_ports: []
|
exposed_ports: []
|
||||||
public_ipv4: 173.234.136.154
|
public_ipv4: 173.234.136.154
|
||||||
public_ipv6: ''
|
public_ipv6: ""
|
||||||
disk_size_gb: 10
|
disk_size_gb: 10
|
||||||
vcpus: 2
|
vcpus: 2
|
||||||
memory_mb: 3000
|
memory_mb: 3000
|
||||||
@ -266,14 +266,14 @@ vm_contracts:
|
|||||||
price_per_unit: 20000
|
price_per_unit: 20000
|
||||||
locked_nano: 14875500000
|
locked_nano: 14875500000
|
||||||
collected_at: 2025-04-20T00:34:15.461181545Z
|
collected_at: 2025-04-20T00:34:15.461181545Z
|
||||||
- uuid: 23094406-2307-4332-a642-acee718d0186
|
- uuid: 23094406-2307-4332-a642-acee718d0186
|
||||||
hostname: heroic-door
|
hostname: heroic-door
|
||||||
admin_pubkey: DwfL5iFu32xh2YMCUxg63oEAThLRqehDAumiP9q6zuuX
|
admin_pubkey: DwfL5iFu32xh2YMCUxg63oEAThLRqehDAumiP9q6zuuX
|
||||||
node_pubkey: 7Xw3RxbP5pvfjZ8U6yA3HHVSS9YXjKH5Vkas3JRbQYd9
|
node_pubkey: 7Xw3RxbP5pvfjZ8U6yA3HHVSS9YXjKH5Vkas3JRbQYd9
|
||||||
exposed_ports:
|
exposed_ports:
|
||||||
- 38288
|
- 38288
|
||||||
public_ipv4: ''
|
public_ipv4: ""
|
||||||
public_ipv6: ''
|
public_ipv6: ""
|
||||||
disk_size_gb: 10
|
disk_size_gb: 10
|
||||||
vcpus: 1
|
vcpus: 1
|
||||||
memory_mb: 1000
|
memory_mb: 1000
|
||||||
@ -284,13 +284,13 @@ vm_contracts:
|
|||||||
price_per_unit: 20000
|
price_per_unit: 20000
|
||||||
locked_nano: 14134140000
|
locked_nano: 14134140000
|
||||||
collected_at: 2025-04-20T00:34:15.461191231Z
|
collected_at: 2025-04-20T00:34:15.461191231Z
|
||||||
- uuid: 1f49a71c-f68c-4c64-a82e-f50e0ba0b574
|
- uuid: 1f49a71c-f68c-4c64-a82e-f50e0ba0b574
|
||||||
hostname: astromech-wrench
|
hostname: astromech-wrench
|
||||||
admin_pubkey: FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL
|
admin_pubkey: FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL
|
||||||
node_pubkey: DgkbsrwttkZXvzxY5kDwQQoDd79GLmZ5tc7fYJUFkQQb
|
node_pubkey: DgkbsrwttkZXvzxY5kDwQQoDd79GLmZ5tc7fYJUFkQQb
|
||||||
exposed_ports: []
|
exposed_ports: []
|
||||||
public_ipv4: 149.22.95.2
|
public_ipv4: 149.22.95.2
|
||||||
public_ipv6: ''
|
public_ipv6: ""
|
||||||
disk_size_gb: 10
|
disk_size_gb: 10
|
||||||
vcpus: 2
|
vcpus: 2
|
||||||
memory_mb: 3000
|
memory_mb: 3000
|
||||||
@ -301,13 +301,13 @@ vm_contracts:
|
|||||||
price_per_unit: 20000
|
price_per_unit: 20000
|
||||||
locked_nano: 11865620000
|
locked_nano: 11865620000
|
||||||
collected_at: 2025-04-20T00:34:15.461201690Z
|
collected_at: 2025-04-20T00:34:15.461201690Z
|
||||||
- uuid: 16577f1c-9867-4a17-80a8-6cf0490f1270
|
- uuid: 16577f1c-9867-4a17-80a8-6cf0490f1270
|
||||||
hostname: sofenty
|
hostname: sofenty
|
||||||
admin_pubkey: FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL
|
admin_pubkey: FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL
|
||||||
node_pubkey: Du3UfPSUUZmA5thQmc9Vrxdy7UimpygcpDsQNnwRQPtu
|
node_pubkey: Du3UfPSUUZmA5thQmc9Vrxdy7UimpygcpDsQNnwRQPtu
|
||||||
exposed_ports: []
|
exposed_ports: []
|
||||||
public_ipv4: 156.146.63.217
|
public_ipv4: 156.146.63.217
|
||||||
public_ipv6: ''
|
public_ipv6: ""
|
||||||
disk_size_gb: 10
|
disk_size_gb: 10
|
||||||
vcpus: 2
|
vcpus: 2
|
||||||
memory_mb: 3000
|
memory_mb: 3000
|
||||||
@ -318,13 +318,13 @@ vm_contracts:
|
|||||||
price_per_unit: 20000
|
price_per_unit: 20000
|
||||||
locked_nano: 11867500000
|
locked_nano: 11867500000
|
||||||
collected_at: 2025-04-20T00:34:15.461211040Z
|
collected_at: 2025-04-20T00:34:15.461211040Z
|
||||||
- uuid: 4b6e25ca-87ac-478b-8f16-aa8f5c44c704
|
- uuid: 4b6e25ca-87ac-478b-8f16-aa8f5c44c704
|
||||||
hostname: cloaked-mailbox
|
hostname: cloaked-mailbox
|
||||||
admin_pubkey: DwfL5iFu32xh2YMCUxg63oEAThLRqehDAumiP9q6zuuX
|
admin_pubkey: DwfL5iFu32xh2YMCUxg63oEAThLRqehDAumiP9q6zuuX
|
||||||
node_pubkey: DgkbsrwttkZXvzxY5kDwQQoDd79GLmZ5tc7fYJUFkQQb
|
node_pubkey: DgkbsrwttkZXvzxY5kDwQQoDd79GLmZ5tc7fYJUFkQQb
|
||||||
exposed_ports: []
|
exposed_ports: []
|
||||||
public_ipv4: 149.22.95.2
|
public_ipv4: 149.22.95.2
|
||||||
public_ipv6: ''
|
public_ipv6: ""
|
||||||
disk_size_gb: 30
|
disk_size_gb: 30
|
||||||
vcpus: 1
|
vcpus: 1
|
||||||
memory_mb: 1000
|
memory_mb: 1000
|
||||||
@ -335,13 +335,13 @@ vm_contracts:
|
|||||||
price_per_unit: 20000
|
price_per_unit: 20000
|
||||||
locked_nano: 11177760000
|
locked_nano: 11177760000
|
||||||
collected_at: 2025-04-20T00:34:15.461219779Z
|
collected_at: 2025-04-20T00:34:15.461219779Z
|
||||||
- uuid: eb1a13ed-d782-4b71-8860-73540129cb7d
|
- uuid: eb1a13ed-d782-4b71-8860-73540129cb7d
|
||||||
hostname: twenty
|
hostname: twenty
|
||||||
admin_pubkey: FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL
|
admin_pubkey: FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL
|
||||||
node_pubkey: 3zRxiGRnf46vd3zAEmpaYBJocTV9oJB6yXf5GZFR1Sq4
|
node_pubkey: 3zRxiGRnf46vd3zAEmpaYBJocTV9oJB6yXf5GZFR1Sq4
|
||||||
exposed_ports: []
|
exposed_ports: []
|
||||||
public_ipv4: 149.36.48.100
|
public_ipv4: 149.36.48.100
|
||||||
public_ipv6: ''
|
public_ipv6: ""
|
||||||
disk_size_gb: 10
|
disk_size_gb: 10
|
||||||
vcpus: 4
|
vcpus: 4
|
||||||
memory_mb: 4000
|
memory_mb: 4000
|
||||||
@ -352,14 +352,14 @@ vm_contracts:
|
|||||||
price_per_unit: 20000
|
price_per_unit: 20000
|
||||||
locked_nano: 15570720000
|
locked_nano: 15570720000
|
||||||
collected_at: 2025-04-20T00:34:15.461230948Z
|
collected_at: 2025-04-20T00:34:15.461230948Z
|
||||||
- uuid: 1bf36309-3774-4825-b023-b2a0ef0405ed
|
- uuid: 1bf36309-3774-4825-b023-b2a0ef0405ed
|
||||||
hostname: shadowy-hobo
|
hostname: shadowy-hobo
|
||||||
admin_pubkey: x52w7jARC5erhWWK65VZmjdGXzBK6ZDgfv1A283d8XK
|
admin_pubkey: x52w7jARC5erhWWK65VZmjdGXzBK6ZDgfv1A283d8XK
|
||||||
node_pubkey: 3zRxiGRnf46vd3zAEmpaYBJocTV9oJB6yXf5GZFR1Sq4
|
node_pubkey: 3zRxiGRnf46vd3zAEmpaYBJocTV9oJB6yXf5GZFR1Sq4
|
||||||
exposed_ports:
|
exposed_ports:
|
||||||
- 46393
|
- 46393
|
||||||
public_ipv4: ''
|
public_ipv4: ""
|
||||||
public_ipv6: ''
|
public_ipv6: ""
|
||||||
disk_size_gb: 10
|
disk_size_gb: 10
|
||||||
vcpus: 1
|
vcpus: 1
|
||||||
memory_mb: 1000
|
memory_mb: 1000
|
||||||
@ -371,7 +371,7 @@ vm_contracts:
|
|||||||
locked_nano: 12730960000
|
locked_nano: 12730960000
|
||||||
collected_at: 2025-04-20T00:34:15.461240342Z
|
collected_at: 2025-04-20T00:34:15.461240342Z
|
||||||
app_nodes:
|
app_nodes:
|
||||||
- node_pubkey: BiqoPUEoAxYxMRXUmyofoS9H1TBQgQqvLJ6MbWh88AQg
|
- node_pubkey: BiqoPUEoAxYxMRXUmyofoS9H1TBQgQqvLJ6MbWh88AQg
|
||||||
operator_wallet: 7V3rEuh6j8VuwMVB5PyGqWKLmjJ4fYSv6WtrTL51NZTB
|
operator_wallet: 7V3rEuh6j8VuwMVB5PyGqWKLmjJ4fYSv6WtrTL51NZTB
|
||||||
country: DE
|
country: DE
|
||||||
region: Hesse
|
region: Hesse
|
||||||
@ -384,4 +384,57 @@ app_nodes:
|
|||||||
max_ports_per_app: 9
|
max_ports_per_app: 9
|
||||||
price: 20000
|
price: 20000
|
||||||
offline_minutes: 0
|
offline_minutes: 0
|
||||||
app_contracts: []
|
app_contracts:
|
||||||
|
- uuid: e3d01f25-2b2a-410b-80e3-12f44e474334
|
||||||
|
package_url: https://registry.detee.ltd/sgx/packages/base_package_2025-04-17_11-01-08.tar.gz
|
||||||
|
admin_pubkey: H21Shi4iE7vgfjWEQNvzmpmBMJSaiZ17PYUcdNoAoKNc
|
||||||
|
node_pubkey: BiqoPUEoAxYxMRXUmyofoS9H1TBQgQqvLJ6MbWh88AQg
|
||||||
|
mapped_ports:
|
||||||
|
- - 27158
|
||||||
|
- 34500
|
||||||
|
- - 28667
|
||||||
|
- 8080
|
||||||
|
host_ipv4: 212.95.45.139
|
||||||
|
disk_size_mb: 1000
|
||||||
|
vcpus: 1
|
||||||
|
memory_mb: 1000
|
||||||
|
created_at: 2025-04-21T11:27:28.833236909Z
|
||||||
|
updated_at: 2025-04-21T11:27:28.833237729Z
|
||||||
|
price_per_unit: 200000
|
||||||
|
locked_nano: 121200000
|
||||||
|
collected_at: 2025-04-21T11:28:24.905665571Z
|
||||||
|
hratls_pubkey: 7E0F887AA6BB9104EEC1066F454D4C2D9063D676715F55F919D3FBCEDC63240B
|
||||||
|
public_package_mr_enclave:
|
||||||
|
- 52
|
||||||
|
- 183
|
||||||
|
- 102
|
||||||
|
- 210
|
||||||
|
- 251
|
||||||
|
- 219
|
||||||
|
- 218
|
||||||
|
- 140
|
||||||
|
- 168
|
||||||
|
- 118
|
||||||
|
- 10
|
||||||
|
- 193
|
||||||
|
- 98
|
||||||
|
- 240
|
||||||
|
- 147
|
||||||
|
- 124
|
||||||
|
- 240
|
||||||
|
- 189
|
||||||
|
- 46
|
||||||
|
- 95
|
||||||
|
- 138
|
||||||
|
- 172
|
||||||
|
- 15
|
||||||
|
- 246
|
||||||
|
- 227
|
||||||
|
- 114
|
||||||
|
- 70
|
||||||
|
- 159
|
||||||
|
- 232
|
||||||
|
- 212
|
||||||
|
- 9
|
||||||
|
- 234
|
||||||
|
app_name: diligent-seahorse
|
||||||
|
@ -5,7 +5,8 @@ pub const CERT_PATH: &str = "/etc/detee/brain/brain-crt.pem";
|
|||||||
pub const CERT_KEY_PATH: &str = "/etc/detee/brain/brain-key.pem";
|
pub const CERT_KEY_PATH: &str = "/etc/detee/brain/brain-key.pem";
|
||||||
pub const CONFIG_PATH: &str = "/etc/detee/brain/config.ini";
|
pub const CONFIG_PATH: &str = "/etc/detee/brain/config.ini";
|
||||||
|
|
||||||
pub const DB_SCHEMA_FILE: &str = "interim_tables.surql";
|
pub const DB_SCHEMA_FILES: [&str; 3] =
|
||||||
|
["surql/tables.sql", "surql/timer.sql", "surql/functions.sql"];
|
||||||
|
|
||||||
pub static ADMIN_ACCOUNTS: LazyLock<Vec<String>> = LazyLock::new(|| {
|
pub static ADMIN_ACCOUNTS: LazyLock<Vec<String>> = LazyLock::new(|| {
|
||||||
let default_admin_keys = vec![
|
let default_admin_keys = vec![
|
||||||
|
@ -174,11 +174,11 @@ pub struct ActiveApp {
|
|||||||
#[serde(rename = "out")]
|
#[serde(rename = "out")]
|
||||||
pub app_node: RecordId,
|
pub app_node: RecordId,
|
||||||
pub app_name: String,
|
pub app_name: String,
|
||||||
pub mapped_ports: Vec<(u64, u64)>,
|
pub mapped_ports: Vec<(u32, u32)>,
|
||||||
pub host_ipv4: String,
|
pub host_ipv4: String,
|
||||||
pub vcpus: u64,
|
pub vcpus: u32,
|
||||||
pub memory_mb: u64,
|
pub memory_mb: u32,
|
||||||
pub disk_size_gb: u64,
|
pub disk_size_gb: u32,
|
||||||
pub created_at: Datetime,
|
pub created_at: Datetime,
|
||||||
pub price_per_unit: u64,
|
pub price_per_unit: u64,
|
||||||
pub locked_nano: u64,
|
pub locked_nano: u64,
|
||||||
@ -234,9 +234,9 @@ impl ActiveApp {
|
|||||||
app_name: new_app_req.app_name,
|
app_name: new_app_req.app_name,
|
||||||
mapped_ports: vec![],
|
mapped_ports: vec![],
|
||||||
host_ipv4: String::new(),
|
host_ipv4: String::new(),
|
||||||
vcpus: new_app_req.vcpu as u64,
|
vcpus: new_app_req.vcpu,
|
||||||
memory_mb: new_app_req.memory_mb as u64,
|
memory_mb: new_app_req.memory_mb,
|
||||||
disk_size_gb: new_app_req.disk_mb as u64,
|
disk_size_gb: new_app_req.disk_mb,
|
||||||
created_at: new_app_req.created_at.clone(),
|
created_at: new_app_req.created_at.clone(),
|
||||||
price_per_unit: new_app_req.price_per_unit,
|
price_per_unit: new_app_req.price_per_unit,
|
||||||
locked_nano: new_app_req.locked_nano,
|
locked_nano: new_app_req.locked_nano,
|
||||||
@ -312,11 +312,11 @@ pub struct ActiveAppWithNode {
|
|||||||
#[serde(rename = "out")]
|
#[serde(rename = "out")]
|
||||||
pub app_node: AppNode,
|
pub app_node: AppNode,
|
||||||
pub app_name: String,
|
pub app_name: String,
|
||||||
pub mapped_ports: Vec<(u64, u64)>,
|
pub mapped_ports: Vec<(u32, u32)>,
|
||||||
pub host_ipv4: String,
|
pub host_ipv4: String,
|
||||||
pub vcpus: u64,
|
pub vcpus: u32,
|
||||||
pub memory_mb: u64,
|
pub memory_mb: u32,
|
||||||
pub disk_size_gb: u64,
|
pub disk_size_gb: u32,
|
||||||
pub created_at: Datetime,
|
pub created_at: Datetime,
|
||||||
pub price_per_unit: u64,
|
pub price_per_unit: u64,
|
||||||
pub locked_nano: u64,
|
pub locked_nano: u64,
|
||||||
@ -427,7 +427,7 @@ impl From<&old_brain::BrainData> for Vec<AppNode> {
|
|||||||
let mut nodes = Vec::new();
|
let mut nodes = Vec::new();
|
||||||
for old_node in old_data.app_nodes.iter() {
|
for old_node in old_data.app_nodes.iter() {
|
||||||
nodes.push(AppNode {
|
nodes.push(AppNode {
|
||||||
id: RecordId::from(("app_node", old_node.node_pubkey.clone())),
|
id: RecordId::from((APP_NODE, old_node.node_pubkey.clone())),
|
||||||
operator: RecordId::from((ACCOUNT, old_node.operator_wallet.clone())),
|
operator: RecordId::from((ACCOUNT, old_node.operator_wallet.clone())),
|
||||||
country: old_node.country.clone(),
|
country: old_node.country.clone(),
|
||||||
region: old_node.region.clone(),
|
region: old_node.region.clone(),
|
||||||
@ -446,6 +446,46 @@ impl From<&old_brain::BrainData> for Vec<AppNode> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl From<&old_brain::BrainData> for Vec<ActiveApp> {
|
||||||
|
fn from(old_data: &old_brain::BrainData) -> Self {
|
||||||
|
let mut contracts = Vec::new();
|
||||||
|
for old_c in old_data.app_contracts.iter() {
|
||||||
|
let mut mapped_ports = Vec::new();
|
||||||
|
for port in old_c.mapped_ports.clone().into_iter().map(|(b, c)| (b as u32, c as u32)) {
|
||||||
|
mapped_ports.push(port);
|
||||||
|
}
|
||||||
|
|
||||||
|
let mr_enclave_hex = old_c
|
||||||
|
.public_package_mr_enclave
|
||||||
|
.clone()
|
||||||
|
.unwrap_or_default()
|
||||||
|
.iter()
|
||||||
|
.map(|byte| format!("{:02X}", byte))
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
contracts.push(ActiveApp {
|
||||||
|
id: RecordId::from((ACTIVE_APP, old_c.uuid.replace("-", ""))),
|
||||||
|
admin: RecordId::from((ACCOUNT, old_c.admin_pubkey.clone())),
|
||||||
|
app_node: RecordId::from((APP_NODE, old_c.node_pubkey.clone())),
|
||||||
|
mapped_ports,
|
||||||
|
host_ipv4: old_c.host_ipv4.clone(),
|
||||||
|
disk_size_gb: old_c.disk_size_mb * 1024,
|
||||||
|
vcpus: old_c.vcpus,
|
||||||
|
memory_mb: old_c.memory_mb,
|
||||||
|
price_per_unit: old_c.price_per_unit,
|
||||||
|
locked_nano: old_c.locked_nano,
|
||||||
|
created_at: old_c.created_at.into(),
|
||||||
|
collected_at: old_c.collected_at.into(),
|
||||||
|
app_name: old_c.app_name.clone(),
|
||||||
|
mr_enclave: mr_enclave_hex,
|
||||||
|
package_url: old_c.package_url.clone(),
|
||||||
|
hratls_pubkey: old_c.hratls_pubkey.clone(),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
contracts
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
pub struct DeletedApp {
|
pub struct DeletedApp {
|
||||||
pub id: RecordId,
|
pub id: RecordId,
|
||||||
@ -454,11 +494,11 @@ pub struct DeletedApp {
|
|||||||
#[serde(rename = "out")]
|
#[serde(rename = "out")]
|
||||||
pub app_node: RecordId,
|
pub app_node: RecordId,
|
||||||
pub app_name: String,
|
pub app_name: String,
|
||||||
pub mapped_ports: Vec<(u64, u64)>,
|
pub mapped_ports: Vec<(u32, u32)>,
|
||||||
pub host_ipv4: String,
|
pub host_ipv4: String,
|
||||||
pub vcpus: u64,
|
pub vcpus: u32,
|
||||||
pub memory_mb: u64,
|
pub memory_mb: u32,
|
||||||
pub disk_size_gb: u64,
|
pub disk_size_gb: u32,
|
||||||
pub created_at: Datetime,
|
pub created_at: Datetime,
|
||||||
pub price_per_unit: u64,
|
pub price_per_unit: u64,
|
||||||
pub locked_nano: u64,
|
pub locked_nano: u64,
|
||||||
|
@ -110,7 +110,7 @@ impl From<&old_brain::BrainData> for Vec<Account> {
|
|||||||
let mut accounts = Vec::new();
|
let mut accounts = Vec::new();
|
||||||
for old_account in old_data.accounts.iter() {
|
for old_account in old_data.accounts.iter() {
|
||||||
let mut a = Account {
|
let mut a = Account {
|
||||||
id: RecordId::from(("account", old_account.key())),
|
id: RecordId::from((ACCOUNT, old_account.key())),
|
||||||
balance: old_account.value().balance,
|
balance: old_account.value().balance,
|
||||||
tmp_locked: old_account.value().tmp_locked,
|
tmp_locked: old_account.value().tmp_locked,
|
||||||
escrow: 0,
|
escrow: 0,
|
||||||
|
@ -3,7 +3,8 @@ pub mod general;
|
|||||||
pub mod vm;
|
pub mod vm;
|
||||||
|
|
||||||
use crate::constants::{
|
use crate::constants::{
|
||||||
APP_NODE, DELETED_APP, DELETED_VM, MIN_ESCROW, NEW_APP_REQ, NEW_VM_REQ, UPDATE_VM_REQ,
|
APP_NODE, DB_SCHEMA_FILES, DELETED_APP, DELETED_VM, MIN_ESCROW, NEW_APP_REQ, NEW_VM_REQ,
|
||||||
|
UPDATE_VM_REQ,
|
||||||
};
|
};
|
||||||
use crate::old_brain;
|
use crate::old_brain;
|
||||||
use prelude::*;
|
use prelude::*;
|
||||||
@ -73,10 +74,12 @@ pub async fn migration0(
|
|||||||
let accounts: Vec<Account> = old_data.into();
|
let accounts: Vec<Account> = old_data.into();
|
||||||
let vm_nodes: Vec<VmNode> = old_data.into();
|
let vm_nodes: Vec<VmNode> = old_data.into();
|
||||||
let app_nodes: Vec<AppNode> = old_data.into();
|
let app_nodes: Vec<AppNode> = old_data.into();
|
||||||
let vm_contracts: Vec<ActiveVm> = old_data.into();
|
let active_vm: Vec<ActiveVm> = old_data.into();
|
||||||
|
let active_app: Vec<ActiveApp> = old_data.into();
|
||||||
|
|
||||||
let schema = std::fs::read_to_string(crate::constants::DB_SCHEMA_FILE)?;
|
for schema in DB_SCHEMA_FILES.map(std::fs::read_to_string) {
|
||||||
db.query(schema).await?;
|
db.query(schema?).await?;
|
||||||
|
}
|
||||||
|
|
||||||
println!("Inserting accounts...");
|
println!("Inserting accounts...");
|
||||||
let _: Vec<Account> = db.insert(()).content(accounts).await?;
|
let _: Vec<Account> = db.insert(()).content(accounts).await?;
|
||||||
@ -84,8 +87,10 @@ pub async fn migration0(
|
|||||||
let _: Vec<VmNode> = db.insert(()).content(vm_nodes).await?;
|
let _: Vec<VmNode> = db.insert(()).content(vm_nodes).await?;
|
||||||
println!("Inserting app nodes...");
|
println!("Inserting app nodes...");
|
||||||
let _: Vec<AppNode> = db.insert(()).content(app_nodes).await?;
|
let _: Vec<AppNode> = db.insert(()).content(app_nodes).await?;
|
||||||
println!("Inserting vm contracts...");
|
println!("Inserting active vm contracts...");
|
||||||
let _: Vec<ActiveVm> = db.insert("vm_contract").relation(vm_contracts).await?;
|
let _: Vec<ActiveVm> = db.insert(()).relation(active_vm).await?;
|
||||||
|
println!("Inserting app contracts...");
|
||||||
|
let _: Vec<ActiveApp> = db.insert(()).relation(active_app).await?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ use dotenv::dotenv;
|
|||||||
use hyper_util::rt::TokioIo;
|
use hyper_util::rt::TokioIo;
|
||||||
use std::net::SocketAddr;
|
use std::net::SocketAddr;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
use surreal_brain::constants::DB_SCHEMA_FILES;
|
||||||
use surreal_brain::grpc::general::GeneralCliServer;
|
use surreal_brain::grpc::general::GeneralCliServer;
|
||||||
use surreal_brain::grpc::vm::{VmCliServer, VmDaemonServer};
|
use surreal_brain::grpc::vm::{VmCliServer, VmDaemonServer};
|
||||||
use surrealdb::engine::remote::ws::Client;
|
use surrealdb::engine::remote::ws::Client;
|
||||||
@ -34,7 +35,9 @@ pub async fn prepare_test_db() -> Result<Surreal<Client>> {
|
|||||||
.map_err(|e| anyhow!(e.to_string()))?;
|
.map_err(|e| anyhow!(e.to_string()))?;
|
||||||
|
|
||||||
db.query(format!("REMOVE DATABASE {db_name}")).await?;
|
db.query(format!("REMOVE DATABASE {db_name}")).await?;
|
||||||
db.query(std::fs::read_to_string("interim_tables.surql")?).await?;
|
for schema in DB_SCHEMA_FILES.map(std::fs::read_to_string) {
|
||||||
|
db.query(schema?).await?;
|
||||||
|
}
|
||||||
surreal_brain::db::migration0(&db, &old_brain_data).await?;
|
surreal_brain::db::migration0(&db, &old_brain_data).await?;
|
||||||
Ok::<(), anyhow::Error>(())
|
Ok::<(), anyhow::Error>(())
|
||||||
})
|
})
|
||||||
|
@ -53,18 +53,18 @@ pub async fn register_vm_node(
|
|||||||
|
|
||||||
let mut grpc_stream = client.register_vm_node(key.sign_request(req)?).await?.into_inner();
|
let mut grpc_stream = client.register_vm_node(key.sign_request(req)?).await?.into_inner();
|
||||||
|
|
||||||
let mut vm_contracts = Vec::new();
|
let mut deleted_vm_reqs = Vec::new();
|
||||||
while let Some(stream_update) = grpc_stream.next().await {
|
while let Some(stream_update) = grpc_stream.next().await {
|
||||||
match stream_update {
|
match stream_update {
|
||||||
Ok(vm_c) => {
|
Ok(del_vm_rq) => {
|
||||||
vm_contracts.push(vm_c);
|
deleted_vm_reqs.push(del_vm_rq);
|
||||||
}
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
panic!("Received error instead of vm_contracts: {e:?}");
|
panic!("Received error instead of deleted_vm_reqs: {e:?}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ok(vm_contracts)
|
Ok(deleted_vm_reqs)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn daemon_listener(
|
pub async fn daemon_listener(
|
||||||
|
@ -237,11 +237,17 @@ async fn test_kick_contract() {
|
|||||||
|
|
||||||
let kick_response = surreal_brain::db::general::WrapperContract::kick_contract(
|
let kick_response = surreal_brain::db::general::WrapperContract::kick_contract(
|
||||||
&db_conn,
|
&db_conn,
|
||||||
&operator_wallet,
|
operator_wallet,
|
||||||
&contract_uuid,
|
contract_uuid,
|
||||||
&reason,
|
reason,
|
||||||
)
|
)
|
||||||
.await;
|
.await;
|
||||||
|
match kick_response {
|
||||||
dbg!(kick_response.unwrap());
|
Ok(refund_amount) => {
|
||||||
|
println!("Refund amount: {}", refund_amount);
|
||||||
|
}
|
||||||
|
Err(e) => {
|
||||||
|
println!("Error: {}", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user