Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Node CLI wrapper and configuration tool #959

Closed

Conversation

kevinjaypatel
Copy link

Merow CLI

Node CLI Wrapper and configuration tool to quickly spin up a running node instance.

Summary

As featured for the REDACTED hackathon, the Merow CLI tool wraps the Node CLI and provides abstract commands for setting up a Calimero Node, which can be configured using a single file.

Usage

Setup nodes using the default configuration file: ./crates/merow/config/default.toml

[coordinator]
name = "coordinator" 
server_port = 2427
swarm_port = 2527
home = "data"

[admin] 
name = "node1" 
server_port = 2428 
swarm_port = 2528
home = "data"

Starting up a Coordinator (same steps apply for the client Node)

E.g. Initializes Coordinator (with defaults)

  cargo run -p merow -- init-coordinator 

Start a running coordinator

  cargo run -p merow -- start-coordinator 

Accessing the Node via Admin Dashboard

Motivation

As the Calimero Network continues to evolve, Merow CLI strives to simplify the process for Calimero Developers to create a minimal develop environment by leveraging the Calimero Node CLI.

…onfig parsing

	•	Implemented wrapper with commands to start coordinator and nodes.
	•	Added default node configuration file and logic to create node home directory if missing.
	•	Introduced child process handling with temporary resolution for termination issues.
	•	Defined node configuration struct with methods for reading and parsing config data.
	•	Updated README.md with usage instructions.
Copy link

This pull request has been automatically marked as stale. If this pull request is still relevant, please leave any comment (for example, "bump"), and we'll keep it open. We are sorry that we haven't been able to prioritize reviewing it yet. Your contribution is very much appreciated.

@github-actions github-actions bot added the Stale label Nov 16, 2024
Copy link

"This pull request has been automatically closed because it has been inactive for more than 7 days. Please reopen and see this PR through its review if it is essential."

@github-actions github-actions bot closed this Nov 24, 2024
@MatejVukosav MatejVukosav reopened this Nov 27, 2024
@MatejVukosav
Copy link
Member

Hey @kevinjaypatel ,

Thank you for your contribution! We appreciate efforts that enhance the developer experience and make our tools more user friendly.

After reviewing your code, we believe it’s best to host it as a separate repository. This allows the core to remain focused on the fundamentals required for running nodes while keeping additional features modular.

With our recent updates, we’ve replaced the need for a coordinator with CRDTs, enabling peers to synchronize state directly. As a result, some aspects of the existing implementation may no longer be necessary.

We’d love to highlight merow in our documentation as an alternative setup option once it’s updated to align with these changes. Let us know if you’d like any assistance or further guidance.

Thanks again for your work!

@kevinjaypatel
Copy link
Author

kevinjaypatel commented Dec 2, 2024 via email

@kevinjaypatel
Copy link
Author

kevinjaypatel commented Dec 4, 2024 via email

@MatejVukosav
Copy link
Member

MatejVukosav commented Dec 5, 2024

Sure, I just checked the code and have a few comments.

  1. can u call repo merow?
  2. you don't need core code. You can remove it and just have merow implementation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants