faker-js / faker

Generate massive amounts of fake data in the browser and node.js
https://fakerjs.dev
Other
12.12k stars 883 forks source link

Prefer a stable CDN over IPFS #2934

Open SukkaW opened 3 weeks ago

SukkaW commented 3 weeks ago

Pre-Checks

Describe the bug

I am using faker.image.avatar() method to get a random avatar URL.

The method returns a random IPFS URL: https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/269.jpg

But to my surprise, the Cloudflare IPFS Gateway returns 504 error:

image

The IPFS gateway itself is working, but the asset can not be fetched by the gateway from the IPFS network.

Minimal reproduction code

No response

Additional Context

IMHO IPFS Gateway might not be that stable after all, faker-js could publish the random assets on a dedicated GitHub repo and use jsDelivr (or any other CDN) to deliver them.

Environment Info

System:
    OS: Linux 6.8 Fedora Linux 40 (Workstation Edition)
    CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 11.70 GB / 31.03 GB
    Container: Yes
    Shell: 5.9 - /usr/bin/zsh
  Binaries:
    Node: 18.19.0 - /run/user/1000/fnm_multishells/174660_1717401217872/bin/node
    npm: 10.2.3 - /run/user/1000/fnm_multishells/174660_1717401217872/bin/npm
    pnpm: 8.15.8 - /run/user/1000/fnm_multishells/174660_1717401217872/bin/pnpm
    bun: 1.1.10 - ~/.npm-global/bin/bun
  Browsers:
    Chrome: 125.0.6422.141

Which module system do you use?

Used Package Manager

pnpm

SukkaW commented 3 weeks ago

See also #2598.

ST-DDT commented 3 weeks ago

Which version of Faker are you using?

The link seems to work fine for me, this might be a temporary problem. We plan to replace the legacy set in the future.

Workaround: Use avatarGithub() instead.

SukkaW commented 3 weeks ago

Which version of Faker are you using?

I am using @faker-js/faker@7.6.0

The link seems to work fine for me, this might be a temporary problem. We plan to replace the legacy set in the future.

Sure. In the meantime, I propose faker could publish assets on a dedicated GitHub repo, and deliver them through a more stable GitHub CDN like jsDelivr or Statically.io, unlike the IPFS which requires maintaining an infra to pin the file over the IPFS network (Like seeding with the BitTorrent).

Shinigami92 commented 3 weeks ago

As I already raised the idea of generating new person face images via Stable Diffusion and I do have now a good graphic card available, I will assign me to this issue However I will also either add a note for the upcoming team meeting about this topic or we (team/part of team) might discuss a bit about the process and how to effectively store these generated data (e.g. also persisting info/meta about how the images were generated and their prompts)

ST-DDT commented 3 weeks ago

Related issue: