{"id":13579642,"url":"https://github.com/EpicsDAO/solv","last_synced_at":"2025-04-05T23:32:00.578Z","repository":{"id":187226650,"uuid":"676554675","full_name":"EpicsDAO/solv","owner":"EpicsDAO","description":"🔥 solv - CLI Tool for Managing Solana Validators 🚧 What...? solv is evolving to SLV!","archived":false,"fork":false,"pushed_at":"2025-01-27T06:20:51.000Z","size":196651,"stargazers_count":182,"open_issues_count":3,"forks_count":28,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T12:01:46.302Z","etag":null,"topics":["automation","bash","blockchain","firedancer","geyser","geyser-plugin","linux","open-source","rpc","solana","ubuntu","validator","validator-node","web3"],"latest_commit_sha":null,"homepage":"https://slv.dev/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EpicsDAO.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-09T13:19:24.000Z","updated_at":"2025-03-27T17:33:45.000Z","dependencies_parsed_at":"2023-08-09T13:42:39.570Z","dependency_job_id":"c8c4594c-bd04-456a-b751-9dedf6a50247","html_url":"https://github.com/EpicsDAO/solv","commit_stats":{"total_commits":851,"total_committers":5,"mean_commits":170.2,"dds":"0.16098707403055235","last_synced_commit":"1f6d4a6cf9f7398153d2fb001b189cf1a7c49bfb"},"previous_names":["epicsdao/solv"],"tags_count":190,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EpicsDAO%2Fsolv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EpicsDAO%2Fsolv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EpicsDAO%2Fsolv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EpicsDAO%2Fsolv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EpicsDAO","download_url":"https://codeload.github.com/EpicsDAO/solv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247415783,"owners_count":20935383,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","bash","blockchain","firedancer","geyser","geyser-plugin","linux","open-source","rpc","solana","ubuntu","validator","validator-node","web3"],"created_at":"2024-08-01T15:01:41.511Z","updated_at":"2025-04-05T23:31:55.566Z","avatar_url":"https://github.com/EpicsDAO.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://solv.epics.dev/\"\u003e\n    \u003cimg src=\"https://storage.googleapis.com/epics-bucket/solv/assets/v3/solvEN.png\" alt=\"solv\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://twitter.com/intent/follow?screen_name=EpicsDAO2\"\u003e\n    \u003cimg src=\"https://img.shields.io/twitter/follow/EpicsDAO2.svg?label=Follow%20@EpicsDAO2\" alt=\"Follow @EpicsDAO2\" /\u003e\n  \u003c/a\u003e\n  \u003cbr/\u003e\n  \u003ca aria-label=\"npm version\" href=\"https://www.npmjs.com/package/@epics-dao/solv\"\u003e\n    \u003cimg alt=\"\" src=\"https://badgen.net/npm/v/@epics-dao/solv\"\u003e\n  \u003c/a\u003e\n  \u003ca aria-label=\"Downloads Number\" href=\"https://www.npmjs.com/package/@epics-dao/solv\"\u003e\n    \u003cimg alt=\"\" src=\"https://badgen.net/npm/dt/@epics-dao/solv\"\u003e\n  \u003c/a\u003e\n  \u003ca aria-label=\"License\" href=\"https://github.com/EpicsDAO/solv/blob/master/LICENSE.txt\"\u003e\n    \u003cimg alt=\"\" src=\"https://badgen.net/badge/license/Apache/blue\"\u003e\n  \u003c/a\u003e\n    \u003ca aria-label=\"Code of Conduct\" href=\"https://github.com/EpicsDAO/solv/blob/master/CODE_OF_CONDUCT.md\"\u003e\n    \u003cimg alt=\"\" src=\"https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## CLI Tool for Managing Solana Validators - \"solv\"\n\nThe utility tool for Solana Validators\n\nsolv is an open-source tool designed to simplify the setup and operation of Solana validators and RPC nodes.\n\nDocumentation: [https://solv.epics.dev/](https://solv.epics.dev/)\n\n## 📖 Server Spec\n\n- Linux Ubuntu 20.04 LTS\n- Linux Ubuntu 22.04 LTS\n\n## Solana Validator Setup\n\nLogin in to your Validator server by ssh and run the following command.\n\n```bash\n$ bash -c \"$(curl -sSfL \"https://storage.googleapis.com/epics-bucket/resource/solv/v4.1.16/install\")\"\n$ cd ~ \u0026\u0026 source ~/.profile\n$ solv setup\n```\n\n![](https://storage.googleapis.com/zenn-user-upload/949db29fc401-20240131.png)\n\nThen, select the type of node you want to target.\n\n- `TESTNET_VALIDATOR`\n- `MAINNET_VALIDATOR`\n- `RPC_NODE`\n\nThen\n\nAfter startup, the snapshot download will start automatically.\nThe Solana validator will start 🎊\n\n[![solv](https://storage.googleapis.com/epics-bucket/Validator/solv-install-top.gif)](https://youtu.be/rY4bajhRJgw)\n\nIf your node does not start, you can try the following command.\n\n```bash\n$ solv restart --rm\n```\n\nThis will remove the snapshot and restart the Solana Validator from the new snapshot.\nIf snapshot download freezes, you can try Ctrl + C.\nThen setup will continue.\n\n## New Feature: solv MEV Mode - v4.3.0~\n\n🌱 No more SSH login required for Solana/solv version update 🌱\n\nIntroducing the new solv MEV mode that takes care of Solana/solv version updates seamlessly. Now, you can update the Solana/solv version without the need for SSH login to the server.\n\nKey Features:\n\n- Automated Updates: solv MEV mode will automatically update the Solana/solv version for you, ensuring you are always running the latest version without manual intervention.\n\n- Monitoring: solv MEV mode will monitor the health status of your validator and balance, sending notifications to Discord.\n\n- Automated Reward Harvesting: This mode will harvest your rewards to your authority account right before the epoch ends, optimizing your yield.\n\n- Automated Staking: After harvesting, rewards will be converted from SOL to LST(Liquid Staking Token - elSOL) and sent to your desired account.\n\n- Enhanced Security: By keeping the balance of SOL in your validator node low and converting rewards to LST, this strategy mitigates the risk of large-scale SOL withdrawals, ensuring high yield maintenance.\n\n## What is solv MEV Mode?\n\nsolv MEV Mode is a feature designed to automate the maintenance of your Solana validator by regularly checking and updating the Solana/solv status and version.\n\n## How it works\n\n- solv epochTimer: This function will be set as a cron job to automatically monitor the health status of your validator and perform updates as needed.\n\n- Automatic Restarts: If necessary, solv epochTimer will restart the validator to ensure optimal performance.\n\n## solv epochTimer Monitors:\n\nepochTimer will monitor the following aspects of your validator:\n\n### Check Validator Account Balance\n\n- Send a notification if the balance is less than 0.5 SOL.\n\n### Check Validator Health Status\n\n- Send a notification if the validator is not voting or is delinquent.\n\n### Check Solana/solv Version Update\n\n- Send a notification if the Solana/solv version is not up-to-date.\n- Update the Solana/solv version automatically.\n- Restart validator if it is required.\n- Send a notification after the Solana/solv version update.\n\n### Auto Harvest (Mainnet Only)\n\n- Withdraw the rewards from vote account to the authority account.\n- Calculate the balance needed for the next epoch.\n- Transfer the balance from the validator account to the authority account.\n- Convert SOL to LST(Liquid Staking Token) and send it to the harvest account.\n\nBy implementing solv MEV mode, you can maintain high security, ensure optimal performance, and enjoy the convenience of automated updates and reward management.\n\n## How to use solv mev mode?\n\nRun the following command:\n\n```bash\n$ solv mev\n? Do you want to enable solv MEV Mode?(You can change it again) (y/N)\n? Do you want to enable AUTO UPDATE? (Recommended) (y/N)\n? Do you want to enable AUTO RESTART? (Recommended) (y/N)\n※ Please turn off if you are using no-downtime migration.\n? Enter your Discord Webhook URL (https://discord.com/api/webhooks/1234)\n```\n\n1.  Enable solv MEV Mode.\n2.  Enable AUTO UPDATE.\n3.  Enable AUTO RESTART.\n\n※ Please turn off if you are using no-downtime migration.\n\n※ No-downtime migration requires spare server and manual restart.\n\n4.  Enter your Discord Webhook URL.\n\n※ You can receive notifications about the Solana/solv version update.\n\n5.  Enter RPC URL (Mainnet Only)\n6.  Enter Harvest Account (Mainnet Only)\n\n※ Please DO NOT keep harvest account in the validator node.\n\n## How to disable solv mev mode?\n\nRun the following command:\n\n```bash\n$ solv mev\n? Do you want to enable solv MEV Mode?(You can change it again) (y/N) n\n✅ Cron Job successfully removed.\n```\n\n## Run solv Server CLI - from your validator server\n\n```bash\n$ solv s\n```\n\n![solv s](https://storage.googleapis.com/epics-bucket/solv/assets/solv-s.png)\n\n## Solana Validator Logs\n\n```bash\n$ solv log\n```\n\nor\n\nShow only error logs\n\n```bash\n$ solv log -e\n```\n\n## Show Solana Validator Config\n\nThis command will show your all config paths which are used by solana validator.\n\n```bash\n$ solv config\n```\n\n## Solana Delegation Program\n\nhttps://solana.org/delegation-program\n\n## solv CLI\n\n```bash\n$ solv --help\nUsage: solv [options] [command]\n\n💎 Solana Validator All-in-One CLI 💎\n\nOptions:\n  -V                     Output the current version\n  -h, --help             Display help for solv commands\n\nCommands:\n  server|s               Open solv Dashboard\n  start                  Start Solana Validator\n  restart [options]      Restart Solana Validator\n  stop                   Stop Solana Validator\n  status                 Show Solana Validator Status\n  update|u [options]     Update Solana Validator Version\n  log|l [options]        tail logs\n  install|i [options]    Install/Update Solana Version\n  stake [options]        Solana Delegate Stake\n  unstake                Solana Delegate Stake\n  get \u003ccmd\u003e              Get Solana Validator Info Commands\n  scp \u003ccmd\u003e              Download/Upload Solana Validator Keypairs\n  cron \u003ccmd\u003e             Run Schedule Tasks\n  setup [options]        Setup Solana Validator\n  balance|bal [options]  Show Keypairs Balance\n  mtr                    Mount Reload Command\n  disks                  Show unmounted disks\n  relayer                Jiro Relayer Commands\n  transfer|tr [options]  Transfer Solana Tokens/SPL Tokens\n  withdraw [options]     Withdraw SOL from Vote Account to Authority Account\n  harvest|hv             Harvest SOL from Validator Account to Authority Account\n  mev                    Enable MEV Mode\n  df                     Disk Free Command\n  swap [options]         Swap Solana Tokens\n  epochTimer             Check Solana Epoch Timer\n  rm:log                 Remove Logs\n  rm:snapshot            Remove Snapshot\n  change                 Change Identity of Validator to New Validator\n  monitor|m              Monitor Solana Node\n  catchup|c              Check Solana Catchup Status\n  config                 Show Solv Config\n  help [cmd]             Display help for solv commands\n```\n\nIf you have any questions, please contact us on Discord.\n\nhttps://discord.gg/yxm5hJqRhg\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/EpicsDAO/solv This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.\n\n## License\n\nThe package is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Code of Conduct\n\nEveryone interacting in the SKEET project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/EpicsDAO/solv/blob/master/CODE_OF_CONDUCT.md).\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEpicsDAO%2Fsolv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEpicsDAO%2Fsolv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEpicsDAO%2Fsolv/lists"}