forked from ghe0/brain-to-surreal
Add app contract migration
adjust app contract data types in models yaml formated app contract yaml data
This commit is contained in:
parent
bbdceb713e
commit
a562265939
107
saved_data.yaml
107
saved_data.yaml
@ -129,13 +129,13 @@ operators:
|
||||
app_nodes: []
|
||||
7V3rEuh6j8VuwMVB5PyGqWKLmjJ4fYSv6WtrTL51NZTB:
|
||||
escrow: 0
|
||||
email: ''
|
||||
email: ""
|
||||
banned_users: []
|
||||
vm_nodes: []
|
||||
app_nodes:
|
||||
- BiqoPUEoAxYxMRXUmyofoS9H1TBQgQqvLJ6MbWh88AQg
|
||||
vm_nodes:
|
||||
- public_key: 7Xw3RxbP5pvfjZ8U6yA3HHVSS9YXjKH5Vkas3JRbQYd9
|
||||
- public_key: 7Xw3RxbP5pvfjZ8U6yA3HHVSS9YXjKH5Vkas3JRbQYd9
|
||||
operator_wallet: x52w7jARC5erhWWK65VZmjdGXzBK6ZDgfv1A283d8XK
|
||||
country: GB
|
||||
region: England
|
||||
@ -151,7 +151,7 @@ vm_nodes:
|
||||
price: 20000
|
||||
reports: {}
|
||||
offline_minutes: 0
|
||||
- public_key: Du3UfPSUUZmA5thQmc9Vrxdy7UimpygcpDsQNnwRQPtu
|
||||
- public_key: Du3UfPSUUZmA5thQmc9Vrxdy7UimpygcpDsQNnwRQPtu
|
||||
operator_wallet: BFopWmwcZAMF1h2PFECZNdEucdZfnZZ32p6R9ZaBiVsS
|
||||
country: FR
|
||||
region: Île-de-France
|
||||
@ -167,7 +167,7 @@ vm_nodes:
|
||||
price: 20000
|
||||
reports: {}
|
||||
offline_minutes: 0
|
||||
- public_key: 2Uf5pxhxKTUm6gRMnpbJHYDuyA6BWUfFsdmPyWfbMV1f
|
||||
- public_key: 2Uf5pxhxKTUm6gRMnpbJHYDuyA6BWUfFsdmPyWfbMV1f
|
||||
operator_wallet: x52w7jARC5erhWWK65VZmjdGXzBK6ZDgfv1A283d8XK
|
||||
country: CA
|
||||
region: Quebec
|
||||
@ -183,7 +183,7 @@ vm_nodes:
|
||||
price: 18000
|
||||
reports: {}
|
||||
offline_minutes: 0
|
||||
- public_key: DgkbsrwttkZXvzxY5kDwQQoDd79GLmZ5tc7fYJUFkQQb
|
||||
- public_key: DgkbsrwttkZXvzxY5kDwQQoDd79GLmZ5tc7fYJUFkQQb
|
||||
operator_wallet: BFopWmwcZAMF1h2PFECZNdEucdZfnZZ32p6R9ZaBiVsS
|
||||
country: CA
|
||||
region: British Columbia
|
||||
@ -199,7 +199,7 @@ vm_nodes:
|
||||
price: 20000
|
||||
reports: {}
|
||||
offline_minutes: 0
|
||||
- public_key: 3zRxiGRnf46vd3zAEmpaYBJocTV9oJB6yXf5GZFR1Sq4
|
||||
- public_key: 3zRxiGRnf46vd3zAEmpaYBJocTV9oJB6yXf5GZFR1Sq4
|
||||
operator_wallet: BFopWmwcZAMF1h2PFECZNdEucdZfnZZ32p6R9ZaBiVsS
|
||||
country: US
|
||||
region: California
|
||||
@ -215,7 +215,7 @@ vm_nodes:
|
||||
price: 20000
|
||||
reports: {}
|
||||
offline_minutes: 0
|
||||
- public_key: HiyMp21zaBVbRCjDsD5hEjQnHeHv4e1gpUR6pVfHTKqv
|
||||
- public_key: HiyMp21zaBVbRCjDsD5hEjQnHeHv4e1gpUR6pVfHTKqv
|
||||
operator_wallet: BFopWmwcZAMF1h2PFECZNdEucdZfnZZ32p6R9ZaBiVsS
|
||||
country: CA
|
||||
region: British Columbia
|
||||
@ -232,13 +232,13 @@ vm_nodes:
|
||||
reports: {}
|
||||
offline_minutes: 0
|
||||
vm_contracts:
|
||||
- uuid: 958165e3-dea8-407d-8c42-dd17002ef79c
|
||||
- uuid: 958165e3-dea8-407d-8c42-dd17002ef79c
|
||||
hostname: detee-landing-fr
|
||||
admin_pubkey: FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL
|
||||
node_pubkey: Du3UfPSUUZmA5thQmc9Vrxdy7UimpygcpDsQNnwRQPtu
|
||||
exposed_ports: []
|
||||
public_ipv4: 156.146.63.216
|
||||
public_ipv6: ''
|
||||
public_ipv6: ""
|
||||
disk_size_gb: 10
|
||||
vcpus: 2
|
||||
memory_mb: 3000
|
||||
@ -249,13 +249,13 @@ vm_contracts:
|
||||
price_per_unit: 20000
|
||||
locked_nano: 14875500000
|
||||
collected_at: 2025-04-20T00:34:15.461165181Z
|
||||
- uuid: e807a2fd-cf90-4a14-bc3a-89ce6dc59033
|
||||
- uuid: e807a2fd-cf90-4a14-bc3a-89ce6dc59033
|
||||
hostname: detee-landing-gb
|
||||
admin_pubkey: FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL
|
||||
node_pubkey: 7Xw3RxbP5pvfjZ8U6yA3HHVSS9YXjKH5Vkas3JRbQYd9
|
||||
exposed_ports: []
|
||||
public_ipv4: 173.234.136.154
|
||||
public_ipv6: ''
|
||||
public_ipv6: ""
|
||||
disk_size_gb: 10
|
||||
vcpus: 2
|
||||
memory_mb: 3000
|
||||
@ -266,14 +266,14 @@ vm_contracts:
|
||||
price_per_unit: 20000
|
||||
locked_nano: 14875500000
|
||||
collected_at: 2025-04-20T00:34:15.461181545Z
|
||||
- uuid: 23094406-2307-4332-a642-acee718d0186
|
||||
- uuid: 23094406-2307-4332-a642-acee718d0186
|
||||
hostname: heroic-door
|
||||
admin_pubkey: DwfL5iFu32xh2YMCUxg63oEAThLRqehDAumiP9q6zuuX
|
||||
node_pubkey: 7Xw3RxbP5pvfjZ8U6yA3HHVSS9YXjKH5Vkas3JRbQYd9
|
||||
exposed_ports:
|
||||
- 38288
|
||||
public_ipv4: ''
|
||||
public_ipv6: ''
|
||||
public_ipv4: ""
|
||||
public_ipv6: ""
|
||||
disk_size_gb: 10
|
||||
vcpus: 1
|
||||
memory_mb: 1000
|
||||
@ -284,13 +284,13 @@ vm_contracts:
|
||||
price_per_unit: 20000
|
||||
locked_nano: 14134140000
|
||||
collected_at: 2025-04-20T00:34:15.461191231Z
|
||||
- uuid: 1f49a71c-f68c-4c64-a82e-f50e0ba0b574
|
||||
- uuid: 1f49a71c-f68c-4c64-a82e-f50e0ba0b574
|
||||
hostname: astromech-wrench
|
||||
admin_pubkey: FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL
|
||||
node_pubkey: DgkbsrwttkZXvzxY5kDwQQoDd79GLmZ5tc7fYJUFkQQb
|
||||
exposed_ports: []
|
||||
public_ipv4: 149.22.95.2
|
||||
public_ipv6: ''
|
||||
public_ipv6: ""
|
||||
disk_size_gb: 10
|
||||
vcpus: 2
|
||||
memory_mb: 3000
|
||||
@ -301,13 +301,13 @@ vm_contracts:
|
||||
price_per_unit: 20000
|
||||
locked_nano: 11865620000
|
||||
collected_at: 2025-04-20T00:34:15.461201690Z
|
||||
- uuid: 16577f1c-9867-4a17-80a8-6cf0490f1270
|
||||
- uuid: 16577f1c-9867-4a17-80a8-6cf0490f1270
|
||||
hostname: sofenty
|
||||
admin_pubkey: FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL
|
||||
node_pubkey: Du3UfPSUUZmA5thQmc9Vrxdy7UimpygcpDsQNnwRQPtu
|
||||
exposed_ports: []
|
||||
public_ipv4: 156.146.63.217
|
||||
public_ipv6: ''
|
||||
public_ipv6: ""
|
||||
disk_size_gb: 10
|
||||
vcpus: 2
|
||||
memory_mb: 3000
|
||||
@ -318,13 +318,13 @@ vm_contracts:
|
||||
price_per_unit: 20000
|
||||
locked_nano: 11867500000
|
||||
collected_at: 2025-04-20T00:34:15.461211040Z
|
||||
- uuid: 4b6e25ca-87ac-478b-8f16-aa8f5c44c704
|
||||
- uuid: 4b6e25ca-87ac-478b-8f16-aa8f5c44c704
|
||||
hostname: cloaked-mailbox
|
||||
admin_pubkey: DwfL5iFu32xh2YMCUxg63oEAThLRqehDAumiP9q6zuuX
|
||||
node_pubkey: DgkbsrwttkZXvzxY5kDwQQoDd79GLmZ5tc7fYJUFkQQb
|
||||
exposed_ports: []
|
||||
public_ipv4: 149.22.95.2
|
||||
public_ipv6: ''
|
||||
public_ipv6: ""
|
||||
disk_size_gb: 30
|
||||
vcpus: 1
|
||||
memory_mb: 1000
|
||||
@ -335,13 +335,13 @@ vm_contracts:
|
||||
price_per_unit: 20000
|
||||
locked_nano: 11177760000
|
||||
collected_at: 2025-04-20T00:34:15.461219779Z
|
||||
- uuid: eb1a13ed-d782-4b71-8860-73540129cb7d
|
||||
- uuid: eb1a13ed-d782-4b71-8860-73540129cb7d
|
||||
hostname: twenty
|
||||
admin_pubkey: FHuecMbeC1PfjkW2JKyoicJAuiU7khgQT16QUB3Q1XdL
|
||||
node_pubkey: 3zRxiGRnf46vd3zAEmpaYBJocTV9oJB6yXf5GZFR1Sq4
|
||||
exposed_ports: []
|
||||
public_ipv4: 149.36.48.100
|
||||
public_ipv6: ''
|
||||
public_ipv6: ""
|
||||
disk_size_gb: 10
|
||||
vcpus: 4
|
||||
memory_mb: 4000
|
||||
@ -352,14 +352,14 @@ vm_contracts:
|
||||
price_per_unit: 20000
|
||||
locked_nano: 15570720000
|
||||
collected_at: 2025-04-20T00:34:15.461230948Z
|
||||
- uuid: 1bf36309-3774-4825-b023-b2a0ef0405ed
|
||||
- uuid: 1bf36309-3774-4825-b023-b2a0ef0405ed
|
||||
hostname: shadowy-hobo
|
||||
admin_pubkey: x52w7jARC5erhWWK65VZmjdGXzBK6ZDgfv1A283d8XK
|
||||
node_pubkey: 3zRxiGRnf46vd3zAEmpaYBJocTV9oJB6yXf5GZFR1Sq4
|
||||
exposed_ports:
|
||||
- 46393
|
||||
public_ipv4: ''
|
||||
public_ipv6: ''
|
||||
public_ipv4: ""
|
||||
public_ipv6: ""
|
||||
disk_size_gb: 10
|
||||
vcpus: 1
|
||||
memory_mb: 1000
|
||||
@ -371,7 +371,7 @@ vm_contracts:
|
||||
locked_nano: 12730960000
|
||||
collected_at: 2025-04-20T00:34:15.461240342Z
|
||||
app_nodes:
|
||||
- node_pubkey: BiqoPUEoAxYxMRXUmyofoS9H1TBQgQqvLJ6MbWh88AQg
|
||||
- node_pubkey: BiqoPUEoAxYxMRXUmyofoS9H1TBQgQqvLJ6MbWh88AQg
|
||||
operator_wallet: 7V3rEuh6j8VuwMVB5PyGqWKLmjJ4fYSv6WtrTL51NZTB
|
||||
country: DE
|
||||
region: Hesse
|
||||
@ -384,4 +384,57 @@ app_nodes:
|
||||
max_ports_per_app: 9
|
||||
price: 20000
|
||||
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
|
||||
|
@ -24,6 +24,7 @@ pub async fn migrate(old_data: &old_brain::BrainData) -> surrealdb::Result<()> {
|
||||
let vm_nodes: Vec<VmNode> = old_data.into();
|
||||
let app_nodes: Vec<AppNode> = old_data.into();
|
||||
let vm_contracts: Vec<VmContract> = old_data.into();
|
||||
let app_contracts: Vec<AppContract> = old_data.into();
|
||||
let operators: Vec<Operator> = old_data.into();
|
||||
|
||||
init().await?;
|
||||
@ -36,6 +37,8 @@ pub async fn migrate(old_data: &old_brain::BrainData) -> surrealdb::Result<()> {
|
||||
let _: Vec<AppNode> = DB.insert(()).content(app_nodes).await?;
|
||||
println!("Inserting vm contracts...");
|
||||
let _: Vec<VmContract> = DB.insert("vm_contract").relation(vm_contracts).await?;
|
||||
println!("Inserting app contracts...");
|
||||
let _: Vec<AppContract> = DB.insert("app_contract").relation(app_contracts).await?;
|
||||
println!("Inserting operators...");
|
||||
let _: Vec<Operator> = DB.insert("operator").relation(operators).await?;
|
||||
|
||||
@ -136,11 +139,11 @@ pub struct AppContract {
|
||||
app_node: RecordId,
|
||||
state: String,
|
||||
app_name: String,
|
||||
mapped_ports: Vec<(u64, u64)>,
|
||||
mapped_ports: Vec<(u32, u32)>,
|
||||
host_ipv4: String,
|
||||
vcpus: u64,
|
||||
memory_mb: u64,
|
||||
disk_size_gb: u64,
|
||||
vcpus: u32,
|
||||
memory_mb: u32,
|
||||
disk_size_gb: u32,
|
||||
created_at: Datetime,
|
||||
updated_at: Datetime,
|
||||
price_per_unit: u64,
|
||||
@ -284,6 +287,48 @@ impl From<&old_brain::BrainData> for Vec<AppNode> {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&old_brain::BrainData> for Vec<AppContract> {
|
||||
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(AppContract {
|
||||
id: RecordId::from(("app_contract", old_c.uuid.replace("-", ""))),
|
||||
admin: RecordId::from(("account", old_c.admin_pubkey.clone())),
|
||||
app_node: RecordId::from(("app_node", old_c.node_pubkey.clone())),
|
||||
state: "active".to_string(),
|
||||
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(),
|
||||
updated_at: old_c.updated_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
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&old_brain::BrainData> for Vec<Account> {
|
||||
fn from(old_data: &old_brain::BrainData) -> Self {
|
||||
let mut accounts = Vec::new();
|
||||
|
Loading…
Reference in New Issue
Block a user