feat: update node type references from 3Node to MyceliumNode across codebase

This commit is contained in:
mik-tf
2025-09-06 22:43:49 -04:00
parent 67577df3d0
commit bf273102cb
17 changed files with 59 additions and 59 deletions

View File

@@ -1064,7 +1064,7 @@ impl DashboardController {
.bandwidth_mbps(node_data_json.get("bandwidth_mbps") .bandwidth_mbps(node_data_json.get("bandwidth_mbps")
.and_then(|v| v.as_i64()) .and_then(|v| v.as_i64())
.unwrap_or(100) as i32) .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 // Add optional fields
if let Some(region) = node_data_json.get("region").and_then(|v| v.as_str()) { 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) .earnings_today_usd(rust_decimal::Decimal::ZERO)
.health_score(100.0) .health_score(100.0)
.region(node_data.get("region").and_then(|v| v.as_str()).unwrap_or("Global").to_string()) .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() .build()
{ {
Ok(node) => node, Ok(node) => node,
@@ -6581,7 +6581,7 @@ impl DashboardController {
rental_options: None, rental_options: None,
earnings_today_usd: rust_decimal::Decimal::ZERO, earnings_today_usd: rust_decimal::Decimal::ZERO,
region: if node_data.country.is_empty() { "Unknown".to_string() } else { node_data.country.clone() }, 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, slice_formats: None,
staking_options: None, staking_options: None,
availability_status: crate::models::user::NodeAvailabilityStatus::Available, availability_status: crate::models::user::NodeAvailabilityStatus::Available,

View File

@@ -1731,7 +1731,7 @@ impl FarmNodeBuilder {
last_seen: Some(self.last_seen.unwrap_or_else(|| chrono::Utc::now())), last_seen: Some(self.last_seen.unwrap_or_else(|| chrono::Utc::now())),
health_score: self.health_score.unwrap_or(0.0), health_score: self.health_score.unwrap_or(0.0),
region: self.region.unwrap_or_else(|| "Unknown".to_string()), 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, slice_formats: None,
rental_options: self.rental_options.map(|ro| serde_json::to_value(&ro).unwrap_or_default()), rental_options: self.rental_options.map(|ro| serde_json::to_value(&ro).unwrap_or_default()),
staking_options: None, staking_options: None,

View File

@@ -169,7 +169,7 @@ impl FarmerService {
last_seen: Some(Utc::now()), last_seen: Some(Utc::now()),
health_score: 100.0, health_score: 100.0,
region: node_data.region.unwrap_or_else(|| "Unknown".to_string()), 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(), 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()), rental_options: node_data.rental_options.as_ref().map(|opts| serde_json::to_value(opts).unwrap_or_default()),
staking_options: None, staking_options: None,
@@ -375,7 +375,7 @@ impl FarmerService {
earnings_today_usd: Decimal::ZERO, 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() }, 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() }, 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 slice_formats: None, // Not used in new slice system
staking_options: None, staking_options: None,
availability_status: crate::models::user::NodeAvailabilityStatus::Available, availability_status: crate::models::user::NodeAvailabilityStatus::Available,
@@ -1316,7 +1316,7 @@ impl FarmerService {
.earnings_today_usd(Decimal::ZERO) .earnings_today_usd(Decimal::ZERO)
.health_score(100.0) .health_score(100.0)
.region(if grid_data.country.is_empty() { "Unknown".to_string() } else { grid_data.country.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())
.grid_node_id(grid_node_id) .grid_node_id(grid_node_id)
.grid_data(grid_data) .grid_data(grid_data)
.build()?; .build()?;
@@ -1371,7 +1371,7 @@ impl FarmerService {
.earnings_today_usd(Decimal::ZERO) .earnings_today_usd(Decimal::ZERO)
.health_score(100.0) .health_score(100.0)
.region(if grid_data.country.is_empty() { "Unknown".to_string() } else { grid_data.country.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())
.grid_node_id(grid_node_id) .grid_node_id(grid_node_id)
.grid_data(grid_data) .grid_data(grid_data)
.build() .build()
@@ -1460,7 +1460,7 @@ impl FarmerService {
.last_seen(Utc::now()) .last_seen(Utc::now())
.health_score(95.0) .health_score(95.0)
.region(if grid_data.country.is_empty() { "Unknown" } else { &grid_data.country }.to_string()) .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_node_id(grid_node_id)
.grid_data(grid_data) .grid_data(grid_data)
.availability_status(crate::models::user::NodeAvailabilityStatus::Available); .availability_status(crate::models::user::NodeAvailabilityStatus::Available);
@@ -1536,7 +1536,7 @@ impl FarmerService {
.last_seen(Utc::now()) .last_seen(Utc::now())
.health_score(95.0) .health_score(95.0)
.region(if grid_data.country.is_empty() { "Unknown" } else { &grid_data.country }.to_string()) .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_node_id(grid_node_id)
.grid_data(grid_data) .grid_data(grid_data)
.availability_status(crate::models::user::NodeAvailabilityStatus::Available); .availability_status(crate::models::user::NodeAvailabilityStatus::Available);
@@ -1638,7 +1638,7 @@ impl FarmerService {
.last_seen(Utc::now()) .last_seen(Utc::now())
.health_score(95.0) .health_score(95.0)
.region(if grid_data.country.is_empty() { "Unknown" } else { &grid_data.country }.to_string()) .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_node_id(grid_node_id)
.grid_data(grid_data) .grid_data(grid_data)
.availability_status(crate::models::user::NodeAvailabilityStatus::Available); .availability_status(crate::models::user::NodeAvailabilityStatus::Available);
@@ -1703,7 +1703,7 @@ impl FarmerService {
.last_seen(Utc::now()) .last_seen(Utc::now())
.health_score(95.0) .health_score(95.0)
.region(if grid_data.country.is_empty() { "Unknown" } else { &grid_data.country }.to_string()) .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_node_id(grid_node_id)
.grid_data(grid_data) .grid_data(grid_data)
.availability_status(crate::models::user::NodeAvailabilityStatus::Available); .availability_status(crate::models::user::NodeAvailabilityStatus::Available);
@@ -1803,7 +1803,7 @@ impl FarmerService {
last_seen: Some(Utc::now()), last_seen: Some(Utc::now()),
health_score: 100.0, health_score: 100.0,
region: if grid_data.country.is_empty() { "Unknown" } else { &grid_data.country }.to_string(), 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()) }, 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()), rental_options: rental_options.map(|ro| serde_json::to_value(&ro).unwrap_or_default()),
staking_options: None, staking_options: None,
@@ -2560,7 +2560,7 @@ impl FarmerService {
last_seen: Some(Utc::now()), last_seen: Some(Utc::now()),
health_score: 100.0, health_score: 100.0,
region: if grid_data.country.is_empty() { "Unknown".to_string() } else { grid_data.country.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, slice_formats: None,
rental_options: { rental_options: {
let rental_opts = crate::models::user::NodeRentalOptions { let rental_opts = crate::models::user::NodeRentalOptions {
@@ -2660,7 +2660,7 @@ impl FarmerService {
last_seen: Some(Utc::now()), last_seen: Some(Utc::now()),
health_score: 100.0, health_score: 100.0,
region: if grid_data.country.is_empty() { "Unknown".to_string() } else { grid_data.country.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, slice_formats: None,
rental_options: Some(serde_json::to_value(&crate::models::user::NodeRentalOptions { rental_options: Some(serde_json::to_value(&crate::models::user::NodeRentalOptions {
full_node_available: enable_full_node_rental, full_node_available: enable_full_node_rental,

View File

@@ -77,7 +77,7 @@
fill: true, fill: true,
}, },
{ {
label: '3Nodes', label: 'Mycelium Nodes',
data: pick(data, 'monthlyGrowth.nodes', [45, 60, 75, 90, 120, 150]), data: pick(data, 'monthlyGrowth.nodes', [45, 60, 75, 90, 120, 150]),
borderColor: '#28a745', borderColor: '#28a745',
backgroundColor: 'rgba(40, 167, 69, 0.1)', backgroundColor: 'rgba(40, 167, 69, 0.1)',
@@ -190,14 +190,14 @@
data: { data: {
labels: pick(data, 'nodeGeographic.labels', ['Europe', 'North America', 'Asia', 'Africa', 'South America', 'Oceania']), labels: pick(data, 'nodeGeographic.labels', ['Europe', 'North America', 'Asia', 'Africa', 'South America', 'Oceania']),
datasets: [{ datasets: [{
label: 'Number of 3Nodes', label: 'Number of Mycelium Nodes',
data: pick(data, 'nodeGeographic.values', [45, 32, 20, 15, 8, 5]), data: pick(data, 'nodeGeographic.values', [45, 32, 20, 15, 8, 5]),
backgroundColor: 'rgba(40, 167, 69, 0.7)', backgroundColor: 'rgba(40, 167, 69, 0.7)',
borderWidth: 1, borderWidth: 1,
}], }],
}, },
options: { 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' } } }, scales: { y: { beginAtZero: true, title: { display: true, text: 'Number of Nodes' } } },
}, },
}); });
@@ -233,7 +233,7 @@
}], }],
}, },
options: { 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 %' } } }, scales: { y: { min: 95, max: 100, title: { display: true, text: 'Uptime %' } } },
}, },
}); });
@@ -253,7 +253,7 @@
}], }],
}, },
options: { 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 %' } } }, scales: { y: { min: 50, max: 100, title: { display: true, text: 'Certification %' } } },
}, },
}); });

View File

@@ -526,7 +526,7 @@
<div class="modal-body"> <div class="modal-body">
<div class="alert alert-info"> <div class="alert alert-info">
<i class="bi bi-info-circle me-2"></i> <i class="bi bi-info-circle me-2"></i>
<strong>ThreeFold Grid Integration:</strong> Enter the Grid Node IDs of your physical 3Nodes. Node specifications and location will be automatically fetched from the ThreeFold Grid. <strong>Mycelium Grid Integration:</strong> Enter the Grid Node IDs of your physical Mycelium Nodes. Node specifications and location will be automatically fetched from the ThreeFold Grid.
</div> </div>
<!-- Node Input Mode Selection --> <!-- Node Input Mode Selection -->

View File

@@ -79,7 +79,7 @@
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<a href="/dashboard/farmer" class="btn btn-outline-info w-100 mb-2"> <a href="/dashboard/farmer" class="btn btn-outline-info w-100 mb-2">
<i class="bi bi-hdd-rack me-2"></i> Add a 3Node <i class="bi bi-hdd-rack me-2"></i> Add a Mycelium Node
</a> </a>
</div> </div>
</div> </div>

View File

@@ -33,7 +33,7 @@
<div class="card h-100"> <div class="card h-100">
<div class="card-body"> <div class="card-body">
<h5 class="card-title"><i class="bi bi-hdd-rack me-2 text-primary"></i>Hardware Certification</h5> <h5 class="card-title"><i class="bi bi-hdd-rack me-2 text-primary"></i>Hardware Certification</h5>
<p class="card-text">Verification of 3Nodes and physical infrastructure components to ensure they meet performance, reliability, and security standards.</p> <p class="card-text">Verification of Mycelium Nodes and physical infrastructure components to ensure they meet performance, reliability, and security standards.</p>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -9,7 +9,7 @@
<div class="doc-section"> <div class="doc-section">
<h2>Overview</h2> <h2>Overview</h2>
<p>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.</p> <p>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.</p>
<div class="alert alert-info"> <div class="alert alert-info">
<div class="d-flex"> <div class="d-flex">

View File

@@ -56,7 +56,7 @@
<h5 class="mb-3"><i class="bi bi-shop me-2 text-primary"></i>Discovering Resources</h5> <h5 class="mb-3"><i class="bi bi-shop me-2 text-primary"></i>Discovering Resources</h5>
<p>Once your account and wallet are set up, you can start exploring the marketplace:</p> <p>Once your account and wallet are set up, you can start exploring the marketplace:</p>
<ul> <ul>
<li><strong>Browse Categories:</strong> Explore different sections such as compute resources, 3Nodes, applications, and services</li> <li><strong>Browse Categories:</strong> Explore different sections such as compute resources, Mycelium Nodes, applications, and services</li>
<li><strong>Apply Filters:</strong> Narrow down options based on specifications, location, pricing, and other criteria</li> <li><strong>Apply Filters:</strong> Narrow down options based on specifications, location, pricing, and other criteria</li>
<li><strong>Compare Options:</strong> Evaluate different offerings to find the best fit for your needs</li> <li><strong>Compare Options:</strong> Evaluate different offerings to find the best fit for your needs</li>
<li><strong>Read Reviews:</strong> Check ratings and feedback from other users</li> <li><strong>Read Reviews:</strong> Check ratings and feedback from other users</li>

View File

@@ -16,7 +16,7 @@
<div class="card mb-4 h-100"> <div class="card mb-4 h-100">
<div class="card-body"> <div class="card-body">
<h5 class="card-title"><i class="bi bi-building me-2 text-primary"></i>Supplier-Hosted</h5> <h5 class="card-title"><i class="bi bi-building me-2 text-primary"></i>Supplier-Hosted</h5>
<p class="card-text">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.</p> <p class="card-text">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.</p>
<p><strong>Ideal for:</strong> Buyers without suitable hosting facilities</p> <p><strong>Ideal for:</strong> Buyers without suitable hosting facilities</p>
</div> </div>
</div> </div>
@@ -25,7 +25,7 @@
<div class="card mb-4 h-100"> <div class="card mb-4 h-100">
<div class="card-body"> <div class="card-body">
<h5 class="card-title"><i class="bi bi-truck me-2 text-primary"></i>Physical Transfer</h5> <h5 class="card-title"><i class="bi bi-truck me-2 text-primary"></i>Physical Transfer</h5>
<p class="card-text">Buy the 3Node with upfront Credits payment and have it physically shipped to your location. Complete physical control and responsibility for the hardware.</p> <p class="card-text">Buy the Mycelium Node with upfront Credits payment and have it physically shipped to your location. Complete physical control and responsibility for the hardware.</p>
<p><strong>Ideal for:</strong> Buyers with their own hosting capabilities</p> <p><strong>Ideal for:</strong> Buyers with their own hosting capabilities</p>
</div> </div>
</div> </div>
@@ -128,7 +128,7 @@
<h5 class="mt-4">Purchase Process</h5> <h5 class="mt-4">Purchase Process</h5>
<ul> <ul>
<li>Select desired 3Node and purchase option (hosted or transferred)</li> <li>Select desired Mycelium Node and purchase option (hosted or transferred)</li>
<li>Pay upfront using Credits for either option</li> <li>Pay upfront using Credits for either option</li>
<li>For physical transfer: arrange shipping and delivery</li> <li>For physical transfer: arrange shipping and delivery</li>
<li>For hosted option: receive access credentials</li> <li>For hosted option: receive access credentials</li>

View File

@@ -63,7 +63,7 @@
<h5 class="card-title"><i class="bi bi-hdd-rack me-2 text-primary"></i>Deployment</h5> <h5 class="card-title"><i class="bi bi-hdd-rack me-2 text-primary"></i>Deployment</h5>
<p class="card-text">Setup, configuration, and deployment of applications and infrastructure.</p> <p class="card-text">Setup, configuration, and deployment of applications and infrastructure.</p>
<ul class="small text-muted"> <ul class="small text-muted">
<li>3Node configuration</li> <li>Mycelium Node configuration</li>
<li>Application deployment</li> <li>Application deployment</li>
<li>Network setup</li> <li>Network setup</li>
<li>Migration services</li> <li>Migration services</li>

View File

@@ -9,7 +9,7 @@
<div class="doc-section"> <div class="doc-section">
<h2>Overview</h2> <h2>Overview</h2>
<p>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.</p> <p>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.</p>
<div class="alert alert-info"> <div class="alert alert-info">
<div class="d-flex"> <div class="d-flex">
@@ -18,7 +18,7 @@
</div> </div>
<div> <div>
<h5 class="alert-heading">Key Concept</h5> <h5 class="alert-heading">Key Concept</h5>
<p class="mb-0">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.</p> <p class="mb-0">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.</p>
</div> </div>
</div> </div>
</div> </div>
@@ -139,7 +139,7 @@
<div class="doc-section"> <div class="doc-section">
<h2>Slice Types</h2> <h2>Slice Types</h2>
<p>The ThreeFold Grid offers different types of slices optimized for specific workloads:</p> <p>The Mycelium Grid offers different types of slices optimized for specific workloads:</p>
<div class="row"> <div class="row">
<div class="col-lg-4"> <div class="col-lg-4">

View File

@@ -34,7 +34,7 @@
<td>Credits charged based on resource utilization</td> <td>Credits charged based on resource utilization</td>
</tr> </tr>
<tr> <tr>
<td><strong>3Nodes</strong></td> <td><strong>Mycelium Nodes</strong></td>
<td>Physical computing hardware marketplace</td> <td>Physical computing hardware marketplace</td>
<td>Credits transferred based on hardware value</td> <td>Credits transferred based on hardware value</td>
</tr> </tr>

View File

@@ -20,11 +20,11 @@
<p class="lead mb-4">Last updated: May 22, 2025</p> <p class="lead mb-4">Last updated: May 22, 2025</p>
<div class="alert alert-info"> <div class="alert alert-info">
<p class="mb-0">These terms specifically apply to Farmers (Resource Providers) on the Project Mycelium who contribute capacity to the ThreeFold Grid.</p> <p class="mb-0">These terms specifically apply to Farmers (Resource Providers) on the Project Mycelium who contribute capacity to the Mycelium Grid.</p>
</div> </div>
<h2>1. Definition of a Farmer</h2> <h2>1. Definition of a Farmer</h2>
<p>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.</p> <p>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.</p>
<h2>2. Farmer Responsibilities</h2> <h2>2. Farmer Responsibilities</h2>
<p>As a Farmer on the Project Mycelium, you agree to:</p> <p>As a Farmer on the Project Mycelium, you agree to:</p>
@@ -57,7 +57,7 @@
<h2>5. Hardware and Capacity</h2> <h2>5. Hardware and Capacity</h2>
<p>Regarding the hardware and capacity you provide:</p> <p>Regarding the hardware and capacity you provide:</p>
<ul> <ul>
<li>You retain ownership of all hardware connected to the ThreeFold Grid</li> <li>You retain ownership of all hardware connected to the Mycelium Grid</li>
<li>You are responsible for the electricity, internet connectivity, and physical security of your hardware</li> <li>You are responsible for the electricity, internet connectivity, and physical security of your hardware</li>
<li>You have the right to disconnect your hardware at any time, subject to any active resource reservations</li> <li>You have the right to disconnect your hardware at any time, subject to any active resource reservations</li>
<li>ThreeFold does not guarantee that your capacity will be utilized by users</li> <li>ThreeFold does not guarantee that your capacity will be utilized by users</li>
@@ -75,7 +75,7 @@
<h2>7. Termination of Farmer Status</h2> <h2>7. Termination of Farmer Status</h2>
<p>You may cease being a Farmer by:</p> <p>You may cease being a Farmer by:</p>
<ul> <ul>
<li>Disconnecting your hardware from the ThreeFold Grid</li> <li>Disconnecting your hardware from the Mycelium Grid</li>
<li>Providing notice through your dashboard at least 30 days prior to complete disconnection</li> <li>Providing notice through your dashboard at least 30 days prior to complete disconnection</li>
<li>Ensuring all active resource reservations have been properly concluded or migrated</li> <li>Ensuring all active resource reservations have been properly concluded or migrated</li>
</ul> </ul>

View File

@@ -67,7 +67,7 @@
<p>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:</p> <p>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:</p>
<ul> <ul>
<li>Compute Resources (Slices)</li> <li>Compute Resources (Slices)</li>
<li>3Nodes</li> <li>Mycelium Nodes</li>
<li>Mycelium Gateways</li> <li>Mycelium Gateways</li>
<li>Bandwidth Providers</li> <li>Bandwidth Providers</li>
<li>Application Solutions</li> <li>Application Solutions</li>

View File

@@ -5,7 +5,7 @@
{% block marketplace_content %} {% block marketplace_content %}
<div class="my-4"> <div class="my-4">
<h1>Mycelium Nodes Hardware</h1> <h1>Mycelium Nodes Hardware</h1>
<p class="lead">Discover certified hardware nodes that power the ThreeFold Grid infrastructure.</p> <p class="lead">Discover certified hardware nodes that power the Mycelium Grid infrastructure.</p>
<!-- Mycelium Nodes Introduction --> <!-- Mycelium Nodes Introduction -->
<div class="alert alert-info mb-4"> <div class="alert alert-info mb-4">
@@ -15,9 +15,9 @@
</div> </div>
<div> <div>
<h5 class="alert-heading">What are Mycelium Nodes?</h5> <h5 class="alert-heading">What are Mycelium Nodes?</h5>
<p>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.</p> <p>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.</p>
<hr> <hr>
<p class="mb-0">By purchasing a 3Node, you become a farmer in the ThreeFold ecosystem, earning TFT rewards while contributing to the decentralized internet.</p> <p class="mb-0">By purchasing a Mycelium Node, you become a farmer in the Mycelium ecosystem, earning MC rewards while contributing to the decentralized internet.</p>
</div> </div>
</div> </div>
</div> </div>
@@ -166,7 +166,7 @@
<div class="mb-3"> <div class="mb-3">
<div class="alert alert-success small"> <div class="alert alert-success small">
<i class="bi bi-currency-dollar me-1"></i> <i class="bi bi-currency-dollar me-1"></i>
<strong>Farming Potential:</strong> Earn TFT rewards by contributing to the ThreeFold Grid <strong>Farming Potential:</strong> Earn MC rewards by contributing to the Mycelium Grid
</div> </div>
</div> </div>
</div> </div>
@@ -215,7 +215,7 @@
<!-- Pagination --> <!-- Pagination -->
{% if pagination and pagination.total_pages > 1 %} {% if pagination and pagination.total_pages > 1 %}
<nav aria-label="3Node pages" class="mt-4"> <nav aria-label="Mycelium Node pages" class="mt-4">
<ul class="pagination justify-content-center"> <ul class="pagination justify-content-center">
<!-- Previous Page --> <!-- Previous Page -->
<li class="page-item {% if not pagination.has_previous %}disabled{% endif %}"> <li class="page-item {% if not pagination.has_previous %}disabled{% endif %}">
@@ -302,27 +302,27 @@
<div class="col-12"> <div class="col-12">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<h3 class="card-title">Become a ThreeFold Farmer</h3> <h3 class="card-title">Become a Mycelium Farmer</h3>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<h5>1. Purchase Your 3Node</h5> <h5>1. Purchase Your Mycelium Node</h5>
<p>Choose from certified hardware options that meet ThreeFold Grid requirements.</p> <p>Choose from certified hardware options that meet Mycelium Grid requirements.</p>
<h5>2. Connect to the Grid</h5> <h5>2. Connect to the Grid</h5>
<p>Boot your 3Node with Zero-OS and connect it to the ThreeFold Grid infrastructure.</p> <p>Boot your Mycelium Node with Zero-OS and connect it to the Mycelium Grid infrastructure.</p>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<h5>3. Start Earning</h5> <h5>3. Start Earning</h5>
<p>Your 3Node automatically provides capacity to the grid and earns TFT rewards based on utilization.</p> <p>Your Mycelium Node automatically provides capacity to the grid and earns MC rewards based on utilization.</p>
<h5>4. Monitor & Maintain</h5> <h5>4. Monitor & Maintain</h5>
<p>Use the ThreeFold Dashboard to monitor your node's performance and earnings.</p> <p>Use the Mycelium Dashboard to monitor your node's performance and earnings.</p>
</div> </div>
</div> </div>
<div class="alert alert-info mt-3"> <div class="alert alert-info mt-3">
<i class="bi bi-info-circle me-2"></i> <i class="bi bi-info-circle me-2"></i>
<strong>ROI Potential:</strong> 3Node farmers typically see return on investment within 2-4 years, depending on grid utilization and TFT price. <strong>ROI Potential:</strong> Mycelium Node farmers typically see return on investment within 2-4 years, depending on grid utilization and MC price.
</div> </div>
</div> </div>
</div> </div>
@@ -332,14 +332,14 @@
<!-- Node Types --> <!-- Node Types -->
<div class="row mt-4"> <div class="row mt-4">
<div class="col-12"> <div class="col-12">
<h3 class="mb-4">3Node Types</h3> <h3 class="mb-4">Mycelium Node Types</h3>
</div> </div>
<div class="col-md-4 mb-3"> <div class="col-md-4 mb-3">
<div class="card"> <div class="card">
<div class="card-body text-center"> <div class="card-body text-center">
<i class="bi bi-tools fs-1 text-primary mb-3"></i> <i class="bi bi-tools fs-1 text-primary mb-3"></i>
<h5>DIY Nodes</h5> <h5>DIY Nodes</h5>
<p class="small text-muted">Build your own 3Node using compatible hardware. Most cost-effective option for technical users.</p> <p class="small text-muted">Build your own Mycelium Node using compatible hardware. Most cost-effective option for technical users.</p>
</div> </div>
</div> </div>
</div> </div>
@@ -348,7 +348,7 @@
<div class="card-body text-center"> <div class="card-body text-center">
<i class="bi bi-award fs-1 text-primary mb-3"></i> <i class="bi bi-award fs-1 text-primary mb-3"></i>
<h5>Certified Nodes</h5> <h5>Certified Nodes</h5>
<p class="small text-muted">Pre-built and certified hardware that's guaranteed to work with the ThreeFold Grid.</p> <p class="small text-muted">Pre-built and certified hardware that's guaranteed to work with the Mycelium Grid.</p>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -82,11 +82,11 @@
</div> </div>
</div> </div>
<!-- 3Nodes Section --> <!-- Mycelium Nodes Section -->
<div class="row mt-4"> <div class="row mt-4">
<div class="col-12"> <div class="col-12">
<div class="dashboard-section"> <div class="dashboard-section">
<h3>3Nodes Statistics</h3> <h3>Mycelium Nodes Statistics</h3>
<div class="row"> <div class="row">
<div class="col-lg-6"> <div class="col-lg-6">
<div class="card mb-4 h-100"> <div class="card mb-4 h-100">
@@ -121,7 +121,7 @@
<div class="col-lg-6"> <div class="col-lg-6">
<div class="card mb-4 h-100"> <div class="card mb-4 h-100">
<div class="card-header"> <div class="card-header">
<h5>3Node Certification Rate</h5> <h5>Mycelium Node Certification Rate</h5>
</div> </div>
<div class="card-body d-flex justify-content-center align-items-center"> <div class="card-body d-flex justify-content-center align-items-center">
<canvas id="nodeCertificationChart" width="400" height="300"></canvas> <canvas id="nodeCertificationChart" width="400" height="300"></canvas>