NuNet Q3 Technical Outlook
Greetings NuNetopians,
Recently, we unveiled our Q2 Technical Update blog, showcasing the progress our team achieved over the past quarter. As we shift our focus to the future, Q3 promises to be an exciting period as we prepare to release the Device Management Service (DMS) 0.5.x milestone.
This upcoming milestone is a significant leap forward, featuring a series of strategic releases across key areas:
- Infrastructure Enhancements: We’re introducing a robust feature environment, an advanced CI/CD pipeline, and a comprehensive test management system to ensure our platform’s reliability,scalability and open development.
- Comprehensive Documentation: The launch of our specification and documentation system, along with a project management portal, will provide clarity and facilitate seamless collaboration.
- Innovative Implementations: Implementation of the actor model, decentralized search and matching, dynamic method dispatching logic, local database interfaces, and much more.
This blog aims to inform our community by offering a detailed overview of the exciting updates and release process over the coming weeks.
Release Process
As NuNet progresses toward the highly anticipated release of Device Management Service (DMS) Version 0.5.x, we are excited to share the structured and comprehensive release process that ensures all developed functionalities are rigorously tested and refined. This milestone follows our general branching strategy, aimed at delivering a robust and reliable platform through a diligent sequence of release candidate builds and community collaboration. The following outlines the key phases of the release process.
Feature environment and CI/CD process launch
Our feature environment and CI/CD process are foundational elements in achieving release-level quality. These components have been under development for months and are nearing completion. While they are dynamic and will continue to evolve with the platform, we aim to launch them in the second half of August. This environment will support advanced testing, enabling us to identify and address issues early in the development cycle. Learn more about our feature environment here.
Documentation portal launch
The documentation portal, operational internally since late 2023, is set to be fully aligned with our specification and documentation process. This portal will be publicly launched in the coming weeks providing a centralized hub for all project documentation.
Project management portal launch
Our project management portal, which has been in use internally since Q4 2023, will be publicly launched in the second half of August. This portal will enhance transparency and collaboration, offering detailed insights into project milestones, work packages, and technical dependencies.
Release testing start
We will begin by merging the latest codebase, which includes the scoped features outlined below. This merge is scheduled for early September. Development will continue on and any improvements, hot fixes, and bug resolutions related to the frozen scope will be synchronized immediately with the release branch.
The release branch will undergo frequent builds aimed at rigorously testing the frozen scope of the release features. Although we aim for nightly builds, the frequency may vary. In addition to these regular builds, we will organize major upgrades of the release branch into structured release candidate builds.
Release candidates will be created from tagged states of the release branch and will primarily be used for managed community testing and feedback. We plan to build and test at least three release candidates before the final release. Each release candidate will feature the same scope of main functionalities, with progressively increasing features, quality and precision in their implementation. Besides feature testing, the release process will actively involve community developers, testers, and compute providers, leveraging our public test management, documentation, and project management portals, which will be launched before the release process starts.
Release candidate 1
- Scheduled for release on September 15, Release Candidate 1 will be tested publicly until October 15. This phase includes the integration of bug reports and their resolutions.
Release candidate 2
- Release Candidate 2 will be built and released on October 15, with public testing continuing until November 15. This period will focus on integrating bug reports and resolving issues.
Release candidate 3
- Release Candidate 3 will be released on November 15, with public testing running until December 15. This phase will involve thorough testing via the feature environment, augmented by community-provided hardware, and the integration of final bug reports.
Final Release
- After extensive testing and refinement of the frozen feature scope, the final release of DMS Version 0.5.x is scheduled for the last half of December 2024. This release will mark a significant milestone in the evolution of the NuNet platform, delivering enhanced functionalities and robust performance.
We are excited about the upcoming developments and the collaborative efforts that will bring DMS 0.5.x to fruition. Stay tuned for more updates as we approach this milestone and continue to push the boundaries of decentralized computing with NuNet.
The following section will discuss feature scope freezes for milestone releases.
Infrastructure
Feature Environment
The feature environment is a critical infrastructure designed to facilitate advanced testing and quality assurance. Comprising geographically distributed virtual machines connected via public internet, this environment allows for the execution of selected CI/CD pipeline stages automatically. It enables developers to test functionalities that require multiple machines running code simultaneously. Testing artifacts are collected and made accessible from centralized platforms like GitLab and Testmo ensuring comprehensive visibility across all scenarios and configurations. This environment not only supports internal development but also scales to community developers machines and future testnets, laying the groundwork for robust release management and enhancing the overall quality of our platform.
CI/CD Pipeline
Continuous Integration/Continuous Deployment (CI/CD) pipeline is a cornerstone of our development process, ensuring that all code changes are automatically tested and integrated with minimal configuration. Structured according to general test management and test matrix-based approaches, the CI/CD pipeline runs a comprehensive suite of tests across all environments. This includes unit tests, functional tests and security tests, each triggered by specific version control system events.
Each stage of the pipeline collects and publishes full test artifacts, providing easy access for developers, code reviewers, and QA teams through platforms like GitLab and Testmo. By integrating QA requirements directly into the pipeline, we ensure that all implemented functionalities meet our high standards of quality. This process not only supports the continuous evolution of our software but also enhances the overall reliability and performance of the NuNet platform.
Test Management
Our test management system is pivotal for maintaining the highest quality standards across our platform. This system is designed to define, manage, and evolve quality requirements and functionalities, ensuring that the software we release meets precisely defined criteria. By integrating visibility tools and connecting with our CI/CD and Security pipelines, the test management system provides a comprehensive framework for continuous quality assurance.
The implementation of this system allows both core team members and community developers to contribute to the testing process. The test management process is flexible, evolving alongside our codebase and incorporating inputs from various stages and frameworks, including unit tests and Gherkin-based tests.
This system addresses several key user challenges, including the need for a flexible, evolving testing framework and the integration of manual tests into a unified visibility platform. It supports the coordination of manual testing schedules and the incorporation of results into test artifacts, ensuring comprehensive test coverage. By enabling public access to test suite definitions, the system encourages active participation from community developers and testers, aligning with our contributors program.
Ultimately, the test management system ensures the consistent delivery of high-quality software, benefiting the NuNet development team, internal QA, and the broader user community. It indirectly enhances the quality of all platform features.
Documentation
Specification and documentation system
The Specification and Documentation System is a vital feature within the NuNet platform, designed to ensure comprehensive and accessible documentation for all NuNet repositories. This functionality supports the clarity, understanding, and coordination necessary for decentralized development and integration.
Implementation involves setting up a robust documentation process that includes README.md files in each package and subpackage, complete with general structure, required contents, and PlantUML class diagrams. The system also integrates updating specifications and documentation into the acceptance criteria of each issue, ensuring that documentation evolves with the code. Regular builds of a documentation portal ensure that all documentation is current and easily accessible.
The Specification and Documentation System benefits developers, solution integrators, and end-users by providing a clear and structured method for documenting and understanding the platform’s architecture, functionality, and development processes. It addresses the challenge of maintaining up-to-date and comprehensive documentation in a decentralized environment, facilitating efficient collaboration and integration.
Acceptance tests for this feature include verifying the presence and completeness of README.md files, the correct construction of class hierarchies, and the integration of documentation updates in merge requests. These tests ensure that the documentation system is reliable, comprehensive, and aligned with the platform’s development processes.
Project management portal
The Project Management Portal is a critical feature within the NuNet platform, designed to provide comprehensive and up-to-date project management information for internal and external stakeholders. This functionality supports efficient planning, scheduling, and implementation of milestones and releases, aligned with the Critical Chain Project Management (CCPM) process.
Implementation involves setting up project management pages that always reflect the latest status of each milestone, with an introductory page explaining the portal and process for users. The portal integrates seamlessly with the team’s workflow, automatically generating and sharing important updates to ensure transparency and efficiency.
Acceptance tests for this feature include verifying that project management pages are up-to-date and that the introductory page effectively explains the portal and process. These tests ensure that the Project Management Portal is reliable and comprehensive, supporting the platform’s development and strategic goals.
Implementation
Actor model
The Actor Model is a foundational feature of the NuNet platform, designed for seamless scalability and efficiency, as introduced in a series of blog posts on Open-ended decentralized computing model (NuNet Computational Model, Actor Model and Graph Computing). Each machine onboarded via the Device Management Service (DMS) operates as a separate actor through the Node interface, while jobs are handled as actors via the Allocation interface. These actors communicate solely through immutable messages, ensuring they do not directly access each other’s private states.
Implementing the Actor Model involves setting up the Actor, Node, and Allocation interfaces to facilitate message handling and initiating behaviors via the DMD model. This design supports unlimited horizontal scalability, allowing any eligible entity to join without central control, and ensures concurrency and non-locking operations.
The Actor Model benefits solution integrators using Decentralized Physical Infrastructure (DePIN) and hardware owners seeking flexible infrastructure use without direct involvement in compute marketplaces. It maximizes efficient, fast access to optimal hardware for compute jobs and ensures maximum resource utilization without idle time. This model is integral to platform functionalities, particularly for edge computing, IoT deployments, and decentralized physical infrastructure. Comprehensive acceptance tests, including functional and integration tests, ensure the robustness and reliability of the Actor Model implementation.For more information on the actor model see our blog.
Decentralized search and matching model
The Decentralized Search and Matching Model is a critical feature of the NuNet platform, optimizing real-time, on-demand matching between compute jobs and available hardware resources. This model uses the Capability model to match jobs accurately described in terms of required capabilities with the best-suited hardware.
Implementation involves setting up orchestration interfaces, enabling efficient searches and matching jobs with suitable hardware configurations. This feature is crucial for solution integrators optimizing hardware usage in real-time and on-demand and for hardware owners utilizing their infrastructure more flexible than traditional technologies allow.
This model addresses key user challenges by providing efficient, fast access to optimal hardware and maximizing resource utilization. It’s fundamental for future projects involving edge computing, IoT deployments, and decentralized infrastructure. Acceptance tests validate that jobs trigger the platform to find and deploy on the most fitting hardware, ensuring optimal performance and resource utilization.
Dynamic Method Dispatch (DPD) Logic
The Dynamic Method Dispatch (DPD) Logic is fundamental within the NuNet platform, enabling remote execution of methods by sending messages between actors. Implemented within the Node package, this allows one actor to initiate behaviors in another, realizing the full potential of the Actor model.
Implementation involves setting up methods and functions for remote execution, ensuring seamless communication and coordination across nodes and allocations. The DPD Logic benefits developers and solution integrators by allowing remote management and orchestration across different network configurations. It addresses executing complex workflows in a decentralized environment, enhancing scalability and efficiency.
Acceptance tests include comprehensive unit tests and functional/integration tests, ensuring actors can send DPD calls and initiate methods effectively.
Local Access (API and CMD)
The Local Access feature provides direct interaction with the Device Management Service (DMS) running on a machine. This functionality includes both API and Command Line (CMD) interfaces, enabling local management and configuration.
Implementation involves setting up API methods and CMD commands to execute functions on the host machine, enhancing security and convenience by eliminating the need for remote access. The Local Access feature benefits developers and solution integrators by providing flexibility for local testing, configuration, and integration with external applications via REST-API.
Acceptance tests include unit and functional/integration tests, verifying the API responds to locally issued commands and not to remote ones.
Local Database Interface and Implementation
The Local Database Interface and Implementation facilitate efficient data management on the host machine. This functionality includes a NoSQL database interface for local storage, retrieval, and search of arbitrary information.
Implementation involves setting up a robust database interface supporting configuration management, local telemetry, and logging. This ensures critical data is handled efficiently and securely. The Local Database Interface benefits developers, solution integrators, and end-users by providing reliable local data management, essential for smooth DMS operation.
Acceptance tests include unit and functional/integration tests, ensuring information can be stored, retrieved, and searched effectively.
Executor Interface and Implementation
The Executor Interface and Implementation facilitate the execution of compute jobs using Docker and Firecracker executors. This involves setting up a generic interface for seamless integration of third-party executables into the Device Management Service (DMS).
Implementation involves defining a robust executor interface and integrating Docker and Firecracker executors, ensuring jobs can be initiated, monitored, and completed efficiently. The Executor Interface benefits developers and solution integrators by providing flexibility to use various executables, supporting diverse execution environments.
Acceptance tests include unit and functional/integration tests, ensuring jobs can be executed correctly with Docker or Firecracker executors.
Machine Benchmarking
The Machine Benchmarking feature evaluates and declares the computational capabilities of machines in the network. This involves setting up a benchmarking process to assess performance, ensuring optimal matching of compute jobs to resources.
Implementation involves defining a comprehensive benchmarking interface integrated into the DMS. This ensures machines are evaluated during onboarding, with benchmarking data stored and accessed via the database interface. The Machine Benchmarking feature benefits developers and solution integrators by providing precise data on machine capabilities, essential for optimal resource utilization.
Acceptance tests include unit and functional/integration tests, ensuring machines are accurately benchmarked and data is stored correctly.
NuNet’s P2P Network and Routing
The P2P Network and Routing feature facilitates efficient and reliable communication between nodes and allocations. This involves establishing a peer-to-peer network for sending and receiving messages directly or via broadcasts.
Implementation involves developing a robust network package for message routing, ensuring nodes and allocations connect within the network for seamless communication. The P2P Network and Routing feature benefits developers and solution integrators by providing infrastructure for efficient data exchange and coordination, supporting decentralized operations.
Acceptance tests include unit and functional/integration tests, ensuring actors can discover peers, send and receive messages, and use gossip routing mechanisms effectively.
Storage Interface
The Storage Interface provides seamless access to data storage for computation processes. This includes defining a robust interface and implementing S3-compatible storage for efficient data read and write operations by executors.
Implementation involves developing a comprehensive storage package integrating S3 storage capabilities, ensuring consistent and reliable data access. The Storage Interface benefits developers and solution integrators by providing standardized data storage and retrieval, essential for diverse computational requirements.
Acceptance tests include unit and functional/integration tests, verifying executors can read and write data as specified by the interface.
IP Over Libp2p
The IP Over Libp2p feature provides IPv4 connectivity over the Libp2p protocol. This enables programs and frameworks on NuNet-enabled machines to communicate using an IPv4 layer, integrating seamlessly with orchestration tools and distributed software.
Implementation involves integrating IP over Libp2p within the network package, ensuring machines form a functional IPv4 network over the decentralized protocol. It is designed to support complex tasks and frameworks like Kubernetes. The IP Over Libp2p feature benefits developers and solution integrators by enabling advanced network configurations and integration with third-party frameworks.
Acceptance tests include unit and functional/integration tests, ensuring a functional IPv4 network over Libp2p, allowing direct interaction between containers on different machines.
Observability and Telemetry
The Observability and Telemetry feature provides comprehensive logging, tracing, and monitoring across the decentralized network. This ensures full visibility into application operations and infrastructure.
Implementation involves setting up telemetry interfaces and integrating them with collectors like Elasticsearch, allowing for data collection and analysis. The Observability and Telemetry feature benefits developers, QA teams, and integrators by providing detailed logs and traces, enhancing debugging and monitoring of decentralized applications.
Acceptance tests include unit and functional/integration tests, ensuring telemetry events are logged, stored, and analyzable via Elasticsearch and Kibana dashboards.
Private Swarm
The Private Swarm feature enables the creation of secure, private communication networks using the Libp2p protocol. This allows users to establish dedicated swarms for secure interactions between machines.
Implementation involves developing capabilities for DMS nodes to create and join private swarms, ensuring secure communication channels. This is crucial for tasks requiring high security and privacy. The Private Swarm feature benefits users by providing secure communication methods for decentralized applications.
Acceptance tests include unit and functional/integration tests, ensuring DMS nodes can create and join private swarms by configuring a shared swarm key.
Compute workflow as recursive Job Definition
Compute workflow in terms of Recursive Job Definition feature supports defining and orchestrating complex jobs within the decentralized network. This allows jobs to be defined recursively, enabling advanced workflows.
Implementation involves setting up a robust job definition format integrated with the orchestration mechanism, ensuring jobs can be recursively executed. The Recursive Job Definition feature benefits developers and integrators by providing a flexible method for defining and managing complex compute tasks.
Acceptance tests include unit and functional/integration tests, ensuring jobs representable via Kubernetes or Nomad can be defined, converted, and executed efficiently.
Job Deployment and Orchestration Model
The Job Deployment and Orchestration Model manages the submission, deployment, and execution of jobs across the decentralized network. This ensures compute jobs are optimally executed by matching them with suitable machines.
Implementation involves developing an orchestration model integrated with job submission and execution processes, ensuring efficient job management. The Job Deployment and Orchestration Model benefits developers and end-users by providing an efficient method for managing compute jobs, optimizing resource utilization.
Acceptance tests include unit and functional/integration tests, ensuring jobs described in the NuNet format are deployed, executed, and results are returned correctly.
Capability Model
The Capability Model defines and compares machine capabilities within the network, ensuring compute jobs are matched with suitable machines based on requirements.
Implementation involves developing a robust model for defining capabilities, integrated with the orchestration process, considering both hardware and soft requirements. The Capability Model benefits developers and integrators by providing a detailed method for matching jobs with resources, optimizing efficiency.
Acceptance tests include unit and functional/integration tests, ensuring compute requirements are accurately matched with machine capabilities.
Supervision Model
The Supervision Model is a crucial feature within the NuNet platform, designed to provide fault tolerance and error recovery capabilities in a decentralized network, as is widely accepted and used in Actor model implementations, including Akka, Proto.Actor, Erland/OTP. This model enables the construction of a decentralized control plane, enhancing the platform’s resilience and reliability.
Implementation involves developing a supervision model that allows for the creation of actor hierarchies. These hierarchies enable error propagation, heartbeat monitoring, and health-check functionalities, ensuring that system failures are detected and managed effectively. This is essential for maintaining system stability and ensuring seamless operation across the decentralized network.
The Supervision Model benefits developers and system administrators by offering advanced monitoring and recovery capabilities. It addresses the challenge of maintaining system reliability in a decentralized environment, enhancing the platform’s fault tolerance and operational continuity.
Acceptance tests for this feature include comprehensive unit tests and functional/integration tests.
Tokenomics Interface
The Tokenomics Interface is a vital feature within the NuNet platform, designed to facilitate peer-to-peer contracts and micropayments between machines. This functionality supports the economic interactions necessary for decentralized job execution and resource utilization.
Implementation involves developing a minimal tokenomics interface and integrating it with the job orchestration process. This ensures that job invocation requests include explicit contract information and that micropayments are processed efficiently. The Tokenomics Interface enables secure and seamless economic transactions, which are crucial for incentivizing and managing resources within the decentralized network.
The Tokenomics Interface benefits developers, solution integrators, and end-users by providing a secure and efficient method for managing economic transactions within the platform. It addresses the challenge of implementing micropayment channels and contract management in a decentralized environment, ensuring that all parties involved in job execution are appropriately compensated.
Acceptance tests for this feature include comprehensive unit tests and functional/integration tests.
Conclusion
As we move forward with the release of the Device Management Service (DMS) 0.5.x milestone, maintaining clarity and alignment across our development efforts is crucial. For more information about updates please refer to the feature scope freeze document. This document, which will be continuously updated, serves as the foundational reference for release management throughout this milestone. You can access the document here: Feature Scope Freeze Document.