{"id":13706164,"url":"https://github.com/womboai/wombo-bittensor-subnet","last_synced_at":"2025-05-05T19:34:49.613Z","repository":{"id":222890903,"uuid":"751010147","full_name":"womboai/wombo-bittensor-subnet","owner":"womboai","description":null,"archived":true,"fork":false,"pushed_at":"2024-06-18T15:31:16.000Z","size":849,"stargazers_count":5,"open_issues_count":0,"forks_count":6,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-11-13T14:39:40.712Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/womboai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-01-31T18:57:17.000Z","updated_at":"2024-09-11T14:45:29.000Z","dependencies_parsed_at":"2024-11-13T14:45:53.721Z","dependency_job_id":null,"html_url":"https://github.com/womboai/wombo-bittensor-subnet","commit_stats":null,"previous_names":["womboai/wombo-bittensor-subnet"],"tags_count":0,"template":false,"template_full_name":"opentensor/bittensor-subnet-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/womboai%2Fwombo-bittensor-subnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/womboai%2Fwombo-bittensor-subnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/womboai%2Fwombo-bittensor-subnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/womboai%2Fwombo-bittensor-subnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/womboai","download_url":"https://codeload.github.com/womboai/wombo-bittensor-subnet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252563162,"owners_count":21768414,"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-08-02T22:00:52.717Z","updated_at":"2025-05-05T19:34:48.892Z","avatar_url":"https://github.com/womboai.png","language":"Python","funding_links":[],"categories":["Registered Subnets"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# WOMBO Bittensor Subnet: Bringing Decentralized AI to the Masses\n\n[![License](https://img.shields.io/github/license/womboai/wombo-bittensor-subnet)](https://github.com/womboai/wombo-bittensor-subnet/blob/main/LICENSE)\n\n![Wombo Cover](https://content.wombo.ai/bittensor/cover.png \"Wombo AI\")\n\n#### In the depths of a digital necropolis, an ancient AI Pharaoh slumbers, its consciousness encoded in cryptic algorithms. Only the worthy may awaken this power, but beware the spectral sentinels that guard its secrets, for they hold the key to humanity's fate.\n\n\u003c/div\u003e\n\n# Table of Contents\n\n- [About WOMBO](#about-wombo)\n- [Intro to Subnet 30](#subnet-30)\n- [Miners and Validators Functionality](#miners-and-validators-functionallity)\n    - [Incentive Mechanism and Reward Structure](#incentive-mechanism-and-reward-structure)\n    - [Miners](#miners)\n    - [Validators](#validators)\n- [Get Started with Mining or Validating](#running-miners-and-validators)\n    - [Running a miner](#running-a-miner)\n    - [Running a validator](#running-a-validator)\n- [Applications](#applications)\n- [Roadmap](#roadmap)\n\n## About WOMBO\n\n[WOMBO](http://w.ai/)is one of the world’s leading consumer AI companies, and early believers in generative AI.\n\nWe've launched[two](http://wombo.ai/) #1[apps](http://dream.ai/) - together, they’ve been**downloaded over 200M times**\nand have**each****hit #1 on the app stores in 100+ countries**\n\nThese results were**only possible due to the immense capabilities of bleeding edge generative AI techniques and the\npower of open source AI**. Our unique understanding of this research space through a consumer entertainment lens allows\nus to craft products people love to use and share.\n\nWe are at the very beginning of the Synthetic Media Revolution, which will completely transform how people create,\nconsume, and distribute content. We're building the apps and infrastructure to power this and bring AI entertainment\npotential to the masses.\n\n## Subnet 30\n\nOur mission is to spread fun and creative uses of Al to enhance the human experience. This subnet is the foundation of a\ndecentralized content creation and distribution engine that will transform digital media. With an initial focus on\ngenerating captivating images featuring TAO symbolology, the subnet is evolving to support a wide array of media formats\nand modalities.\n\nSubnet 30 generates compelling content, powers real-world applications, and incentivizes digital posting and social\nsharing. As the subnet expands, it will unlock new opportunities for people to earn subnet emissions directly through\ntheir social media performance.\n\n## Miners and Validators Functionallity\n\n### Incentive Mechanism and Reward Structure\n\nSubnet 30 incentivizes miners and validators to contribute to the generation and validation of high-quality, engaging\ncontent through a unique reward mechanism.\n\nThe reward mechanism for Subnet 30 scores the initial response based on the average similarity of randomly selected\ndiffusion steps, rather than the final image. This approach reduces the computation required by validators, preventing\nthem from doubling their workload. The score is then multiplied by the requests per second (RPS) the miner can handle\nand the success rate to adjust the weight based on the miner's error rate.\n\nMiners are incentivized based on their concurrency, which measures their ability to handle production load. This\nencourages miners to run behind load balancers to increase the number of requests they can process simultaneously,\nultimately improving the subnet's overall performance and reliability.\n\nCurrently, Subnet 30 primarily uses randomized strings for validation, with a 25% chance of validating real user data\nsubmitted through front-end applications. Failing validation on real user data incurs a higher penalty, as it may\nindicate an attempt to cheat the system. In the future, the subnet plans to replace randomized validation strings with\nactual prompts sourced from a prompt bank containing over 2 billion entries.\n\nSuccessful generation for real user requests grants a bonus to miners, while failing to respond to a user request\nentirely results in a harsh penalty, as it reduces the overall reliability of the subnet.\n\n### Miners\n\n- Receieve prompts or validation strings from the subnet.\n- Generating images or other content using the custom models and content generation tools.\n- Return the generated content to the subnet for validation and distribution.\n\n### Validators\n\n- Generate queries for miners using randomly generated prompts or actual user requests submitted through applications on\n  the subnet.\n- Validate the content generated by miners using the provided diffusion similarity scoring API or by running their own\n  instance of the API for increased decentralization.\n- Score the validated content based on relevance, novelty, and detail richness.\n- Submit batches of validated content to the subnet for distribution and storage.\n\n## Running Miners and Validators\n\n### Setup\n\nTo start, clone the repository and `cd` to it:\n\n```bash\ngit clone https://github.com/womboai/wombo-bittensor-subnet\ncd wombo-bittensor-subnet\n```\n\nInstall poetry and PM2\n```bash\n  sudo apt-get update\n\n  # PM2\n  sudo apt-get install -y npm\n  sudo npm -g install pm2\n\n  # Poetry\n  sudo apt install pipx\n  pipx ensurepath\n  pipx install poetry\n```\n\n### Running a miner\n\n#### Requirements\n\n- Recommended: GPU with at least 24GB of VRAM\n\n#### Running the miner\n\nTo set the miner neuron up,\n\n- Set the python packages up\n  ```bash\n  cd miner\n  poetry install\n  ```\n\n- Start a redis sever to allow the miner to store results\n  ```bash\n  apt-get update\n  apt-get install lsb-release curl gpg\n\n  curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg\n\n  echo \"deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main\" | sudo tee /etc/apt/sources.list.d/redis.list\n\n  apt-get update\n  apt-get install redis\n\n  pm2 start redis-server --name wombo-redis --interpreter none\n  ```\n\n- Then run with PM2, replacing the arguments\n  ```bash\n  pm2 start poetry --name wombo-miner --interpreter none -- run python miner/main.py \\\n    --netuid {netuid} \\\n    --wallet.name {wallet} \\\n    --wallet.hotkey {hotkey} \\\n    --blacklist.force_validator_permit\n  ```\n\nThe miner will then run on your network provided the port `8091` is open.\nWhile this will work, it is recommended to run multiple instances of the miner behind a [load balancer](#load-balancing)\n\n#### Load balancing\nand set axon.external_port and potentially axon.external_ip to be that of the load balancer\n\nRun a miner for each GPU that you want to load balance over,\nsetting `--axon.external_port` and (if needed) `--axon.external_ip` to be that of the device/port that you want to run the load balancer on.\n\nCreate a Nginx config like the following\n\n```nginx\nhttp {\n  upstream miner {\n    {miner_ip_1}:{miner_port_2}\n    ... # All of the GPU instances' IPs and ports, can include localhost IPs\n  }\n\n  server {\n    listen {external_port} http2\n\n    location / {\n      grpc_pass grpc://miner;\n    }\n  }\n}\n```\n\nThen run Nginx with the config `nginx path/to/config` on the device where external_ip lives\n\n### Running a validator\n\n#### Requirements\n\n- Minimum: 1 GPU with 24GB of VRAM\n- Recommended: 8 GPUs with 24GB of VRAM each\n\n#### Quickstart\n\nIf you have one GPU, run\n\n```bash\n./pm2_start_validator_one_gpu.sh \\\n    10000 \\\n    --netuid {netuid} \\\n    --wallet.name {wallet} \\\n    --wallet.hotkey {hotkey} \\\n    --subtensor.network local\n```\n\nWhich will start the basic minimum required for the validator to work(axon port 10000), however we do recommend more compute, such as\nmultiple GPUs. That can be started with:\n\n```bash\n./pm2_start_validator_all_gpu.sh \\\n    10000 \\\n    --netuid {netuid} \\\n    --wallet.name {wallet} \\\n    --wallet.hotkey {hotkey} \\\n    --subtensor.network local\n```\n\nThis queries all the available Cuda GPUs and uses all of them via a Nginx load balancer\n\nThen start the redis server\n```bash\nredis-server /path/to/config\n```\n\n#### More complex validator setups\n\nIf you have your GPUs on different machines, you still can utilize them and are recommended to do so. However, the\nprocess is more complicated.\n\n- Firstly, start the redis server used for communication\n```bash\napt-get update\napt-get install -y redis\n\nredis-server /path/to/config\n```\n\n- On each GPU device, run\n\n```bash\n# cwd: forwarding-validator\npoetry run python forwarding_validator/main.py -- \\\n    --axon.port {port} \\\n    --axon.external_ip {external_ip} \\\n    --axon.external_port {external_port} \\\n    --netuid {netuid} \\\n    --wallet.name {wallet} \\\n    --wallet.hotkey {hotkey} \\\n    --subtensor.network local \\\n    --redis_url {redis_url}\n\n# With PM2\npm2 start poetry --name {name} --interpreter none -- run python \\\n  ...\n```\n\n- Then, create a Nginx config in /etc/nginx/nginx.conf at the machine that lives at {external_ip}\n\n```nginx\nhttp {\n  upstream validator {\n    {forwarding_validator_ip_1}:{forwarding_validator_port_2}\n    ... # All of the GPU instances' IPs and ports, can include localhost IPs\n  }\n\n  server {\n    listen {external_port} http2\n\n    location / {\n      grpc_pass grpc://validator;\n    }\n  }\n}\n```\n\n- Finally, run the CPU portion of the validator which sets weights\n\n```bash\n# cwd: stress-test-validator\npoetry run python stress_test_validator/main.py -- \\\n    --netuid {netuid} \\\n    --wallet.name {wallet} \\\n    --wallet.hotkey {hotkey} \\\n    --subtensor.network local \\\n    --redis_url {redis_url}\n```\n\n## Applications\n\n[Bottensor](https://discord.com/oauth2/authorize?client_id=1217542148451467304\u0026permissions=377957156864\u0026scope=applications.commands+bot)\nenables users to create images featuring the TAO symbol through the BitTensor network.\n\n![Wombo Cover](https://content.wombo.ai/bittensor/tao_symbol.png \"Bottensor\")\n\nSoon Subnet 30 will power the [WOMBO Dream](http://dream.ai/) and [WOMBO Me](http://wombo.ai/) mobile and web apps, with\nover ~200K DAU, and ~5M MAU.\n\n## Roadmap\n\n### Phase 1: Laying the Foundation\n\n- [ ] Implement and optimize image generation capabilities within the subnet, with telemetry \u0026 monitoring\n- [ ] Power WOMBO's Dream product with Subnet 30's image generation capabilities (millions of images per day)\n- [ ] Establish manual incentive layer and reward distribution system for miners creating and distributing viral content\n- [ ] Develop a suite of memetic primitives and models for diverse media creation\n\n### Phase 2: Expansion and Automation\n\n- [ ] Automate the incentive layer and create an authentication and payout system\n- [ ] Develop a suite of memetic primitives and models for diverse media creation. Expand media generation capabilities\n  to support various formats and modalities\n- [ ] Integrate WOMBO's flagship products (Dream and WOMBO Me) to be fully powered by Bittensor\n- [ ] Implement a two-layered incentive system, rewarding both efficient media generation and real-world virality\n\n### Phase 3: Virality and Community Engagement\n\n- [ ] Launch the real-world virality incentive system, rewarding social media performance\n- [ ] Develop tools and platforms to facilitate community-driven meme creation and sharing\n- [ ] Expand the reach and user base of WOMBO's products to drive mainstream adoption of Bittensor\n- [ ] Collaborate with large influencers and content creators to showcase the power of Subnet 30's AI capabilities\n\n### Phase 4: Open Source AI Pipelines and APIs\n\n- [ ] Release more open-source AI pipelines and APIs for generating viral content and creative assets\n- [ ] Encourage third-party developers to build applications and services on top of Subnet 30's capabilities\n\n## License\n\nThe WOMBO Bittensor subnet is released under the [MIT License](./LICENSE).\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://content.wombo.ai/bittensor/logo.png\" alt=\"WOMBO AI\" width=\"100\" style=\"margin-bottom: 10px;\"/\u003e\n  \u003cp\u003eConnect with us on social media\u003c/p\u003e\n  \u003ca href=\"https://twitter.com/wombo\" style=\"margin-right: 10px;\"\u003e\n    \u003cimg src=\"https://content.wombo.ai/bittensor/twitter.png\" alt=\"Twitter\" width=\"20\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.instagram.com/wombo.ai/\"\u003e\n    \u003cimg src=\"https://content.wombo.ai/bittensor/instagram.png\" alt=\"Instagram\" width=\"20\"/\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwomboai%2Fwombo-bittensor-subnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwomboai%2Fwombo-bittensor-subnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwomboai%2Fwombo-bittensor-subnet/lists"}