From d812c8b9d08a957ef11bd19b249511f4da66565f Mon Sep 17 00:00:00 2001 From: "paluh (aka Tomasz Rybarczyk)" Date: Sun, 13 Oct 2024 16:19:56 +0200 Subject: [PATCH] Add milestones to the oracle proposal --- catalyst/f13-oracles.md | 359 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 359 insertions(+) create mode 100644 catalyst/f13-oracles.md diff --git a/catalyst/f13-oracles.md b/catalyst/f13-oracles.md new file mode 100644 index 0000000..53e9205 --- /dev/null +++ b/catalyst/f13-oracles.md @@ -0,0 +1,359 @@ +### \[GENERAL\] Proposal title + +### Please note we suggest you use no more than 60 characters for your proposal title so that it can be easily viewed in the voting app. + +### The title should clearly express what the proposal is about. Voters can see the title in the voting app, even without opening the proposal, so a clear, unambiguous, and concise title is very important. + +### **Answer:\* : Marlowe 2025: Oracle Protocol, Implementation and Integration** + +### \[GENERAL\] Name and surname of main applicant + +### Please provide the name and surname of the main applicant. The main applicant is considered as the individual responsible for the project and the person authorized to act on behalf of other applicants (where applicable). + +### **Answer: \* [Tomasz Rybarczyk](mailto:t.rybarczyk@lambdaterms.com)** + +### + +### \[GENERAL\] Are you delivering this project as an individual or as an entity (whether formally incorporated or not) + +- Individual +- Entity (Incorporated) +- **Entity (Not Incorporated) : x** + +### \[GENERAL\] Co-proposers and additional applicants + +Core Maintainers of Marlowe Lang : + +- [Simon Thompson](mailto:simon.thompson@iohk.io) +- [Tomasz Rybarczyk](mailto:tomasz.rybarczyk@iohk.io) +- [Nicolas Henin](mailto:nicolas.henin@iohk.io) + +### \[GENERAL\] Requested funds in ada + +There is a minimum and a maximum amount of funding that can be requested in a single Catalyst proposal. These are outlined below per each category: +Minimum Funding Amount: + +* Cardano Uses Cases: ₳15,000 +* Cardano Open: ₳15,000 +* Cardano Partners \+ Real World Integrations: ₳500,000 + +Maximum Funding Amount: + +* Cardano Uses Cases: +* Concept: ₳100,000 +* MVP: ₳300,000 +* Product: ₳500,000 +* Cardano Open: +* Developers (technical): ₳200,000 +* Ecosystem (non-technical): ₳100,000 +* Cardano Partners \+ Real World Integrations: ₳2,000,000 + +**Answer: \* \~130k ADA** + +### \[GENERAL\] Please specify how many months you expect your project to last (from 2-12 months) + +Minimum 2 months \- Maximum 12 months. +The scope of your funding request and this project is expected to produce the deliverables you specify in the proposal within 2-12 months. +If you believe your project will take longer than 12 months, consider reducing the project’s scope so that it becomes achievable within 12 months. +If your project completes earlier than scheduled so long as you have submitted your PoAs and Project Close-out report and video then your project can be closed out. +**Answer: \* 12 months** + +### \[GENERAL\] Please indicate if your proposal has been auto-translated into English from another language + +YES/NO \- Tick YES so readers are reminded that your proposal has been translated, and that they should be tolerant of any language imperfections. +You can either link a document with your proposal in its original language OR provide your response in your native language after the English language in each question if you wish. +Tick NO if your proposal has not been auto-translated into English from another language. +**Answer: \* No** + +### \[GENERAL\] What is the problem you want to solve? (200-character limit including spaces) + +Ensure you say what is a well-defined problem. What is the core issue that you hope to fix? Remember: the reader might not recognize the problem unless you state it clearly. +This answer will be displayed on the Catalyst voting app, so voters will see it even if they don't open your proposal to read it in detail. +**Answer:\* Current Cardano Oracles primarily push fixed data on-chain, limiting their adaptability for diverse contract needs. A more flexible, transparent, composable and easy to use Oracle solution is required.** + +### \[GENERAL\] Summarize your solution to the problem (200-character limit including spaces) + +Focus on what you are going to do, or make, or change, to solve the problem. So not 'There should be a way to....' but 'We will make a...' +Clearly state how the solution addresses the specific problem you have identified \- connect the 'why' and the 'how'. +This answer will be displayed on the Catalyst voting app, so voters will see it even if they do not open your proposal and read it in detail. +**Answer: \*** +**We'll develop Marlowe Oracle Protocol and deliver an easy-to-use toolkit, enabling flexible, transparent data provision and making oracle flow in Marlowe accessible for oracles, developers and users.** + +### \[GENERAL\] Website / GitHub repository, White paper, Marketing or any other relevant link + +Here, provide links to yours or your partner organization’s website, repository, or marketing, +Or provide links to any whitepaper or other publication relevant to your proposal. +Note however that this is extra information that voters and Community Reviewers might choose not to read. You should not fail to include any of the questions in this form because you feel the answers can be found elsewhere. +If any links are specified make sure these are added in good order (first link must be present before specifying second). Also ensure all links include ‘https.’ Without these steps, the form will not be submittable and show errors. +**Answer: [https://github.com/marlowe-lang](https://github.com/marlowe-lang) , [https://twitter.com/marlowe\_io](https://twitter.com/marlowe_io), [https://playground.marlowe-lang.org](https://playground.marlowe-lang.org), https://preprod.runner.marlowe-lang.org** + +### \[GENERAL\] Does your project have any dependencies on other organizations, technical or otherwise? + +**Answer: \* No** + +### + +Here you should list any dependencies and prerequisites for your project’s success. These are usually external factors (such as third-party suppliers, external resources, third-party software, etc.) that may cause a delay, since a project has less control over them. In case of third party software, indicate whether you have the necessary licenses and permission to use such software. +**Answer: \*** + +### \[GENERAL\] Will your project’s output/s be fully open source? + +[Open source](https://docs.projectcatalyst.io/fund-documentation/fund12-docs/how-to-submit-a-proposal/additional-guidance/open-source-guidance) refers to something people can modify and share because its design is publicly accessible. +Open source software is software with source code that anyone can inspect, modify, and enhance. Conversely, only the original authors of proprietary software can legally copy, inspect, and alter that software. +**Answer: \*Yes** + +### \[GENERAL\] Please provide here more information on the open source status of your project outputs + +If you answered YES to the above question: +If declaring the project is open source in the application form, the project should be open source-available throughout the entire lifecycle of the project with a declared open-source repository. +Please indicate here the type of licence you intend to use for open source and provide any further information you feel is relevant to the open source status of your project outputs. +If only certain elements of your code will be open source please clarify which elements will be open source here. +If you answered NO to the above question, please give further details as to why your projects outputs will not be open source. +**Answer: \*** +**All the code and protocol specs will be licensed under permissive “Apache License Version 2.0”.** + +### + +### \[METADATA\] Themes: + +**Answer: \* Dapp, DeFi, Oracle, SDK, Developer Tools** + +### \[METADATA\] SDG rating + +This field is optional. You can use the [SDG Proposer Tool](https://cardanocataly.st/proposer-tool-sdg/) to help you include any relevant [UN SDGs, sub goals and/or KPIs](https://sdgs.un.org/goals) in your proposal. + +### \[SOLUTION\] Please describe your proposed solution + +How you write this section will depend on what type of proposal you are writing. You might want to include details on: + +* How do you perceive the problem you are solving +* What are your reasons for approaching it in the way that you have +* Who will your project engage +* How will you demonstrate or prove your impact + +Explain what is unique about your solution, who will benefit, and why this is important to Cardano. + +**Marlowe 2025** + +This is one of a set of proposals that together consolidate the Marlowe infrastructure and improve the developer experience, enhance Marlowe with an innovative oracle protocol, developed in collaboration with leading Cardano oracle providers, and design the successor core language, Marlowe V2, working with the Marlowe developer ecosystem. + +**Increasing Oracle’s Accessibility on Cardano** + +The current oracle systems on Cardano operate predominantly on a fixed, push-based model, which limits the ability to meet diverse and less commonly used data needs for smart contracts. Our solution, the Marlowe Oracle Protocol, aims to solve this by shifting towards a pull-based model, where oracles respond dynamically to on-chain data requests, ensuring better adaptability and data coverage for a wider array of contracts. + +Our approach is centered around enhancing flexibility, transparency, and simplicity. We want to make the process of using oracles in smart contracts much more accessible to developers, whether they are experienced with Cardano tools or are just getting started with Marlowe, Aiken, or PlutusTx. The protocol will also include user-friendly tools, developed in TypeScript, Rust, and Haskell, to facilitate oracle accessibility for the end users and simplify integrations for developers as well as data providers. + +**Marlowe Oracle Specification** + +We want to formalize the “Marlowe Oracle Protocol” and submit it as a detailed Cardano Improvement Proposal (CIP). There are no guarantees that the proposal will be accepted but the process itself will allow us to approach the problem in a systematic manner and to create concise specifications. + +**Collaborations with Oracle Providers** + +To ensure the success and adoption of the Marlowe Oracle Protocol we are collaborating with key partners in the Cardano ecosystem: + +* **Wolfram Blockchain Labs**: We are working pretty closely with the Team already and they are in the process of deploying their oracle solution on the mainnet and are really open to integrate the new approach into their future product release. +* **Charli3 Oracles:** We already initiated discussions with Charlie3, and they expressed interest in our proposal and future integrations. +* **Other oracle providers**: We have spoken to other providers, including Orcfax and we hope to work closely with them on this project. + +**Marlowe Runtime and TS-SDK Adaptations** + +We will enhance the Marlowe Runtime to better support the Marlowe Oracle Protocol. This adaptation will include more precise “merkleization splitting” so developers are able to specify division points which preserve semantically meaningful subcontracts from the oracle perspective. This capability will be also exposed in our TypeScript SDK and examples. + +**Data Providers Toolkit** + +**Ready To Use Oracle Service** + +We will expand on our oracle CLI application, which is currently a basic request harvester and data provider, transforming it into a fully operational, standalone system service. This minimal but complete implementation will serve as an MVP for the Marlowe Oracle Protocol. The goal is to deliver an out-of-the-box solution that requires minimal configuration, enabling oracle operators to start providing data points using the new emerging standard. + +**Customizable TypeScript Example and SDK** + +Additionally we will create standalone TypeScript examples which will demonstrate to the oracle builders how to discover and respond to the data point requests on the chain. These examples should be easy to customize and integrate with existing systems and complementary to the + + + + +### \[IMPACT\] Please define the positive impact your project will have on the wider Cardano community + +Please include here a description of how you intend to measure impact (whether quantitative or qualitative) and how and with whom you will share your outputs: + +* In what way will the success of your project bring value to the Cardano Community? +* How will you measure this impact? +* How will you share the outputs and opportunities that result from your project? + +**Answer: \*** +The Marlowe Oracle Protocol is a key enabler that will significantly lower barriers for both developers and data providers within the Cardano ecosystem. Marlowe already simplifies blockchain technology adoption for new users by providing an intuitive domain-specific language for financial contracts. With the addition of Oracle Protocols, we are expanding this accessibility to a wider range of real-world applications. + +**Lowering Entry Barriers for Developers** + +By devloping and integrating the Marlowe Oracle Protocol into the Marlowe Runtime, we empower developers to not only create financial contracts but also seamlessly include oracle-based functionalities, which are critical for DeFi and other blockchain-powered use cases. Developers can now: + +* Easily access real-world data in a secure, transparent, and trustless manner. +* Utilize easy-to-integrate tools and examples within our TypeScript SDK (TS-SDK), allowing them to quickly build dApps that harness external data. +* Implement Oracle requests in their contracts through straightforward integration, opening new possibilities for data-driven dApps. + +**Lowering Entry Barriers for Data Providers** + +The Marlowe Oracle Protocol also provides a clear pathway for data providers, such as stake pool operators (SPOs) or other trusted entities, to start contributing to the Cardano ecosystem with minimal overhead. We will deliver a lightweight but fully functional Oracle software component that implements the new protocol. This system is designed for: + +* Ease of Deployment: Data providers can quickly set up and deploy this Oracle software integrating it with their knowledge backends. +* Reach and Incentives: With Marlowe's expanding ecosystem, Oracle data providers will gain direct access to a growing pool of developers and dApps that need data for their contracts. This creates a strong incentive model, where providers can monetize data sharing in a transparent and standardized manner. + +**DeFi Expansion** +The ability to incorporate real-world data into contracts expands Marlowe’s potential use cases in the DeFi space, allowing for more sophisticated financial products and growth of the whole Cardano DeFi ecosystem. + +**Infrastructure Growth** +Oracle services built with our protocol will help establish a foundational layer of real-world data access, which is crucial for many applications. The integration and standardization of Oracles will lead to an increase in robust and reliable infrastructure that dApp developers can depend on. + +### \[CAPABILITY & FEASIBILITY\] 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? + +Please describe your existing capabilities that demonstrate how and why you believe you’re best suited to deliver this project? +Please include the steps or processes that demonstrate that you can be trusted to manage funds properly. +**Answer: \*** + +**Experience in Developing Marlowe Technology** + +We are the core maintainers of Marlowe Lang and Core Team members of the Marlowe Project under IOG. + +We believe in the value it provides to the community and to the issues it can solve regarding mainstream adoption. + +**Development process will be public and open-source** + +Both the output and the development process will be public and open-source. This approach provides an easy way for the Catalyst team and the Cardano community to evaluate the progress at each step of the process + + +> ### \[PROJECT MILESTONES\] What are the key milestones you need to achieve in order to complete your project successfully? +> +> A clear set of milestones and acceptance criteria will demonstrate your capability to deliver the project as proposed. More guidance on submitting milestones as part of your project proposal can be found here. + +### Project Milestones + +#### **Milestone 1: Specification and CIP Submission** +- **Rationale**: To formally define the Marlowe Oracle Protocol and ensure its acceptance and understanding within the Cardano community, a detailed Cardano Improvement Proposal (CIP) must be submitted. +- **Outputs**: + - Prepare the full specification of the Marlowe Oracle Protocol. + - Submit the CIP proposal to the Cardano Improvement Proposal repository. + - Initial engagement with Oracle service providers (e.g., Wolfram Blockchain Labs, Charlie3, Orcfax) for feedback and integration. +- **Acceptance Criteria**: + - The CIP for the Marlowe Oracle Protocol is successfully submitted. + - Stakeholder feedback is documented, and adjustments to the specification (if any) are addressed. +- **Evidence of Milestone Completion**: + - Link to the publicly accessible CIP document. + - Meeting notes and documented feedback from Oracle providers. + +#### **Milestone 2: Validator and Runtime Changes** +- **Rationale**: To fully support Oracle functionality, we need to adapt the existing Marlowe validator and runtime backend to handle Oracle data interactions efficiently and securely. +- **Outputs**: + - Implement validator changes to guard the Marlowe state output after contract finalization, ensuring Oracle data integrity. + - Introduce changes to allow Marlowe to output relevant contract state (`choices`) as a UTxO, facilitating Oracle data integration. + - Adapt the Marlowe Runtime to support these new capabilities, including handling "merkleization splitting" to enable optimized Oracle interaction. +- **Acceptance Criteria**: + - Successful deployment of validator and runtime changes on both testnets. + - Functional integration of new Oracle data handling in test contracts. +- **Evidence of Milestone Completion**: + - Validator and runtime updates pushed to the public repository. + - Tests demonstrating correct handling of Oracle data on testnets. + +#### **Milestone 3: Oracle Service App Enhancement and TypeScript SDK Example** +- **Rationale**: Provide Oracle operators and developers with easy-to-use software components that fully implement the Marlowe Oracle Protocol, enabling both data provisioning and integration with contracts. +- **Outputs**: + - Enhance the current Oracle service app to transform it into a minimal but operational standalone system, ready for deployment. + - Develop example code and integration modules in the TypeScript SDK, demonstrating Oracle data requests and interactions with Marlowe contracts. +- **Acceptance Criteria**: + - Oracle service app is ready for use by data providers, including an example deployment. + - TypeScript SDK includes documented examples showcasing Oracle integration with Marlowe contracts. +- **Evidence of Milestone Completion**: + - Link to the Oracle service app in the public repository, along with deployment instructions. + - TypeScript SDK modules and example projects published and accessible for developers. + +#### **Milestone 4: Aiken Support and Integration Example** +- **Rationale**: To demonstrate the versatility and compatibility of the Marlowe Oracle Protocol with different smart contract languages in the Cardano ecosystem, we will add support for `Aiken`, along with a library and usage example. +- **Outputs**: + - Develop an `Aiken` library that supports Oracle requests and collecting responses using the Marlowe Oracle Protocol. + - Provide a complete example of an `Aiken` contract that integrates Oracle requests, demonstrating the protocol's interoperability. +- **Acceptance Criteria**: + - The `Aiken` library for Marlowe Oracle Protocol is implemented and accessible to developers. + - An `Aiken` contract example showcasing Oracle data integration is published. +- **Evidence of Milestone Completion**: + - The `Aiken` library and example contract are available in the public repository, along with documentation on integration. + +#### **Milestone 5: Documentation, Integration with Marlowe DApp Starter Kit** +- **Rationale**: To ensure the usability and accessibility of the Marlowe Oracle Protocol, comprehensive documentation and integration examples need to be provided. +- **Outputs**: + - Complete end-to-end documentation for Oracle integration, targeting data providers, developers, and users. + - Integrate Oracle examples and tutorials into the Marlowe DApp Starter Kit, including a practical dApp demonstration (such as the betting dApp using verifiable random numbers). +- **Acceptance Criteria**: + - Documentation is published and accessible, covering the protocol, example implementations, and integration processes. + - Marlowe DApp Starter Kit is updated with Oracle examples, including detailed tutorials. +- **Evidence of Milestone Completion**: + - Documentation hosted publicly, with links to access it. + - Marlowe DApp Starter Kit repository includes Oracle examples, with recorded usage tutorials. + +#### **Milestone 6: Project Close-out Report and Video** +- **Rationale**: To finalize the project, we will provide a summary report and a video that captures the essence of the solution, its progress, and its impact. +- **Outputs**: + - A project completion report detailing milestones, key achievements, and future prospects. + - A video summary showcasing the Oracle Protocol, key technical components, and how it contributes to the Cardano ecosystem. +- **Acceptance Criteria**: + - The project report is available via a publicly accessible link. + - The video guide is published on YouTube or X and linked for review. +- **Evidence of Milestone Completion**: + - Shared links to the project completion report and video. + + +### \[RESOURCES\] Who is in the project team and what are their roles? + +List your team, their Linkedin profiles (or similar) and state what aspect of the proposal’s work each team member will undertake. + +If you are planning to recruit additional team members, please state what specific skills you will be looking for in the people you recruit, so readers can see that you understand what skills will be needed to complete the project. + +You are expected to have already engaged the relevant members of the organizations referenced so you understand if they are willing and/or have capacity to support the project. If you have not taken any steps to engage with your team yet, it is likely that the resources will not be available if you are approved for funding, which can jeopardize the project before it has even begun. The Catalyst team cannot help with this, meaning you are expected to have understood the requirements and engaged the necessary people before submitting a proposal. + +Have you engaged anyone on any of the technical group channels (eg Discord or Telegram), or do you have a direct line of communications with the people and resources required? +Important: Catalyst funding is not anonymous, and some level of ‘proof of life’ verifications will take place before initial funding is released. Also remember that your proposal will be publicly available, so make sure to obtain any consent required before including confidential or third party information. + +All Project Participants must disclose their role and scope of services across any submitted proposals, even if they are not in the lead or co-proposer role, such as an implementer, vendor, service provider, etc. Failure to disclose this information may lead to disqualification from the current grant round. +**Answer: \*** + +Simon Thompson, who is one of the inventors of Marlowe, will coordinate the project, and will act as an “internal customer” for the technologies developed, giving guidance on their functionality and interfaces, as well as acting as writer/presenter of materials within the DSK (Marlowe DApp Starter Kit). + +Tomasz Rybarczyk and Nicolas Henin, who have jointly worked on the Marlowe team for NNN years, will act as Full Stack Engineers and will develop the proposal feature set. The work content has been carefully structured and estimated for two full time engineers proficient in Marlowe technology. + +The Marlowe Special Interest Groups will challenge and openly discuss Proposal Implementation details and we’ll eventually include new contributors in the marlowe-lang github organization. + +### \[BUDGET & COSTS\] Please provide a cost breakdown of the proposed work and resources + +Make sure every element mentioned in your plan reflects its cost. It may be helpful to refer to your plan and timeline, list all the resources you will need at each stage, and what they cost. + +Here, provide a clear description of any third party product or service you will be using. This could be hardware, software licenses, professional services (legal, accounting, code auditing, etc) but does not need to include the use of contracted programmers and developers. + +The exact budget elements you include will depend on what type of work you are doing, and you might need to give less detail for a small, low-budget proposal. If the cost of the project will exceed the funding request, please provide information about alternative sources of funding. + +Consider including budget elements for publicity / marketing / promotion / community engagement; project management; documentation; and reporting back to the community. Most proposals need these, but many proposers forget to include them. + +It is the project team’s responsibility to properly manage the funds provided. Make sure to reference Fund Rules to understand eligibility around costs. +**Answer: \*** +**![][image1]** + +### \[VALUE FOR MONEY\] How does the cost of the project represent value for money for the Cardano ecosystem? + +Use the response to provide the context about the costs you listed previously, particularly if they are high. + +It may be helpful to include some brief information on how you have decided on the costs of the project. + +For instance, can you justify with supporting evidence that costs are proportional to the average wage in your country, or typical freelance rates in your industry? Is there anything else that helps to support how the project represents value for money? + +Marlowe is a key technology for Cardano; this proposal maintains its current capabilities for the community, and supports the projects that depend on it. This provides value for all the projects that depend on the continued availability of Marlowe on Cardano, through bug fixes, Plutus upgrades and Hard Forks. + +Our costings are based on prevailing rates for developers in Europe, and we are charging the same rate for all contributors. We have the right combination of skills available through a combination of full- and part-time contributions. The team proposed is highly experienced having previously worked as members of the core Marlowe team; there is therefore no time needed for the team to get up to speed: we hit the ground running. +