ScientificPublishing / SciPub

2 stars 0 forks source link

IPFS Interplanetary File System #7

Open artydont opened 1 year ago

artydont commented 1 year ago

This is a heads up about IPFS.

  1. We will immediately need a convenient way of updating files too large for email to each other while working on them.
  2. Convenient means just drag a file or folder into a "workgroup" folder on your PC for this workgroup and it will automagically appear in corresponding folders of other members and notify them of updates without any further action needed.
  3. This can be done in many ways but long term we will need IPFS so best to not waste time setting up anything else and good idea to become familiar with IPFS for many reasons.
  4. Overview, background and links to official site and many related systems here: https://en.wikipedia.org/wiki/InterPlanetary_File_System https://ipfs.tech/
  5. Standard installation of a Desktop App for all platforms (Windows, Mac and Linux Appimage) is quite simple: https://docs.ipfs.tech/install/ipfs-desktop/
  6. But this connects to the public IPFS being developed by over 2000 active contributors, with over 280,000 unique nodes and 1 billion addressable data items. It may become quite resource intensive. My node currently publishes no files at all and already has about 500 KiB/sec total traffic in both directions due to storing less than 40 MiB of data for others and continuously shuttling it around among more than 600 peers.
  7. Will be useful for instant access to: https://annas-archive.org/
  8. But immediate requirement is for a private IPFS cluster just between participants in this organization.
  9. That requires negligible computation or bandwidth resources but significantly more complex installation which I have not attempted yet. Will set up an experimental pair of nodes between me on Fedora Linux and @PetrogradXXII on Windows then add @Ted1307 on Mac when working smoothly between the first two. @DavidMc1948 last as he has not got time for experimenting.
  10. I will be starting from the following instructions which others may also wish to peruse (especially @PetrogradXXII) :
  11. Deploy a private IPFS network in 5 steps - Sander van Laar 2021-01-13
  12. Why do we need IPFS and how to create private IPFS network - piash.tanjin 2022-09-30
  13. Empathy welcome!
  14. Hopefully we will be able to just send a simple script to @Ted1307 and @DavidMc1948
  15. The ToC for docs includes a GLossary here: https://docs.ipfs.tech/concepts/glossary/
  16. An important concept mentioned in the Glossay is PubSub Publish and Subscribe pattern which we will be using for collaborative document editing and many other aspects.
  17. We are in the PubSub business. It is really worthwhile to get to grips with this overview of how it works: https://docs.libp2p.io/concepts/pubsub/overview/
  18. Medium to long term intention is to have lots of interconnected groups, each with their own private IPFS cluster that gets setup and interconnected automagically and provides the underlying infrastructure for many overlapping PubSub channels

    Important Warning

    IPFS does not provide any protection for privacy against surveillance, anonymity or measures against traffic analysis. It may well be a very convenient facility for NSA and other intelligence agencies. What it does provide is highly resiliant storage and distribution of content that is very hard to censor (as opposed to being hard to monitor and suppress by more forceful measures). Complementary use of other measures will be needed as part of a completely accessible system. But I think that future certainly will make some use of: https://ipfscluster.io/

artydont commented 1 year ago

On reflection I now believe IPFS should be left until later.

It will certainly be needed eventually, together with automagic setup of private clusters on all platforms.

But it does not directly provide the simple drop box/Google Drive style means for exchanging large files without publishing them on Github that is all we need at present. No point spending the time to configure private cluster manually now. When we need it we will also need it to be automagical.

Long term GNUnet will provide everything needed but it is still for developers only. I will be studying it carefully but it won't interest anybody else currently involved.

https://en.wikipedia.org/wiki/GNUnet

I believe I2P will be our best solution for now but I have not even installed it for myself yet and will also check out others from the links below:

https://en.wikipedia.org/wiki/I2P

I2P may also be too much effort right now, from a quick glance at the documentation. But when feasible I would prefer to start becoming part of the communities already adopting measures for privacy and resiliance against censorship etc rather than just use the usual commercial services like drop box and google drive. So I will at least try it out myself, without suggesting that others do.

I am also likely to get distracted by following the relevant academic literature despite that not directly helping this project:

https://www.freehaven.net/anonbib/topic.html

There really is a very strong movement preparing to fight because "Information wants to be free". The sooner we link up, the better.

artydont commented 1 year ago

I believe the ip2d version of I2P is easy to install without actually configuring it and doing anything useful with it.

https://i2pd.readthedocs.io/en/latest/user-guide/install/

Ignore all the details about configuring it. I will check them out first.

Heavy use won't be needed. But I have installed it now on Fedora and suggest it should be installed on both Windows and Mac. I will try to get it actually working between my Fedora laptop and an Android phone and/or a annother PC that will be left online continuously before suggesting that others attempt full configuration.

Nevertheless it is worth installing now and leaving it running as it takes time to automaticlally establish anonymous connections with actually useful parts of the network.

Running it for many hours and using "Quit Gracefully" to let it take a long time to notify other nodes that it is becoming unavailable before you shutdown your computer will make it quicker to actually start using it later.

Behaving above is the way a "good citizen" of anonymous network contributes to the network's capability to maintain anonymity by relaying traffic. Doing nothing but just being there is not very resource intensive. But the more you are "there" the faster you can connect later. Bad citizens are noticed and other nodes connect to them more slowly until they mend their ways.

For 64 bit Windows users I assume the file to use is:

https://github.com/PurpleI2P/i2pd/releases/download/2.49.0/i2pd_2.49.0_win64_mingw.zip

I have no idea whether there are any hassles after unzipping it. Suggest @PetrogradXXII should try it first. The README inside the .zip looks straightforward.

For Apple Macintosh @Ted1307 would need to first install Home Brew as advised previously. This is essential for easy access to all the FOSS software readily available for Macintosh (including ebook readers that handle .djvu files etc).

Then the instructions are just:

MacOS X

You can install i2pd from brew package manager:

brew install i2pd

https://retrosharedocs.readthedocs.io/en/latest/

I currently expect the simplest next step will be to configure us as a "family" of nodes only linking to each other via I2P and initially just using shared folders similar to "Drop Box" or Google Drive, ignoring other facilities from Retroshare:

https://retrosharedocs.readthedocs.io/en/latest/user-guide/settings/#directories

Hoping to get that working between me and @PetrogradXXII first. Don't worry about configuring it yet but take a quick look at above link.

Hopefully shared folders will work satisfactorily despite computers being shutdown at different times and not online at the same time.