{"id":19232330,"url":"https://github.com/tchardin/myel","last_synced_at":"2025-08-02T10:35:21.762Z","repository":{"id":41597983,"uuid":"280811100","full_name":"tchardin/myel","owner":"tchardin","description":"Tools for retrieval mining on Filecoin protocol","archived":false,"fork":false,"pushed_at":"2023-01-05T23:29:03.000Z","size":38619,"stargazers_count":13,"open_issues_count":36,"forks_count":1,"subscribers_count":2,"default_branch":"dev","last_synced_at":"2025-04-21T04:42:20.111Z","etag":null,"topics":["filecoin","ipfs"],"latest_commit_sha":null,"homepage":"https://myel.network","language":"TypeScript","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/tchardin.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}},"created_at":"2020-07-19T07:01:23.000Z","updated_at":"2024-05-30T11:28:15.000Z","dependencies_parsed_at":"2023-02-04T23:32:02.758Z","dependency_job_id":null,"html_url":"https://github.com/tchardin/myel","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tchardin/myel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchardin%2Fmyel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchardin%2Fmyel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchardin%2Fmyel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchardin%2Fmyel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tchardin","download_url":"https://codeload.github.com/tchardin/myel/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchardin%2Fmyel/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268372062,"owners_count":24239795,"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","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["filecoin","ipfs"],"created_at":"2024-11-09T16:05:59.423Z","updated_at":"2025-08-02T10:35:21.726Z","avatar_url":"https://github.com/tchardin.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"_**Note**: Myel retrieval network is now in development [here](https://github.com/myelnet/go-myel-network)_\n\n# Myel\n\nEasy Filecoin retrieval mining\n\n## Getting Started\n\nWe are currently working on a good way to test the whole system e2e. In the meantime you can run some parts separately.\n\n### Installing lotus\n\nPlease follow instructions in the [lotus documentation](https://lotu.sh/).\n\n### Running the faucet node\n\n```\ncd faucet\ngo run .\n```\n\n### Running the retrieval client\n\nFirst you need to get an admin token from your lotus node\n\n```\nlotus auth api-info --perm admin\n```\n\nThen either set it as an env variable `MYEL_RETRIEVAL_AUTH_TOKEN` or directly\n```\ncd retrieval\ngo run . -auth_token \u003cauth token here\u003e\n```\n\n### Running the UI\n\nYou can check out the UI in a synced [codesanbox](https://codesandbox.io/s/github/tchardin/hackfs/tree/dev/ui)\nor run locally \n```\ncd ui\nyarn\nyarn start\n```\n\n\n## Architecture\n\nA miner can run our retrieval client on top of their lotus node. The retrieval client can discover another type of node, which we call faucet node, via libp2p and subscribe through gossipsub to get immediate access to a stream of CIDs of content to retrieve. The retrieval clients sends back events about the CIDs they serve.\n\nEvents include information about any client requesting the CID as well as metrics surrounding the data transactions. This includes for example the location of the client or the latency of the network transaction. The faucet node writes in a database which miner was assigned to a CID and the events resulting from that pairing. Further, the faucet aims to match a retrieval miner to the CID which maximizes the potential amount of Filecoin they can earn. It does so by using a prediction model trained on the database of events which predicts the amount of Filecoin collected for a given Miner-CID pair.\n\nThe project features 3 different go apps. 1 runs a storage client to test e2e deal flows, 2 is a faucet node which runs libp2p and gossipsub protocol as well as a maxminddb for locating peer ips, 3 is a retrieval client featuring a lotus rpc client to communicate with a lotus node, a libp2p host with gossipsub and its own grpc implementation for connecting to the frontend. Lastly, the frontend is a react-native application (running in web but aiming at making an iPad app for miners) built in typescript, with recoil for state management.\n\n## Acknowledgments\n\nThanks to @svanburen for his contribution and guidance on golang architecture and best practices. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftchardin%2Fmyel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftchardin%2Fmyel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftchardin%2Fmyel/lists"}