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.
This is the total amount allocated to Blaze: Fully Featured Ledger Emulator, Transaction Builder for the Chang Hard Fork and PlutusV3.
NB: Monthly reporting was deprecated from January 2024 and replaced fully by the Milestones Program framework. Learn more here
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.
No dependencies.
Blaze is an open source project and will remain open source for it's entirety, all work in this catalyst proposal will be open-source in the same repository at https://github.com/butaneprotocol/blaze-cardano
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.
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).
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.
Research and Specification Outline
A: Milestone Outputs
B: Acceptance Criteria
C: Evidence of Milestone Completion
Implementation of Chang Features
A: Milestone Outputs
B: Acceptance Criteria
C: Evidence of Milestone Completion
Implementation of REST API
A: Milestone Outputs
B: Acceptance Criteria
C: Evidence of Milestone Completion
Integration and Compatibility Tests and Polishing
A: Milestone Outputs
B: Acceptance Criteria
C: Evidence of Milestone Completion
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.
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.
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.