Open julienrbrt opened 1 month ago
I'll like to start working on this issue
I have some relevant experience with this and would really like to take it on. If you're okay with it, I’d love to work on this. If you'd like, we could collaborate on it as well. @julienrbrt
Hey you are both welcome to give it a go!
IMHO, instead of changing the config file and avoid to have the v3
, we can use the current structure; instead of adding everything below the multi-node
, we can put everything inside the validators
key, which was made for it. like the issue #2473
IMHO, instead of changing the config file and avoid to have the
v3
, we can use the current structure; instead of adding everything below themulti-node
, we can put everything inside thevalidators
key, which was made for it. like the issue #2473
The issue of doing this, is that it makes it unclear between chain serve
and multi-node
. The different would be, chain serve runs the first one and multi node all of them?
Additionally, this is less breaking to add fields than rename them.
After our call, you are right, validators
exists already, so best to use it instead.
I have updated the issue description.
Summary
This bounty seeks a developer to implement a multi-node testnet feature for Ignite CLI. The goal is to extend the existing
ignite testnet
command with a newignite testnet multi-nodes
subcommand, allowing developers to easily set up and manage multiple validator nodes for testing purposes.Description
We propose extending the Ignite CLI with a multi-node testnet feature, enhancing the testing capabilities for Cosmos SDK-based blockchain applications. This feature will allow developers to create and manage multiple validator nodes, observe their behavior, and simulate various network conditions. A bounty of $3000 will be awarded to the developer completing this issue.
Requirements
ignite testnet
command with a newignite testnet multi-node
subcommand.multi-node
section in theconfig.yaml
file to specify validator configurations.charmbracelet/bubbletea
library to display logs from multiple validators simultaneously.Detailed Specifications
Config.yaml Integration:
validators
section from theconfig.yaml
file.Example
config.yaml
structure:Interactive UI:
charmbracelet/bubbletea
library.Node Management:
Integration with Ignite CLI:
Evaluation Criteria
Implementation
This list is not exhaustive:
ignite/cmd/testnet_multi_node.go
ignite/config/chain/v1
ignite/pkg/chaincmd
to integrate with the node commandAdditional Resources
Notes
Please read the bounty terms and conditions below before participating.
Bounty Terms and Conditions
## LEGAL DISCLAIMER This bounty program (“the Program”) is a discretionary initiative to encourage and reward those who are committed to helping us improve Ignite’s CLI protocol. Ignite Global, Inc. (“Ignite”, “we”, “us”), may in its sole discretion, modify these Terms at any time and may modify, restrict, suspend, terminate, or otherwise change any aspect of this Program. The Program is not a competition. No fees are payable or purchase is necessary to participate in the Program. There is no guarantee that the Participant (“you”) will earn a reward (“Bounty Reward”) by participating in the Program. The Program is provided “as-is”. ## ELIGIBILITY The Bounty Rewards are subject to compliance with local laws, rules, and regulations. To be eligible to participate in the Program, you must not (a) be a citizen or resident of a country in which use or participation is prohibited by law, decree, regulation, treaty, or administrative act; (b) be a citizen or resident of, or located in, a country or region that is subject to the U.S. or other sovereign country sanctions or embargoes; (c) an individual or an individual employed by or associated with an entity identified on the U.S. Department of Commerce’s Denied Persons or Entity List, the U.S. Department of Treasury’s Specially Designated Nationals or Blocked Persons Lists, or the Department of State’s Debarred Parties List or otherwise ineligible to receive items subject to U.S. export control laws and regulations, or other economic sanction rules of any sovereign nation; (d) be under 18 years old; If you are at least 18 years old, but considered an underage in your place of residence, you must obtain consent from your parents or legal guardians prior to getting enrolled in the Program. ## CONFIDENTIALITY OBLIGATIONS “Confidential Information” means any information that is marked or otherwise designated as confidential at the time of disclosure or that a reasonable person would consider confidential based on the circumstances and content of the disclosure, and includes, without limitation: customer information, personally identifiable information, financial information, information, pricing information, business information, and fees. Confidential Information does not include information that: (i) is or becomes known to the receiving party from a source other than one having an obligation of confidentiality to the disclosing party; (ii) is or becomes publicly known or otherwise ceases to be confidential, except through a breach of this Agreement; or (iii) is independently developed by the receiving party. You agree that you will (i) hold in confidence and not disclose to any third party any Confidential Information, except as approved in writing by disclosing party; (ii) protect such Confidential Information with at least the same degree of care that the Researcher uses to protect its own Confidential Information, but in no case, less than reasonable care; (iii) use the disclosing party’s Confidential Information for no purpose other than the use permitted by the disclosing party; and (iv) immediately notify disclosing party upon discovery of any loss or unauthorized disclosure of disclosing party’s Confidential Information. ALL SUBMISSIONS ARE CONFIDENTIAL INFORMATION OF THE PROGRAM OWNER UNLESS OTHERWISE STATED IN THE BOUNTY BRIEF. This means no submissions may be publicly disclosed at any time unless Ignite has otherwise consented to the disclosure. ## INTELLECTUAL PROPERTY, GRANTS, AND OWNERSHIP ### Intellectual Property Rights and Ownership. We retain all intellectual property rights in our products including, without limitation, all our source code and associated related binaries. Nothing herein shall grant you any right in any part of our products, or any improvement or derivative in any deliverable you provide us. You agree that to the extent required to abide by these Terms, you will waive any and all rights that may otherwise accrue to you in such deliverable and agree that we will not be obliged to license back any derivative or improvements of the delivered work to you. ### Grants to Ignite By submitting a work deliverable to us, you represent and warrant that your submission is an original work of authorship and does not violate any applicable law or any third party intellectual property rights. Furthermore, you grant us a royalty-free, fully paid-up, perpetual, non-revocable, exclusive, worldwide, transferable, and sub-licensable license in respect of such work deliverable and any feedback thereto. We will not have an obligation to utilize any item you provide us. You waive any compensation related to the incorporation of any materials in a deliverable or any feedback provided to us into our products and services. ## PRIVACY To receive a Bounty Reward, you must provide us with your personal information to conduct a Know Your Customer (“KYC”) process to ensure certain eligibility requirements are met. KYCr information includes but is not limited to: W9 or W8-BEN, your name, email address, ID information, and your crypto wallet address. Ignite is committed to protecting and respecting your privacy. Any access and use of your personal information will be subject to applicable law and our privacy policy available at [ignite.com/privacy](http://ignite.com/privacy). ## GOVERNING LAW AND JURISDICTION This Program, these Terms, and any dispute arising under or related thereto (whether for breach of contract, tortious conduct, or otherwise) will be governed, construed, and interpreted under the laws of Switzerland, without reference or giving effect to its conflicts of law principles or rules that would cause the application of any other laws. Any legal actions, suits, or proceedings related to this Program (whether for breach of contract, tortious conduct, or otherwise) will be brought exclusively in the courts of the Canton of Zug and each Participant irrevocably accepts, submits, and consents to the exclusive jurisdiction and venue of these courts with respect to any legal actions, suits, or proceedings arising out of or related to this Program. You waive any and all objections to jurisdiction and venue in these courts and hereby submit to the jurisdiction of the courts of the Canton of Zug, Switzerland. Except where prohibited, as a condition of participating in this Program, each Participant agrees that between the parties, any and all disputes, claims, and causes of action arising out of or connected with this Program, or the Bounty Reward must be resolved individually, without resort to any form of class action. ## INDEMNITY AND LIMITATION OF LIABILITY Participant will be liable for and indemnify Ignite, its subcontractors, and their respective directors, officers, and representatives (“Ignite Indemnitees”) against any losses which Ignite Indemnitees may incur that arise from Participant’s breach of these Terms, including losses arising from Participants’ gross negligence, willful misconduct and breach of law. In no event will Ignite be liable to you for any loss of use, revenue or profit or loss of data or for any consequential, incidental, indirect, exemplary, special, aggravated, or punitive damages whether arising out of breach of contract, tort (including negligence) or otherwise, regardless of whether such damage was foreseeable and whether or not Ignite had been advised of the possibility of such damages. Notwithstanding anything else set out under these Terms, our aggregate liability to you under these Terms shall not exceed the lesser of the total amount of a Bounty Reward to which you may be entitled or 500 USD. We may terminate your engagement with us and any entitlement to any Bounty Reward if you violate any part of these Terms. Ignite reserves the right to restrict or void participation from any identifiable source if any suspicious participation is detected or any violation of these Terms is suspected or detected. Ignite reserves the right, in its sole discretion, to void the participation of any Participant who Ignite believes has attempted to tamper with or impair the administration, security, fairness, or proper execution of the Program. If Ignite determines at any time, in its sole discretion, that a Participant is engaging in behavior that Ignite deems obnoxious, deceptive, inappropriate, threatening, illegal or that is intended to annoy, abuse, or harass any other person, Ignite reserves the right to disqualify that Participant. ### General Terms These Terms constitute the entire and exclusive understanding and agreement between Ignite and you regarding the Program, and these Terms supersede and replace any and all prior oral or written understandings or agreements between Ignite and you regarding the Program. If any provision of these Terms is held invalid or unenforceable by a court of competent jurisdiction, that provision will be enforced to the maximum extent permissible and the other provisions of these Terms will remain in full force and effect. You may not assign or transfer these Terms, by operation of law or otherwise, without our prior written consent. Any attempt by you to assign or transfer these Terms, without such consent, will be null. We may freely assign or transfer these Terms without restriction. Subject to the foregoing, these Terms will bind and inure to the benefit of the parties, their successors and permitted assigns. You agree and consent to receive electronically all communications, agreements, documents, notices,and disclosures (collectively, “Communications”) that we provide in connection with your participation in the Program. ## Contact Information If you have any questions about these Terms, please contact us at legal@tendermint.com.