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.

In order to achieve scales of economy these maintenance items will likely be tendered and procured in several groups with considerations for education, wider community participation and share. Note this may not necessarily be bound by the grouping core, support and operational below.

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.

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.

Potential Maintenance Items

Core

Title
Description

Open Source Code Review and Code Integration

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

Github issue tracking

Monitor, respond to and deal with issues that are reported via GitHub

Development Update Reporting

Report on development updates via cardano-updates, to Intersect etc

Unit/Property Test Maintenance and Improvements

Maintain test case consistency with implementation changes, additional testing, correct and document tests, remove redundant/erroneous tests

E2E Testing

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.

Conformance testing

Ensure consistency between specification and implementation, generate tests from specification

Design and Code Security Review

Review designs and code for security issues

Performance analysis and system integration level benchmarks

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

Node Performance Improvements

Benchmark and improve node performance, eliminate bottlenecks. Performance may include speed, timeliness/responsiveness, memory, network etc

Operating System and other Environmental Upgrades

Code changes to ensure consistent behaviour with new operating systems and environments

Interoperability

Changes and improvements to ensure interoperability with wallets and other tools

Security Improvements

Changes and improvements to improve security, including new cryptographic primitives/techniques

Robustness/Reliability Improvements

Changes and improvements to improve the robustness and reliability of the node

Code quality improvements

Other improvements to the quality of the code

Cardano API Maintenance and Improvements

Maintain Cardano API, ensure consistency with ledger

Cardano CLI Maintenance and Improvements

Maintain consistency of CLI with ledger, consensus etc, enhance and improve CLI commands, update CLI for new ledger eras

DB-Sync maintenance and improvements

Maintain consistency of DB-Sync with new node versions; bug-fixing etc

Plutus Core maintenance and Improvements

Update Plutus Core, add new primitives, improve performance etc

CDDL maintenance and improvements

Update the CDDL specification and associated implementations

db-synthesizer Maintenance and improvements

Maintain and enhance db-synthesizer

Tracing systems maintenance and improvements

Maintain and improve the node performance metric tracing system and associated tooling

Design improvements

Improvements to the node design, reflected in the codebase

Update and maintain formal specifications

Update formal specification for Shelley etc. to Agda; revise the formal ledger specification as issues are discovered; extend formal specification to non-ledger components

Update and maintain documentation

Maintain on-line code-level documentation

Code Modernisation

Update code for new libraries, compiler versions etc

Guardrails Maintainence

Review, maintain and update the Guardrails for on-chain use

Guardrails Script Maintenance

Update the guardrails script in line with the checkable guardrails

Identity Management Script Maintenance

Update the CC identity management script if required

Ensure MainNet Security

Identify and mitigate threats and security incidents. Systematically enforces best practices in security. Regular cadence of security audits, no major breaches or incidents

Support

Title
Description

Release Management Process

Managing releases, integrating code, verifying successful integration, writing release notes

CI/CD Maintenance and Support

Needed for development testing, integration, building and release

Formal methods for system performance assurance - Delta Q (design & measurement)

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.

Haskell Compiler Support

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.

Quickcheck Improvements

Update quick check to support new testing mechanisms, such as dynamic property testing

Training of new developers

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.

Mentorship/Apprenticeship Programme

New contributor education - time will be taken by current experts to help train new Cardano Developers to widen the contributor network

Third-Party Library Maintenance

Fix and develop third-party libraries that are needed for Cardano, e.g. libsodium

Nix Enhancement and Bug Fixing

Developing and Enhancing the Nix build system

Operational

Title
Description

Disaster Recovery

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

Network Monitoring

Provide monitoring for the Mainnet to be used by oversight & community. Ensure block propogation falls within consensus parameter. Continued network monitoring and escalation process established

Global mempool monitoring

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.

Operate the Bootstrap Relay Network

Continued operation / Maintenance of relay network as needed to support Cardano mainnet

Maintain Testnets

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

CI/CD Operations

Operate the CI/CD System

Performance Cluster Operations

Operate the Benchmarking Systems to Support Performance Analysis and Evaluation

Governance Action Preparation & Submission

Prepare and submit hard fork and parameter update proposals

Fraud Detection and Prevention

Investigate reported sites/videos. If they are determined to be fraudulent, a cease & desist and take down notices are sent to registrars and hosting providers. Increases credibility and customer security by removing fraudulent actors. Cease & desist notices issued and offending site/video removed

Last updated