Using IPFS for BMS/bmson distribution

Introduction to IPFS

IPFS (InterPlanetary File System) is a highly distributed file system based on peer-to-peer technology. All computers running IPFS share a single file system.

You can learn more about this technology at https://ipfs.io/ and on Wikipedia (日本語).

Japanese book about IPFS: https://ipfs-book.decentralized-web.jp/

IPFS and BMS(bmson) community

What would happen if IPFS is used to distribute BMS/bmson?

IPFS Path for Download URL

When publishing BMS/bmson,
I can also add my song folder to IPFS. When I add it, I get a unique “hash”.
I can put the hash into DownloadURL (in form of “/ipfs/<hash>”).
  • What is a hash?
  • A hash is a short identifier for a piece of content.
  • Same content results in the same hash.
  • Different content results in a different hash.
  • IPFS is a system that lets you retrieve the content through the peer-to-peer network if you know the hash of that content.

Browsing files

Because folder is published to IPFS,
I can browse it through the public IPFS gateway:

Downloading the folder

If you install IPFS in your computer, you can quickly download the folder into your computer:

(Command line)
PS> ipfs get QmdqpfL2LQZ3W4VSWePHhTvsz1is3pKVJhoMqi5hv2Tn6k -o recursivedescent
Saving file(s) to recursivedescent
4.91 MB / 4.91 MB [==========================] 100.00% 0s

  • Benefit: No need to download files from many different websites.
  • Benefit: No need to extract files.
  • Benefit: By downloading the content, you also help seed them to other people (for a limited time). This means everyone gets faster downloading speed. (Like BitTorrent.)

Mounting as a drive

IPFS can be used as a network drive.
This means it is possible to play a BMS file directly from IPFS drive.
e.g.
java -jar beatoraja.jar "Z:\ipfs\QmdqpfL2LQZ3W4VSWePHhTvsz1is3pKVJhoMqi5hv2Tn6k\RECURSIVE DESCENT.bmson"

What if games supported IPFS?

If BMS players supported IPFS, what would happen?