Include IPFS in openSUSE software repository

I would kindly like to request the inclusion of the IPFS daemon in the openSUSE software repository. If possible IPFS should be made part of the Tumbleweed-OSS repository… until then it would be great if a home: repository may be created by any user interested in maintaining the software.

https://ipfs.io
https://github.com/ipfs/ipfs

In a nutshell: IPFS (Inter Planetary File System) is an upcoming protocol for the web which aims to replace HTTP, potentially being one of the biggest revolutions coming to the internet. Instead of accessing a resource using the IP address of a centralized server on which it is hosted, you access it by using a hash which identifies that resource alone. The resource itself is not stored on any one server, but seeded by every machine accessing it (just like torrents). This will create an internet that is 1: Faster as each website is downloaded from people near you, 2: Resistant to censorship or failure induced by server downtime, 3: Involves zero hosting costs as websites are dynamically shared by those viewing them.

The protocol is still in an early stage but making fantastic progress! openSUSE can help users of the OS like myself to be part of this initiative more easily, by including the daemon in its software repositories for easy installation and staying up to date. This daemon is needed to support IPFS in browsers via their extension, and upload or download files with IPFS via console commands. The code is of course open-source, and can be found at the Github link I posted above… the community itself can be contacted at ircs://irc.freenode.org:6697/#ipfs

How absolutely fascinating. Thanks.

Blockchain is in there somewhere (I think?). Can we use this protocol/process now to move information as one already does in the ageing Internet?

IPFS uses MerkleDAG rather than Blockchain (the same system as Git), however I hear the architecture is compatible with block chains as well. I believe they recently decided to join up with Etherum over Bitcoin, but they’re using a lot of modern architectures and ideas.

There are a few videos describing the basics of IPFS and showing demos. I’ll post a few simple ones below which I found very helpful in introducing users to the concept.

//youtu.be/F6OLeszJLB8

//youtu.be/b6Epn_-vaqQ

Interesting,
Is first time in several years since I last read about this type of novel file system (documentation acknowledges previous similar attempts).

After reading the technical White Paper,
This creation is an interesting concept built on a number of tried and true technologies, so I’d say that it has a good foundation unlikely to produce surprises and whenever a vulnerability might appear in those foundation technologies, a patch (or improvements) can be produced with “other people’s” efforts and integrated into IPFS.

I don’t know if it’s an innovation, but possibly the unique feature IPFS introduces is the idea of defined variable sized content (I’m sure the “block data” and “block content” described in the White Paper refer to an amount of data defined by metadata, is not in any way related to block storage) at the application layer. With Bittorrent, large data files are broken up into same-sized data blocks. A typical HTML page defines blocks of content by HTML tags. When single blocks of data are transferred by HTML or FTP, they are transferred as a single file system object.

Now the prospects and use of such a file system…
Based again on what it is, and that defined by the technologies it’s built on…
Because peer-peer architecture and related technologies like DHT are essential for discovery, directory services and storage, it’s certain that IPFS has the same performance characteristics as Bittorrent… And that means the technology will likely shine for very large amounts of public, popular data. And, if your data is conversely small, unpopular and restricted, then the data may be next to impossible to find.

The Internet is enormous, with a vast amount of, and different types of data so at least today I can’t see IPFS becoming a standard that replaces HTML except for maybe the “top 100” or so websites, and even then not so if the content changes frequently.

And, I doubt as of today that IPFS can be considered for distributed Enterprise storage which has its own issues about security and storage, something like CEPH would provide much better management and control, plus the required security preventing storage on unauthorized nodes while providing maximum discovery and availability.

Although IPFS only mentions DHT for its directory services, I’m sure that a directory services server can be set up like Bittorrent(ie tracker) can be set up to better support Enterprise requirements.

Where I can see an IPFS possibility is to compete is with the relatively recent(actually been around for a couple years now) Bittorrent streaming, and then it’d be a question whether the additional features IPFS offers can be of use to companies like Netflix.

IMO,
TSU

One thing to keep in mind about IPFS hosting: Websites can be stored as a mixture of seeding (for parts of the service) combined with conventional central servers (containing the full site). You don’t HAVE to give up hosting your site on your server to use it.

To offer Youtube as an example: youtube.com can still be served by Google’s servers at all times through IPFS, containing every single video on the site as is currently the case. So let’s say user X decides to watch a video from Youtube, and their IPFS settings are configured so that his / her machine retains every watched video in cache and seeds it to the world for 24 hours. Now if user Y from X’s neighborhood decides to watch the same video on Youtube during this time interval, 80% of it gets buffered from the machine of user X at 10 MB/s whereas only 20% will be streamed from Youtube’s own server at 1 MB/s.

In this example everyone is happy and wins: Youtube takes no risk and maintains its servers intact, they otherwise waste less bandwidth giving only 20% to user Y, user Y theirself experiences faster loading speeds because their neighbor user X is closer thus faster than Youtube’s servers… all because user X who has fast free internet decides to use a generous configuration and sets up their IPFS daemon to stream the video when they don’t need the bandwidth for themselves. Surely it’s easy to see how this is a dream come true :slight_smile:

Hmmm… it appears users can’t create tickets on https://features.opensuse.org any more: Attempting to do so gives you the error “There are currently no products open for new features”.

Could someone maybe get this thread to the attention of an admin? I sincerely consider it important to get at least the IPFS daemon into an openSUSE repository. I see way more obscure and unimportant pieces of software in the repos if I look for them, so there should be no reason why an important standard would not be accepted.

I opened a thread about this on the IPFS forums as well, in case anyone is interested: https://discuss.ipfs.io/t/include-ipfs-in-opensuse-software-repository/1736

Hi, very interesting indeed. Also for openSUSE IMO. Please post to the opensuse-factory@opensuse.org mailing list.

It appears that for the time being, openSUSE users can use the following Fedora repository to install go-ipfs:

http://copr-be.cloud.fedoraproject.org/results/daftaupe/go-ipfs/epel-7-x86_64/

It will complain about files not being digitally signed and package integrity issues, but I managed to install it just fine from there.

I’d still strongly recommend considering a proper openSUSE repository for this: The Fedora one might eventually have cross-distribution inconsistencies, thus using it under openSUSE long term might not be the wisest choice. In absence of an alternative, I’ll have to stick with it for now to maintain a system-wide install.

Hi
The openSUSE ecosystem is a do-ocrity, maybe ask the openSUSE go folks to add if you not comfortable creating your own… If you grab the Fedora src rpm you can use that as a template for building an openSUSE version…

That’s very useful, thank you! I shall drop them an email about this when I have some time.

I have some great news: Thanks to the IPFS community member daftaupe, go-ipfs is now located on a home: repository under download.opensuse.org! I’ve installed it from there and can confirm that the daemon works.

http://download.opensuse.org/repositories/home:/daftaupe

Note that for some strange reason, although I can install the package from that repository, searching for “ipfs” or “go-ipfs” on https://software.opensuse.org returns no results. Could someone please verify why this is the case?

For the most part, this should mark my inquiry as resolved. Still I would really like to see the openSUSE team adding IPFS to the official openSUSE-OSS repository; This would make it even more accessible to everyone else, whereas I see no reason why anyone might not agree with it being there. As such I’d like to keep this discussion going over that subject as well.

Hi
Check your search settings is set to all distributions since it’s only built for Tumbleweed…

I see it here;
https://software.opensuse.org/package/go-ipfs?search_term=go-ipfs

And an easier way with osc :wink:


osc se go-ipfs

No matches found for 'go-ipfs' in projects
####################################################################
matches for 'go-ipfs' in packages:

# Project      # Package
home:daftaupe  go-ipfs

Yes, that solved it. Thanks!

I think OpenSUSE should create IPFS ID and KEYS for each new user. IPFS daemon should publish files stored in ~/public_html periodically (For each user). I know, there exist browser (Firefox) extension for IPFS, which allows to upload files, but periodically public files are good idea.

Wonderful idea there! I hear IPFS either does or may later support storage in custom directories rather than an archived cache, so using public_html may be a great choice for a default configuration.

For the later mention I should note that IPFS browser support is a separate project. IPFS basically exists as two different implementations: The first is go-ipfs, written in the go programming language, which is a background system process… the second is js-ipfs, implemented in JavaScript, which can be installed by web browsers (currently the IPFS Companion extension provides it). js-ipfs is the call of browsers such as Firefox, Chrome, etc… as far as other operating systems go, we can decide upon go-ipfs. Of course we could choose to pack our builds of Firefox / Chromium with js-ipfs builtin, but I’m not sure there’s much point in that at the moment since browser integration is more experimental at the moment.

Another option could be publish for everyone/publish for selected people context menu option. Rationale is IPFS allows to publish any kind of regular file. Publish for everyone will made ipfs add -r <selected item>. Publish for someone will encrypt file with selected person public key and perform the same operation on result. These publish options will also use libnotify to display hash of file to publish.

Although not yet part of the core OSS repository, IPFS has now been added to the official Filesystems repository in openSUSE. I salute this move! Hopefully it won’t be long until go-ipfs becomes a builtin part of most Linux distributions.

https://build.opensuse.org/package/show/filesystems/go-ipfs