# Maintenance Items

There are a large number of supportive, maintenance style items required in any given period to keep Cardano running. These have been labelled as maintenance items, although understanding some of the work items outlined do not strictly meet this common definition, it is the most convenient. An indicative breakdown of these can be found below.

The following list of typical maintenance items will be published for tender. Suitably qualified organisations and individuals will be able to submit tender responses for groups, subsets or line items individually. This is to allow those who do not possess broad sets of capabilities to participate.  &#x20;

Likely in-year deliverables of maintenance items are quarterly reporting, to be known as ‘maintenance reporting’ detailing time and effort of these activities, highlighting key developments, effort and progress. Like any other contract, maintenance style contracts will be published for transparency.

There are significant risks in not having a maintenance items and budget for such activity. Without many of these items realistic project or development goals would likely stall. These services are used by projects to test and integrate amongst many other requirements and benefits, many of these elements help to ensure a maintained secure and stable Cardano product.

The Technical Steering Committee has oversight to ensure services indicative of the below, or suitable alternatives, are carried out appropriately throughout any given time period.&#x20;

## Potential Maintenance Items

### Core

<table><thead><tr><th width="257">Title</th><th>Description</th></tr></thead><tbody><tr><td>Open Source Code Review and Code Integration</td><td>Review contributions and integrate into code repositories. This is a Open Source approach related item and will be prescribed by OSPO. Essential for ongoing code development. Code integrated into core repositories or rejected with reasons</td></tr><tr><td>Github issue tracking</td><td>Monitor, respond to and deal with issues that are reported via GitHub</td></tr><tr><td>Development Update Reporting</td><td>Report on development updates via cardano-updates, to Intersect etc</td></tr><tr><td>Unit/Property Test Maintenance and Improvements</td><td>Maintain test case consistency with implementation changes, additional testing, correct and document tests, remove redundant/erroneous tests</td></tr><tr><td>E2E Testing</td><td>Maintain, extend and enhance E2E tests and testing framework. Produce test reports. Sign off releases. E2E (End-to-End) testing is a software testing methodology that evaluates the entire system, from start to finish, to ensure that all components work together correctly. In the context of Cardano, E2E testing involves testing the complete functionality and interactions of various components within the blockchain ecosystem, including smart contracts, wallets, nodes, and network communications. Provides assurance that both existing and new end-to-end functionalities continue to work as expected.</td></tr><tr><td>Conformance testing</td><td>Ensure consistency between specification and implementation, generate tests from specification</td></tr><tr><td>Design and Code Security Review</td><td>Review designs and code for security issues</td></tr><tr><td>Performance analysis and system integration level benchmarks</td><td>Constant performance measurements and analyses for Cardano at system integration level. Safeguard new releases, features or hard forks by identifying potential performance regressions and provide evidence for effectiveness of optimizations. Performance dashboard created</td></tr><tr><td>Node Performance Improvements</td><td>Benchmark and improve node performance, eliminate bottlenecks. Performance may include speed, timeliness/responsiveness, memory, network etc</td></tr><tr><td>Operating System and other Environmental Upgrades</td><td>Code changes to ensure consistent behaviour with new operating systems and environments</td></tr><tr><td>Interoperability</td><td>Changes and improvements to ensure interoperability with wallets and other tools</td></tr><tr><td>Security Improvements</td><td>Changes and improvements to improve security, including new cryptographic primitives/techniques</td></tr><tr><td>Robustness/Reliability Improvements</td><td>Changes and improvements to improve the robustness and reliability of the node</td></tr><tr><td>Code quality improvements</td><td>Other improvements to the quality of the code</td></tr><tr><td>Cardano API Maintenance and Improvements</td><td>Maintain Cardano API, ensure consistency with ledger</td></tr><tr><td>Cardano CLI Maintenance and Improvements</td><td>Maintain consistency of CLI with ledger, consensus etc, enhance and improve CLI commands, update CLI for new ledger eras</td></tr><tr><td>DB-Sync maintenance and improvements</td><td>Maintain consistency of DB-Sync with new node versions; bug-fixing etc</td></tr><tr><td>Plutus Core maintenance and Improvements</td><td>Update Plutus Core, add new primitives, improve performance etc</td></tr><tr><td>CDDL maintenance and improvements</td><td>Update the CDDL specification and associated implementations</td></tr><tr><td>db-synthesizer Maintenance and improvements</td><td>Maintain and enhance db-synthesizer</td></tr><tr><td>Tracing systems maintenance and improvements</td><td>Maintain and improve the node performance metric tracing system and associated tooling</td></tr><tr><td>Design improvements</td><td>Improvements to the node design, reflected in the codebase</td></tr><tr><td>Update and maintain formal specifications</td><td>Update formal specification for Shelley etc. to Agda; revise the formal ledger specification as issues are discovered; extend formal specification to non-ledger components</td></tr><tr><td>Update and maintain documentation</td><td>Maintain on-line code-level documentation</td></tr><tr><td>Code Modernisation</td><td>Update code for new libraries, compiler versions etc</td></tr><tr><td>Guardrails Maintainence</td><td>Review, maintain and update the Guardrails for on-chain use</td></tr><tr><td>Guardrails Script Maintenance</td><td>Update the guardrails script in line with the checkable guardrails</td></tr><tr><td>Identity Management Script Maintenance</td><td>Update the CC identity management script if required</td></tr><tr><td>Ensure MainNet Security</td><td>Identify and mitigate threats and security incidents. Systematically enforces best practices in security. Regular cadence of security audits, no major breaches or incidents</td></tr></tbody></table>

### Support

<table><thead><tr><th width="254">Title</th><th>Description</th></tr></thead><tbody><tr><td>Release Management Process</td><td>Managing releases, integrating code, verifying successful integration, writing release notes</td></tr><tr><td>CI/CD Maintenance and Support</td><td>Needed for development testing, integration, building and release</td></tr><tr><td>Formal methods for system performance assurance - Delta Q (design &#x26; measurement)</td><td>Without it we cannot guarantee the reliability of software implementation. Reliability in software development projects. Performance space is not quantified. Formal methods applied to ensure performance guarantees.</td></tr><tr><td>Haskell Compiler Support</td><td>Needed to deal with maintenance and improvements to the compiler and related tools, provide support and advice to core developers, assist with performance issues etc.</td></tr><tr><td>Quickcheck Improvements</td><td>Update quick check to support new testing mechanisms, such as dynamic property testing</td></tr><tr><td>Training of new developers</td><td>Induction. Repository structure. Open Source Requirements. Licencing. Security Procedures. Incident Response Process. Code of Conduct. Development Practices. CI/CD. Use of Github. Code Signing. Managing confidential information. Working Group Involvement. Mentoring. Managing Issues. Code Review. Pull Requests. Releases.</td></tr><tr><td>Mentorship/Apprenticeship Programme</td><td>New contributor education - time will be taken by current experts to help train new Cardano Developers to widen the contributor network</td></tr><tr><td>Third-Party Library Maintenance</td><td>Fix and develop third-party libraries that are needed for Cardano, e.g. libsodium</td></tr><tr><td>Nix Enhancement and Bug Fixing</td><td>Developing and Enhancing the Nix build system</td></tr></tbody></table>

### Operational&#x20;

<table><thead><tr><th width="255">Title</th><th>Description</th></tr></thead><tbody><tr><td>Disaster Recovery</td><td>The Playbook with steps to recover after major disaster to Cardano network. procedure for disasters, ensuring the smooth operations of Cardano is formulated as CIP-135. Support and coordination is needed to ensure the process can be executed in the event of a critical mainnet failure</td></tr><tr><td>Network Monitoring</td><td>Provide monitoring for the Mainnet to be used by oversight &#x26; community. Ensure block propogation falls within consensus parameter. Continued network monitoring and escalation process established</td></tr><tr><td>Global mempool monitoring</td><td>Observing and gathering data on pending transactions that have not yet been included. Transactions in the mempool can alter the validity of the newly submitted transactions it complexify the dApps logic and increase the development effort. Global mempool monitoring for Cardano provides real-time transaction visibility, improved network awareness, enhanced transaction prioritization, efficient fee estimation, optimal transaction confirmation times, effective network congestion management, proactive issue detection, and data-driven decision-making for users and stakeholders. Global mempool monitoring provides real-time observation and data collection of pending transactions, offering insights into transaction patterns, fee optimization, and network health. It enables analysis of transaction behaviour, optimizing transaction processing and scalability while ensuring compliance with specific criteria. The data obtained from mempool monitoring also facilitates predictive analytics for anticipating network congestion and making informed decisions.</td></tr><tr><td>Operate the Bootstrap Relay Network</td><td>Continued operation / Maintenance of relay network as needed to support Cardano mainnet</td></tr><tr><td>Maintain Testnets</td><td>Supporting public Cardano testnets, including e.g. Preview, PreProd, SanchoNet. Allows Developers to test their DApp in a controlled environment using test ADA. Continued maintenance of Testnets for Devs and SPOs</td></tr><tr><td>CI/CD Operations</td><td>Operate the CI/CD System</td></tr><tr><td>Performance Cluster Operations</td><td>Operate the Benchmarking Systems to Support Performance Analysis and Evaluation</td></tr><tr><td>Governance Action Preparation &#x26; Submission</td><td>Prepare and submit hard fork and parameter update proposals</td></tr><tr><td>Fraud Detection and Prevention</td><td>Investigate reported sites/videos. If they are determined to be fraudulent, a cease &#x26; desist and take down notices are sent to registrars and hosting providers. Increases credibility and customer security by removing fraudulent actors. Cease &#x26; desist notices issued and offending site/video removed</td></tr></tbody></table>
