
Selv om det allerede har vĂŠrt .
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:
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 nyeste versjonen finner du pÄ
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 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: ).
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 versionInstaller IPFS
Jeg likte mest installasjonsmetoden via .
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 --versionNÄr det gjelder installasjonen er det i grove trekk alt.
KjĂžre IPFS
Initialisering
For Ä begynne mÄ du utfÞre initialiseringen.
ipfs initSom 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/readmeResultatet
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. . 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 daemonDu 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, :5001/webui/). Men nÄr den installeres pÄ en ekstern server, er gatewayene som standard lukket for internett. Det er to gatewayer:
- Adminpanelet webui () pÄ port 5001.
- 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/readmeDen 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:

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 --mountVi 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.confI 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 /ipnsDeretter 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.serviceStart tjenesten.
sudo service ipfs startSjekk statusen til tjenesten.
sudo service ipfs statusFor Ä 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 . 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/40013. 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.

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. og tilsynelatende Ä 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 peersBÄ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 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 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é 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. AltsÄ 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Ä og slike prosjekt-eksempel som , som orbit.chat Har du hÞyrt om IPFS fÞr?
Kun registrerte brukere kan delta i undersÞkelsen. , 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
