{"id":19952868,"url":"https://github.com/ethersphere/multichain","last_synced_at":"2025-03-01T15:17:11.828Z","repository":{"id":255212602,"uuid":"848782258","full_name":"ethersphere/multichain","owner":"ethersphere","description":"Solutions for buying Bzz and obtaining postagestamps in multichain environment ","archived":false,"fork":false,"pushed_at":"2025-02-13T18:54:56.000Z","size":1305,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-02-13T19:39:05.500Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/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":"2024-08-28T11:57:18.000Z","updated_at":"2025-02-13T18:54:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"77e0a143-d446-4c5f-95c9-48294a0f0524","html_url":"https://github.com/ethersphere/multichain","commit_stats":null,"previous_names":["ethersphere/multichain"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethersphere%2Fmultichain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethersphere%2Fmultichain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethersphere%2Fmultichain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethersphere%2Fmultichain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ethersphere","download_url":"https://codeload.github.com/ethersphere/multichain/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241381646,"owners_count":19953751,"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:37.724Z","updated_at":"2025-03-01T15:17:11.811Z","avatar_url":"https://github.com/ethersphere.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).\n\n## Getting Started\n\nFirst, run the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n# or\npnpm dev\n# or\nbun dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\nYou can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.\n\nThis project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.\n\nto test NEXT JS EXPORT USE, serve to serve OUT directory\n\nnpm install serve\nnpx serve out\n\n## What needs to be done for this project or TODOs list\n\n1. Remove config that skips typescript errors and lint errors, fix problems\n\n2. Get signature from wallet to confirm the ownership\n\n3. Use the signature when uploading data, send the sig to backend, check in backend that SIG correnspondes to the wallet that created batch (msg sender or we will have additional contract that connects bought and created stamps)\n\n4. Bookkeeper of bought stamps (smart contracts), add who paid for the stamp as we are putting all of them to the same node which will be uploading data for users\n\n5. Make an upload form that sends data to backend, where backend checks if this can be uploaded to the given stamp or given wallet\n\n6. Show for this wallet what stamps it has, maybe somehow show how much more space is there?\n\n7. Add Gas on destination chain https://docs.li.fi/li.fi-api/li.fuel\n\n8. Upload folders directly or add more support for non tar uploads\n\n9. Check spending cap on BZZ, if its above, dont ask for approval\n\n10. Check do we really need a signing if we just enforce domain from where uploads can come from, maybe we just check signing but no need to check it through stamp ownership\n\n11. Can we have update to smart contract that we add actual owner of stamp and node through which it came?\n\n12. Enforce on server checking of origin of domain, where the upload came from\n\n13. Decide do we have 2 clear modes working separatly for Bee Public node and Custom nodes\n\n## How to run locally\n\nFirst install swarm desktop and run it or install and run bee node locally\nSet the BEE API URL to http://localhost:1633\n\n## How to setup endpoint to serve content remotely\n\nAdd the in the scripts/index.js code to the server and run it\nThat will expose bee node endpoints for upload through proxy\n\nor you need a PAID plan for NGROK to run your local Node and expose it to world and then start it with this command\n\n```CLI\nngrok http 1633 --request-header-add=\"ngrok-skip-browser-warning:1\"\n```\n\n## How to EXPORT this app\n\nExport this with\n\n```\nnpm run build\n```\n\nand make and archive from files in /out directory, then upload that to Swarm network and use with accessing\nthe hash through https resolver.\n\nSugges to do it in specific way, go to /out directory and then run\n\n```\ntar -cf swap_uploader.tar .\n```\n\nso you get TAR archive of static files export and there is no subdirectory when its uploaded to Swarm\n\n## Testing large file upload\n\nUse below to create 1GB bin file on linux, to make it 2GB put count to 32 etc\n\n```\ndd if=/dev/urandom of=1GB.bin bs=64M count=16 iflag=fullblock\n```\n\n## Check LIFI API endpoints\n\nGo to https://apidocs.li.fi/reference\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethersphere%2Fmultichain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fethersphere%2Fmultichain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethersphere%2Fmultichain/lists"}