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
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
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
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