feat: rename ThreeFold to Mycelium in copyright, docs, specs, and UI across codebase

This commit is contained in:
mik-tf
2025-09-08 13:45:02 -04:00
parent 8d66810688
commit c054ceb24d
22 changed files with 146 additions and 146 deletions

View File

@@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier same "printed page" as the copyright notice for easier
identification within third-party archives. identification within third-party archives.
Copyright 2025 ThreeFold Copyright 2025 Mycelium
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -61,7 +61,7 @@ Project Mycelium is a Rust web app built on Actix Web.
- Public catalogue: `/marketplace`, `/products`, `/products/{id}`, `/cart`, `/checkout`. - Public catalogue: `/marketplace`, `/products`, `/products/{id}`, `/cart`, `/checkout`.
- **Core Concepts** - **Core Concepts**
- Products (apps, services, compute). Orders and cart lifecycle. - Products (apps, services, compute). Orders and cart lifecycle.
- Slices (compute resources) on the ThreeFold Grid, publicly listed at `/marketplace/compute`. - Slices (compute resources) on the Mycelium Grid, publicly listed at `/marketplace/compute`.
- Credits wallet for balance, transactions, quick top-up, and auto top-up. - Credits wallet for balance, transactions, quick top-up, and auto top-up.
- **Primary Flows** - **Primary Flows**
- Browse products: `/products`, details at `/products/{id}`; APIs under `/api/products*`. - Browse products: `/products`, details at `/products/{id}`; APIs under `/api/products*`.

View File

@@ -1,21 +1,21 @@
# ThreeFold Certification # Mycelium Certification
## Overview ## Overview
ThreeFold Certification is a quality assurance program for farmers and solution providers who take a license with support from ThreeFold. This certification enables providers to offer enhanced reliability and guaranteed support to their customers. Mycelium Certification is a quality assurance program for farmers and solution providers who take a license with support from Mycelium. This certification enables providers to offer enhanced reliability and guaranteed support to their customers.
## Benefits of Certification ## Benefits of Certification
- **Guaranteed Support**: Certified farmers and solution providers receive priority support directly from ThreeFold. - **Guaranteed Support**: Certified farmers and solution providers receive priority support directly from Mycelium.
- **Enhanced Reliability**: Certification ensures higher standards of service quality and uptime. - **Enhanced Reliability**: Certification ensures higher standards of service quality and uptime.
- **Trust Signal**: Users can easily identify certified providers in the marketplace. - **Trust Signal**: Users can easily identify certified providers in the marketplace.
- **SLA Endorsement**: Certified providers commit to specific Service Level Agreements endorsed by ThreeFold. - **SLA Endorsement**: Certified providers commit to specific Service Level Agreements endorsed by Mycelium.
- **Priority Resolution**: Issues affecting certified slices receive expedited attention from ThreeFold support teams. - **Priority Resolution**: Issues affecting certified slices receive expedited attention from Mycelium support teams.
## How Certification Works ## How Certification Works
1. **Licensing**: Farmers or solution providers enter into a support license agreement with ThreeFold. 1. **Licensing**: Farmers or solution providers enter into a support license agreement with Mycelium.
2. **Verification**: ThreeFold verifies that the provider meets all technical and operational requirements. 2. **Verification**: Mycelium verifies that the provider meets all technical and operational requirements.
3. **Certification**: Upon approval, the provider receives certified status. 3. **Certification**: Upon approval, the provider receives certified status.
4. **Flagging**: All slices offered by certified providers are automatically flagged as "certified" in the marketplace. 4. **Flagging**: All slices offered by certified providers are automatically flagged as "certified" in the marketplace.
@@ -24,7 +24,7 @@ ThreeFold Certification is a quality assurance program for farmers and solution
When browsing the TF Marketplace, users can filter for certified slices. The certification flag indicates: When browsing the TF Marketplace, users can filter for certified slices. The certification flag indicates:
- The slice is provided by a certified farmer or solution provider - The slice is provided by a certified farmer or solution provider
- ThreeFold guarantees support for this slice - Mycelium guarantees support for this slice
- The slice meets higher reliability standards - The slice meets higher reliability standards
- Support requests will receive priority handling - Support requests will receive priority handling
@@ -32,7 +32,7 @@ When browsing the TF Marketplace, users can filter for certified slices. The cer
Farmers and solution providers interested in certification can: Farmers and solution providers interested in certification can:
1. Contact ThreeFold to inquire about licensing options 1. Contact Mycelium to inquire about licensing options
2. Review and sign the software and support license agreement 2. Review and sign the software and support license agreement
3. Complete the certification process 3. Complete the certification process
4. Begin offering certified slices in the marketplace 4. Begin offering certified slices in the marketplace
@@ -48,7 +48,7 @@ To maintain certified status, providers must:
## For Users ## For Users
When selecting slices in the marketplace, look for the certification flag to ensure you're getting resources with guaranteed ThreeFold support and enhanced reliability. When selecting slices in the marketplace, look for the certification flag to ensure you're getting resources with guaranteed Mycelium support and enhanced reliability.
## License agreement needed ## License agreement needed

View File

@@ -1,10 +1,10 @@
# ThreeFold Points (TFP) System # Mycelium Points (TFP) System
The TF Marketplace operates on a [TFP](./tfp.md) system where value is exchanged between suppliers (providers) and consumers through TFP. This creates a balanced marketplace where participants can both earn and spend TFP based on their contributions and needs. The TF Marketplace operates on a [TFP](./tfp.md) system where value is exchanged between suppliers (providers) and consumers through TFP. This creates a balanced marketplace where participants can both earn and spend TFP based on their contributions and needs.
## Core Principles ## Core Principles
- [TFP = ThreeFold Tokens](./tfp.md) represent value exchanged within the marketplace - [TFP = Mycelium Tokens](./tfp.md) represent value exchanged within the marketplace
- Suppliers provide services/products and earn TFP - Suppliers provide services/products and earn TFP
- Consumers use services/products and spend TFP - Consumers use services/products and spend TFP
- The same entity can be both supplier and consumer in different contexts - The same entity can be both supplier and consumer in different contexts

View File

@@ -5,23 +5,23 @@
This Service and Node Provider Agreement (hereinafter referred to as the "Agreement") is made and entered into as of the Effective Date (as defined below) by and between: This Service and Node Provider Agreement (hereinafter referred to as the "Agreement") is made and entered into as of the Effective Date (as defined below) by and between:
**ThreeFold NV**, a company incorporated in Dubai, UAE, with its principal place of business at DMCC Business Centre, Level No 1, Jewellery & Gemplex 3, Dubai, United Arab Emirates, Registration Number: DMCCXXXX (hereinafter referred to as "ThreeFold" or "Licensor"), **Mycelium NV**, a company incorporated in Dubai, UAE, with its principal place of business at DMCC Business Centre, Level No 1, Jewellery & Gemplex 3, Dubai, United Arab Emirates, Registration Number: DMCCXXXX (hereinafter referred to as "Mycelium" or "Licensor"),
AND AND
**[Provider Name]**, a [company/individual] with its principal place of business at/residing at [Provider Address] (hereinafter referred to as the "Provider" or "Licensee"). **[Provider Name]**, a [company/individual] with its principal place of business at/residing at [Provider Address] (hereinafter referred to as the "Provider" or "Licensee").
ThreeFold and the Provider are hereinafter collectively referred to as the "Parties" and individually as a "Party". Mycelium and the Provider are hereinafter collectively referred to as the "Parties" and individually as a "Party".
**WHEREAS:** **WHEREAS:**
A. ThreeFold has developed and owns or licenses certain software and a decentralized cloud platform known as the TF Grid, which includes the TF Marketplace and utilizes ThreeFold Tokens (TFP) for value exchange. A. Mycelium has developed and owns or licenses certain software and a decentralized cloud platform known as the TF Grid, which includes the TF Marketplace and utilizes Mycelium Tokens (TFP) for value exchange.
B. ThreeFold offers a Certification program ("ThreeFold Certification") for providers who meet specified quality, reliability, and operational standards. B. Mycelium offers a Certification program ("Mycelium Certification") for providers who meet specified quality, reliability, and operational standards.
C. The Provider wishes to offer services (such as Certified 3Nodes and/or Slices) on the TF Grid and become a ThreeFold Certified Provider. C. The Provider wishes to offer services (such as Certified 3Nodes and/or Slices) on the TF Grid and become a Mycelium Certified Provider.
D. ThreeFold is willing to grant the Provider a license to use certain ThreeFold Software and provide support under the terms and conditions set forth in this Agreement, in exchange for a license fee. D. Mycelium is willing to grant the Provider a license to use certain Mycelium Software and provide support under the terms and conditions set forth in this Agreement, in exchange for a license fee.
**NOW, THEREFORE**, in consideration of the mutual covenants and promises contained herein, the Parties agree as follows: **NOW, THEREFORE**, in consideration of the mutual covenants and promises contained herein, the Parties agree as follows:
@@ -38,74 +38,74 @@ This Agreement applies to the Provider's offering of "Certified Services" on the
b. Provisioning of "Certified Slices" (compute resources) as defined in TF Grid documentation. b. Provisioning of "Certified Slices" (compute resources) as defined in TF Grid documentation.
c. Other services mutually agreed upon in writing and designated as Certified Services. c. Other services mutually agreed upon in writing and designated as Certified Services.
### 2.2. ThreeFold Software Covered by Support Guarantee ### 2.2. Mycelium Software Covered by Support Guarantee
ThreeFold's support guarantee under this Agreement covers defects in "Covered ThreeFold Software." "Covered ThreeFold Software" is defined as: Mycelium's support guarantee under this Agreement covers defects in "Covered Mycelium Software." "Covered Mycelium Software" is defined as:
*All software deployed or made available by ThreeFold via the official TF Grid marketplace and utilized by the Provider in their provision of Certified Services.* *All software deployed or made available by Mycelium via the official TF Grid marketplace and utilized by the Provider in their provision of Certified Services.*
This includes, but is not limited to, core components such as Zero-OS (ZOS) and Mycelium networking software, as well as any applications or solutions directly provided and managed by ThreeFold on the marketplace. An indicative list of Covered ThreeFold Software may be provided in Appendix A and updated by ThreeFold from time to time. This includes, but is not limited to, core components such as Zero-OS (ZOS) and Mycelium networking software, as well as any applications or solutions directly provided and managed by Mycelium on the marketplace. An indicative list of Covered Mycelium Software may be provided in Appendix A and updated by Mycelium from time to time.
## 3. Certification Requirements ## 3. Certification Requirements
3.1. The Provider agrees to apply for, achieve, and maintain ThreeFold Certification status for all Certified Services offered under this Agreement. 3.1. The Provider agrees to apply for, achieve, and maintain Mycelium Certification status for all Certified Services offered under this Agreement.
3.2. The process, standards, technical and operational requirements, verification procedures, and maintenance obligations for ThreeFold Certification are detailed in the official ThreeFold Certification Program documentation. 3.2. The process, standards, technical and operational requirements, verification procedures, and maintenance obligations for Mycelium Certification are detailed in the official Mycelium Certification Program documentation.
3.3. Failure to achieve or maintain ThreeFold Certification may be grounds for termination of this Agreement by ThreeFold. 3.3. Failure to achieve or maintain Mycelium Certification may be grounds for termination of this Agreement by Mycelium.
## 4. Provider Obligations ## 4. Provider Obligations
The Provider shall: The Provider shall:
4.1. Define, publish, and adhere to its own Service Level Agreements (SLAs) for its end-customers of Certified Services. These SLAs must be transparently communicated to end-customers using the Marketplace Portal. 4.1. Define, publish, and adhere to its own Service Level Agreements (SLAs) for its end-customers of Certified Services. These SLAs must be transparently communicated to end-customers using the Marketplace Portal.
4.2. Comply at all times with the then-current ThreeFold Certification standards, policies, and operational guidelines. 4.2. Comply at all times with the then-current Mycelium Certification standards, policies, and operational guidelines.
4.3. Accurately and timely report to ThreeFold its Gross TFP Revenue (as defined in Section 7) derived from the compute and storage rental of its Certified Services, in accordance with the reporting procedures outlined herein. 4.3. Accurately and timely report to Mycelium its Gross TFP Revenue (as defined in Section 7) derived from the compute and storage rental of its Certified Services, in accordance with the reporting procedures outlined herein.
4.4. Cooperate fully and in a timely manner with ThreeFold's support personnel and processes, including providing all necessary information, logs, and access (where appropriate and secure) required for ThreeFold to diagnose and resolve defects in Covered ThreeFold Software. 4.4. Cooperate fully and in a timely manner with Mycelium's support personnel and processes, including providing all necessary information, logs, and access (where appropriate and secure) required for Mycelium to diagnose and resolve defects in Covered Mycelium Software.
4.5. Use the Covered ThreeFold Software only in accordance with this Agreement and any accompanying documentation. 4.5. Use the Covered Mycelium Software only in accordance with this Agreement and any accompanying documentation.
4.6. Be responsible for all aspects of its service delivery to its end-customers, including customer support, billing, and contract management. 4.6. Be responsible for all aspects of its service delivery to its end-customers, including customer support, billing, and contract management.
4.7. Comply with all applicable laws and regulations in its provision of Certified Services. 4.7. Comply with all applicable laws and regulations in its provision of Certified Services.
## 5. ThreeFold Obligations & Support Guarantee ## 5. Mycelium Obligations & Support Guarantee
ThreeFold shall: Mycelium shall:
5.1. Grant the Provider a non-exclusive, non-transferable (except as provided herein), revocable (pursuant to the terms of this Agreement) license to use the Covered ThreeFold Software solely in connection with the Provider's offering of Certified Services during the term of this Agreement. 5.1. Grant the Provider a non-exclusive, non-transferable (except as provided herein), revocable (pursuant to the terms of this Agreement) license to use the Covered Mycelium Software solely in connection with the Provider's offering of Certified Services during the term of this Agreement.
5.2. Provide defect support ("Support Services") for Covered ThreeFold Software to the Provider, as per the severity levels, response times, and resolution targets detailed in Section 6 of this Agreement. 5.2. Provide defect support ("Support Services") for Covered Mycelium Software to the Provider, as per the severity levels, response times, and resolution targets detailed in Section 6 of this Agreement.
5.3. Maintain defined support channels (e.g., dedicated portal, email address) for Certified Providers to submit support requests. These channels will be communicated to the Provider upon certification. 5.3. Maintain defined support channels (e.g., dedicated portal, email address) for Certified Providers to submit support requests. These channels will be communicated to the Provider upon certification.
5.4. Use commercially reasonable efforts to correct verified defects in the Covered ThreeFold Software. 5.4. Use commercially reasonable efforts to correct verified defects in the Covered Mycelium Software.
## 6. Defect Support: Severity Levels, Response & Resolution Targets ## 6. Defect Support: Severity Levels, Response & Resolution Targets
### 6.1. Severity Level Definitions ### 6.1. Severity Level Definitions
The Provider shall, when reporting an issue, reasonably self-assess the severity level. ThreeFold may re-classify the severity level based on its assessment of the impact. The Provider shall, when reporting an issue, reasonably self-assess the severity level. Mycelium may re-classify the severity level based on its assessment of the impact.
| Severity Level | Definition | Examples | | Severity Level | Definition | Examples |
|-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Severity 1 (Critical)** | A defect in Covered ThreeFold Software causing a complete loss of essential service or functionality for multiple end-users of the Provider's Certified Service, or a critical security vulnerability, with no workaround available. | *Certified 3Node(s) unbootable due to a ZOS bug; critical Mycelium network failure originating from Covered ThreeFold Software affecting multiple Certified Services; a severe, exploitable security flaw in Covered ThreeFold Software.* | | **Severity 1 (Critical)** | A defect in Covered Mycelium Software causing a complete loss of essential service or functionality for multiple end-users of the Provider's Certified Service, or a critical security vulnerability, with no workaround available. | *Certified 3Node(s) unbootable due to a ZOS bug; critical Mycelium network failure originating from Covered Mycelium Software affecting multiple Certified Services; a severe, exploitable security flaw in Covered Mycelium Software.* |
| **Severity 2 (High)** | A defect in Covered ThreeFold Software causing a significant degradation of essential service or functionality, or loss of a major feature, for multiple end-users of the Provider's Certified Service, with no reasonable or only a difficult workaround available. | *Intermittent but frequent loss of network connectivity on Certified Slices due to a Mycelium software defect; a core feature of a ThreeFold-provided marketplace application (used as part of a Certified Service) malfunctioning consistently.* | | **Severity 2 (High)** | A defect in Covered Mycelium Software causing a significant degradation of essential service or functionality, or loss of a major feature, for multiple end-users of the Provider's Certified Service, with no reasonable or only a difficult workaround available. | *Intermittent but frequent loss of network connectivity on Certified Slices due to a Mycelium software defect; a core feature of a Mycelium-provided marketplace application (used as part of a Certified Service) malfunctioning consistently.* |
| **Severity 3 (Medium)** | A defect in Covered ThreeFold Software causing a partial loss of non-critical functionality, minor performance degradation, or impacting a limited number of end-users of the Provider's Certified Service, where a reasonable workaround is available. | *A bug in a management interface of a ThreeFold tool used by the Provider; cosmetic issues in a TF-provided application that do not impede core functionality; minor, non-critical performance issues.* | | **Severity 3 (Medium)** | A defect in Covered Mycelium Software causing a partial loss of non-critical functionality, minor performance degradation, or impacting a limited number of end-users of the Provider's Certified Service, where a reasonable workaround is available. | *A bug in a management interface of a Mycelium tool used by the Provider; cosmetic issues in a TF-provided application that do not impede core functionality; minor, non-critical performance issues.* |
| **Severity 4 (Low)** | A minor issue, documentation error, request for information, or a cosmetic defect in Covered ThreeFold Software with minimal or no impact on the Provider's or end-users' use of the Certified Service. | *Typographical error in documentation; inquiry about a feature's behavior.* | | **Severity 4 (Low)** | A minor issue, documentation error, request for information, or a cosmetic defect in Covered Mycelium Software with minimal or no impact on the Provider's or end-users' use of the Certified Service. | *Typographical error in documentation; inquiry about a feature's behavior.* |
### 6.2. Support Hours & Response/Resolution Targets ### 6.2. Support Hours & Response/Resolution Targets
The following targets are applicable to Support Services provided by ThreeFold to the Provider: The following targets are applicable to Support Services provided by Mycelium to the Provider:
| Severity Level | Support Request Availability | Target Initial Response Time | Target Resolution/Workaround Time | Notes | | Severity Level | Support Request Availability | Target Initial Response Time | Target Resolution/Workaround Time | Notes |
|-------------------------|-------------------------------------------|----------------------------------------------|---------------------------------------------------------------------------------------------------|----------------------------------------------------------| |-------------------------|-------------------------------------------|----------------------------------------------|---------------------------------------------------------------------------------------------------|----------------------------------------------------------|
| **Severity 1 (Critical)** | 24x7x365 | **1 hour** (from validated S1 submission) | **4-8 hours** | ThreeFold will provide ongoing status updates every [e.g., 2 hours]. | | **Severity 1 (Critical)** | 24x7x365 | **1 hour** (from validated S1 submission) | **4-8 hours** | Mycelium will provide ongoing status updates every [e.g., 2 hours]. |
| **Severity 2 (High)** | During Business Hours (as defined below) | **4 business hours** (from validated S2 submission) | **2 business days** | | | **Severity 2 (High)** | During Business Hours (as defined below) | **4 business hours** (from validated S2 submission) | **2 business days** | |
| **Severity 3 (Medium)** | During Business Hours | **1 business day** (from validated S3 submission) | **5 business days** | | | **Severity 3 (Medium)** | During Business Hours | **1 business day** (from validated S3 submission) | **5 business days** | |
| **Severity 4 (Low)** | During Business Hours | **2 business days** | As resources permit, potentially addressed in a future software release or documentation update. | | | **Severity 4 (Low)** | During Business Hours | **2 business days** | As resources permit, potentially addressed in a future software release or documentation update. | |
"**Business Hours**" for ThreeFold support shall mean [e.g., 9:00 AM to 5:00 PM CET/CEST, Monday through Friday, excluding ThreeFold recognized public holidays in Belgium]. "**Business Hours**" for Mycelium support shall mean [e.g., 9:00 AM to 5:00 PM CET/CEST, Monday through Friday, excluding Mycelium recognized public holidays in Belgium].
"**Initial Response Time**" is the time from ThreeFold's acknowledgment of receipt of a properly submitted support request to the time ThreeFold assigns resources to begin addressing the issue. "**Initial Response Time**" is the time from Mycelium's acknowledgment of receipt of a properly submitted support request to the time Mycelium assigns resources to begin addressing the issue.
"**Resolution/Workaround Time**" is the time from ThreeFold's acknowledgment to when ThreeFold provides a fix, a patch, a documented workaround, or determines that the issue is not a defect in Covered ThreeFold Software. Resolution may be a permanent fix or a temporary workaround that restores essential functionality. "**Resolution/Workaround Time**" is the time from Mycelium's acknowledgment to when Mycelium provides a fix, a patch, a documented workaround, or determines that the issue is not a defect in Covered Mycelium Software. Resolution may be a permanent fix or a temporary workaround that restores essential functionality.
### 6.3. Escalation Procedures ### 6.3. Escalation Procedures
[To be defined: This section will outline the process for the Provider to escalate an issue if response/resolution targets are not met or if the severity of an issue changes. It will include contact points/methods for escalation.] [To be defined: This section will outline the process for the Provider to escalate an issue if response/resolution targets are not met or if the severity of an issue changes. It will include contact points/methods for escalation.]
@@ -114,20 +114,20 @@ The following targets are applicable to Support Services provided by ThreeFold t
To receive Support Services, Provider must: To receive Support Services, Provider must:
a. Provide accurate and complete information regarding the issue. a. Provide accurate and complete information regarding the issue.
b. Make reasonable efforts to diagnose and replicate the issue. b. Make reasonable efforts to diagnose and replicate the issue.
c. Cooperate with ThreeFold support personnel. c. Cooperate with Mycelium support personnel.
d. Designate specific technical contacts authorized to interact with ThreeFold support. d. Designate specific technical contacts authorized to interact with Mycelium support.
## 7. License Fee & Payment ## 7. License Fee & Payment
7.1. In consideration for the license to use Covered ThreeFold Software and the Support Services provided by ThreeFold, ThreeFold shall automatically deduct a recurring license fee ("License Fee") from the Provider's Gross TFP Revenue from Certified Compute and Storage (as defined below) on the TF Grid marketplace backend system. 7.1. In consideration for the license to use Covered Mycelium Software and the Support Services provided by Mycelium, Mycelium shall automatically deduct a recurring license fee ("License Fee") from the Provider's Gross TFP Revenue from Certified Compute and Storage (as defined below) on the TF Grid marketplace backend system.
7.2. The License Fee shall be **ten percent (10%)** of the Provider's "Gross TFP Revenue from Certified Compute and Storage." 7.2. The License Fee shall be **ten percent (10%)** of the Provider's "Gross TFP Revenue from Certified Compute and Storage."
7.3. "**Gross TFP Revenue from Certified Compute and Storage**" is defined as all ThreeFold Tokens (TFP) earned and received by the Provider from its end-customers specifically for the rental of compute (e.g., vCPU, RAM) and storage (e.g., SSD, HDD capacity) resources offered as part of its Certified Services on Certified 3Nodes or Certified Slices, before deduction of any operational costs, transaction fees, or other expenses incurred by the Provider. Revenue from other services (e.g., managed services, consulting, bandwidth charges billed separately by the provider) is excluded from this calculation unless explicitly agreed in writing. 7.3. "**Gross TFP Revenue from Certified Compute and Storage**" is defined as all Mycelium Tokens (TFP) earned and received by the Provider from its end-customers specifically for the rental of compute (e.g., vCPU, RAM) and storage (e.g., SSD, HDD capacity) resources offered as part of its Certified Services on Certified 3Nodes or Certified Slices, before deduction of any operational costs, transaction fees, or other expenses incurred by the Provider. Revenue from other services (e.g., managed services, consulting, bandwidth charges billed separately by the provider) is excluded from this calculation unless explicitly agreed in writing.
7.4. **Reporting**: Within [e.g., ten (10) calendar days] after the end of each calendar month, the Provider shall submit a report to ThreeFold detailing its Gross TFP Revenue from Certified Compute and Storage for the preceding month. The report format and submission method will be specified by ThreeFold. Provider agrees to maintain accurate records to support these reports and allow for auditing by ThreeFold or its designated agent upon reasonable notice. 7.4. **Reporting**: Within [e.g., ten (10) calendar days] after the end of each calendar month, the Provider shall submit a report to Mycelium detailing its Gross TFP Revenue from Certified Compute and Storage for the preceding month. The report format and submission method will be specified by Mycelium. Provider agrees to maintain accurate records to support these reports and allow for auditing by Mycelium or its designated agent upon reasonable notice.
7.5. **Payment**: The License Fee for each month will be automatically deducted in TFP from the Provider's Gross TFP Revenue on the TF Grid marketplace backend system at the time the revenue is registered. No direct payment of the License Fee is required from the Provider to ThreeFold. 7.5. **Payment**: The License Fee for each month will be automatically deducted in TFP from the Provider's Gross TFP Revenue on the TF Grid marketplace backend system at the time the revenue is registered. No direct payment of the License Fee is required from the Provider to Mycelium.
7.6. As the License Fee is automatically deducted, provisions for late payments are not applicable to the License Fee itself. 7.6. As the License Fee is automatically deducted, provisions for late payments are not applicable to the License Fee itself.
@@ -138,21 +138,21 @@ To receive Support Services, Provider must:
b. Adhering to any revenue lock-in periods for TFP earned, as defined by TF Grid policies. b. Adhering to any revenue lock-in periods for TFP earned, as defined by TF Grid policies.
c. Being subject to the TF Grid's "slashing" mechanisms (potential loss of staked or locked TFP) if the Provider fails to meet its self-defined and published SLAs to its end-customers, or fails to meet other TF Grid operational requirements (e.g., node uptime, resource availability as per `slices.md` and `tfp.md`). c. Being subject to the TF Grid's "slashing" mechanisms (potential loss of staked or locked TFP) if the Provider fails to meet its self-defined and published SLAs to its end-customers, or fails to meet other TF Grid operational requirements (e.g., node uptime, resource availability as per `slices.md` and `tfp.md`).
8.2. This Agreement and the Support Services provided by ThreeFold are intended to assist the Provider in maintaining high-quality Certified Services and meeting its commitments. However, ThreeFold is not responsible for the Provider's failure to meet its independent obligations to its customers or the TF Grid ecosystem. The Provider remains solely responsible for penalties or slashing imposed by the TF Grid. 8.2. This Agreement and the Support Services provided by Mycelium are intended to assist the Provider in maintaining high-quality Certified Services and meeting its commitments. However, Mycelium is not responsible for the Provider's failure to meet its independent obligations to its customers or the TF Grid ecosystem. The Provider remains solely responsible for penalties or slashing imposed by the TF Grid.
## 9. Intellectual Property ## 9. Intellectual Property
9.1. **ThreeFold IP**: ThreeFold retains all right, title, and interest in and to the Covered ThreeFold Software, the TF Grid, the TF Marketplace, TFP, Mycelium, Zero-OS, and all associated intellectual property rights, including patents, copyrights, trademarks, and trade secrets ("ThreeFold IP"). 9.1. **Mycelium IP**: Mycelium retains all right, title, and interest in and to the Covered Mycelium Software, the TF Grid, the TF Marketplace, TFP, Mycelium, Zero-OS, and all associated intellectual property rights, including patents, copyrights, trademarks, and trade secrets ("Mycelium IP").
9.2. **License Grant**: Subject to the terms of this Agreement, ThreeFold grants Provider a limited, non-exclusive, non-sublicensable, non-transferable, revocable license during the Term to use the ThreeFold IP solely as necessary to offer the Certified Services. 9.2. **License Grant**: Subject to the terms of this Agreement, Mycelium grants Provider a limited, non-exclusive, non-sublicensable, non-transferable, revocable license during the Term to use the Mycelium IP solely as necessary to offer the Certified Services.
9.3. **Restrictions**: Provider shall not (and shall not permit any third party to): (a) decompile, reverse engineer, disassemble, or otherwise attempt to derive the source code of any Covered ThreeFold Software (except to the extent such restrictions are prohibited by applicable law); (b) modify, adapt, or create derivative works of any ThreeFold IP; (c) remove, alter, or obscure any proprietary notices on ThreeFold IP; (d) use ThreeFold IP for any purpose not expressly permitted herein. 9.3. **Restrictions**: Provider shall not (and shall not permit any third party to): (a) decompile, reverse engineer, disassemble, or otherwise attempt to derive the source code of any Covered Mycelium Software (except to the extent such restrictions are prohibited by applicable law); (b) modify, adapt, or create derivative works of any Mycelium IP; (c) remove, alter, or obscure any proprietary notices on Mycelium IP; (d) use Mycelium IP for any purpose not expressly permitted herein.
9.4. **Provider IP**: Provider retains all right, title, and interest in and to its own intellectual property developed independently of this Agreement ("Provider IP"). 9.4. **Provider IP**: Provider retains all right, title, and interest in and to its own intellectual property developed independently of this Agreement ("Provider IP").
## 10. Confidentiality ## 10. Confidentiality
10.1. "Confidential Information" means any non-public information disclosed by one Party to the other, whether orally or in writing, that is designated as confidential or that reasonably should be understood to be confidential given the nature of the information and the circumstances of disclosure. ThreeFold's Confidential Information includes the Covered ThreeFold Software (in source code form, if accessed), and non-public technical or business information. Provider's Confidential Information includes its non-public customer data and business plans. 10.1. "Confidential Information" means any non-public information disclosed by one Party to the other, whether orally or in writing, that is designated as confidential or that reasonably should be understood to be confidential given the nature of the information and the circumstances of disclosure. Mycelium's Confidential Information includes the Covered Mycelium Software (in source code form, if accessed), and non-public technical or business information. Provider's Confidential Information includes its non-public customer data and business plans.
10.2. Each Party agrees to: (a) use Confidential Information of the other Party solely for the purposes of this Agreement; (b) not disclose such Confidential Information to any third party without the other Party's prior written consent, except to employees, agents, or contractors who have a need to know and are bound by confidentiality obligations at least as restrictive as those herein; and (c) protect such Confidential Information from unauthorized use or disclosure using the same degree of care it uses for its own similar information, but not less than reasonable care. 10.2. Each Party agrees to: (a) use Confidential Information of the other Party solely for the purposes of this Agreement; (b) not disclose such Confidential Information to any third party without the other Party's prior written consent, except to employees, agents, or contractors who have a need to know and are bound by confidentiality obligations at least as restrictive as those herein; and (c) protect such Confidential Information from unauthorized use or disclosure using the same degree of care it uses for its own similar information, but not less than reasonable care.
@@ -168,11 +168,11 @@ To receive Support Services, Provider must:
a. Materially breaches any provision of this Agreement and fails to cure such breach within [e.g., thirty (30) days] of receiving written notice thereof; a. Materially breaches any provision of this Agreement and fails to cure such breach within [e.g., thirty (30) days] of receiving written notice thereof;
b. Becomes insolvent, makes an assignment for the benefit of creditors, or if a receiver or trustee is appointed for it or its assets. b. Becomes insolvent, makes an assignment for the benefit of creditors, or if a receiver or trustee is appointed for it or its assets.
11.3. **Termination by ThreeFold**: ThreeFold may terminate this Agreement immediately upon written notice if the Provider fails to maintain its ThreeFold Certification status, or fails to pay License Fees when due and does not cure such non-payment within [e.g., ten (10) days] of notice. 11.3. **Termination by Mycelium**: Mycelium may terminate this Agreement immediately upon written notice if the Provider fails to maintain its Mycelium Certification status, or fails to pay License Fees when due and does not cure such non-payment within [e.g., ten (10) days] of notice.
11.4. **Effect of Termination**: Upon termination or expiration of this Agreement: 11.4. **Effect of Termination**: Upon termination or expiration of this Agreement:
a. All licenses granted hereunder shall immediately terminate. a. All licenses granted hereunder shall immediately terminate.
b. Provider shall cease all use of Covered ThreeFold Software and ThreeFold IP. b. Provider shall cease all use of Covered Mycelium Software and Mycelium IP.
c. Provider shall promptly pay any outstanding License Fees accrued up to the date of termination. c. Provider shall promptly pay any outstanding License Fees accrued up to the date of termination.
d. Each Party shall return or destroy (at the other Party's option) all Confidential Information of the other Party in its possession. d. Each Party shall return or destroy (at the other Party's option) all Confidential Information of the other Party in its possession.
e. Sections 7 (for accrued fees), 9, 10, 12, 13, 14, and any other provisions that by their nature should survive, shall survive termination. e. Sections 7 (for accrued fees), 9, 10, 12, 13, 14, and any other provisions that by their nature should survive, shall survive termination.
@@ -199,7 +199,7 @@ To receive Support Services, Provider must:
14.1. **Notices**: All notices, requests, consents, claims, demands, waivers, and other communications hereunder shall be in writing and addressed to the Parties at the addresses set forth on the first page of this Agreement (or to such other address that may be designated by the receiving Party from time to time). Notices shall be deemed effectively given: (a) when received, if delivered by hand; (b) when received, if sent by a nationally recognized overnight courier (receipt requested); (c) on the date sent by email (with confirmation of transmission), if sent during normal business hours of the recipient, and on the next business day, if sent after normal business hours of the recipient. 14.1. **Notices**: All notices, requests, consents, claims, demands, waivers, and other communications hereunder shall be in writing and addressed to the Parties at the addresses set forth on the first page of this Agreement (or to such other address that may be designated by the receiving Party from time to time). Notices shall be deemed effectively given: (a) when received, if delivered by hand; (b) when received, if sent by a nationally recognized overnight courier (receipt requested); (c) on the date sent by email (with confirmation of transmission), if sent during normal business hours of the recipient, and on the next business day, if sent after normal business hours of the recipient.
14.2. **Assignment**: Neither Party may assign or transfer any of its rights or delegate any of its obligations hereunder, in whole or in part, by operation of law or otherwise, without the prior written consent of the other Party, which consent shall not be unreasonably withheld or delayed. Notwithstanding the foregoing, ThreeFold may assign this Agreement in its entirety, without consent of the Provider, in connection with a merger, acquisition, corporate reorganization, or sale of all or substantially all of its assets. 14.2. **Assignment**: Neither Party may assign or transfer any of its rights or delegate any of its obligations hereunder, in whole or in part, by operation of law or otherwise, without the prior written consent of the other Party, which consent shall not be unreasonably withheld or delayed. Notwithstanding the foregoing, Mycelium may assign this Agreement in its entirety, without consent of the Provider, in connection with a merger, acquisition, corporate reorganization, or sale of all or substantially all of its assets.
14.3. **Force Majeure**: Neither Party shall be liable or responsible to the other Party, nor be deemed to have defaulted under or breached this Agreement, for any failure or delay in fulfilling or performing any term of this Agreement (except for any obligations to make payments), when and to the extent such failure or delay is caused by or results from acts beyond the impacted Party's reasonable control, including, without limitation: acts of God; flood, fire, earthquake, or explosion; war, invasion, hostilities, terrorist threats or acts, riot, or other civil unrest; actions, embargoes, or blockades in effect on or after the date of this Agreement; national or regional emergency; strikes, labor stoppages or slowdowns, or other industrial disturbances; or shortage of adequate power or telecommunications. 14.3. **Force Majeure**: Neither Party shall be liable or responsible to the other Party, nor be deemed to have defaulted under or breached this Agreement, for any failure or delay in fulfilling or performing any term of this Agreement (except for any obligations to make payments), when and to the extent such failure or delay is caused by or results from acts beyond the impacted Party's reasonable control, including, without limitation: acts of God; flood, fire, earthquake, or explosion; war, invasion, hostilities, terrorist threats or acts, riot, or other civil unrest; actions, embargoes, or blockades in effect on or after the date of this Agreement; national or regional emergency; strikes, labor stoppages or slowdowns, or other industrial disturbances; or shortage of adequate power or telecommunications.
@@ -211,23 +211,23 @@ To receive Support Services, Provider must:
14.7. **Relationship of the Parties**: The relationship between the Parties is that of independent contractors. Nothing contained in this Agreement shall be construed as creating any agency, partnership, joint venture, or other form of joint enterprise, employment, or fiduciary relationship between the Parties. 14.7. **Relationship of the Parties**: The relationship between the Parties is that of independent contractors. Nothing contained in this Agreement shall be construed as creating any agency, partnership, joint venture, or other form of joint enterprise, employment, or fiduciary relationship between the Parties.
## 15. Appendix A: Covered ThreeFold Software (Indicative List) ## 15. Appendix A: Covered Mycelium Software (Indicative List)
* As defined in Section 2.2: "All software deployed or made available by ThreeFold via the official TF Grid marketplace and utilized by the Provider in their provision of Certified Services." * As defined in Section 2.2: "All software deployed or made available by Mycelium via the official TF Grid marketplace and utilized by the Provider in their provision of Certified Services."
* Key examples include (but are not limited to): * Key examples include (but are not limited to):
* Zero-OS (ZOS) - All versions officially supported by ThreeFold. * Zero-OS (ZOS) - All versions officially supported by Mycelium.
* Mycelium Core Networking Components - All versions officially supported by ThreeFold. * Mycelium Core Networking Components - All versions officially supported by Mycelium.
* Official TF Grid Marketplace Platform Software (components directly managed by ThreeFold). * Official TF Grid Marketplace Platform Software (components directly managed by Mycelium).
* and other software as used in TF Grid * and other software as used in TF Grid
* This list may be updated by ThreeFold upon reasonable notice to the Provider, typically coinciding with new software releases or deprecations. * This list may be updated by Mycelium upon reasonable notice to the Provider, typically coinciding with new software releases or deprecations.
## 16. Appendix B: Support Contact Information & Escalation Matrix ## 16. Appendix B: Support Contact Information & Escalation Matrix
**ThreeFold Support Contact for Certified Providers:** **Mycelium Support Contact for Certified Providers:**
* Primary Support Portal/Email: [e.g., support.certified@threefold.io or TBD link to portal] * Primary Support Portal/Email: [e.g., support.certified@threefold.io or TBD link to portal]
**ThreeFold Escalation Matrix:** **Mycelium Escalation Matrix:**
* **Level 1:** Standard Support Request via Portal/Email. * **Level 1:** Standard Support Request via Portal/Email.
* **Level 2:** If S1/S2 response/resolution targets are missed, or for critical concerns: * **Level 2:** If S1/S2 response/resolution targets are missed, or for critical concerns:
@@ -238,12 +238,12 @@ To receive Support Services, Provider must:
* Escalation Contact Name/Role: [e.g., VP of Engineering/Operations] * Escalation Contact Name/Role: [e.g., VP of Engineering/Operations]
* Escalation Email: [e.g., exec-escalation@threefold.io] * Escalation Email: [e.g., exec-escalation@threefold.io]
(This Appendix will be populated with specific, current contact details by ThreeFold upon execution of the Agreement.) (This Appendix will be populated with specific, current contact details by Mycelium upon execution of the Agreement.)
--- ---
**IN WITNESS WHEREOF**, the Parties hereto have executed this Service and Node Provider Agreement as of the Effective Date. **IN WITNESS WHEREOF**, the Parties hereto have executed this Service and Node Provider Agreement as of the Effective Date.
**ThreeFold NV** **Mycelium NV**
By: _________________________ By: _________________________

View File

@@ -10,9 +10,9 @@ Each slice has
- min uptime (guaranteed by the provider, will lose TFP points if not achieved) - min uptime (guaranteed by the provider, will lose TFP points if not achieved)
- min bandiwdth (guaranteed by the provider) - min bandiwdth (guaranteed by the provider)
- passmark - passmark
- reputation (as build up over time and measured by the ThreeFold system) - reputation (as build up over time and measured by the Mycelium system)
- optional: public IP address (v6 or v4) - optional: public IP address (v6 or v4)
- optional: certification flag (indicates the slice is provided by a [certified](./certified.md) farmer with ThreeFold support) - optional: certification flag (indicates the slice is provided by a [certified](./certified.md) farmer with Mycelium support)
- pricing in [TFP](./tfp.md) per hour/day/month/year (farmer can change the price) - pricing in [TFP](./tfp.md) per hour/day/month/year (farmer can change the price)
The farmer has lot of freedom to define these oaraneters The farmer has lot of freedom to define these oaraneters

View File

@@ -1,13 +1,13 @@
# TFP # TFP
- TFP = TFPoint - TFP = TFPoint
- TFT = ThreeFold Token - TFT = Mycelium Token
- PEAQ = the DePIN token from the Peaq Network System - PEAQ = the DePIN token from the Peaq Network System
## TFP Price and Value ## TFP Price and Value
- 1 TFP = 0.1 USD (fixed price) - 1 TFP = 0.1 USD (fixed price)
- TFP serves as a stable medium of exchange within the ThreeFold ecosystem - TFP serves as a stable medium of exchange within the Mycelium ecosystem
## Liquidity Pools ## Liquidity Pools
@@ -16,16 +16,16 @@ The following liquidity pools enable exchange between TFP and other currencies:
### Fiat - TFP Pool ### Fiat - TFP Pool
- Users can purchase TFP with fiat currency (USD, EUR, etc.) - Users can purchase TFP with fiat currency (USD, EUR, etc.)
- The exchange rate is fixed at 0.1 USD per TFP - The exchange rate is fixed at 0.1 USD per TFP
- Provides direct entry into the ThreeFold ecosystem for new users - Provides direct entry into the Mycelium ecosystem for new users
### TFP - TFT Pool ### TFP - TFT Pool
- Allows exchange between TFP and ThreeFold Tokens (TFT) - Allows exchange between TFP and Mycelium Tokens (TFT)
- Enables token holders to utilize the marketplace - Enables token holders to utilize the marketplace
- Exchange rates will follow market dynamics - Exchange rates will follow market dynamics
### TFP - PEAQ Pool ### TFP - PEAQ Pool
- Facilitates exchange between TFP and PEAQ tokens - Facilitates exchange between TFP and PEAQ tokens
- Connects the Peaq Network ecosystem with ThreeFold - Connects the Peaq Network ecosystem with Mycelium
- Exchange rates will follow market dynamics - Exchange rates will follow market dynamics

View File

@@ -4471,7 +4471,7 @@ impl DashboardController {
// Generate text agreement content // Generate text agreement content
let agreement_content = format!( let agreement_content = format!(
"SERVICE PROVIDER AGREEMENT\n\n\ "SERVICE PROVIDER AGREEMENT\n\n\
ThreeFold Grid Service Provider Agreement\n\ Mycelium Grid Service Provider Agreement\n\
\n\ \n\
Service Provider: {}\n\ Service Provider: {}\n\
Agreement Date: January 15, 2025\n\ Agreement Date: January 15, 2025\n\
@@ -4479,7 +4479,7 @@ impl DashboardController {
Status: Active\n\ Status: Active\n\
\n\ \n\
This agreement outlines the terms and conditions for providing services\n\ This agreement outlines the terms and conditions for providing services\n\
on the ThreeFold Grid platform.\n\ on the Mycelium Grid platform.\n\
\n\ \n\
Terms:\n\ Terms:\n\
1. Service Quality Standards\n\ 1. Service Quality Standards\n\
@@ -6329,7 +6329,7 @@ impl DashboardController {
} }
} }
/// Sync resource_provider nodes with ThreeFold Grid /// Sync resource_provider nodes with Mycelium Grid
pub async fn sync_with_grid(session: Session) -> Result<impl Responder> { pub async fn sync_with_grid(session: Session) -> Result<impl Responder> {
// Check authentication // Check authentication
if let Err(response) = Self::check_authentication(&session) { if let Err(response) = Self::check_authentication(&session) {
@@ -6339,7 +6339,7 @@ impl DashboardController {
// Mock sync operation // Mock sync operation
let sync_result = serde_json::json!({ let sync_result = serde_json::json!({
"success": true, "success": true,
"message": "Successfully synced with ThreeFold Grid", "message": "Successfully synced with Mycelium Grid",
"nodes_updated": 3, "nodes_updated": 3,
"new_nodes_found": 1, "new_nodes_found": 1,
"sync_timestamp": chrono::Utc::now().to_rfc3339() "sync_timestamp": chrono::Utc::now().to_rfc3339()
@@ -6803,7 +6803,7 @@ impl DashboardController {
} }
} }
/// API endpoint to sync with ThreeFold Grid /// API endpoint to sync with Mycelium Grid
pub async fn sync_with_grid_api(session: Session) -> Result<impl Responder> { pub async fn sync_with_grid_api(session: Session) -> Result<impl Responder> {
let user_email = session.get::<String>("user_email") let user_email = session.get::<String>("user_email")
@@ -6834,13 +6834,13 @@ impl DashboardController {
Ok(ResponseBuilder::ok().json(serde_json::json!({ Ok(ResponseBuilder::ok().json(serde_json::json!({
"success": true, "success": true,
"message": format!("Successfully synced {} nodes with ThreeFold Grid", synced_nodes), "message": format!("Successfully synced {} nodes with Mycelium Grid", synced_nodes),
"synced_nodes": synced_nodes "synced_nodes": synced_nodes
})).build()) })).build())
} }
Err(e) => { Err(e) => {
Ok(ResponseBuilder::internal_error().json(serde_json::json!({ Ok(ResponseBuilder::internal_error().json(serde_json::json!({
"error": "Failed to sync with ThreeFold Grid", "error": "Failed to sync with Mycelium Grid",
"details": e.to_string() "details": e.to_string()
})).build()) })).build())
} }

View File

@@ -1,4 +1,4 @@
//! Grid service for ThreeFold Grid integration //! Grid service for Mycelium Grid integration
//! Handles fetching node data from gridproxy API //! Handles fetching node data from gridproxy API
use crate::models::user::{GridNodeData, NodeCapacity}; use crate::models::user::{GridNodeData, NodeCapacity};
@@ -44,7 +44,7 @@ pub struct GridProxyResources {
pub hru: u64, // HDD storage in bytes pub hru: u64, // HDD storage in bytes
} }
/// Service for ThreeFold Grid operations /// Service for Mycelium Grid operations
#[derive(Clone)] #[derive(Clone)]
pub struct GridService { pub struct GridService {
gridproxy_url: String, gridproxy_url: String,
@@ -86,7 +86,7 @@ impl GridService {
GridServiceBuilder::new() GridServiceBuilder::new()
} }
/// Fetch node data from ThreeFold Grid /// Fetch node data from Mycelium Grid
pub async fn fetch_node_data(&self, node_id: u32) -> Result<GridNodeData, String> { pub async fn fetch_node_data(&self, node_id: u32) -> Result<GridNodeData, String> {
// Try to fetch from real API first, fall back to mock data // Try to fetch from real API first, fall back to mock data
match self.fetch_real_node_data(node_id).await { match self.fetch_real_node_data(node_id).await {

View File

@@ -238,7 +238,7 @@ impl ResourceProviderService {
Ok(node) Ok(node)
} }
/// Add a new node from ThreeFold Grid (automatic creation with real data) /// Add a new node from Mycelium Grid (automatic creation with real data)
pub async fn add_node_from_grid(&self, user_email: &str, grid_node_id: u32) -> Result<FarmNode, String> { pub async fn add_node_from_grid(&self, user_email: &str, grid_node_id: u32) -> Result<FarmNode, String> {
// Load existing data and check for duplicates more thoroughly // Load existing data and check for duplicates more thoroughly
let mut persistent_data = UserPersistence::load_user_data(user_email) let mut persistent_data = UserPersistence::load_user_data(user_email)
@@ -1285,7 +1285,7 @@ impl ResourceProviderService {
// GRID NODE MANAGEMENT // GRID NODE MANAGEMENT
// ============================================================================= // =============================================================================
/// Add a node from ThreeFold Grid by node ID /// Add a node from Mycelium Grid by node ID
pub async fn add_grid_node(&self, user_email: &str, grid_node_id: u32, _slice_format: Option<String>, _slice_price: Option<Decimal>) -> Result<FarmNode, String> { pub async fn add_grid_node(&self, user_email: &str, grid_node_id: u32, _slice_format: Option<String>, _slice_price: Option<Decimal>) -> Result<FarmNode, String> {
// Check for duplicate grid node IDs first // Check for duplicate grid node IDs first
let existing_nodes = self.get_resource_provider_nodes(user_email); let existing_nodes = self.get_resource_provider_nodes(user_email);
@@ -1295,7 +1295,7 @@ impl ResourceProviderService {
// Validate node exists on grid // Validate node exists on grid
if !self.grid_service.validate_node_exists(grid_node_id).await? { if !self.grid_service.validate_node_exists(grid_node_id).await? {
return Err(format!("Node {} does not exist on ThreeFold Grid", grid_node_id)); return Err(format!("Node {} does not exist on Mycelium Grid", grid_node_id));
} }
// Fetch node data from grid // Fetch node data from grid
@@ -1352,7 +1352,7 @@ impl ResourceProviderService {
// Validate and fetch grid data // Validate and fetch grid data
if !self.grid_service.validate_node_exists(grid_node_id).await.map_err(|e| e.to_string())? { if !self.grid_service.validate_node_exists(grid_node_id).await.map_err(|e| e.to_string())? {
return Err(format!("Node {} does not exist on ThreeFold Grid", grid_node_id)); return Err(format!("Node {} does not exist on Mycelium Grid", grid_node_id));
} }
let grid_data = self.grid_service.fetch_node_data(grid_node_id).await.map_err(|e| e.to_string())?; let grid_data = self.grid_service.fetch_node_data(grid_node_id).await.map_err(|e| e.to_string())?;
@@ -2314,7 +2314,7 @@ impl ResourceProviderService {
Ok(()) Ok(())
} }
/// Sync all nodes with ThreeFold Grid /// Sync all nodes with Mycelium Grid
pub fn sync_all_nodes_with_grid(&self, user_email: &str) -> Result<u32, String> { pub fn sync_all_nodes_with_grid(&self, user_email: &str) -> Result<u32, String> {
let mut persistent_data = UserPersistence::load_user_data(user_email) let mut persistent_data = UserPersistence::load_user_data(user_email)
.ok_or("User data not found")?; .ok_or("User data not found")?;
@@ -2479,7 +2479,7 @@ impl ResourceProviderService {
pub async fn fetch_and_validate_grid_node(&self, grid_node_id: u32) -> Result<crate::models::user::GridNodeData, String> { pub async fn fetch_and_validate_grid_node(&self, grid_node_id: u32) -> Result<crate::models::user::GridNodeData, String> {
// Validate node exists on grid // Validate node exists on grid
if !self.grid_service.validate_node_exists(grid_node_id).await? { if !self.grid_service.validate_node_exists(grid_node_id).await? {
return Err(format!("Node {} does not exist on ThreeFold Grid", grid_node_id)); return Err(format!("Node {} does not exist on Mycelium Grid", grid_node_id));
} }
// Fetch node data from grid // Fetch node data from grid
@@ -2852,7 +2852,7 @@ impl ResourceProviderService {
Ok(updated_count) Ok(updated_count)
} }
/// Sync all nodes with ThreeFold Grid (async version) /// Sync all nodes with Mycelium Grid (async version)
pub async fn sync_all_nodes_with_grid_async(&self, user_email: &str) -> Result<u32, String> { pub async fn sync_all_nodes_with_grid_async(&self, user_email: &str) -> Result<u32, String> {
let mut persistent_data = UserPersistence::load_user_data(user_email) let mut persistent_data = UserPersistence::load_user_data(user_email)
.ok_or("User data not found")?; .ok_or("User data not found")?;

View File

@@ -183,8 +183,8 @@
} }
function shareCart() { function shareCart() {
const shareData = { const shareData = {
title: 'My ThreeFold Cart', title: 'My Mycelium Cart',
text: 'Check out my ThreeFold marketplace cart', text: 'Check out my Mycelium marketplace cart',
url: window.location.href url: window.location.href
}; };
if (navigator.share) { if (navigator.share) {

View File

@@ -712,7 +712,7 @@ function monitorDeployment(deploymentId) {
} }
function supportDeployment(deploymentId, customerName) { function supportDeployment(deploymentId, customerName) {
showThreeFoldSupportModal(deploymentId, customerName); showMyceliumSupportModal(deploymentId, customerName);
} }
// Register New Application Function // Register New Application Function
@@ -1248,7 +1248,7 @@ function showDeploymentDetailsModal(deployment, appName) {
} }
// ThreeFold Support Modal // ThreeFold Support Modal
function showThreeFoldSupportModal(deploymentId, customerName) { function showMyceliumSupportModal(deploymentId, customerName) {
const modalHtml = ` const modalHtml = `
<div class="modal fade" id="threeFoldSupportModal" tabindex="-1" aria-labelledby="threeFoldSupportModalLabel" aria-hidden="true"> <div class="modal fade" id="threeFoldSupportModal" tabindex="-1" aria-labelledby="threeFoldSupportModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg"> <div class="modal-dialog modal-lg">
@@ -1265,7 +1265,7 @@ function showThreeFoldSupportModal(deploymentId, customerName) {
</style> </style>
<div class="modal-header bg-primary text-white"> <div class="modal-header bg-primary text-white">
<h5 class="modal-title" id="threeFoldSupportModalLabel"> <h5 class="modal-title" id="threeFoldSupportModalLabel">
<i class="bi bi-headset me-2"></i>ThreeFold Grid Support <i class="bi bi-headset me-2"></i>Mycelium Grid Support
</h5> </h5>
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
@@ -1275,7 +1275,7 @@ function showThreeFoldSupportModal(deploymentId, customerName) {
<i class="bi bi-grid-3x3-gap-fill text-primary" style="font-size: 2rem;"></i> <i class="bi bi-grid-3x3-gap-fill text-primary" style="font-size: 2rem;"></i>
</div> </div>
<h4 class="text-primary">Need Help with Your Deployment?</h4> <h4 class="text-primary">Need Help with Your Deployment?</h4>
<p class="text-muted">We're here to support you with any ThreeFold Grid related issues</p> <p class="text-muted">We're here to support you with any Mycelium Grid related issues</p>
</div> </div>
<div class="row mb-2"> <div class="row mb-2">
@@ -1357,7 +1357,7 @@ function closeViewAndOpenSupport(deploymentId, customerName) {
// Small delay to ensure the first modal is closed before opening the second // Small delay to ensure the first modal is closed before opening the second
setTimeout(() => { setTimeout(() => {
showThreeFoldSupportModal(deploymentId, customerName); showMyceliumSupportModal(deploymentId, customerName);
}, 300); }, 300);
} }

View File

@@ -131,10 +131,10 @@ function validateSlicePrice(event) {
} }
/** /**
* Validate nodes by fetching data from ThreeFold Grid * Validate nodes by fetching data from Mycelium Grid
*/ */
function validateNodes() { function validateNodes() {
console.log('🔍 Validating nodes from ThreeFold Grid'); console.log('🔍 Validating nodes from Mycelium Grid');
// Prevent validation if nodes are being added // Prevent validation if nodes are being added
const addBtn = document.getElementById('addNodesBtn'); const addBtn = document.getElementById('addNodesBtn');

View File

@@ -2816,13 +2816,13 @@ function viewAgreement() {
<div class="modal-dialog modal-xl"> <div class="modal-dialog modal-xl">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title" id="viewAgreementModalLabel">ThreeFold Service Provider Agreement</h5> <h5 class="modal-title" id="viewAgreementModalLabel">Mycelium Service Provider Agreement</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body" style="max-height: 70vh; overflow-y: auto;"> <div class="modal-body" style="max-height: 70vh; overflow-y: auto;">
<div class="agreement-content"> <div class="agreement-content">
<h6>1. Agreement Overview</h6> <h6>1. Agreement Overview</h6>
<p>This Service Provider Agreement ("Agreement") is entered into between ThreeFold and the Service Provider for the provision of professional services through the ThreeFold marketplace platform.</p> <p>This Service Provider Agreement ("Agreement") is entered into between Mycelium and the Service Provider for the provision of professional services through the Mycelium marketplace platform.</p>
<h6>2. Service Provider Obligations</h6> <h6>2. Service Provider Obligations</h6>
<ul> <ul>
@@ -2833,7 +2833,7 @@ function viewAgreement() {
</ul> </ul>
<h6>3. Payment Terms</h6> <h6>3. Payment Terms</h6>
<p>Payments will be processed through the ThreeFold platform using USD Credits. Service providers will receive payment upon successful completion of services as verified by the client.</p> <p>Payments will be processed through the Mycelium platform using USD Credits. Service providers will receive payment upon successful completion of services as verified by the client.</p>
<h6>4. Quality Standards</h6> <h6>4. Quality Standards</h6>
<p>Service providers must maintain a minimum rating of 4.0 stars and respond to service requests within 24 hours unless otherwise specified in their service offerings.</p> <p>Service providers must maintain a minimum rating of 4.0 stars and respond to service requests within 24 hours unless otherwise specified in their service offerings.</p>
@@ -2862,7 +2862,7 @@ function downloadAgreement() {
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>Service Provider Agreement - ThreeFold</title> <title>Service Provider Agreement - Mycelium</title>
<style> <style>
@media print { @media print {
.no-print { display: none !important; } .no-print { display: none !important; }
@@ -2889,7 +2889,7 @@ function downloadAgreement() {
<body> <body>
<div class="agreement-content"> <div class="agreement-content">
<div class="header"> <div class="header">
<h1>ThreeFold Service Provider Agreement</h1> <h1>Mycelium Service Provider Agreement</h1>
<p><strong>Agreement Date:</strong> ${new Date().toLocaleDateString()}</p> <p><strong>Agreement Date:</strong> ${new Date().toLocaleDateString()}</p>
<p><strong>Provider:</strong> Service Provider</p> <p><strong>Provider:</strong> Service Provider</p>
<p><strong>Agreement ID:</strong> SPA-${Date.now()}</p> <p><strong>Agreement ID:</strong> SPA-${Date.now()}</p>
@@ -2897,7 +2897,7 @@ function downloadAgreement() {
<div class="section"> <div class="section">
<h2>1. Service Provider Terms</h2> <h2>1. Service Provider Terms</h2>
<p>This Service Provider Agreement ("Agreement") is entered into between ThreeFold and the Service Provider for the provision of services on the ThreeFold marketplace platform.</p> <p>This Service Provider Agreement ("Agreement") is entered into between Mycelium and the Service Provider for the provision of services on the Mycelium marketplace platform.</p>
</div> </div>
<div class="section"> <div class="section">
@@ -2913,29 +2913,29 @@ function downloadAgreement() {
<div class="section"> <div class="section">
<h2>3. Payment Terms</h2> <h2>3. Payment Terms</h2>
<p>Payment for services will be processed through the ThreeFold platform using USD Credits. The Service Provider agrees to the platform's payment processing terms and fee structure.</p> <p>Payment for services will be processed through the Mycelium platform using USD Credits. The Service Provider agrees to the platform's payment processing terms and fee structure.</p>
</div> </div>
<div class="section"> <div class="section">
<h2>4. Quality Standards</h2> <h2>4. Quality Standards</h2>
<p>All services must meet ThreeFold's quality standards and client expectations. The Service Provider is responsible for maintaining a professional reputation and delivering high-quality work.</p> <p>All services must meet Mycelium's quality standards and client expectations. The Service Provider is responsible for maintaining a professional reputation and delivering high-quality work.</p>
</div> </div>
<div class="section"> <div class="section">
<h2>5. Dispute Resolution</h2> <h2>5. Dispute Resolution</h2>
<p>Any disputes arising from this agreement will be resolved through ThreeFold's dispute resolution process, with mediation as the preferred method.</p> <p>Any disputes arising from this agreement will be resolved through Mycelium's dispute resolution process, with mediation as the preferred method.</p>
</div> </div>
<div class="section"> <div class="section">
<h2>6. Termination</h2> <h2>6. Termination</h2>
<p>Either party may terminate this agreement with 30 days written notice. ThreeFold reserves the right to terminate immediately for violations of platform terms.</p> <p>Either party may terminate this agreement with 30 days written notice. Mycelium reserves the right to terminate immediately for violations of platform terms.</p>
</div> </div>
<div class="signature-section"> <div class="signature-section">
<h2>7. Agreement Acceptance</h2> <h2>7. Agreement Acceptance</h2>
<p>By using the ThreeFold service provider platform, you acknowledge that you have read, understood, and agree to be bound by the terms of this agreement.</p> <p>By using the Mycelium service provider platform, you acknowledge that you have read, understood, and agree to be bound by the terms of this agreement.</p>
<br> <br>
<p><strong>ThreeFold Foundation</strong></p> <p><strong>Mycelium Foundation</strong></p>
<p>Date: ${new Date().toLocaleDateString()}</p> <p>Date: ${new Date().toLocaleDateString()}</p>
<br> <br>
<p><strong>Service Provider Signature:</strong> _________________________</p> <p><strong>Service Provider Signature:</strong> _________________________</p>

View File

@@ -1,13 +1,13 @@
// Demo Workflow JavaScript // Demo Workflow JavaScript
// This file provides a comprehensive demo of the ThreeFold Dashboard functionality // This file provides a comprehensive demo of the Mycelium Dashboard functionality
class DemoWorkflow { class DemoWorkflow {
constructor() { constructor() {
this.currentStep = 0; this.currentStep = 0;
this.steps = [ this.steps = [
{ {
title: "Welcome to ThreeFold Dashboard Demo", title: "Welcome to Mycelium Dashboard Demo",
description: "This demo will showcase the complete interactive functionality of the ThreeFold ecosystem.", description: "This demo will showcase the complete interactive functionality of the Mycelium ecosystem.",
action: () => this.showWelcome() action: () => this.showWelcome()
}, },
{ {
@@ -42,7 +42,7 @@ class DemoWorkflow {
}, },
{ {
title: "Demo Complete", title: "Demo Complete",
description: "You've seen the complete ThreeFold ecosystem in action!", description: "You've seen the complete Mycelium ecosystem in action!",
action: () => this.showCompletion() action: () => this.showCompletion()
} }
]; ];
@@ -75,14 +75,14 @@ class DemoWorkflow {
demoPanel.innerHTML = ` demoPanel.innerHTML = `
<div class="demo-header"> <div class="demo-header">
<h5 class="mb-2">🚀 ThreeFold Demo</h5> <h5 class="mb-2">🚀 Mycelium Demo</h5>
<div class="progress mb-3" style="height: 6px;"> <div class="progress mb-3" style="height: 6px;">
<div class="progress-bar bg-primary" id="demo-progress" role="progressbar" style="width: 0%"></div> <div class="progress-bar bg-primary" id="demo-progress" role="progressbar" style="width: 0%"></div>
</div> </div>
</div> </div>
<div class="demo-content"> <div class="demo-content">
<h6 id="demo-title">Welcome to ThreeFold Dashboard Demo</h6> <h6 id="demo-title">Welcome to Mycelium Dashboard Demo</h6>
<p id="demo-description" class="text-muted small">This demo will showcase the complete interactive functionality of the ThreeFold ecosystem.</p> <p id="demo-description" class="text-muted small">This demo will showcase the complete interactive functionality of the Mycelium ecosystem.</p>
</div> </div>
<div class="demo-controls mt-3"> <div class="demo-controls mt-3">
<button class="btn btn-primary btn-sm me-2" id="demo-next">Start Demo</button> <button class="btn btn-primary btn-sm me-2" id="demo-next">Start Demo</button>
@@ -139,7 +139,7 @@ class DemoWorkflow {
} }
showWelcome() { showWelcome() {
showNotification('Welcome to the ThreeFold Dashboard Demo! 🎉', 'info'); showNotification('Welcome to the Mycelium Dashboard Demo! 🎉', 'info');
} }
demoAppRegistration() { demoAppRegistration() {
@@ -167,7 +167,7 @@ class DemoWorkflow {
fillAppRegistrationForm() { fillAppRegistrationForm() {
const formData = { const formData = {
appName: 'Demo Secure Chat App', appName: 'Demo Secure Chat App',
appDesc: 'A decentralized, end-to-end encrypted chat application built for the ThreeFold Grid', appDesc: 'A decentralized, end-to-end encrypted chat application built for the Mycelium Grid',
appCategory: 'communication', appCategory: 'communication',
appType: 'container', appType: 'container',
appRepo: 'https://github.com/demo/secure-chat', appRepo: 'https://github.com/demo/secure-chat',
@@ -219,8 +219,8 @@ class DemoWorkflow {
fillServiceCreationForm() { fillServiceCreationForm() {
const formData = { const formData = {
serviceName: 'Demo ThreeFold Migration Service', serviceName: 'Demo Mycelium Migration Service',
serviceDesc: 'Professional migration service to help businesses move their workloads to the ThreeFold Grid with zero downtime', serviceDesc: 'Professional migration service to help businesses move their workloads to the Mycelium Grid with zero downtime',
serviceCategory: 'migration', serviceCategory: 'migration',
serviceDelivery: 'hybrid', serviceDelivery: 'hybrid',
pricingType: 'hourly', pricingType: 'hourly',
@@ -228,7 +228,7 @@ class DemoWorkflow {
serviceExperience: 'expert', serviceExperience: 'expert',
availableHours: '30', availableHours: '30',
responseTime: '4', responseTime: '4',
serviceSkills: 'Docker, Kubernetes, ThreeFold Grid, Cloud Migration, DevOps' serviceSkills: 'Docker, Kubernetes, Mycelium Grid, Cloud Migration, DevOps'
}; };
Object.entries(formData).forEach(([key, value]) => { Object.entries(formData).forEach(([key, value]) => {
@@ -307,7 +307,7 @@ class DemoWorkflow {
} }
showCompletion() { showCompletion() {
showNotification('🎉 Demo completed! You\'ve experienced the full ThreeFold ecosystem.', 'success'); showNotification('🎉 Demo completed! You\'ve experienced the full Mycelium ecosystem.', 'success');
setTimeout(() => { setTimeout(() => {
this.closeDemo(); this.closeDemo();

View File

@@ -390,8 +390,8 @@ class MarketplaceIntegration {
{ {
id: 'ms-mock-1', id: 'ms-mock-1',
source_service_id: 'service-mock-1', source_service_id: 'service-mock-1',
name: 'ThreeFold Migration Service', name: 'Mycelium Migration Service',
description: 'Professional migration from cloud providers to ThreeFold Grid', description: 'Professional migration from cloud providers to Mycelium Grid',
category: 'Migration', category: 'Migration',
provider_id: mikeUser.id, provider_id: mikeUser.id,
provider_name: mikeUser.display_name, provider_name: mikeUser.display_name,

View File

@@ -16,7 +16,7 @@
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top"> <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
<div class="container"> <div class="container">
<a class="navbar-brand d-flex align-items-center" href="/"> <a class="navbar-brand d-flex align-items-center" href="/">
<img src="/static/images/logo_dark.png" alt="ThreeFold Logo" height="30" class="me-2"> <img src="/static/images/logo_dark.png" alt="Mycelium Logo" height="30" class="me-2">
<span>Project Mycelium</span> <span>Project Mycelium</span>
</a> </a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"

View File

@@ -5,7 +5,7 @@
{% block marketplace_content %} {% block marketplace_content %}
<div class="my-4"> <div class="my-4">
<h1>Professional Services</h1> <h1>Professional Services</h1>
<p class="lead">Expert services to help you succeed with ThreeFold technology and infrastructure.</p> <p class="lead">Expert services to help you succeed with Mycelium technology and infrastructure.</p>
<!-- Services Introduction --> <!-- Services Introduction -->
<div class="alert alert-info mb-4"> <div class="alert alert-info mb-4">
@@ -15,7 +15,7 @@
</div> </div>
<div> <div>
<h5 class="alert-heading">Professional Support & Services</h5> <h5 class="alert-heading">Professional Support & Services</h5>
<p>Our certified experts and trusted community providers offer comprehensive services to help you deploy, manage, and optimize your ThreeFold infrastructure and applications.</p> <p>Our certified experts and trusted community providers offer comprehensive services to help you deploy, manage, and optimize your Mycelium infrastructure and applications.</p>
<hr> <hr>
<p class="mb-0">From initial consultation to ongoing support, we ensure your success with decentralized technology.</p> <p class="mb-0">From initial consultation to ongoing support, we ensure your success with decentralized technology.</p>
</div> </div>
@@ -320,7 +320,7 @@
<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>Deployment & Setup</h5> <h5>Deployment & Setup</h5>
<p class="small text-muted">Professional deployment, configuration, and optimization of your ThreeFold infrastructure and applications.</p> <p class="small text-muted">Professional deployment, configuration, and optimization of your Mycelium infrastructure and applications.</p>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -5,7 +5,7 @@
//! //!
//! Operations Tested: //! Operations Tested:
//! 1. Compute Resources Category //! 1. Compute Resources Category
//! 2. ThreeFold Nodes Category //! 2. Mycelium Nodes Category
//! 3. Gateway Services Category //! 3. Gateway Services Category
//! 4. Applications Category //! 4. Applications Category
//! 5. Professional Services Category //! 5. Professional Services Category
@@ -99,8 +99,8 @@ async fn test_complete_marketplace_categories_ux_workflow() {
println!("✅ Compute Resources Category: WORKING - VM offerings and filtering available"); println!("✅ Compute Resources Category: WORKING - VM offerings and filtering available");
// Step 3: Test ThreeFold Nodes Category // Step 3: Test Mycelium Nodes Category
println!("\n🔧 Step 3: Test ThreeFold Nodes Category (/marketplace/nodes)"); println!("\n🔧 Step 3: Test Mycelium Nodes Category (/marketplace/nodes)");
// Simulate node browsing and information // Simulate node browsing and information
let node_categories = vec![ let node_categories = vec![
@@ -120,7 +120,7 @@ async fn test_complete_marketplace_categories_ux_workflow() {
println!(" 🌍 Node geographical locations shown"); println!(" 🌍 Node geographical locations shown");
println!(" 💰 Node pricing and farming rewards calculated"); println!(" 💰 Node pricing and farming rewards calculated");
println!("ThreeFold Nodes Category: WORKING - Node hardware and farming info available"); println!("Mycelium Nodes Category: WORKING - Node hardware and farming info available");
// Step 4: Test Gateway Services Category // Step 4: Test Gateway Services Category
println!("\n🔧 Step 4: Test Gateway Services Category (/marketplace/gateways)"); println!("\n🔧 Step 4: Test Gateway Services Category (/marketplace/gateways)");
@@ -174,11 +174,11 @@ async fn test_complete_marketplace_categories_ux_workflow() {
// Simulate professional services browsing // Simulate professional services browsing
let professional_services = vec![ let professional_services = vec![
("consulting", "ThreeFold implementation consulting", 150.0), ("consulting", "Mycelium implementation consulting", 150.0),
("development", "Custom application development", 100.0), ("development", "Custom application development", 100.0),
("migration", "Cloud migration services", 120.0), ("migration", "Cloud migration services", 120.0),
("support", "24/7 technical support services", 80.0), ("support", "24/7 technical support services", 80.0),
("training", "ThreeFold training and certification", 200.0), ("training", "Mycelium training and certification", 200.0),
]; ];
for (service_type, description, hourly_rate) in professional_services { for (service_type, description, hourly_rate) in professional_services {
@@ -228,7 +228,7 @@ async fn test_complete_marketplace_categories_ux_workflow() {
// Final verification // Final verification
println!("\n🎯 Marketplace Categories UX Workflow Test Results:"); println!("\n🎯 Marketplace Categories UX Workflow Test Results:");
println!("✅ Compute Resources Category - WORKING"); println!("✅ Compute Resources Category - WORKING");
println!("ThreeFold Nodes Category - WORKING"); println!("Mycelium Nodes Category - WORKING");
println!("✅ Gateway Services Category - WORKING"); println!("✅ Gateway Services Category - WORKING");
println!("✅ Applications Category - WORKING"); println!("✅ Applications Category - WORKING");
println!("✅ Professional Services Category - WORKING"); println!("✅ Professional Services Category - WORKING");
@@ -237,7 +237,7 @@ async fn test_complete_marketplace_categories_ux_workflow() {
println!("\n📋 Complete Marketplace Categories Experience Verified:"); println!("\n📋 Complete Marketplace Categories Experience Verified:");
println!(" • Users can browse and compare compute resources with detailed specs"); println!(" • Users can browse and compare compute resources with detailed specs");
println!(" • Users can explore ThreeFold nodes for farming and deployment"); println!(" • Users can explore Mycelium nodes for farming and deployment");
println!(" • Users can configure gateway services for network connectivity"); println!(" • Users can configure gateway services for network connectivity");
println!(" • Users can discover and deploy applications from marketplace"); println!(" • Users can discover and deploy applications from marketplace");
println!(" • Users can find and book professional services from experts"); println!(" • Users can find and book professional services from experts");

View File

@@ -190,7 +190,7 @@ async fn test_complete_provider_dashboards_ux_workflow() {
// Create test service provider profile // Create test service provider profile
let service_offerings = vec![ let service_offerings = vec![
("consulting", "ThreeFold Consulting", 150.0, 25, 4.8, "active"), ("consulting", "Mycelium Consulting", 150.0, 25, 4.8, "active"),
("development", "Custom Development", 120.0, 18, 4.6, "active"), ("development", "Custom Development", 120.0, 18, 4.6, "active"),
("migration", "Cloud Migration", 140.0, 12, 4.9, "active"), ("migration", "Cloud Migration", 140.0, 12, 4.9, "active"),
("support", "24/7 Technical Support", 80.0, 45, 4.7, "active"), ("support", "24/7 Technical Support", 80.0, 45, 4.7, "active"),

View File

@@ -122,7 +122,7 @@ async fn test_complete_public_access_ux_workflow() {
println!(" About page content accessible: {}", content); println!(" About page content accessible: {}", content);
assert!(!content.is_empty(), "About content should be meaningful"); assert!(!content.is_empty(), "About content should be meaningful");
} }
println!(" 🌍 ThreeFold ecosystem overview provided"); println!(" 🌍 Mycelium ecosystem overview provided");
println!(" 🏢 Company information and background accessible"); println!(" 🏢 Company information and background accessible");
println!("✅ About Page Access: WORKING - Complete company information accessible"); println!("✅ About Page Access: WORKING - Complete company information accessible");
}, &mut failures); }, &mut failures);
@@ -132,7 +132,7 @@ async fn test_complete_public_access_ux_workflow() {
let contact_methods = vec![ let contact_methods = vec![
("email", "support@threefold.io"), ("email", "support@threefold.io"),
("telegram", "@threefold_support"), ("telegram", "@threefold_support"),
("discord", "ThreeFold Community"), ("discord", "Mycelium Community"),
("github", "threefoldtech"), ("github", "threefoldtech"),
("documentation", "manual.grid.tf"), ("documentation", "manual.grid.tf"),
]; ];

View File

@@ -163,7 +163,7 @@ async fn run_complete_ux_test_suite() {
"User can consult comprehensive marketplace documentation".to_string(), "User can consult comprehensive marketplace documentation".to_string(),
"User can review privacy policy and data handling practices".to_string(), "User can review privacy policy and data handling practices".to_string(),
"User can review terms and conditions before registration".to_string(), "User can review terms and conditions before registration".to_string(),
"User can learn about ThreeFold marketplace mission and features".to_string(), "User can learn about Mycelium marketplace mission and features".to_string(),
"User can find support and contact information".to_string(), "User can find support and contact information".to_string(),
]) ])
}).await; }).await;