{"id":19952948,"url":"https://github.com/ethersphere/swap-deployment","last_synced_at":"2026-05-11T08:23:20.686Z","repository":{"id":78861776,"uuid":"226898040","full_name":"ethersphere/swap-deployment","owner":"ethersphere","description":"Deployment helm charts and scripts for swap-enabled Swarm clusters","archived":false,"fork":false,"pushed_at":"2020-01-08T16:54:36.000Z","size":45,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-12T06:27:21.684Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ethersphere.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2019-12-09T15:00:00.000Z","updated_at":"2022-02-09T23:24:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"183b1300-fc96-4d07-8754-a7e97ad2a3e0","html_url":"https://github.com/ethersphere/swap-deployment","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethersphere%2Fswap-deployment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethersphere%2Fswap-deployment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethersphere%2Fswap-deployment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethersphere%2Fswap-deployment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ethersphere","download_url":"https://codeload.github.com/ethersphere/swap-deployment/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241381648,"owners_count":19953752,"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":[],"created_at":"2024-11-13T01:14:51.784Z","updated_at":"2026-05-11T08:23:15.587Z","avatar_url":"https://github.com/ethersphere.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deployment helm charts and scripts for swap-enabled Swarm clusters #\n\n## Overview\n**This repo is work in progres.**\n\nThis repository contains a collection of support scripts for deployments and the setup of **swap-enabled Swarm** clusters.\n\nThe Swarm repository is hosted at [ http://github.com/ethersphere/swarm ]\n\nSwarm is a p2p incentivized storage and communication platform for a truly sovereign digital society.\nIts p2p nature poses unique requirements for development and testing of its features.\nSwarm already has several repositories for the setup and configuration of clusters.\n\nHowever, the implementation of the *incentivization* infrastructure for Swarm requires additional complexity when deploying nodes for testing.\nAs the incentivization layer is being worked on in parallel to the optimization and evolution of the Swarm network, there is an overlapping phase where testing of incentives-related functionality is independent of the core Swarm network development.\n\nThis repo contains the documentation and the scripts needed for running incentivized Swarm nodes.\n\nAt some point into the future, this will become the *main mode of operation* for Swarm nodes, at which time this repository may be reorganized or even become obsolete.\nIt is a work in progress of service mainly for the incentives track of the Swarm development team.\n\n## Prerequisites\n * Kubernetes\n   For the setup and configuration of kubernetes and its `kubectl` executable, refer to [ https://github.com/ethersphere/swarm-kubernetes/blob/master/USER-GUIDE.md ]\n * Helm (package manager for kubernetes)\n   Installation instructions in the same guide above\n * Helmsman\n   Automation helper for the management of helm scripts.\n   This is actually *optional*, but - this guide uses `helmsman` for the deployment, and the scripts herein work with `helmsman` only!\n   Installation:\n   ** Linux users: check first your distro's package manager, it may be supported. E.g. Arch linux/Manjaro: `yay -S helmsman-bin`\n   ** The source can be found at [ https://github.com/Praqma/helmsman ]\n\n## Environments\nThis guide distinguishes between the following environments (each one with their own kubernetes namespace):\n\n### `swap-staging`\nThis is a *public swap-enabled* cluster.\nThis means that everyone can connect to it from anywhere.\n\nIt has some *long-running* character and should have a **release** based deployment, which means to re-deploy it only after some official release. \nNote: As the release schedule for swap-enabled nodes is not yet clearly defined, such \"official\" releases are as of yet undefined.\n\nIt should mimic the *main Swarm deployment* of Swarm 1.0.\n\nWhen Swarm 1.0 is released, it should have:\n* a Mainnet\n* a Testnet\n\nSo `swap-staging` could become the **Testnet** of an incentived Swarm 1.0.\n\nThe actual Mainnet infrastructure needs to be defined approaching 1.0, as there is already a non-incentivized public Swarm network running. The devops decisions about main and testnet deployments will finally have impact on `swap-staging`.\n\nFor the time being, it plays the following roles during development:\n* Practice backward compatibility and maintenance of a network\n* Allowing developers to connect own nodes to a public incentivized Swarm network for individual testing and experimentation\n* Allowing interested 3rd party to interact with an incentivized Swarm network (although we are currently **not** publicly inviting people to do this).\n\nThis is a **unstable** network per definition for the time being. \nAny cryptocurrency on this network is purely for testing purposes. **Do not use for any financially critical activity**. \n\nThe blockchain used is **ropsten** - any crypto used in the context of this network is fictitious and can be lost.\n\nThe `swap-staging` folder contains scripts for the deployment of this incentivized public network. \n\n\n### `swap-testing`\nThis is a *private swap-enabled* cluster.\nThis means that it is not meant to be accessed from outside.\n\nIt runs 30 nodes. It is meant for **testing** only by the developers.\n\nIt can be shutdown and restarted by anyone in the team at any time. If you suspect activity by some other team member, consider informing the channel.\n\nIt always runs latest `master`. After merging a PR it should be updated by the merging developer.\n\nIt does not need to run at all times (saving resources), but can be started at developer's discretion to quickly test some functionality on `master`.\n\nThis network uses **ganache** as the blockchain.\nThere is one instance of ganache deployed in its own namespace. with prefunded accounts.\n\nThe `swap-testing` folder contains scripts for the deployment of this `master` based private network.\n\n\n### Custom environment\nThis is a *private development* cluster environment.\nIt is meant to test branches *before* a merge to master.\n\nEvery developer wanting to merge to master would deploy this under his *own namespace*.\nIt should be a one-off deployment; after finishing the test, the cluster should be shut down.\n**Please make sure to shutdown the cluster after finishing in order to save on resources**. \nThis is very important in order to not have to make Swarm incur in unnecessary payments for unused resources.\n\nSuch a dev network also uses **ganache** as blockchain backend.\nIn fact, it *shares* all accounts between the `swap-testing` cluster and every other dev cluster.\n\nThe dev cluster differs from `swap-testing` only in:\n* the namespace\n* the version to use (commit hash)\n\nThe `custom` folder contains sample scripts for the deployment of such dev private networks.\n\n### ganache ###\nThere is a separate ganache deployment which is **shared** between all dev clusters and the `swap-testing` clusters.\nThis needs to be so because the setup of a ganache instance to work with Swarm is quite complex:\n* deploy the actual ganache instance\n* pre-fund accounts with (test) ETH\n* deploy the ERC20 contracts\n* premint accounts with ERC20 tokens\n* deploy the factory\n\nEspecially the last point is important, as it contains the factory address needed to start swap-enabled dev nodes.\nThat address needs to be configured via command-line parameters to the dev nodes.\n\nIf nothing changes affecting ganache (contracts), the factory address will remain the same.\nThe currently configured address in the dev Swarm nodes scripts works with the current version of ganache and need not be changed.\n\nHowever, if there should be a change to contract code, most likely that factory address **needs to be changed in the deployment scripts**.\n\nThe `ganache` folder contains the scripts for the setup and deployment of ganache as well as the contracts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethersphere%2Fswap-deployment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fethersphere%2Fswap-deployment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethersphere%2Fswap-deployment/lists"}