completed
Ogmios Clients in Python & C++
Current Project Status
Complete
Amount
Received
₳36,520
Amount
Requested
₳36,520
Percentage
Received
100.00%
Solution

Implementing Python and C++ Ogmios clients would enable developers in these widely-used languages to easily build applications on Cardano by leveraging the capabilities provided by Ogmios.

Problem

Lack of client implementations in Python and C++ for Ogmios limits the accessibility and ease of development for Cardano applications in two popular programming languages.

Feasibility
Value for money
Impact / Alignment

ViperStaking

2 members

Ogmios Clients in Python & C++

Please describe your proposed solution.

Ogmios is a lightweight bridge interface designed for the cardano-node, which serves as the core implementation of the Cardano blockchain. With its WebSockets API and support for JSON/RPC, Ogmios enables local clients to seamlessly communicate with Ouroboros' mini-protocols. By deploying Ogmios alongside relays, it establishes entry points on the Cardano network, providing a fast and efficient solution for various application types like wallets, explorers, chatbots, and dashboards. Its primary advantage lies in its ability to offer a network interface to cardano-node, eliminating the need for projects to rely on the node CLI and maintain a local node on the same machine as the application code. Ogmios empowers developers in leveraging its lightweight functionality to build robust Cardano-based solutions and easily interact with the blockchain.

Currently, Ogmios includes clients for TypeScript, Go, Kotlin, and Java, but lacks implementations in Python and C++, two of the most popular programming languages. By developing clients in these additional languages, we aim to provide an inclusive development ecosystem for Cardano, attracting a broader community of developers who are proficient in these languages. Working to expand the Cardano development ecosystem to include the Python and C++ communities will unlock a wealth of talent and expertise, fostering innovation and accelerating the growth of the Cardano ecosystem.

How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?

  1. Expanded Accessibility: By developing Python and C++ clients for Ogmios, we will broaden the accessibility of the Cardano blockchain to developers proficient in these widely-used programming languages. This expansion will attract a larger community of developers, increasing the diversity of talent and expertise contributing to the Cardano ecosystem.
  2. Accelerated Innovation: The availability of Python and C++ clients for Ogmios will foster innovation within the Cardano ecosystem. Developers in these languages will have direct access to Ogmios' lightweight bridge interface and network capabilities, enabling them to build a wide range of applications, including wallets, explorers, chatbots, and dashboards. This increased diversity of applications will drive adoption and showcase the potential of Cardano to the broader developer community.
  3. Collaboration and Community Growth: By expanding the developer base through Python and C++ clients, the project will encourage collaboration and knowledge-sharing within the Cardano community. Developers from different backgrounds and programming languages can come together, exchange ideas, and collectively contribute to the growth and improvement of the Cardano ecosystem.

Overall, by developing Python and C++ clients for Ogmios, this project will enrich Cardano's developer ecosystem, expanding accessibility, enhancing the development experience, and driving innovation and collaboration. These benefits will contribute to the overall growth, adoption, and success of the Cardano blockchain platform.

How do you intend to measure the success of your project?

Success will be measured by the number of projects that utilize the Python and C++ Ogmios clients we have developed.

Please describe your plans to share the outputs and results of your project?

The project code will be open-source and available on the Viper Science Gitlab and Github pages. Details of the project will be documented in a blog post and shared via the Viper Science social media outlets.

What is your capability to deliver your project with high levels of trust and accountability?

The Viper Science team has been an active contributor to the Cardano community for over four years. In addition to operating stake pools since the Incentivized Testnet, we have developed several open source tools for Cardano developers and SPOs. Three of these projects have been successfully funded through Catalyst in the past:

  • Cardano-Tools Python Library (<https://projectcatalyst.io/funds/8/f8-open-source-development-ecosystem/cardano-tools-python-library>)
  • Cardano development library in C++ (<https://projectcatalyst.io/funds/8/f8-open-source-development-ecosystem/cardano-development-library-in-c>)
  • API for Multi-Delegation Portfolios (<https://projectcatalyst.io/funds/6/f6-dapps-and-integrations/api-for-multi-delegation-portfolios>)

A complete list of our contributions can be found at <https://viperscience.com/>

What are the main goals for the project and how will you validate if your approach is feasible?

The main goal of this project is to provide Ogmios’ capabilities to the Python and C++ development communities. We are certain that our approach is feasible - Ogmios clients have already been developed for other programming languages, and our team has the programming expertise required to successfully complete this project.

Please provide a detailed breakdown of your project’s milestones and each of the main tasks or activities to reach the milestone plus the expected timeline for the delivery.

The milestone timelines are decoupled from the hourly price in ADA since it is assumed development will not be full time due to staff allocations. Please see the budget breakdown for estimated hours per task.

Milestone 1: Python Ogmios client [8 weeks, 18,260 ada]

  • Implement ChainSync protocol [2 weeks]
  • Implement StateQuery protocol [2 weeks]
  • Implement TxSubmission protocol [2 weeks]
  • Implement TxMonitor protocol [2 weeks]

Milestone 2: C++ Ogmios client [8 weeks, 18,260 ada]

  • Implement ChainSync protocol [2 weeks]
  • Implement StateQuery protocol [2 weeks]
  • Implement TxSubmission protocol [2 weeks]
  • Implement TxMonitor protocol [2 weeks]

Please describe the deliverables, outputs and intended outcomes of each milestone.

Milestone 1: Completed Python Ogmios client with examples and documentation.

  • Deliverables: Completed Python Ogmios client with examples and documentation.
  • Outputs: Open source code pushed to the public repository including passing test cases.
  • Intended outcomes: A fully functional open source Python Ogmios client.

Milestone 2: Completed C++ Ogmios client with examples and documentation.

  • Deliverables: Completed C++ Ogmios client with examples and documentation.
  • Outputs: Open source code pushed to the public repository including passing test cases.
  • Intended outcomes: A fully functional open source C++ Ogmios client.

Please provide a detailed budget breakdown of the proposed work and resources.

The project team consists of engineers with advanced degrees, each with over ten years of professional experience developing and building complex systems in research & development environments. As a baseline labor rate, we are using a relatively conservative rate of $63.91, which is the mean hourly wage for software developers in the US according to the US Bureau of Labor Statistics.

Budget breakdown:

  • Labor ($10,225):
  • Milestone 1: 80 hours
  • Milestone 2: 80 hours
  • Materials ($0)

Assumed $/ada exchange rate: $0.28

Total project cost: 36,520 ada

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

The Viper Science team members are:

Dylan Crocker, PhD: Engineer & developer (<https://www.linkedin.com/in/dylan-andrew-crocker/>)

Dylan is an Electrical Engineer with experience in antenna and radar system design as well as software development. He earned a PhD in Electrical Engineering, with a minor in Computer Science, from Georgia Tech. His PhD research focused on ultra-wideband antenna design. Dylan got started building in the Cardano ecosystem when running a stake pool during the Incentivized Testnet in 2019. His most recent work includes an open source implementation of Cardano primitives written in modern C++.

Willie Marchetto: Engineer & developer (<https://www.linkedin.com/in/willie-marchetto-2268aa266/>)

Willie is a computer & astronautical engineer experienced in designing, developing, integrating, & deploying electronics and software for satellites, embedded devices, and traditional compute systems. His technical contributions span the areas of high-performance computing, web application development, DevOps system administration, satellite electronics design, embedded systems software/firmware, and machine learning algorithm development. Willie has been an active Cardano developer and stake pool operator since 2019 and is currently the chief engineer for research & development at an aerospace engineering contracting company.

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

The cost of the project represents value for money for the Cardano ecosystem in several ways:

  1. Increased Developer Adoption: By investing in the development of Python and C++ clients for Ogmios, the Cardano ecosystem will attract a larger community of developers proficient in these languages. This expanded developer adoption brings diverse perspectives, fresh ideas, and a wider talent pool to contribute to the growth and innovation of the ecosystem. The cost of the project is justified by the long-term benefits of a thriving developer community.
  2. Expanded Application Ecosystem: Python and C++ are popular programming languages with extensive libraries and frameworks. By providing clients in these languages, the project enables developers to build a wide range of applications on Cardano, including wallets, explorers, chatbots, dashboards, and more. This expansion of the application ecosystem attracts users and businesses to utilize Cardano for their specific needs, ultimately increasing the value and utility of the network.
  3. Accelerated Innovation and Development: The project's cost contributes to accelerating innovation within the Cardano ecosystem. Python and C++ clients for Ogmios provide developers with streamlined access to Cardano's features, reducing development time and complexity. This enables developers to focus on creating novel and impactful solutions, fostering a culture of innovation and pushing the boundaries of what is possible on 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