{"id":14356564,"url":"https://github.com/PeggyJV/sommelier","last_synced_at":"2025-08-21T14:32:05.712Z","repository":{"id":37178943,"uuid":"311477928","full_name":"PeggyJV/sommelier","owner":"PeggyJV","description":"Sommelier Chain","archived":false,"fork":false,"pushed_at":"2024-11-07T16:45:27.000Z","size":28072,"stargazers_count":105,"open_issues_count":45,"forks_count":42,"subscribers_count":14,"default_branch":"main","last_synced_at":"2024-11-07T17:25:50.293Z","etag":null,"topics":["cosmos","cosmos-sdk","defi","ethereum","tendermint"],"latest_commit_sha":null,"homepage":"https://sommelier.finance","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PeggyJV.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-09T22:11:08.000Z","updated_at":"2024-10-29T15:10:28.000Z","dependencies_parsed_at":"2023-02-18T14:00:25.252Z","dependency_job_id":"a1019bf4-bc11-4194-9122-98d4fbf45d2c","html_url":"https://github.com/PeggyJV/sommelier","commit_stats":{"total_commits":890,"total_committers":54,"mean_commits":16.48148148148148,"dds":0.7067415730337079,"last_synced_commit":"d8bdaeb545a8b28804f13aff9117f332c33cd09e"},"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeggyJV%2Fsommelier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeggyJV%2Fsommelier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeggyJV%2Fsommelier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeggyJV%2Fsommelier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PeggyJV","download_url":"https://codeload.github.com/PeggyJV/sommelier/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230519989,"owners_count":18238931,"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":["cosmos","cosmos-sdk","defi","ethereum","tendermint"],"created_at":"2024-08-27T10:01:22.255Z","updated_at":"2024-12-20T00:30:42.359Z","avatar_url":"https://github.com/PeggyJV.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Sommelier\n\nSommelier is a platform for running DeFi strategies in special vaults, called\nCellars, managed by off-chain computation. It's a blockchain built with the\n[Cosmos SDK](https://github.com/cosmos/cosmos-sdk), and uses its own fork of the\n[Gravity Bridge](https://github.com/peggyjv/gravity-bridge) to enable\ncross-chain execution.\n\nFor more information you can check out the [Sommelier Documentation](https://sommelier-finance.gitbook.io/sommelier-documentation/introduction/what-is-sommelier)\n\n[![codecov](https://codecov.io/gh/peggyjv/sommelier/branch/main/graph/badge.svg)](https://codecov.io/gh/peggyjv/sommelier)\n[![Go Report Card](https://goreportcard.com/badge/github.com/peggyjv/sommelier)](https://goreportcard.com/report/github.com/peggyjv/sommelier)\n[![license](https://img.shields.io/github/license/peggyjv/sommelier.svg)](https://github.com/peggyjv/sommelier/blob/main/LICENSE)\n[![LoC](https://tokei.rs/b1/github/peggyjv/sommelier)](https://github.com/peggyjv/sommelier)\n[![GolangCI](https://golangci.com/badges/github.com/peggyjv/sommelier.svg)](https://golangci.com/r/github.com/peggyjv/sommelier)\n\n\n## Sommelier\n\nThe initial release of the Sommelier blockchain consists of a standard\ncosmos-sdk chain and [Gravity Bridge\nrefactor](https://github.com/peggyjv/gravity-bridge).\n\n### Steward\n\n[Steward](https://github.com/peggyjv/steward) is a sidecar process that\nfacilitates function calls by Strategists to Cellars. It's also a CLI that\nsubsumes the functionality of `gorc`, and is used in this document to configure\nand run the orchestrator.\n\n## Join the mainnet!\n\nRunning a validator node on the Sommelier mainnet requires three processes:\n\n1. The validator node\n2. The Gravity Bridge Orchestrator\n3. [Steward](https://github.com/peggyjv/steward)\n\nThe Orchestrator (and Relayer if you are designated to run one) need an RPC\nendpoint to interact with Ethereum. We recommend using a service such as\nAlchemy or Infura. Larger validators may opt to use any existing full node they\nare already running for other purposes. Setup and configuration of an Ethereum\nnode is left as an exercise for the reader. \n\nThe Steward CLI now supports all of the same commands as `gorc` and is the\nrecommended way to configure delegate keys for new validators and to run the\nOrchestrator. __The Steward CLI is used to run *both* the `steward` and\n`orchestrator` processes__. There are post-installation steps for the `steward`\nprocess outlined at the end of the installation steps below. These are required\nfor your Steward to participate in the protocol. For more information on these\nsetup steps for Steward, see [Validators Instructions for Setting Up\nSteward](https://github.com/PeggyJV/steward/blob/3.x-main/docs/02-StewardForValidators.md)\nin the Steward repository.\n\n\u003e NOTE: The Steward CLI and Steward itself are distinct concepts in this\n\u003e document. The Steward CLI is used to start both the `steward` and\n\u003e `orchestrator` processes, while \"Steward\" refers specifically to the\n\u003e `steward` process.\n\n### Installation\n\n```bash\n# Create an installation directory\nmkdir install \u0026\u0026 cd install\n\n# Install Steward\nwget https://github.com/PeggyJV/steward/releases/latest/download/steward \\\n    \u0026\u0026 chmod +x * \\\n    \u0026\u0026 sudo mv * /usr/bin\n\n# Install Sommelier\nwget https://github.com/PeggyJV/sommelier/releases/download/v3.1.1/sommelier_3.1.1_linux_amd64.tar.gz \\\n    \u0026\u0026 tar -xf sommelier_3.1.1_linux_amd64.tar.gz \\\n    \u0026\u0026 sudo mv sommelier /usr/bin \\\n    \u0026\u0026 rm -rf sommelier_3.1.1_linux_amd64* LICENSE README.md\n\n# Fetch systemd unit file examples\nwget \\\n    https://raw.githubusercontent.com/PeggyJV/sommelier/main/contrib/systemd/sommelier.service \\\n    https://raw.githubusercontent.com/PeggyJV/sommelier/main/contrib/systemd/orchestrator.service \\\n    https://raw.githubusercontent.com/PeggyJV/sommelier/main/contrib/systemd/steward.service\n\n# Modify the unit files to fit your environment\nnano orchestrator.service\nnano steward.service\nnano sommelier.service\n\n# And install them to systemd\nsudo mv orchestrator.service /etc/systemd/system/ \\\n    \u0026\u0026 sudo mv steward.service /etc/systemd/system/ \\\n    \u0026\u0026 sudo mv sommelier.service /etc/systemd/system/ \\\n    \u0026\u0026 sudo systemctl daemon-reload\n\n# Init steward/orchestrator configuration. Note that the steward and orchestrator processes share\n# much of the same configuration fields, so we share the config.toml for convenience.\nmkdir -p $HOME/steward \u0026\u0026 cd $HOME/steward\nwget https://raw.githubusercontent.com/PeggyJV/sommelier/main/contrib/mainnet/sommelier-3/config.toml\n\n# modify steward/orchestrator config for your environment, in particular your RPC URL and keystore path\nnano config.toml\n\n# Initialize the validator files\nsommelier init myval --chain-id sommelier-3\n```\n\nAt this point you need to create orchestrator keys OR restore them if you\nalready created them. __Please follow [these\ninstructions](https://github.com/PeggyJV/steward/blob/main/docs/03-TheOrchestrator.md#setup)\nto create or restore these keys with the Steward CLI__, then return to this doc\nfor steps to add them to your validator.\n\n```bash\n# restore your validator mnemonic to the sommelier binary\nsommelier keys add validator --recover\n\n# OR: create your validator mnemonic to the sommelier binary\nsommelier keys add validator\n\n# NOTE: at the end of this process you need to have:\n# - a key named \"orchestrator\" with funds on the cosmos chain in the steward keystore\n# - a key named \"signer\" with funds on connected ETH chain in the steward keystore\n# - a key named \"validator\" with funds on the cosmos chain in the sommelier keystore\n\n# Add the peers from contrib/mainnet/sommelier-3/peers.txt to the ~/.sommelier/config/config.toml file\nnano ~/.sommelier/config/config.toml\n\n# pull the genesis file\nwget https://raw.githubusercontent.com/PeggyJV/sommelier/main/contrib/mainnet/sommelier-3/genesis.json \\\n    -O $HOME/.sommelier/config/genesis.json\n\n# start your sommelier node - note it may take a minute or two to sync all of the blocks\nsudo systemctl start sommelier \u0026\u0026 sudo journalctl -u sommelier -f\n```\n\nYour node should now be syncing from genesis. You will be required to update\nthe binary as your sync reaches upgrade block heights. The tool\n[cosmovisor](https://docs.cosmos.network/main/tooling/cosmovisor) is useful for\nhandling this process automatically. Its setup and use is left as an exercise\nfor the reader. The order of binary versions you will need to complete the sync\nprocess is shown below.\n\n| Height | Version |\n|-|-|\n| Genesis | 3.1.1 |\n| 3610000 | [4.0.3](https://github.com/PeggyJV/sommelier/releases/tag/v4.0.3) |\n| 7766725 | [5.0.0](https://github.com/PeggyJV/sommelier/releases/tag/v5.0.0) |\n| 8704480 | [6.0.0](https://github.com/PeggyJV/sommelier/releases/tag/v6.0.0) |\n\n```bash\n# once your node is synced, create your validator\nsommelier tx staking create-validator \\\n  --amount=1000000usomm \\\n  --pubkey=$(sommelier tendermint show-validator) \\\n  --moniker=\"MYMONIKER\" \\\n  --chain-id=\"sommelier-3\" \\\n  --commission-rate=\"0.10\" \\\n  --commission-max-rate=\"0.20\" \\\n  --commission-max-change-rate=\"0.01\" \\\n  --min-self-delegation=\"1\" \\\n  --gas 300000 \\\n  --fees=\"0usomm\" \\\n  --from=validator\n\n# register delegate keys for eth and orchestrator keys\nsommelier tx gravity set-delegate-keys \\\n    $(sommelier keys show validator --bech val -a) \\ # validator address\n    $(steward --config $HOME/steward/config.toml keys cosmos show orchestrator) \\ # orchestrator address (this must be run manually and address extracted)\n    $(steward --config $HOME/steward/config.toml keys eth show signer) \\ # eth signer address\n    $(steward --config $HOME/steward/config.toml sign-delegate-keys signer $(sommelier keys show validator --bech val -a)) \\\n    --chain-id sommelier-3 \\\n    --from validator \\\n    -y\n\n# start the orchestrator. note that we are not yet starting steward\nsudo systemctl start orchestrator \u0026\u0026 sudo journalctl -u orchestrator -f\n```\n\nAt this point, you should have a running validator node and Orchestrator.\n\nNow it's time to complete the setup for Steward. Please follow the detailed\nguide in [Validators Instructions for Setting Up\nSteward](https://github.com/PeggyJV/steward/blob/main/docs/02-StewardForValidators.md)\nand return here.\n\nAt this point you should have a server CA and server certificate for Steward,\nand your `config.toml` should be configured with those values. Now we can start\nthe Steward service that we created during the other installation steps.\n\n```bash\n# start steward\nsudo systemctl start steward \u0026\u0026 sudo journalctl -u steward -f\n```\n\nOnce your Steward is running, ensure that its server endpoint is reachable over\nthe internet. Then, if you haven't already, follow the steps outlined in the\n[Steward Registry repository](https://github.com/PeggyJV/steward-registry) to\nregister your steward instance.\n\nYour installation is complete! If you have any problems, please reach out in\nthe validator lobby channels in Discord or Telegram.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPeggyJV%2Fsommelier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPeggyJV%2Fsommelier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPeggyJV%2Fsommelier/lists"}