funded

Hollow by TxPipe: Headless dApp Framework, a friendly SDK for off-chain development

₳35,998.00 Received
₳194,444.00 Requested
Ideascale logo View on ideascale
Community Review Results (1 reviewers)
Impact Alignment
Feasibility
Value for money
Solution

A framework for building self-contained, portable logic for reading and participating in on-chain smart contract protocols.

Problem:

Cardano relies heavily on off-chain computation by design.

On-chain dev tools have evolved greatly (eg: Aiken).

Off-chain is neglected, developers re-invent the wheel in each project.

Yes Votes:
₳ 230,327,048
No Votes:
Votes Cast:
655

This proposal was approved and funded by the Cardano Community via Project F11: Cardano Open: Developers - technical Catalyst funding round.

[SOLUTION] Please describe your proposed solution.

Executive summary

  • We'll build an SDK to streamline Cardano dApp development by decoupling business logic from all the required infrastructure required to connect it to the blockchain.
  • The SDK will include a hosting runtime. Developers will be able to code, test and run their dApps with the level of simplicity required to run a Docker container.
  • The SDK will include CLI to perform common development tasks such as code-generation and test execution.
  • The proposal includes the integration of the SDK with Demeter to provide an optional, simple mechanism to deploy dApps to the cloud.

What's a headless dApp

"Headless dApp" refers to the idea of decoupling the business logic from the external context by forcing all inputs and outputs through a well-defined interface. To run your app, you'll need a generic runtime that knows how to connect your business logic to the outside world.

Roles in a Headless dApp

This strict separation of concerns provides several benefits:

  • portability: you can run your app in different contexts depending on your needs. From the terminal, on your browser, on the cloud, etc. As long as you have a compatible runtime to host your app, you should be good.
  • composability: by having a concrete, programatic interface to interact with the business logic of your app, you can "compose" complex apps that orchestrating other apps to fulfill a higher-level objective.
  • multiple frontends: your app can have multiple frontends, maybe even developed by different teams. For example, a DEX could have different web frontends, the user could pick their favorite.
  • less plumbing: the runtime component can be quite generic and reused by many dApps. There's no need to re-implement how to query on-chain data, how to build transactions, how to submit transaction, etc. You can focus just on your business logic knowing that plumbing is already taken care of.

The Hollow SDK is meant to provide the required artifacts to build headless Cardano dApps in a developer friendly way. It provides all of the plumbing out-of-the-box, you just need to relax and enjoy the ride.

More information

If you're interested in learning more about the project, even outside the scope of the Catalyst proposal, please bookmark our git repository. We'll make sure to maintain the README updated with relevant information and news.

[IMPACT] Please define the positive impact your project will have on the wider Cardano community.

Simplified development of Cardano dApps

An SDK that removed all of the common boilerplate associated with dApp development will simplify the process, allowing teams to reduce development effort, iterate faster and reduce time-to-market.

Attract new developers to Cardano

A well defined SDK that removed complexity from the development process will facilitate the onboarding of new developers to the Cardano ecosystem.

Promote interoperability between Cardano dApps

By decoupling the off-chain business logic into portable components with well-defined interfaces, we facilitate the process of orchestrating multiple apps into higher-level workflows.

[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?

TxPipe is an active member of the Cardano ecosystem

TxPipe has been developing open-source tools for the Cardano ecosystem for over 2 years and we're not going anywhere. Evidence of our commitment can be found by evaluating the continuous activity of our public code repositories.

Experience developing in the Cardano ecosystem

TxPipe has helped developed several dApps for the Cardano ecosystem. This experience allows us to evaluate the feasibility of the project and its potential benefit from a developer's perspective.

Succesful Catalyst proposals

We have successfully completed 2 prior Catalyst proposals. This may serve as evidence that our team has the required capabilities to fulfill these type of projects.

The Ergo blockchain has a similar framework

The Ergo blockchain has a Headless dApp framework that served as inspiration for this proposal. This may also serve as evidence that the approach is feasible.

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?

Development Framework

Implement a framework that allows devs to implement off-chain components without all of the traditional boilerplate.

Outputs:

  • Publicly available source code for the Hollow Framework
  • Publicly available documentation about the Hollow Framework
  • A public Rust crate released in crates.io
  • A mock runtime component to test Hollow applications built with the framework

Acceptance Criteria:

  • A developer is able to build a basic Hollow application that interacts with the Cardano blockchain by following the available documentation.

>Hosting Runtime

Implement the runtime that can be used to host backend off-chain components by fulfilling all of the blockchain integration concerns (eg: tx submission, on-chain data access, etc)

Outputs:

  • Publicly available source code of the backend Hollow Runtime
  • Publicly available documentation about the backend Hollow Runtime
  • A binary release and a docker image of the Hollow Runtime

Acceptance Criteria:

  • A developer is able to deploy the Hollow Runtime as a docker container and host the example application by following the available documentation.

>CLI + Code Generation

Implement a developer friendly CLI that allows devs to bootstrap, build, test and deploy their projects.

Outputs:

  • Publicly available source code of the Hollow CLI
  • Publicly available documentation about the Hollow CLI
  • Publicly available binary release of the Hollow CLI

Acceptance Criteria:

  • A developer is able to install the Hollow CLI in it's local environment by following the available documentation.
  • A developer is able to scaffold (aka: setup basic structure) a Hollow project by using the CLI and the available documentation.
  • A developer is able to test their Hollow project by using the CLI and the available documentation.

>Demeter Integration

Integrate the Hollow hosting runtime as a Demeter service to provide a simple deployment mechanism for headless dApps.

Tasks:

  • Automate provision and monitoring of the Hollow SDK runtime on Kubernetes clusters
  • Rollout the infrastructure to currently active Demeter clusters

Outputs:

  • Provisioning scripts to install Hollow SDK runtime instances on a Kubernetes cluster
  • Publicly available source code of a Kubernetes operator to serve as hosting runtime for dApps built using the Hollow SDK.

Acceptance Criteria:

  • A developer is able to use Demeter Web Console to deploy and host dApps built using the Hollow SDK

>End-to-end example

Create an end-to-end example to showcase the full extent of the Hollow SDK capabilities and to serve as a starting point for other developers that want to build their own dApp.

Outputs:

  • The complete source code for the end-to-end dApp publicly available.
  • A live demo instance of the dApp publicly available.

Acceptance Criteria:

  • A developer is able to appreciate the full extent of the framework and the provided developer experience.
  • A developer is able to use the provided source code as starting point to build their own dApp.

>Completion Report

This milestone is about wrapping up the project and providing relevant insights for the Catalyst team and larger Cardano community to evaluate the result of the proposal.

Outputs:

  • a video recording summarizing the process and results of the whole project.
  • publicly available source-code containing all artifacts produced throughout the project.
  • written report describing the development process and any relevant findings.
  • quantitative report showing any available usage metrics of the instances hosted on the Demeter platform.

Acceptance Criteria:

  • the video recording provide enough information to evaluate the end result.

  • a technical reviewer / developer is able to assess the validity of the source code with reasonable accuracy

  • a reviewer is able to audit the development process ensuring that all required tasks have been completed.

  • a reviewer is able to appreciate the usage metrics of the instances hosted in the Demeter platform.

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

  • Santiago Carmuega - TxPipe : Rust Developer /Tech Lead - Github

  • Federico Weill - TxPipe : Project Manager - Linkedin

  • Alejandro Avagnina - TxPipe : Site Reliability Engineer - Github

  • James Harper - TxPipe: Rust Developer - Github

  • Alexsander Falcucci - TxPipe: Rust Developer - Github

  • Florencia Luna - TxPipe: Technical Writer - Linkedin

    [BUDGET & COSTS] Please provide a cost breakdown of the proposed work and resources.

FTE = Full-time equivalent

Total budget = ₳ 194,444

Software development

  • Rust developer: 2 FTE x 3 months = ₳ 155,556
  • Site Reliability Engineer: 1 FTE x 2 months = ₳ 22,222
  • Technical Writer: 1/2 FTE x 2 months = ₳ 8,333

Project Management

  • Project Manager: 1/4 FTE x 4 months = ₳ 8,333

    [VALUE FOR MONEY] How does the cost of the project represent value for money for the Cardano ecosystem?

The bulk of the budget falls under the software development category. TxPipe has extensive experience in the field, allowing it to provide good value for money. The hourly rates are defined using fair market prices. The estimation for the level of effort takes into account all of the optimizations that our team is capable of providing after years of experience developing software solutions in the Cardano ecosystem.

Community Reviews (1)

Comments

Monthly Reports

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