Hollow by TxPipe: Headless dApp Framework, a friendly SDK for off-chain development
current project status
Current Project Status
in_progress
Total
amount
Received
₳35998
Total
amount
Requested
₳194444
Total
Percentage
Received
19%
₳35998 Received out of ₳194444
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.
Impact alignment
Feasibility
Value for money

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.

"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.

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.

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

  • reduce the effort / time required to develop Cardano dApps

  • simplify the process of onboarding new developers to the Cardano ecosystem

    [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 has helped develop several dApps for the ecosystem.

We've implemented the same patterns several times.

We'll use the Actor-model, a well-defined architectural pattern.

We'll provide an end-to-end app showing the framework in action.

Development process will be public and open-source.

[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 much of the required 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.

>Mock end-to-end example

Outputs:

  • a mock dApp built using the Hollow framework
  • will show the full extent of the framework and the expected developer experience
  • won't work because the framework & runtime will be mocked
  • provides a blueprint of what will get built in further milestones

>Completion Report

[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

Software development

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

Project Management

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

    [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 experience in the field, providing reasonable 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.

Avis des conseillers communautaires (1)

Comments

Monthly Reports

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3 min 24 s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4 min 3 s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3 min 48 s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2 min 16 s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3 min 14 s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3 min 19 s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4 min 59 s
    Darlington Kofa
0:00
/
~0:00