funded
Blaze: Fully Featured Ledger Emulator, Transaction Builder for the Chang Hard Fork and PlutusV3
Current Project Status
In Progress
Amount
Received
₳0
Amount
Requested
₳200,000
Percentage
Received
0.00%
Solution

The MVP Emulator available in the Blaze library will be expanded and reworked to support upcoming Conway/CHANG features. The Emulator may also be used with other transaction builders.

Problem

A node emulator is a crucial tool for developers. Currently, there exists no comprehensive solution to handle the upcoming Chang hard fork, and existing emulators can’t be used universally.

Impact Alignment
Feasibility
Value for Money

Team

2 members

Blaze: Fully Featured Ledger Emulator, Transaction Builder for the Chang Hard Fork and PlutusV3

Please describe your proposed solution

A node emulator provides a developer the ability to test their dApp or other project on an emulated version of one of the Cardano networks without needing to use a testnet. This massively streamlines the developer experience of building on Cardano and results in overall more robust and resilient applications. The most popular emulator currently is Lucid's, which practically depends upon transactions built with the Lucid transaction builder and lacks support for Voltaire-era features. Lucid also depends on WASM via the use of CML, which can be limiting in some environments.

The upcoming Chang hard fork introduces new features for decentralised governance that many dApps and developers will want to build on, possibly expanding their projects with programmable dReps or accounting for various scenarios related to governance votes. PlutusV3, currently available on SanchoNet, is also something that ought be supported by an emulator.

Blaze is a javascript-native SDK for building transactions and currently features a working prototype of a node emulator. This solution aims to expand and rework components of this emulator to support upcoming features shown on SanchoNet so developers can be adequately prepared for building on Chang and beyond. Additionally, this emulator will not be dependent on Blaze's transaction builder, and so can accept and be used with any arbitrary CBOR-encoded transactions. This means that developers can integrate their existing projects with Blaze's emulator for tests even if they use a transaction builder in a different language.

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

A fully-featured Chang-ready emulator will dramatically improve the experience of developing on Cardano as developers can more comprehensively test their protocols. The introduction of an emulator to work seamlessly with other transaction builders also offers an opportunity to existing projects to improve the robustness of their security and forwards compatibility. It also improves the security of Blaze itself, as the emulator can be used to test the correctness of functions of other packages like the transaction builder and wallet handler.

The impact of this project can be measured by how many other projects integrate the emulator into their testing environments. This is easy to quantify, as those projects which open source their contracts will highlight their integration of Blaze, and other projects can mention its use.

These measures can be shared with the community via posts from the relevant Butane accounts regarding projects which use Blaze, as well as an assorted collection of notable example projects which use Blaze and the Emulator (something similar to https://github.com/aiken-lang/awesome-aiken).

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?

The Butane team has demonstrated itself as one of the top development teams in Cardano, producing a highly well-received protocol testnet and yellowpaper which has encouraged community and developer confidence in their technical merit. Blaze, in its current state, already offers a clean and efficient transaction building SDK and emulator that is being integrated within Butane to be used as the protocol's off-chain component.

Given the project is open source and has utility to effectively all developers on Cardano, the intention is to gather feedback from the developer community to shape Blaze and its emulator into a highly efficient and usable platform for building applications on.

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

Milestone 1: Research and Specification Outline

A: Milestone Outputs

  • A specification of all of the supported features required by a Chang-ready emulator, detailed enough to implement in Typescript
  • Sufficient knowledge and understanding of required features introduced in the upcoming hard fork

B: Acceptance Criteria

  • The specification is in accordance with the ledger rules and correctly describes all necessary features
  • The team is fully prepared to implement the specification

C: Evidence of Milestone Completion

  • A tangible specification of ledger rules to be implemented in the emulator is produced
  • Will be available on the blaze GitHub repository <https://github.com/butaneprotocol/blaze-cardano>

Milestone 2: Implementation of Chang Features

A: Milestone Outputs

  • An upgraded transaction builder for Blaze which supports Chang features and PlutusV3
  • A working prototype of a node emulator which emulates features highlighted on SanchoNet
  • Example scenarios and transactions written and tested with the emulator

B: Acceptance Criteria

  • The prototype correctly adheres to the specification and performs as expected

C: Evidence of Milestone Completion

  • Github <https://github.com/butaneprotocol/blaze-cardano>
  • NPM <https://www.npmjs.com/package/@blaze-cardano/emulator>
  • Updated GitHub package with versioning to indicate Chang compatibility

Milestone 3: Implementation of REST API

A: Milestone Outputs

  • A REST server which mimics the endpoints in common providers to allow submission, queries against the emulator
  • An example using the REST server with Blaze

B: Acceptance Criteria

C: Evidence of Milestone Completion

  • Github <https://github.com/butaneprotocol/blaze-cardano>
  • NPM <https://www.npmjs.com/package/@blaze-cardano/emulator>
  • Updated GitHub package with release to indicate REST webserver readiness

Final Milestone: Integration and Compatibility Tests and Polishing

A: Milestone Outputs

  • A comprehensive testing suite of all Emulator features
  • A final product ready to be used in production by other Cardano projects

B: Acceptance Criteria

  • The emulator can be used in existing environments and performs as expected
  • All testing procedures and auditing processes pass

C: Evidence of Milestone Completion

  • A working full release of the completed emulator
  • Examples of real projects (e.g. Butane) using the emulator

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

Micah Kendall - Programmer and initiator of Blaze.

Jay Taylor - Programmer

Blaze is developed and maintained by the Butane team, developers with relevant skills will be considered and recruited where appropriate.

Please provide a cost breakdown of the proposed work and resources

All costs of the project go towards manpower costs (contracted / employed developers).

2 developers to undertake the project over 9 months, ~11,111 ADA per developer per month. This significantly undercuts the market rate for experienced blockchain developers, given the level of knowledge required.

Tasks include the development of features, maintaining the library, and extensive documentation.

No dependencies.

How does the cost of the project represent value for money for the Cardano ecosystem?

A transaction building library is essential for developing a decentralised protocol. Blaze aims and has the potential to be the leading javascript SDK of choice for Cardano developers. The proposed emulator has utility for all developers, and has the potential to save hundreds of man hours due to the improvements it offers in developer experience while also improving the robustness and security of Cardano applications.

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