IPFS uten smerte (men det er ikke helt sikkert)

IPFS uten smerte (men det er ikke helt sikkert)

Selv om det allerede har vÊrt mer enn én artikkel om IPFS.

Jeg vil med en gang presisere at jeg ikke er ekspert pÄ dette omrÄdet, men jeg har hatt interesse for denne teknologien. Mine forsÞk pÄ Ä eksperimentere med den har ofte vÊrt smertefulle. I dag har jeg igjen begynt med eksperimentene og fÄtt noen resultater jeg gjerne vil dele. Kort sagt vil jeg beskrive prosessen med Ä installere IPFS og noen funksjoner (alt ble utfÞrt pÄ Ubuntu, jeg har ikke prÞvd andre plattformer).

Hvis du har gÄtt glipp av hva IPFS er, er det skrevet ganske detaljert her: habr.com/ru/post/314768

Installasjon

For eksperimentets renhet foreslÄr jeg Ä installere det pÄ en ekstern server, ettersom vi skal se pÄ noen fallgruver med arbeid i lokal modus og fjernmodus. Senere, om Þnskelig, kan du enkelt slette det, det tar ikke lang tid.

Installer go

Den offisielle dokumentasjonen
Den nyeste versjonen finner du pÄ golang.org/dl

Merk: Det er bedre Ä installere IPFS som den brukeren som skal bruke det mest. Grunnen til dette er at vi senere skal se pÄ alternativet for Ä montere via FUSE og der er det noen detaljer.

cd ~
curl -O https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz
tar xvf go1.12.9.linux-amd64.tar.gz
sudo chown -R root:root ./go
sudo mv go /usr/local
rm go1.12.9.linux-amd64.tar.gz

Deretter mÄ du oppdatere miljÞet (mer om dette her: golang.org/doc/code.html#GOPATH).

echo 'export GOPATH=$HOME/work' >> ~/.bashrc
echo 'export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin' >> ~/.bashrc
source ~/.bashrc

Sjekk at go er installert

go version

Installer IPFS

Jeg likte mest installasjonsmetoden via ipfs-update.

Installer det med kommandoen

go get -v -u github.com/ipfs/ipfs-update

Etter dette kan du utfĂžre slike kommandoer:

ipfs-update versions — for Ă„ se alle tilgjengelige versjoner for nedlastning.
ipfs-update version — for Ă„ se den nĂ„vĂŠrende installerte versjonen (siden IPFS ikke er installert, vil den vĂŠre none).
ipfs-update install latest — installer den nyeste versjonen av IPFS. I stedet for latest kan du angi hvilken som helst þnsket versjon fra listen over tilgjengelige.

Installer ipfs

ipfs-update install latest

Sjekk

ipfs --version

NÄr det gjelder installasjonen er det i grove trekk alt.

KjĂžre IPFS

Initialisering

For Ä begynne mÄ du utfÞre initialiseringen.

ipfs init

Som svar vil du fÄ noe som dette:

 ipfs init
initializing IPFS node at /home/USERNAME/.ipfs
generating 2048-bit RSA keypair...done
peer identity: QmeCWX1DD7HnXXXXXXXXXXXXXXXXXXXXXXXXxxx
to get started, enter:
	ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

Du kan utfÞre den foreslÄtte kommandoen

ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

Resultatet

Hei og velkommen til IPFS!

██╗██████╗ ███████╗███████╗
██║██╔══██╗██╔════╝██╔════╝
██║██████╔╝█████╗  ███████╗
██║██╔═══╝ ██╔══╝  ╚════██║
██║██║     ██║     ███████║
╚═╝╚═╝     ╚═╝     ╚══════╝

Hvis du ser dette, har du installert
IPFS og er nÄ i ferd med Ä bruke ipfs merkledag!

 -------------------------------------------------------
| Advarsel:                                           |
|   Dette er alfavare. Bruk pÄ egen risiko!          |
|   Mye mangler eller har ikke fÄtt polering. Det finnes feil. |
|   Ikke sikkert enda. Les sikkerhetsnotatene for mer. |
 -------------------------------------------------------

Sjekk ut noen av de andre filene i denne katalogen:

  . /about
  . /help
  . /quick-start     <-- bruks eksempler
  . /readme          <-- denne filen
  . /security-notes

Her begynner det interessante etter min mening. De begynner allerede i installasjonsfasen Ä bruke sine egne teknologi. Den foreslÄtte hashen QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv er ikke spesialgenerert for deg, men integrert i utgivelsen. Det betyr at de forberedte velkomstteksten fÞr utgivelsen, lastet den opp til IPFS og la til adressen i installasjonen. Jeg synes dette er veldig kult. Og denne filen (eller rettere sagt, hele mappen) kan nÄ ses ikke bare lokalt, men ogsÄ pÄ den offisielle porten. ipfs.io/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv. Samtidig kan man vÊre trygg pÄ at innholdet i mappen pÄ ingen mÄte har blitt endret, for hvis det hadde blitt endret, ville hashen ogsÄ ha endret seg.

For Þvrig har IPFS i dette tilfellet noen likheter med en versjonskontrollserver. Hvis du endrer kildefilene i mappen og laster opp mappen til IPFS igjen, vil den fÄ en ny adresse. Den gamle mappen vil imidlertid ikke forsvinne sÄ lett og vil vÊre tilgjengelig pÄ sin tidligere adresse.

Direct launch

ipfs daemon

Du bÞr fÄ et svar som dette:

ipfs daemon
Initializing daemon...
go-ipfs version: 0.4.22-
Repo version: 7
System version: amd64/linux
Golang version: go1.12.7
Swarm listening on /ip4/x.x.x.x/tcp/4001
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
Swarm listening on /p2p-circuit
Swarm announcing /ip4/127.0.0.1/tcp/4001
Swarm announcing /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
WebUI: http://127.0.0.1:5001/webui
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready

Åpner dþrene for Internett

Legg merke til disse to linjene:

WebUI: http://127.0.0.1:5001/webui
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080

Hvis du har installert IPFS lokalt, vil du ha tilgang til IPFS-grensesnittene via lokale adresser og alt vil vÊre tilgjengelig for deg (for eksempel, localhost:5001/webui/). Men nÄr den installeres pÄ en ekstern server, er gatewayene som standard lukket for internett. Det er to gatewayer:

  1. Adminpanelet webui (github) pÄ port 5001.
  2. Eksternt API pÄ port 8080 (read-only).

For eksperimentering kan begge porter (5001 og 8080) Äpnes, men pÄ en produksjonsserver bÞr port 5001 selvsagt lukkes av brannmuren. Det finnes ogsÄ port 4001, som er nÞdvendig for at andre peers skal kunne finne deg. Den bÞr holdes Äpen for forespÞrselen.

Åpner for redigering ~/.ipfs/config og finner disse linjene:

"Addresses": {
  "Swarm": [
    "\/ip4\/0.0.0.0\/tcp\/4001",
    "\/ip6\/::\/tcp\/4001"
  ],
  "Announce": [],
  "NoAnnounce": [],
  "API": "\/ip4\/127.0.0.1\/tcp\/5001",
  "Gateway": "\/ip4\/127.0.0.1\/tcp\/8080"
}

Endrer 127.0.0.1 til IP-adressen til serveren og lagrer filen, deretter starter vi ipfs pÄ nytt (stopper kommandoen med Ctrl+C og starter opp igjen).

MÄ fÄ

...
WebUI: http://ip_adressen_til_serveren:5001/webui
Gateway (read-only) server lytter pÄ /ip4/ip_adressen_til_serveren/tcp/8080

NĂ„ bĂžr de eksterne grensesnittene vĂŠre tilgjengelige.

Kontroller

http://domene_eller_ip_til_serveren:8080/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

Den nevnte readme-filen bÞr Äpne seg.

http://domene_eller_ip_til_serveren:5001/webui/

Den nevnte webgrensesnittet bÞr Äpne seg.

Hvis webui fungerer, kan IPFS-innstillinger endres direkte i det, inkludert Ă„ se statistikken, men nedenfor vil jeg vurdere konfigurasjonsalternativer direkte via konfigurasjonsfilen, noe som ikke er kritisk. Det er imidlertid best Ă„ huske hvor konfigurasjonen ligger og hva som skal gjĂžres med den, for hvis webgrensesnittet ikke fungerer, blir det vanskeligere.

Konfigurerer webgrensesnittet for Ă„ fungere med sin egen server

Her er den fĂžrste fallgruven, som tok omtrent tre timer.

Hvis du har installert IPFS pÄ en ekstern server, men ikke har installert eller kjÞrt IPFS lokalt, bÞr du se en tilkoblingsfeil nÄr du gÄr til /webui i webgrensesnittet:

IPFS uten smerte (men det er ikke helt sikkert)

Poenget er at webui, etter min mening, fungerer ganske tvetydig. FÞrst prÞver den Ä koble til API-en til den serveren hvor grensesnittet er Äpent (basert pÄ adressen i nettleseren). Og hvis det ikke fungerer der, prÞver den Ä koble til den lokale gatewayen. Og hvis du har IPFS kjÞrt lokalt, vil webui fungere fint, men da arbeider du med lokal IPFS, ikke ekstern, selv om du har Äpnet webui pÄ en ekstern server. Deretter laster du opp filer, men av en eller annen grunn ser du dem ikke bare pÄ den eksterne serveren...

Hvis den heller ikke kjÞrer lokalt, fÄr vi en tilkoblingsfeil. I vÄrt tilfelle skyldes feilen mest sannsynlig CORS, noe som ogsÄ webui indikerer ved Ä foreslÄ Ä legge til konfigurasjonen.

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["http://ip_adressen_til_serveren:5001", "http://127.0.0.1:5001", "https://webui.ipfs.io"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]'

Jeg har bare skrevet wildcard selv.

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'

De tilleggte overskriftene kan alle finnes i samme ~/.ipfs/config. I mitt tilfelle er dette

  "API": {
    "HTTPHeaders": {
      "Access-Control-Allow-Origin": [
        "*"
      ]
    }
  },

Vi restarter ipfs og ser at webui har koblet til (i det minste burde det gjÞre det, hvis du har Äpnet gatewayer for forespÞrselen utenfra, som beskrevet ovenfor).

NĂ„ kan vi laste opp mapper og filer direkte gjennom webgrensesnittet, samt opprette egne mapper.

Montering av FUSE-filsystem

Dette er en ganske interessant funksjon.

Filer (som mapper) kan vi legge til ikke bare via webgrensesnittet, men ogsÄ direkte i terminalen, for eksempel

ipfs add test -r
added QmfYuz2gegRZNkDUDVLNa5DXzKmxxxxxxxxxx test/test.txt
added QmbnzgRVAP4fL814h5mQttyqk1aURxxxxxxxxxxxx test

Den siste hashen er hashen til rotmappen.

Ved hjelp av denne hashen kan vi Äpne mappen pÄ hvilken som helst ipfs-node (som kan finne noden vÄr og fÄ innholdet), via webgrensesnittet pÄ port 5001 eller 8080, eller lokalt via ipfs.

ipfs ls QmbnzgRVAP4fL814h5mQttyqk1aUxxxxxxxxxxxxx
QmfYuz2gegRZNkDUDVLNa5DXzKmKVxxxxxxxxxxxxxx 10 test.txt

Men vi kan ogsÄ Äpne det som en vanlig mappe.

La oss lage to mapper i roten og gi vÄr bruker rettigheter til dem.

sudo mkdir /ipfs /ipns
sudo chown BRUKERNAVN /ipfs /ipns

og restarte ipfs med flagget --mount

ipfs daemon --mount

Vi kan opprette mapper ogsÄ andre steder og spesifisere banen til dem via parametrene ipfs daemon --mount --mount-ipfs /ipfs_path --mount-ipns /ipns_path

NĂ„ er lesegangen fra denne mappen litt uvanlig.

ls -la /ipfs
ls: reading directory '/ipfs': Operation not permitted
total 0

Det vil si at direkte tilgang til roten av denne mappen ikke er mulig. Men man kan fÄ innhold ved Ä kjenne hashen.

ls -la /ipfs/QmbnzgRVAP4fL814h5mQttyqxxxxxxxxxxxxxxxxx
total 0
-r--r--r-- 1 root root 10 Aug 31 07:03 test.txt

cat /ipfs/QmbnzgRVAP4fL814h5mQttyqxxxxxxxxxxxxxxxxx/test.txt 
test
test

Samtidig fungerer til og med autofullfÞring nÄr du angir banen inne i mappen.

Som eg sa fÞr, nÄr du monterer pÄ denne mÄten, er det detaljer: som standard er FUSE-monterte mapper kun tilgjengelige for den nÄvÊrende brukeren (selv root kan ikke lese fra en slik mappe, for ikke Ä snakke om andre brukere i systemet). Hvis du Þnsker Ä gjÞre disse mappene tilgjengelige for andre brukere, mÄ du endre «FuseAllowOther»: false til «FuseAllowOther»: true i konfigurasjonen. Men det er ikke alt. Hvis du kjÞrer IPFS som root, er alt greit. Men hvis du kjÞrer den som en vanlig bruker (selv med sudo), fÄr du en feilmelding.

mount helper error: fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf

I sÄ fall mÄ du endre /etc/fuse.conf ved Ä avkommentere linjen #user_allow_other.

Deretter starter vi ipfs pÄ nytt.

Kjente problemer med FUSE

Det har ofte blitt observert et problem at etter omstart av ipfs med montering (eller kanskje i andre tilfeller), blir monteringspunktene /ipfs og /ipns utilgjengelige. Det er ingen tilgang til dem, og ls -la /ipfs viser ???? i rettighetslisten.

Jeg fant en slik lĂžsning:

fusermount -z -u /ipfs
fusermount -z -u /ipns

Deretter starter vi ipfs pÄ nytt.

Legg til tjeneste

SelvfĂžlgelig er oppstart i terminalen bare egnet for primĂŠre tester. I produksjonstilstand bĂžr demon starte automatisk ved systemoppstart.

Som sudo oppretter vi filen /etc/systemd/system/ipfs.service og skriver inn:

[Unit]
Description=IPFS Daemon
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
ExecStart=/home/USERNAME/work/bin/ipfs daemon --mount
User=USERNAME
Restart=always

[Install]
WantedBy=multi-user.target

USERNAME mÄ selvfÞlgelig erstattes med din egen bruker (og kanskje vil den fullstendige banen til ipfs-programmet vÊre annerledes hos deg (du mÄ angi nÞyaktig full bane)).

Aktiver tjenesten.

sudo systemctl enable ipfs.service

Start tjenesten.

sudo service ipfs start

Sjekk statusen til tjenesten.

sudo service ipfs status

For Ä opprettholde nÞyaktigheten i eksperimentet kan du senere starte serveren pÄ nytt for Ä sjekke om ipfs starter automatisk.

Legg til kjente noder

La oss se pÄ en situasjon der vi har IPFS-noder installert bÄde pÄ en ekstern server og lokalt. PÄ den eksterne serveren legger vi til en fil og prÞver Ä hente den via IPFS lokalt ved hjelp av CID. Hva vil skje? Den lokale serveren vet mest sannsynlig ingenting om vÄr eksterne server og vil bare forsÞke Ä finne filen ved Ä «spÞrre» alle tilgjengelige IPFS-noder (som den allerede har «mÞtt»). Disse nodene vil pÄ sin side spÞrre andre. Og slik fortsetter det, til filen er funnet. Det samme skjer ogsÄ nÄr vi prÞver Ä hente filen via den offisielle portalen ipfs.io. Hvis vi er heldige, vil filen bli funnet pÄ noen sekunder. Men hvis ikke, vil den ikke bli funnet pÄ flere minutter, noe som er veldig frustrerende. Men vi vet jo hvor denne filen fÞrst vil dukke opp. SÄ hvorfor ikke fortelle vÄr lokale server «SÞk fÞrst der»? Det ser ut til at dette kan gjÞres.

1. Vi logger inn pÄ den eksterne serveren og i konfigurasjonen ~/.ipfs/config ser vi etter

"Identity": {
    "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuxxxxxxxxxxxxxxxx",

2. Vi kjĂžrer sudo service ipfs status og ser etter Swarm-oppfĂžringer, for eksempel:

Swarm announcing /ip4/ip_eller_serveren_din/tcp/4001

3. Vi setter sammen den generelle adressen som ser ut som «/ip4/ip_eller_serveren_din/tcp/4001/ipfs/$PeerID».

4. For ekstra sikkerhet prÞver vi Ä legge til denne adressen i nodene via vÄrt lokale webui.

IPFS uten smerte (men det er ikke helt sikkert)

5. Hvis alt er OK, Ă„pner vi den lokale konfigurasjonen ~/.ipfs/config, finner «Bootstrap»: [

og legger til den oppnÄdde adressen som det fÞrste elementet i matrisen.

Vi starter IPFS pÄ nytt.

NÄ legger vi til en fil pÄ den eksterne serveren og prÞver Ä forespÞrre den lokalt. Den bÞr komme raskt.

Men denne funksjonaliteten er fremdeles ustabil. SÄ langt jeg forstÄr, selv om vi angir adressen til noden i Bootstrap, endrer IPFS listen over aktive forbindelser med noder under kjÞringen. I alle fall er det diskusjon om dette og Þnsker om muligheten til Ä angi faste noder. her og tilsynelatende det forventes Ä legge til noe funksjonalitet i ipfs@5.0+

Du kan se listen over nÄvÊrende noder bÄde i webui og i terminalen.

ipfs swarm peers

BÄde der og der kan du manuelt legge til din node.

ipfs swarm connect "/ip4/ip_eller_serveren_din/tcp/4001/ipfs/$PeerID"

Inntil vi forbedrer denne funksjonaliteten, kan vi skrive et verktĂžy som sjekker om forbindelsen med den aktuelle noden er aktiv, og hvis ikke, legger til forbindelsen.

Refleksjoner

Blant de som allerede er kjent med IPFS, er det bÄde argumenter for og imot IPFS. I prinsippet er det en diskusjon fra i forgÄrs diskusjon og det fikk meg til Ä grave mer i IPFS. NÄr det gjelder den nevnte diskusjonen, kan jeg ikke si at jeg er sterkt imot noe av argumentene som har blitt fremsatt (jeg er bare uenig i at én og en halv programmerer bruker IPFS). Generelt har bÄde de og de andre sine poenger (spesielt kommentaren om kvitteringer er tankevekkende). Men hvis vi ser bort fra den etiske og juridiske vurderingen, hva slags teknisk vurdering kan vi gi denne teknologien? Jeg har en slags indre fÞlelse av at "dette er definitivt nÞdvendig, dette har visse perspektiver". Men hvorfor nettopp det, er det ingen klar formulering. Hvis vi ser pÄ de eksisterende sentraliserte lÞsningene, er de pÄ mange parametre langt foran (stabilitet, hastighet, hÄndterbarhet osv.). Likevel har jeg en tanke som ser ut til Ä gi mening, og som neppe kan realiseres uten slike desentraliserte systemer. Selv om jeg strekker meg langt, ville jeg formulert det slik: prinsippet for informasjonsdistribusjon pÄ Internett mÄ endres.

Jeg skal forklare. Hvis vi tenker etter, sÄ sprer vi informasjon i henhold til prinsippet "Jeg hÄper at den som jeg har overlevert det til, vil beskytte det, og at det ikke gÄr tapt eller blir mottatt av uÞnskede." Det er lett Ä se pÄ ulike e-posttjenester, skybaserte lagringslÞsninger osv. Og hva ender vi opp med? PÄ Habré Informasjonssikkerhet stÄr fÞrst pÄ listen, og nesten hver dag fÄr vi nyheter om den siste globale lekkasjen. I prinsippet er alt det mest interessante nevnt i den fantastiske artikkelen. Sommeren er nesten over. Det er nesten ingen data som er lekketAltsÄ blir de store internettgigantene stadig stÞrre, de samler mer og mer informasjon, og slike lekkasjer er en slags informasjonseksplosjoner. Det har aldri vÊrt slik fÞr, og nÄ skjer det igjen. Samtidig, selv om mange forstÄr at det finnes risikoer, vil de fortsette Ä stole pÄ at tredjeparts selskaper hÄndterer dataene sine. For det fÞrste finnes det ikke sÊrlig mange alternativer, og for det andre lover de at de har tett igjen alle hullene og at dette ikke vil skje igjen.

Hva slags alternativ ser jeg for meg? Jeg mener at data i utgangspunktet bĂžr deles Ă„pent. Men Ă„penhet her betyr ikke at alt skal vĂŠre lett Ă„ lese. Jeg snakker om Ă„penhet i lagring og distribusjon, men ikke total Ă„penhet i lesning. Jeg antar at informasjon mĂ„ deles med Ă„pne nĂžkler. For prinsippet med Ă„pne/lukkede nĂžkler er allerede gammelt, nesten like gammelt som Internett. Hvis informasjonen ikke er konfidensiell og er ment for et bredt publikum, legges den ut med Ă„pne nĂžkler (men likevel i kryptert form, slik at alle kan dekryptere den med den tilgjengelige nĂžkkelen). Men hvis ikke, legges den ut uten Ă„pen nĂžkkel, og selve nĂžkkelen overfĂžres til den som skal ha tilgang til denne informasjonen. Den som mĂ„ lese det, skal bare ha nĂžkkelen, og hvor man finner denne informasjonen, skal ikke bekymre ham altfor mye — han henter det bare fra nettet (dette er det nye prinsippet for distribusjon basert pĂ„ innhold, ikke pĂ„ adresse).

Slik sett mÄ angripere for en massiv angrep skaffe seg et enormt antall lukkede nÞkler, og det er usannsynlig at de vil klare Ä gjÞre det pÄ ett sted. Denne oppgaven virker, etter min mening, mer komplisert enn Ä hacke en bestemt tjeneste.

Og her lukkes enda et problem: bekreftelse av forfatterskap. NÄ for tiden kan man finne mange sitater pÄ internett skrevet av folk vi kjenner. Men hvor er garantien for at det var nettopp de som skrev dem? Hvis hver slik opptegnelse ble ledsaget av en digital signatur, ville det vÊrt mye lettere. Og det spiller ingen rolle hvor denne informasjonen ligger, det viktigste er signaturen, som pÄ forhÄnd er vanskelig Ä forfalske.

Og det som er interessant her: IPFS inneholder allerede krypteringsverktÞy (det er jo bygget pÄ blokkjedeteknologi). I konfigurasjonen er den private nÞkkelen allerede angitt.

  "Identity": {
    "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuMxxxxxxxxxxxxxx",
    "PrivKey": "CAASqAkwggSkAgEAAoIBAQClZedVmj8JkPvT92sGrNIQmofVF3ne8xSWZIGqkm+t9IHNN+\/NDI51jA0MRzpBviM3o\/c\/Nuz30wo95vWToNyWzJlyAISXnUHxnVhvpeJAbaeggQRcFxO9ujO9DH61aqgN1m+JoEplHjtc4KS5
pUEDqamve+xAJO8BWt\/LgeRKA70JN4hlsRSghRqNFFwjeuBkT1kB6tZsG3YmvAXJ0o2uye+y+7LMS7jKpwJNJBiFAa\/Kuyu3W6PrdOe7SqrXfjOLHQ0uX1oYfcqFIKQsBNj\/Fb+GJMiciJUZaAjgHoaZrrf2b\/Eii3z0i+QIVG7OypXT3Z9JUS60
KKLfjtJ0nVLjAgMBAAECggEAZqSR5sbdffNSxN2TtsXDa3hq+WwjPp\/908M10QQleH\/3mcKv98FmGz65zjfZyHjV5C7GPp24e6elgHr3RhGbM55vT5dQscJu7SGng0of2bnzQCEw8nGD18dZWmYJsE4rUsMT3wXxhUU4s8\/Zijgq27oLyxKNr9T7
2gxqPCI06VTfMiCL1wBBUP1wHdFmD\/YLJwOjV\/sVzbsl9HxqzgzlDtfMn\/bJodcURFI1sf1e6WO+MyTc3.................

Eg er ikkje sikkerheitsspesialist og kan ikkje vite akkurat korleis dette skal brukast, men eg trur at desse nÞklane vert nytta pÄ nivÄet for utveksling mellom IPFS-noder. Og sÄ js-ipfs og slike prosjekt-eksempel som orbit-db, som orbit.chat . SÄ teoretisk kan kvar eining (mobil og anna) lett utstyrast med sine eigne krypterings- og dekrypteringsmaskiner. I sÄ fall vil kvar enkeltperson mÄtte ta vare pÄ sine private nÞklar, og kvar vil sjÞlv vere ansvarleg for si eiga sikkerheit, snarare enn Ä vere ein brikke i eit menneskeleg faktum hos ein superpopulÊr internettgigant.Har du hÞyrt om IPFS fÞr?

Kun registrerte brukere kan delta i undersÞkelsen. Logg inn, vÊr sÄ snill.

Aldri hĂžyrt om IPFS, men det verkar interessant

  • Har ikkje hĂžyrt og vil ikkje hĂžyre

  • Har hĂžyrt, men det engasjerte meg ikkje

  • Har hĂžyrt, men forstod det ikkje, og no verkar det interessant

  • Har brukt IPFS aktivt lenge

  • 69 brukarar stemte, 13 brukarar avstod.

Kvifor kjem det ikkje PUSH-varsel i VoIP-klienten 3CX for Android?

Kilde: habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster