Inspiration

For the REDACTED Hackathon, I originally wanted to build an IDE plugin that leveraged Gen AI for creating Decentralized Self-Sovereignty apps on the Calimero Network.

With the help of Gen AI, I gathered a plan to help me build a tool for something like this. However, upon early research and implementation of using an OpenAI model, it became a rather monetarily expensive solution for me, i.e. I didn't want to expend funds on using the OpenAI API for building this tool, especially because I didn't have the knowledge or experience for building a tool of such caliber.

Additionally, looking at it now, it doesn't make sense to use an LLM from OpenAI, when it's possible to train a custom AI model for a specific purpose - like building Calimero Apps! (wink, wink)

After all, my ultimate goal was to develop something purely to help developers build SSApps on the Calimero Network, whether that was in the form of an AI Model based IDE plugin, or something else.

Because I really wanted to understand how I can use the Calimero Network, I read the documentation and started building.

I didn't really understand what I was doing either, in fact, I accidentally published a Calimero App on test net (unintentionally, btw). Each time I logged into the Admin dashboard, it eventually became clear to me why I was seeing random available apps - because they're published on the NEAR blockchain [Oh, that makes sense]

Rise of Calimero Dev Mode - A powerful feature that lets a developer test a Calimero App before publication! [Ahh, at last!]

I could create a development context to test my application, before publication [That rhymed for a reason - okay, but seriously, this is very valuable]

After multiple iterations of using the developer create context command, I became tired of the verbosity. Each time a user creates a dev context, they must explicitly provide the node name, node home environment, etc. I wanted to make this process easier with a simpler command format, while still providing customizability for the user to configure such variables.

Rise of (crates::merow): A CLI wrapper for the Calimero Node that provides a default node configuration file for initializing a node, and abstract commands to run a development environment for testing P2P Calimero Apps.

What it does

A tool that provides a Calimero developer with the following:

  • Custom Node Configuration File
  • Abstract Commands for Initializing and Running a Calimero Node
  • Creates a Node Home Directory (if it doesn't already exist)

How I built it

The following sources tremendously helped:

Challenges I ran into

**Please refer to inspiration, additional challenges listed below:

  • Web3 background
  • Rust learning curve

Accomplishments that I'm proud of

**Please refer to inspiration, additional accomplishments I'm proud of:

  • Glad to have developed a useful tool
  • Submitted my first pull request to the Calimero Network (yay open-source!)

What I learned

  • I learned to write a practical CLI program in Rust
  • I learned the benefits of the Calimero Network, and potentially considering to leverage the Network as an upper layer for my Web3 projects
  • You can configure multiple nodes using the Node Admin Dashboard (e.g. node, plus coordinator)
  • The Node Admin Dashboard client is built using the Node Admin API from the Core Network
  • You can publish a Calimero App on the Near Blockchain

Merow CLI Roadmap

  • Additional commands for wrapping the dev create context command
  • Adding an Optional flag in the Configuration File for Deploying the Admin Dashboard
  • Multi-node deployment (e.g. node1, node2, ... nodeN)

Built With

Share this project:

Updates