completed impact proposal

MLabs - CTL Blockfrost Backend

$50,000.00 Received
$50,000.00 Requested
Ideascale logo View on ideascale
Community Review Results (1 reviewers)
Impact / Alignment
Feasibility
Auditability
Solution

MLabs has been working with IOG to build the Cardano Transaction Library (CTL), a framework for building Cardano transactions. We propose adding Blockfrost as an available query layer within CTL.

Problem:

Making Blockfrost easily accessible to dApp developers as the default, regardless of all other technical choices, will help Blockfrost adoption grow first and foremost.

Yes Votes:
₳ 226,478,708
No Votes:
₳ 22,337,961
Votes Cast:
617

This proposal was approved and funded by the Cardano Community via Project F9: Building (on) Blockfrost Catalyst funding round.

  • Video cover image

[IMPACT] Please describe your proposed solution.

Market

dApp developers, off-chain statistics developers, data scientists

Problem Space

Blockfrost is used by many dApps as a so-called 'query layer', to inspect the state of the Cardano blockchain, and to perform certain important actions such as transaction submission and fee estimation. Some other services which can be used for this include Ogmios, Koios, and Carp.

The Cardano-Transaction-Library is a toolkit for developers to build transactions for the Cardano Blockchain. Reaching version 1.0 in June 2022 and already seeing on-chain adoption on several large-scale industrial dApps, the CTL is currently using Ogmios to fill this gap. Ogmios is a self-hosted solution, and some features available on Blockfrost are not available from Ogmios, necessitating additional infrastructure. In fact, a CTL user will need to run Ogmios, a Cardano node, and other utilities on a server to successfully build transactions today.

While this level of infrastructure allows for a decentralizable, fully open-source system, the setup and maintenance of a server is time-consuming, and nobody wants to run their own server.

A clear alternative is to allow Blockfrost as an alternative backend service. Instead of running their own servers, users provide a Blockfrost API key and any other required configuration. However, the maintenance of their server may be greatly reduced or eliminated. Due to the relative ease of use, it's expected that many developers will use the Blockfrost service as a default during development and production.

[IMPACT] Please describe how your proposed solution will address the Challenge that you have submitted it in.

OUR PROPOSAL

MLabs wishes to fast-track the development of a Blockfrost Backend for CTL, simplifying the necessary infrastructure needed to run CTL and allowing developers to take advantage of the speed and reliability of Blockfrost. This can occur without requiring "glue code" between the Blockfrost API integration and the cardano-serialization-lib.

Instead, developers will be able to write high-level, declarative code, which describes how to construct a transaction in a way inspired by the PAB. This makes the best possible use of the existing training from the Plutus Pioneer courses while relying on a production-ready set of tools under the hood.

By making Blockfrost an available option within the CTL framework, we expect more developers to test and ultimately use Blockfrost effectively for many projects to come.

[IMPACT] What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?

Our Cardano-Tx-Lib, which received funding in Fund8, has already accomplished the majority of the milestones outlined in the proposal. As such, the current proposal is decidedly low risk as it is focused on integrating a backend, and similar integrations have already been achieved.

[FEASIBILITY] Please provide a detailed plan, including timeline and key milestones for delivering your proposal.

3 Months:

  • Complete a version of CTL that can use Blockfrost for its transactions
  • Show a dApp capable of switching easily between the Ogmios and Blockfrost options within CTL.

6 Months:

  • Complete Blockfrost testing and reliability plans to ensure a positive user experience

  • Complete a user experience report from the first dApp to adopt CTL using Blockfrost and address initial feedback.

    [FEASIBILITY] Please provide a detailed budget breakdown.

Hours involved: 625

Total: $50,000

Breakdown:

Set up basic Blockfrost API calls to match requirements: 105

User API: Configuring Blockfrost: 40

User API: Using Blockfrost interchangeably with default runtime: 40

Format conversion functions: 65

Testing: 165

Demo & Polishing: 110

Subtotal: 525

Change Budget: 100

Total Time: 625 hours

Total Cost: $50,000

[FEASIBILITY] Please provide details of the people who will work on the project.

MLabs

MLabs has quickly become one of the premier development firms in the Cardano Ecosystem. We are an IOG Plutus Partner and work regularly with IOG to develop the Cardano blockchain and ecosystem. Our team is composed of talented developers who have helped build community projects such as:

  • Liqwid
  • SundaeSwap
  • Optim
  • Many others

Through our work with early-stage projects, we have one of the largest groups of Haskell / Plutus developers in the community. Moreover, MLabs has the capacity to conceptualize and ship advanced applications in Plutus and on Cardano.

Website: <u>https://mlabs.city/</u>

[FEASIBILITY] If you are funded, will you return to Catalyst in a later round for further funding? Please explain why / why not.

The designated funds should be sufficient to accomplish our objectives. We do not currently intend to reapply under the same project for future Catalyst rounds.

[AUDITABILITY] Please describe what you will measure to track your project's progress, and how will you measure these?

We will measure:

  • the number of features implemented
  • the number of issues discovered and resolved
  • the usability of CTL's Blockfrost backend to projects that have incorporated it
  • the number of contributors adding to the GitHub repo
  • the number of Cardano projects relying on CTL
  • the general perception of the project in the space

We expect growth/positive results in these areas and are committed to meeting the milestones we have established throughout this proposal.

[AUDITABILITY] What does success for this project look like?

Project Impact: High

1) Accessibility: By making Blockfrost available to framework users, any users of that framework will have the opportunity to easily test and use Blockfrost end-to-end to know very quickly if Blockfrost is a good fit.

2) Provide a concise toolkit: By streamlining the Blockfrost API, we reduce the requirement for developers to understand and learn the entire API, and instead offer an intuitive way to use the tools provided by Blockfrost for its most important use cases: smart contract operations and off-chain statistics gathering.

MLabs will report progress and milestones to the Cardano community directly, publish demonstration videos on social media, and work with adoption partners to provide experience reports when using the new features.

[AUDITABILITY] Please provide information on whether this proposal is a continuation of a previously funded project in Catalyst or an entirely new one.

This is a new proposal.

Community Reviews (1)

Comments

Monthly Reports

Following the Fund9 voting results, MLabs organized a roadmap for integrating Blockfrost endpoints into the API interface of CTL. This piggybacked on early exploratory work we had already done when originally composing our original Fund9 proposal. The timeline identified several key early goals:

  • Make Contract runtime and ConfigParams parametrizable with a backend.
  • Identify core functionality needed to support multiple backends
  • Move every core query layer function to a handle (as in handle pattern)
  • Move every Ogmios query function that is not in the core set to a separate namespace (Contract.Ogmios)
  • Implement stubs for Blockfrost functions in the "core" handle Issues on the CTL repo were added to organize development here, and an initial issue was assigned.

That said, the main focus since project initialization has revolved around the broader architecture of the CTL project and untying it from a particular query layer. Specifically, some broad changes are needed before we can begin supplementing our reliance on Ogmios, the only chain indexer supported up until this point. Work along these lines included:

  • extending the TxConstraints API to support staking operations (stake credential registration, pool registration, etc)
  • extending CTL types to optionally accept staking credentials
  • add constraints that apply these changes to transactions
  • update the Contract interface to support these changes as well as inline datums.

And similar issues are highlighted throughout the CTL repo.

Disbursed to Date
$50,000
Status
Still in progress
Completion Target
4. After 6 months
Comments 0

Login or Register to leave a comment!

The CTL has undergone some moderate reconfigurations over the last two months. Part of these efforts involved complications stemming from a separate query dependency, while others involved changes to make the project backend more generalizable. For instance, developers made progress:

  • considering workarounds for how Blockfrost handles UTXO support
  • designing around Blockfrost's era summaries
  • integrating challenges stemming from changes on the Blockfrost end aiming at integrating CIP25

And other issues.

Perhaps more prominent, however, developers focused on configuring the Contract backend. Changes here were probably the most involved over the last month, and they are important in lay grounding for further Blockfrost integration.

Disbursed to Date
$50,000
Status
Still in progress
Completion Target
3. In the next 6 months
Comments 0

Login or Register to leave a comment!

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