completed
OgmiosDotnet: An Open Source .NET Client for Cardano Node Communication
Current Project Status
Complete
Amount
Received
₳60,000
Amount
Requested
₳60,000
Percentage
Received
100.00%
Solution

The OgmiosDotnet Client provides an easy-to-use .NET integration with Cardano, addressing tool shortages, contributing to boosting Cardano blockchain adoption and innovation in .NET industries.

Problem

The OgmiosDotnet Client enables .NET integration with Cardano blockchain data, addressing tooling shortages and unlocking innovation. It enhances blockchain adoption across .NET-reliant industries.

Impact Alignment
Feasibility
Value for Money

Team

1 member

OgmiosDotnet: An Open Source .NET Client for Cardano Node Communication

Please describe your proposed solution

Understanding of the Problem

The primary challenge we are addressing is the limited availability of tools for seamless integration of .NET applications with the Cardano blockchain. This gap significantly hinders innovation and the broader adoption of blockchain technology within .NET-centric industries. According to the Stack Overflow 2023 Developer Survey, .NET enjoys a substantial popularity among developers, with over 25.29% of respondents using it across various frameworks and libraries. This high usage underscores the critical need for effective integration solutions to tap into this sizable developer base and foster enhanced blockchain functionality within their applications.

Approach and Implementation

OgmiosDotnet Client: Streamlined Integration with Cardano

Simplified Connection: The OgmiosDotnet Client is designed to streamline .NET integration with the Cardano blockchain by automating websocket communication and managing the complexities of interacting with the blockchain and repetitive mapping actions. Leveraging Ogmios, it facilitates seamless communication with Cardano nodes.

Ease of Use: This client library acts as a plug-and-play solution, enabling easy installation and integration into any .NET application with just a few lines of code. It provides direct, simplified access to Cardano blockchain data.

Advanced Features: It includes configurable options that allow developers to start interacting with the blockchain from a specified slot, incrementally read data, and access the current memory pool for unconfirmed transactions, enhancing its utility for real-time applications.

Quick Start .NET Worker Application: Practical Demonstration

Immediate Engagement: The quick start application exemplifies the practical use of the OgmiosDotnet Client, enabling developers to immediately begin working with the Cardano blockchain. It serves as a real-world application model that developers can follow.

Database Integration and Flexibility: Utilizing Entity Framework, the application demonstrates how to read and store transaction data in a Postgres database. Entity Framework supports multiple database providers like Cosmos, SQL Server, MySQL, and Oracle, allowing easy switching with minimal code adjustments.

Future-Proof Architecture: The architecture of this application is designed to be robust, adaptable and highly customizable, making it capable of evolving in line with future changes to Ogmios.

Comprehensive Documentation: Both the client and the worker application will be accompanied by detailed documentation that not only simplifies the setup and operation but also supports developers in customizing and extending the application to meet their specific needs.

This approach ensures that developers have a clear path to integrating Cardano's blockchain capabilities into their .NET projects, with robust support for future developments and a practical example to help them start immediately. The goal here is to make integration as easy as possible by abstracting away any specific Cardano complexities or repetitive development.

Delivery Structure Overview

  • OgmiosDotnet.Client (Public downloadable package to facilitate Cardano blockchain access via Ogmios)
  • OgmiosDotnet.Worker (Real world example of a .NET worker application that will use the OgmiosDotnet.Client to read blockchain data & save transaction data into a Postgres database)

Engagement: The project targets developers and enterprises using .NET for building applications. By providing them with the necessary tools to integrate Cardano's blockchain technology into their existing tech stack. The documentation will be optimised for searchability and discovery, ensuring that it appears prominently on GitHub when developers search for Cardano dotnet related blockchain integration tools.

Please define the positive impact your project will have on the wider Cardano community

Demonstration of Impact

Impact can be measured by the adoption rate of the Client, contributions from the community, general feedback, and the diversity of applications developed using the Client.

Importance to Cardano

This project is crucial for Cardano as it broadens the blockchain's reach by making it accessible to a vast array of .NET developers and enterprises. It aligns perfectly with Cardano's mission to promote blockchain adoption through community-driven initiatives and open-source collaboration. By enhancing Cardano’s accessibility, we directly contribute to its growth and encourage wider adoption of its technology.

The broader impact of this project lies in the facilitation of Cardano blockchain adoption among developers who may not have previously considered using Cardano due to language or platform constraints. Introducing additional client libraries, like our .NET library, significantly lowers the barrier to entry, simplifying the integration of blockchain technology into diverse applications. This, in turn, fosters broader adoption and stimulates the growth of the Cardano ecosystem.

Moreover, this project enhances the existing variety of client languages supported by Ogmios, which already includes TypeScript, Go, Kotlin, Java, Python, Elixir, and C++. Adding .NET to this expands the spectrum of software development preferences and expertise that can engage with Cardano. This expansion is likely to spur more innovative applications and use cases on the Cardano blockchain whilst also appealing to a larger audience, driving further innovation and development within the ecosystem.

What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?

As a lead full stack developer with over 15 years of experience in developing and leadership within large-scale enterprise projects, I have established a proven track record of successfully managing and delivering complex projects. As the founder and previous co-founder of multiple UK-based development consultancies, my extensive background underscores a strong commitment to high levels of trust and accountability in project execution.

Currently actively participating in development for a Fortune 500 Global Corporation.

Additionally, I am an active and passionate member of the Cardano community. My involvement includes multiple open-source contributions, notably to Dexter, an open-source DEX Client project funded by a previous Catalyst proposal from Indigo, and ADA Markets, a Cardano DEX Aggregator. These contributions highlight my commitment to enhancing and expanding the Cardano ecosystem.

In summary, my professional experience, coupled with active participation and substantial contributions to the Cardano community, robustly support my capability to effectively deliver this project. My previous successes within the ecosystem further reinforce this capability. You can explore more about my community activity and contributions via my Twitter Profile, LinkedIn Profile & Github Profile.

What are the key milestones you need to achieve in order to complete your project successfully?

Milestone 1: Milestone 1: Implementation of Client (Reading Cardano blockchain data)

Outputs:

  • Development of a Client that enables progressive reading of blockchain data from a specified.
  • Comprehensive documentation, including setup and operational guides.
  • Complete suite of unit tests.

Acceptance Criteria:

  • The Client must be capable of accurately and progressively reading blockchain data from a specified slot.
  • Documentation must be clear and thorough.
  • All tests pass.

Milestone 2: Milestone 2: Implementation of Client (Reading Cardano memory pool data)

Outputs:

  • Development of a Client that enables progressive reading of memory pool data
  • Comprehensive documentation, including setup and operational guides.
  • Complete suite of unit tests.
  • Package Publish for public use.

Acceptance Criteria:

  • The Client must be capable of accurately and progressively reading memory pool data from a specified slot.
  • Documentation must be clear and thorough.
  • All tests pass.
  • The Client package is successfully published and publicly accessible via a package manager like NuGet.

Final Milestone: Final Milestone: Delivery of Quick Start Application (Worker)

Outputs:

  • A fully functional Worker application that demonstrates the Client’s capabilities by reading transactions from a specified slot, accessing mempool transactions, and saving this data to a PostgreSQL database.
  • Extensive documentation for setting up and using the Worker application.
  • Comprehensive testing of all application functionalities.

Acceptance Criteria:

  • The application consistently reads and processes transactions from specified slots and the mempool without errors.
  • Data is accurately saved and retrieved from the PostgreSQL database as demonstrated by successful test cases.
  • Documentation provides a step-by-step guide that allows users to easily set up and replicate the functionalities demonstrated by the application or even immediately clone it.

Who is in the project team and what are their roles?

As the sole member of this project, I am responsible for overseeing and executing every aspect of the development of a .NET client for Cardano via Ogmios. My roles are diverse and encompass the entire project lifecycle:

Project Manager: I handle the planning, scheduling, and overall management to ensure the project adheres to timelines and meets its objectives.

Please provide a cost breakdown of the proposed work and resources

Total Project Budget: 60,000 ADA

Milestone 1: Client Reading & Exposing Cardano Blockchain Data

Total for Milestone 1: 30,000 ADA (50% of the total budget)

Milestone 2: Client Reading & Exposing Cardano MemPool Data

Total for Milestone 2: 15,000 ADA (25% of the total budget)

Final Milestone: Delivery of Quick Start Application (Worker) Using Public Package

Total for Final Milestone: 15,000 ADA (25% of the total budget)

The project relies on Ogmios, a lightweight bridge interface for the Cardano node. This dependency is crucial for a few key reasons:

  1. Ease of Integration: Ogmios provides a straightforward JSON interface that aligns well with .NET’s handling of data, simplifying interactions with the Cardano blockchain.
  2. Proven Use: It is used by over 114 repositories, including those from major developers like Input Output, demonstrating its reliability and community trust.
  3. Essential Functionality: Ogmios enables essential features such as real-time data access, which are necessary for the project’s objectives.
  4. Strong Support: The active community and consistent updates around Ogmios ensure that it remains a dependable component of our technology stack.

Overall, Ogmios is a critical and dependable element that enhances this project by enabling efficient blockchain integration to allow us to consume in a variety of languages.

How does the cost of the project represent value for money for the Cardano ecosystem?

Filling a Critical Need

Purpose: The project delivers a .NET client that acts as a pivotal tool for integrating Cardano's blockchain capabilities with the .NET framework. This initiative directly addresses a significant gap, enabling a broader spectrum of developers to access and utilize the Cardano blockchain.

Impact: By making it easier for .NET developers to engage with Cardano, the project enhances the ecosystem’s growth potential. It opens up Cardano to a wider audience, which can lead to more diverse and robust blockchain applications, thereby strengthening the blockchain’s market presence and utility.

Enhancing Accessibility and Adoption

Ease of Integration: The .NET client, along with the comprehensive quick start application, simplifies the process of integrating Cardano’s blockchain technology into both existing and new .NET applications. This reduces the barrier to entry for developers and companies not yet familiar with blockchain technologies.

Broader Reach: By facilitating easier access to blockchain technology for .NET developers, the project promotes wider adoption and fosters innovation within the ecosystem. This is expected to lead to the creation of a variety of applications, enhancing the versatility and functionality of the Cardano blockchain.

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00