funded
Ephemeral Cardano DevNets by TxPipe
Current Project Status
In Progress
Amount
Received
₳0
Amount
Requested
₳197,143
Percentage
Received
0.00%
Solution

A lightweight mechanism to spin-up ephemeral Cardano nodes, allowing devs to configure the initial state of the ledger and then executing a complex sequence of transactions in a deterministic way.

Problem

There’s no easy way to simulate complex Cardano on-chain interactions that span multiple parties and a sequence of transactions. Without this, testing and overall development is much harder.

Impact Alignment
Feasibility
Value for money

txpipe

2 members

Ephemeral Cardano DevNets by TxPipe

Please describe your proposed solution

The introduction of Aiken and other tooling has provided the Cardano ecosystem with a mechanism to easily develop and evaluate validators in an isolated way. Complementary to that, a comprehensive framework for dApp testing should allow devs to model and evaluate complex sequences of transactions for happy-paths, edge-cases and any other required scenario.

There's no available tooling in Cardano to solve this concern in a simple, ergonomic and efficient way. Existing solutions are resource intensive and require complex setup and cleanup mechanisms. In other ecosystems, like Ethereum, it's common to use "devnets". A devnet is general term used to describe a short-lived, small-scale network (just one node) that is used during development.

Our solution to this problem in Cardano is to build a tool for defining, running and evaluating Cardano devnets. Our proposed tool includes the following features:

  • A declarative language to define the test scenario. This will include an initial ledger state, a sequence of transactions to be executed from that initial state and the expected final state.
  • A runtime engine build on top of Dolos that will interpret the test scenario and execute the corresponding transactions in a deterministic fashion. This engine will have very low-resource requirements (similar to Dolos)
  • A reporting component that evaluates the final state of the ledger after the execution and compares it to the declared state.
  • A log / tracing gathering mechanism that provides a fine-grained level of detail of all the events occurred throughout the execution.
  • A quality-of-life utility to create test scenarios from existing network (mainnet, preprod, preview) allowing devs to "fork" the ledger from the selected network so that test scenarios can be ran from real-world examples.

Please define the positive impact your project will have on the wider Cardano community

A simple and efficient way to model and test transaction flows will allow dev teams to improve their software quality. For teams which are already performing these practices using other methods, this tool will lower the development effort and decrease the cost of running these tests.

In either case, the Cardano developer community will benefit from an improved developer experience.

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 3 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. We've also participated in development of chains using the released version of the IOG's Partnerchain SDK.

Successful Catalyst proposals

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

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.

What are the key milestones you need to achieve in order to complete your project successfully?

Milestone 1: Project Scaffolding

Milestone outputs:

  • A stub of the runtime engine
  • A stub of the language model
  • A stub of the CLI

Acceptance criteria:

  • All components stubs are ready for feature development
  • A CI/CD pipeline is in place to build / integrate the different artifacts

Evidence of milestone completion:

  • Publicly available source-code containing the project scaffold

Milestone 2: Declarative Language for Test Scenarios

Milestone outputs:

  • The specs for a declarative language capable of defining test scenarios
  • Examples of test scenarios defined using the new language
  • Documentation of how to leverage the new language

Acceptance criteria:

  • A developer is able to define a test scenario using the provided language

Evidence of milestone completion:

  • Publicly available source-code containing the language specs and examples
  • Link to documentation site describing the new language (URL TBD)
  • Video showcasing the artifacts available in the new language

Milestone 3: Test Execution Engine

Milestone outputs:

  • A runtime component capable of executing test scenarios
  • A CLI tool to serve as entry-point for the runtime
  • Documentation on how to use the runtime

Acceptance criteria:

  • A developer can use the new runtime to execute test scenarios
  • A developer can interpret the results of the test scenario evaluation
  • A developer can gather traces from test executions

Evidence of milestone completion:

  • Publicly available source-code containing new runtime and CLI
  • Link to documentation website (URL TBD)
  • Video showing how to interact with the new runtime

Milestone 4: Packaging + Extra Tooling

Milestone outputs:

  • A tool to generate test scenarios from on-chain data
  • An easy to install binary release of the complete toolchain
  • Documentation on how to install the toolchain

Acceptance criteria:

  • A developer can install the toolchain in supported platforms (mac, linux, windows)
  • A developer can create test scenarios from on-chain data

Evidence of milestone completion:

  • Publicly available source-code of the new features
  • Link to binary release of the toolchain (URL TBD)
  • Link to documentation website (URL TBD)
  • Video showing how to interact with the new features

Final Milestone: Final Report

Milestone outputs:

  • publicly available source-code of the complete toolchain
  • comprehensive documentation for the complete toolchain
  • a video showcasing the final output of the project
  • a final report describing the project process and outcome

Acceptance criteria:

  • the final toolchain includes all features described in the proposal's scope
  • the final video complies with Catalyst requirements
  • the final report complies with Catalyst requirements

Evidence of milestone completion:

  • Publicly available source-code of the complete toolchain
  • Link to documentation site (URL TBD)
  • Final video uploaded to Google drive
  • Final report uploaded to Google drive

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

TxPipe members involved in this project will be:

Please provide a cost breakdown of the proposed work and resources

FTE = Full-time equivalent

Software development:

  • Rust developer: 1 FTE x 6 months = ₳ 154,286
  • Technical Writer: 1 FTE x 3.5 months = ₳ 30,000

Project Management:

  • Project Manager: 1/4 FTE x 6 months = ₳ 12,857

No dependencies.

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.

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