Please describe your proposed solution.
This solution addresses the need for a customizable and flexible mechanism to log, analyze, and react to the event and transaction flow in a Hydra node. Without such a mechanism, developers face difficulties in integrating with a hydra node; Some events aren’t exposed at all, while others require expensive network hops, new serialization formats, and more.
We propose working with the Hydra team to externalize these events, writing them to disk or an arbitrary socket. A small plugin at the other end of that socket could then integrate this stream of events into any number of existing formats or tools.
For example, Kupo, Carp, or Oura could easily read from this socket and implement the same indexing functions they provide for the Cardano layer 1. Sundae Labs plans to use this to implement a “transaction archive” file format, used in a layer 2 scalability solution called “Gummiworm” that we’re building on top of Hydra.
How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
The described solution offers a flexible and efficient model that allows for event introspection within the Hydra node. This provides a customizable approach to logging and analyzing transaction flows, which addresses the existing challenge of system integration and data management.
Within the context of the Cardano ecosystem, this brings several benefits:
- Increased Interoperability: By providing a pluggable event stream architecture for each hydra head, the solution can integrate more smoothly with various existing data pipeline tool
- Customizability: Developers can build their own modules tailored to their specific needs, promoting flexibility, efficiency, and versatility.
- Improved Usability: The plugin model can make the Hydra node more user-friendly, as it allows developers to work in languages and formats they’re more familiar with, and observe a wider spectra of events from the Hydra node.
- Efficient Data Management: Integrating directly with a binary stream of events can alllow the developer to choose their own tradeoffs between efficiency and accessibility or readability; for example, some tools don’t want to pay the overhead for a websocket / JSON based AP
How do you intend to measure the success of your project?
Adoption Rate: This is a straightforward metric that measures the number of developers or entities that integrate with the hydra node using this capability. A high adoption rate would suggest the solution is addressing a real need within the ecosystem.
Integration Efficiency: Measuring the time and resources it takes to integrate the Hydra node transaction streams compared to the existing APIs. A decrease in time or resources needed indicates success.
Developer Feedback: Surveys or interviews with developers can provide qualitative data about how the new feature is perceived and its impact on their workflow. Positive feedback indicates the solution is beneficial.
System Performance: Monitor the overall performance of the system compared to streaming transactions over an HTTP API. Improvements in system efficiency, reduced error rates, or increased transaction throughput can indicate success.
Please describe your plans to share the outputs and results of your project?
- A detailed Architectural Decision Record (ADR) in accordance with the Hydra project standards.
- Project Blog Posts and Updates: Regularly post updates on the project's progress on popular platforms like Medium, the project website’s own blog, and YouTube channel. These posts can detail recent accomplishments, hurdles overcome, and next steps.
- Release Notes: With each significant release or update, publish detailed release notes outlining the changes, improvements, or bug fixes. These can be included directly in the project repository or on the project's website.
- Webinars and Online Tutorials: Conduct webinars or create online tutorials to demonstrate the functionality of the ledger-mode fork of the Hydra Node. This will help users understand its features and how to use them.
- Community Forum Discussions: Use platforms like the Cardano community forum or Reddit to engage with the community. Answer questions, ask for feedback, and participate in discussions about the project.
- Presentations at Conferences or Meetups: Present the project's results at blockchain or Cardano specific conferences and meetups. This not only reaches a larger audience but also provides an opportunity to receive direct feedback from peers and users.
- Social Media Announcements: Leverage Twitter, LinkedIn or other popular social media platforms to share project milestones and engage with the community.
- Documentation: Finally, create robust documentation that thoroughly explains how to use the new ledger-mode fork, its benefits, and potential use-cases. This documentation should be easily accessible from the project's website and repository.