not approved
Cardano Node Management Tool
Current Project Status
Unfunded
Amount
Received
₳0
Amount
Requested
₳149,600
Percentage
Received
0.00%
Solution

We will Open Source a tool that allows SPOs to define their network & VMs which this tool will then use to build, deploy, configure, & run Cardano Node software in a safe and reliable manner.

Problem

Setting up, running, maintaining, and updating Cardano Nodes is complicated. SPOs would benefit from tools that simplify the running of nodes in a reliable & repeatable manner.

Feasibility
Value for money
Impact / Alignment

Team

3 members

Cardano Node Management Tool

Please describe your proposed solution.

SANADA currently runs SAMON Pool with a tool we call “cardmin”. Our proposal is to fully Open Source this tool and make it usable by other SPOs. This work will involve a certain level of refactoring and updates to support a more generic set of configurations and settings to make this tool flexible enough to be useful across a wide range of SPOs. We will also do a fair amount of code cleanup and comments to make it easier to understand.

We will create documentation on how to install, use, and maintain the software.

Our tool uses Terraform by HashiCorp which is an Open Source tool (https://www.terraform.io/) to provision instances, whether locally hosted or using cloud providers (https://registry.terraform.io/browse/providers).

How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?

This proposal addresses the challenge by open-sourcing a tool to help SPOs better and more safely manage their network and Cardano Nodes. It will bring greater stability to our decentralized network, enhance the quality of life for SPOs by automating many tedious tasks, and make it much safer and more reliable to maintain and update the Cardano Nodes and networks.

How do you intend to measure the success of your project?

  • Number of downloads/repository clones of the open source repository
  • Active use of cm-tool by multiple stakepool operators
  • Number of views of the documentation and resources
  • Number of new features submitted
  • Number of bug reports submitted
  • Number of comments and community suggestions
  • Community discussion generated by the project

Please describe your plans to share the outputs and results of your project?

The primary goal of this proposal is to Open Source an existing internal tool so that it can be beneficially used by other SPOs. The outputs of this project will be the source code and documentation for using this tool. We will share this via an open GitHub repository. We will also produce a close-out document and video describing our proposal goals and achievements.

If there is enough demand for further development of cm-tool, future enhancements may expand its capabilities to support multiple cloud services, a wider range of self-hosted virtualization platforms as well as ideas submitted by the SPO community.

What is your capability to deliver your project with high levels of trust and accountability?

Our team has a proven capability to deliver projects with high levels of trust and accountability. With over 75 years of collective experience in programming and system administration, our developers have a strong track record of successfully creating similar tools for other businesses in the past. We have already developed a functioning tool that has been actively used internally since September 2021, demonstrating our commitment to creating reliable and effective solutions.

By open-sourcing this tool, we aim to enhance its accessibility and usability for new users. To ensure trust and accountability, we will clean up, refactor, and document the code so it is better suited to public use and consumption. We will actively engage with the open-source SPO community, providing clear documentation, issue tracking, and contribution guidelines to foster transparency and collaboration. With our expertise, dedication, and proactive approach to maintaining the project, we are confident in our capability to deliver a high-quality open-source solution with utmost trust and accountability.

What are the main goals for the project and how will you validate if your approach is feasible?

The main goal of this project is to Open Source a tool that we have developed in-house and used successfully for the past 2 years to help us manage our Cardano Node instances and network. In order to Open Source in a manner that is most useful to the community, we will engage in the following steps:

  1. Review and Refactor: Take some time to review the existing codebase and identify areas that can be improved. We will refactor the code where needed to ensure it follows best practices, is well-organized, and adheres to the coding guidelines that we have established.
  2. Documentation: We will document the purpose and overall functionality of the project. This will include an overview, installation instructions, configuration details, and any prerequisites. We will provide clear instructions on how to use the tool, including examples and sample code where relevant.
  3. Readme File: We will provide a comprehensive README file that serves as a landing page for this tool. This will include an introduction, an overview of the tool’s features, installation instructions, usage examples, and any other relevant information. We believe that a well-written README is crucial for attracting and engaging potential users and contributors.
  4. Issue Tracking: We will set up an issue tracking system, using GitHub Issues, to allow users and contributors to report bugs, suggest features, or ask questions. We will encourage SPOs to provide feedback and participate in the development process.
  5. Licensing: We will use the MIT License.
  6. Version Control: This tool is already being maintained in a Git repository. We will open this up to the public after our cleanup and documentation is completed.
  7. Contribution Guidelines: We will define contribution guidelines and provide instructions on how SPOs and developers can contribute to this tool. This will include guidelines on submitting bug reports, feature requests, and pull requests.

By conducting a thorough evaluation of the existing tool, implementing code improvements, enhancing documentation, and incorporating user feedback, we will be able to validate the feasibility of our approach. These steps will ensure that our goals of open-sourcing the project and making it more accessible to new users are achievable.

Please provide a detailed breakdown of your project’s milestones and each of the main tasks or activities to reach the milestone plus the expected timeline for the delivery.

1 Project Plan – this is what you are reading right now

2 Basic Project Structure – a python script that is the foundation for the tool

3 Network Model + Terraform – ability to create and destroy nodes

4 Remote code execution and basic node configuration – deploy config to nodes, create & manage user accounts, credentials distribution

5 VPN – increase communication of all nodes by having network traffic use a VPN tunnel between each of the nodes

6 Node Type: Admin – ability to create, configure and manage an admin node

7 Node Type: Relay – ability to create, configure and manage a relay node

8 Node Type: Producer – ability to create, configure and manage a producer node

9 Documentation – detailed documentation for milestones 2-8

10 Close-out Report

Please describe the deliverables, outputs and intended outcomes of each milestone.

1 Project Plan – this is what you are reading right now

2 Basic Project Structure – a python script that is the foundation for the tool

3 Network Model + Terraform – ability to create and destroy nodes

4 Remote code execution and basic node configuration – deploy config to nodes, create & manage user accounts, credentials distribution

5 VPN – increase communication of all nodes by having network traffic use a VPN tunnel between each of the nodes

6 Node Type: Admin – ability to create, configure and manage an admin node

7 Node Type: Relay – ability to create, configure and manage a relay node

8 Node Type: Producer – ability to create, configure and manage a producer node

9 Documentation – detailed documentation for milestones 2-8

10 Close-out Report

Please provide a detailed budget breakdown of the proposed work and resources.

1 Project Plan 8800 ADA

2 Basic Project Structure 8000 ADA

3 Network Model + Terraform 16000 ADA

4 Remote code execution and basic node configuration 24000

5 VPN 24000 ADA

6 Node Type: Admin 16000 ADA

7 Node Type: Relay 16000 ADA

8 Node Type: Producer 8000 ADA

9 Documentation 20000 ADA

10 Close-out Report 8800 ADA

TOTAL = 149600 ADA

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

Jeremy Kiffiak, Bryan Lesiuk, Nori Nishigaya - proposal planning, project documentation, system administration, programming, architecture design, troubleshooting, bug squashing

Some of our past funded projects

========================

  1. Stake Pool Reachability Dashboard (F6)
  2. https://cardano.ideascale.com/c/idea/59145
  3. Stake Pool Key Documentation (F7)
  4. https://cardano.ideascale.com/c/idea/384529
  5. More to be added later

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

We are donating the Cardano Node Management Tool code by Open Sourcing it. This represents more than 1000 man-hours of programming, troubleshooting and bug fixing time.

Lowers the technical expertise required to run and operate a secure and robust stake pool

Supports both local bare metal and cloud based instances (currently only on AWS but able to extend the capability relatively easily)

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