diff --git a/src/controllers/dashboard.rs b/src/controllers/dashboard.rs index 9eb8f29..abe998f 100644 --- a/src/controllers/dashboard.rs +++ b/src/controllers/dashboard.rs @@ -1064,7 +1064,7 @@ impl DashboardController { .bandwidth_mbps(node_data_json.get("bandwidth_mbps") .and_then(|v| v.as_i64()) .unwrap_or(100) as i32) - .node_type("3Node"); // Always 3Node - farmers register 3Nodes to ThreeFold Grid + .node_type("MyceliumNode"); // Always MyceliumNode - farmers register MyceliumNodes to Mycelium Grid // Add optional fields if let Some(region) = node_data_json.get("region").and_then(|v| v.as_str()) { @@ -2141,7 +2141,7 @@ impl DashboardController { .earnings_today_usd(rust_decimal::Decimal::ZERO) .health_score(100.0) .region(node_data.get("region").and_then(|v| v.as_str()).unwrap_or("Global").to_string()) - .node_type(node_data.get("node_type").and_then(|v| v.as_str()).unwrap_or("3Node").to_string()) + .node_type(node_data.get("node_type").and_then(|v| v.as_str()).unwrap_or("MyceliumNode").to_string()) .build() { Ok(node) => node, @@ -6581,7 +6581,7 @@ impl DashboardController { rental_options: None, earnings_today_usd: rust_decimal::Decimal::ZERO, region: if node_data.country.is_empty() { "Unknown".to_string() } else { node_data.country.clone() }, - node_type: "3Node".to_string(), + node_type: "MyceliumNode".to_string(), slice_formats: None, staking_options: None, availability_status: crate::models::user::NodeAvailabilityStatus::Available, diff --git a/src/models/builders.rs b/src/models/builders.rs index 180840c..11faa74 100644 --- a/src/models/builders.rs +++ b/src/models/builders.rs @@ -1731,7 +1731,7 @@ impl FarmNodeBuilder { last_seen: Some(self.last_seen.unwrap_or_else(|| chrono::Utc::now())), health_score: self.health_score.unwrap_or(0.0), region: self.region.unwrap_or_else(|| "Unknown".to_string()), - node_type: self.node_type.unwrap_or_else(|| "3Node".to_string()), + node_type: self.node_type.unwrap_or_else(|| "MyceliumNode".to_string()), slice_formats: None, rental_options: self.rental_options.map(|ro| serde_json::to_value(&ro).unwrap_or_default()), staking_options: None, diff --git a/src/services/farmer.rs b/src/services/farmer.rs index 6ea96bd..f093fe1 100644 --- a/src/services/farmer.rs +++ b/src/services/farmer.rs @@ -169,7 +169,7 @@ impl FarmerService { last_seen: Some(Utc::now()), health_score: 100.0, region: node_data.region.unwrap_or_else(|| "Unknown".to_string()), - node_type: node_data.node_type.unwrap_or_else(|| "3Node".to_string()), + node_type: node_data.node_type.unwrap_or_else(|| "MyceliumNode".to_string()), slice_formats: node_data.slice_formats.clone(), rental_options: node_data.rental_options.as_ref().map(|opts| serde_json::to_value(opts).unwrap_or_default()), staking_options: None, @@ -375,7 +375,7 @@ impl FarmerService { earnings_today_usd: Decimal::ZERO, name: if grid_data.farm_name.is_empty() { format!("Grid Node {}", grid_node_id) } else { grid_data.farm_name.clone() }, region: if grid_data.country.is_empty() { "Unknown".to_string() } else { grid_data.country.clone() }, - node_type: "3Node".to_string(), + node_type: "MyceliumNode".to_string(), slice_formats: None, // Not used in new slice system staking_options: None, availability_status: crate::models::user::NodeAvailabilityStatus::Available, @@ -1316,7 +1316,7 @@ impl FarmerService { .earnings_today_usd(Decimal::ZERO) .health_score(100.0) .region(if grid_data.country.is_empty() { "Unknown".to_string() } else { grid_data.country.clone() }) - .node_type("3Node".to_string()) + .node_type("MyceliumNode".to_string()) .grid_node_id(grid_node_id) .grid_data(grid_data) .build()?; @@ -1371,7 +1371,7 @@ impl FarmerService { .earnings_today_usd(Decimal::ZERO) .health_score(100.0) .region(if grid_data.country.is_empty() { "Unknown".to_string() } else { grid_data.country.clone() }) - .node_type("3Node".to_string()) + .node_type("MyceliumNode".to_string()) .grid_node_id(grid_node_id) .grid_data(grid_data) .build() @@ -1460,7 +1460,7 @@ impl FarmerService { .last_seen(Utc::now()) .health_score(95.0) .region(if grid_data.country.is_empty() { "Unknown" } else { &grid_data.country }.to_string()) - .node_type("3Node".to_string()) + .node_type("MyceliumNode".to_string()) .grid_node_id(grid_node_id) .grid_data(grid_data) .availability_status(crate::models::user::NodeAvailabilityStatus::Available); @@ -1536,7 +1536,7 @@ impl FarmerService { .last_seen(Utc::now()) .health_score(95.0) .region(if grid_data.country.is_empty() { "Unknown" } else { &grid_data.country }.to_string()) - .node_type("3Node".to_string()) + .node_type("MyceliumNode".to_string()) .grid_node_id(grid_node_id) .grid_data(grid_data) .availability_status(crate::models::user::NodeAvailabilityStatus::Available); @@ -1638,7 +1638,7 @@ impl FarmerService { .last_seen(Utc::now()) .health_score(95.0) .region(if grid_data.country.is_empty() { "Unknown" } else { &grid_data.country }.to_string()) - .node_type("3Node".to_string()) + .node_type("MyceliumNode".to_string()) .grid_node_id(grid_node_id) .grid_data(grid_data) .availability_status(crate::models::user::NodeAvailabilityStatus::Available); @@ -1703,7 +1703,7 @@ impl FarmerService { .last_seen(Utc::now()) .health_score(95.0) .region(if grid_data.country.is_empty() { "Unknown" } else { &grid_data.country }.to_string()) - .node_type("3Node".to_string()) + .node_type("MyceliumNode".to_string()) .grid_node_id(grid_node_id) .grid_data(grid_data) .availability_status(crate::models::user::NodeAvailabilityStatus::Available); @@ -1803,7 +1803,7 @@ impl FarmerService { last_seen: Some(Utc::now()), health_score: 100.0, region: if grid_data.country.is_empty() { "Unknown" } else { &grid_data.country }.to_string(), - node_type: "3Node".to_string(), + node_type: "MyceliumNode".to_string(), slice_formats: if slice_formats.is_empty() { None } else { Some(slice_formats.clone()) }, rental_options: rental_options.map(|ro| serde_json::to_value(&ro).unwrap_or_default()), staking_options: None, @@ -2560,7 +2560,7 @@ impl FarmerService { last_seen: Some(Utc::now()), health_score: 100.0, region: if grid_data.country.is_empty() { "Unknown".to_string() } else { grid_data.country.clone() }, - node_type: "3Node".to_string(), + node_type: "MyceliumNode".to_string(), slice_formats: None, rental_options: { let rental_opts = crate::models::user::NodeRentalOptions { @@ -2660,7 +2660,7 @@ impl FarmerService { last_seen: Some(Utc::now()), health_score: 100.0, region: if grid_data.country.is_empty() { "Unknown".to_string() } else { grid_data.country.clone() }, - node_type: "3Node".to_string(), + node_type: "MyceliumNode".to_string(), slice_formats: None, rental_options: Some(serde_json::to_value(&crate::models::user::NodeRentalOptions { full_node_available: enable_full_node_rental, diff --git a/src/static/js/statistics.js b/src/static/js/statistics.js index 9b34d23..f2b5001 100644 --- a/src/static/js/statistics.js +++ b/src/static/js/statistics.js @@ -77,7 +77,7 @@ fill: true, }, { - label: '3Nodes', + label: 'Mycelium Nodes', data: pick(data, 'monthlyGrowth.nodes', [45, 60, 75, 90, 120, 150]), borderColor: '#28a745', backgroundColor: 'rgba(40, 167, 69, 0.1)', @@ -190,14 +190,14 @@ data: { labels: pick(data, 'nodeGeographic.labels', ['Europe', 'North America', 'Asia', 'Africa', 'South America', 'Oceania']), datasets: [{ - label: 'Number of 3Nodes', + label: 'Number of Mycelium Nodes', data: pick(data, 'nodeGeographic.values', [45, 32, 20, 15, 8, 5]), backgroundColor: 'rgba(40, 167, 69, 0.7)', borderWidth: 1, }], }, options: { - plugins: { legend: { display: false }, title: { display: true, text: 'Geographic Distribution of 3Nodes' } }, + plugins: { legend: { display: false }, title: { display: true, text: 'Geographic Distribution of Mycelium Nodes' } }, scales: { y: { beginAtZero: true, title: { display: true, text: 'Number of Nodes' } } }, }, }); @@ -233,7 +233,7 @@ }], }, options: { - plugins: { legend: { display: false }, title: { display: true, text: '3Node Uptime Performance' } }, + plugins: { legend: { display: false }, title: { display: true, text: 'Mycelium Node Uptime Performance' } }, scales: { y: { min: 95, max: 100, title: { display: true, text: 'Uptime %' } } }, }, }); @@ -253,7 +253,7 @@ }], }, options: { - plugins: { legend: { display: false }, title: { display: true, text: '3Node Certification Rate' } }, + plugins: { legend: { display: false }, title: { display: true, text: 'Mycelium Node Certification Rate' } }, scales: { y: { min: 50, max: 100, title: { display: true, text: 'Certification %' } } }, }, }); diff --git a/src/views/dashboard/farmer.html b/src/views/dashboard/farmer.html index 94c168e..71c1c6e 100644 --- a/src/views/dashboard/farmer.html +++ b/src/views/dashboard/farmer.html @@ -526,7 +526,7 @@
Verification of 3Nodes and physical infrastructure components to ensure they meet performance, reliability, and security standards.
+Verification of Mycelium Nodes and physical infrastructure components to ensure they meet performance, reliability, and security standards.
Compute Resources, often referred to as "Slices," are the fundamental units of computing capacity in the ThreeFold ecosystem. They represent virtualized portions of underlying physical hardware (3Nodes) that can be used to deploy workloads, applications, and services.
+Compute Resources, often referred to as "Slices," are the fundamental units of computing capacity in the Mycelium ecosystem. They represent virtualized portions of underlying physical hardware (Mycelium Nodes) that can be used to deploy workloads, applications, and services.
Once your account and wallet are set up, you can start exploring the marketplace:
Buy the 3Node with upfront Credits payment but have it hosted in the supplier's facility. You maintain ownership while the supplier handles physical maintenance.
+Buy the Mycelium Node with upfront Credits payment but have it hosted in the supplier's facility. You maintain ownership while the supplier handles physical maintenance.
Ideal for: Buyers without suitable hosting facilities
Buy the 3Node with upfront Credits payment and have it physically shipped to your location. Complete physical control and responsibility for the hardware.
+Buy the Mycelium Node with upfront Credits payment and have it physically shipped to your location. Complete physical control and responsibility for the hardware.
Ideal for: Buyers with their own hosting capabilities
Setup, configuration, and deployment of applications and infrastructure.
Slices represent the core unit of compute capacity within the ThreeFold Grid. They are standardized divisions of physical computing hardware (3Nodes) that can be allocated and managed as independent virtual resources. Slices form the foundation of all deployments on the ThreeFold Grid and serve as the primary unit of exchange for computational resources.
+Slices represent the core unit of compute capacity within the Mycelium Grid. They are standardized divisions of physical computing hardware (Mycelium Nodes) that can be allocated and managed as independent virtual resources. Slices form the foundation of all deployments on the Mycelium Grid and serve as the primary unit of exchange for computational resources.
Slices abstract away the underlying physical infrastructure, providing a consistent and standardized way to measure, allocate, and exchange computing capacity across the entire ThreeFold Grid.
+Slices abstract away the underlying physical infrastructure, providing a consistent and standardized way to measure, allocate, and exchange computing capacity across the entire Mycelium Grid.
The ThreeFold Grid offers different types of slices optimized for specific workloads:
+The Mycelium Grid offers different types of slices optimized for specific workloads:
Last updated: May 22, 2025
These terms specifically apply to Farmers (Resource Providers) on the Project Mycelium who contribute capacity to the ThreeFold Grid.
+These terms specifically apply to Farmers (Resource Providers) on the Project Mycelium who contribute capacity to the Mycelium Grid.
A "Farmer" refers to any individual or entity that connects hardware resources to the ThreeFold Grid, including but not limited to compute nodes (3Nodes), storage capacity, network infrastructure, or other compatible devices that contribute to the ThreeFold Grid's capacity.
+A "Farmer" refers to any individual or entity that connects hardware resources to the Mycelium Grid, including but not limited to compute nodes (Mycelium Nodes), storage capacity, network infrastructure, or other compatible devices that contribute to the Mycelium Grid's capacity.
As a Farmer on the Project Mycelium, you agree to:
@@ -57,7 +57,7 @@Regarding the hardware and capacity you provide:
You may cease being a Farmer by:
The Project Mycelium is a platform that facilitates the exchange of value through the USD Credits system. It connects providers and users, enabling the discovery, acquisition, and management of various resources and services including but not limited to:
Discover certified hardware nodes that power the ThreeFold Grid infrastructure.
+Discover certified hardware nodes that power the Mycelium Grid infrastructure.
Mycelium Nodes are the physical hardware units that make up the ThreeFold Grid. These certified servers provide compute, storage, and network capacity to the decentralized internet infrastructure.
+Mycelium Nodes are the physical hardware units that make up the Mycelium Grid. These certified servers provide compute, storage, and network capacity to the decentralized internet infrastructure.
By purchasing a 3Node, you become a farmer in the ThreeFold ecosystem, earning TFT rewards while contributing to the decentralized internet.
+By purchasing a Mycelium Node, you become a farmer in the Mycelium ecosystem, earning MC rewards while contributing to the decentralized internet.