Jami distribuerat nätverk
Anslutningsbarhet
Jami bygger på ett [distribuerat nätverk] (tutorials/Jami-distribuerat-nätverk), som ger flera fördelar jämfört med federala nätverk:
Ingen poäng med misslyckande.
Mer motståndskraftig mot censur,
De är inte beroende av något annat än sina användare.
Förtroende mellan knutor är inte nödvändigt.
[Nätverk-topo]
Detta nätverk bildar en Distributed Hash Table (DHT)
Det centrala problemet med distribuerade kommunikationssystem är peer-knytning, Jami uppnås genom två element:
Kryptade meddelanden på DHT,
Användning av standardprotokoller för NAT-hålsprutning.
Jami bygger på två distinkta distribuerade nätverk:
OpenDHT kademlia-nätet för att tillhandahålla distribuerad anslutningsanläggning och meddelandefördelning,
JamiNS blockchain för att tillhandahålla distribuerad namnregistrering.
OpenDHT-nätverket
Se https://github.com/savoirfairelinux/opendht> för mer information om OpenDHT, som tillhandahåller en distribuerad nyckelvärdesdatabutik för anslutningsinrättning (med ICE) och meddelandefördelning i Jami.
Ett OpenDHT-nätverk kan anslutas genom att veta om alla noder som redan är anslutna till nätverket.
Jami-klienter använder en persistent node cache för att återansluta till nätverket efter en första session. En konfigurerbar, känd, stabil ”bootstrap” node används för den första anslutningen eller om cache-noder inte svarar.
Jami-klienter använder för närvarande bootstrap.jami.net:4222 som standard (konfigurerbar) bootstrap-knot och nätverks-ID 0 (de default, offentliga OpenDHT-nätverket).
Bidra till OpenDHT-nätverket
Varje Jami-konto har en OpenDHT-knod, vilket bidrar till nätverket och tillåter Jami att skala.
Jami-användare kan ha full självständighet genom att köra sin egen stabila OpenDHT-nöd och konfigurera den som en startnöd i Jami, samtidigt som de bidrar till att förbättra stabiliteten, robustheten och motståndskraften för varje användare av det offentliga OpenDHT-nätverket.
En fristående nod kan köras med hjälp av [dhtnode utility]https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) som ingår med OpenDHT. dhtnode behåller inga data och har en standard lagringsgräns i minne på 8 MiB.
Stabila DHT-knodor som drivs av ett samhälle kommer att läggas till i standardstartlistan på begäran av deras ägare, eftersom fler startnoder innebär ett mer motståndskraftigt, oberoende nätverk.
JamiNS-blockchain
JamiNS-blockchain är experimentellt och dess arkitektur förväntas utvecklas.
Jami-klienter kör inte blockkedja knutor själva utan kommunicerar snarare med en JamiNS-server med hjälp av HTTP för namnregistrering och förfrågan, med en REST API. Detta beror på att de resurser som behövs för att köra en blockkedja knut är för höga för de flesta slutanvändare.
Nameservern kan konfigureras som ett konto i Jami, vilket gör det möjligt att ansluta Jami-klienter till olika mer eller mindre centraliserade användarkataloger.
Bidra till JamiNS-blockchain
The default Jami name service is ns.jami.net, provided by Savoir-faire Linux Inc., connected to an Ethereum blockchain node; the goal being to give everyone the possibility (if they which so) to run their own blockchain node and HTTP service, mine some Ether, and use it to pay the transaction fee needed to register their username in Jami.
Code of the Ethereum contract, the blockchain genesis file, and the NodeJS module (HTTP server) can be found here : 1
Att köra en Jami-knod
Förutsättning:
Geth 1.8.23+ (download från [HÄR]
Jami genesis file (download from HERE)
Att bli medlem i Jami-nätverket
Processen att ansluta till Jami-nätverket liknar processen att ansluta till ett vanligt ethereum-nätverk med skillnaden att genesisfilen används för att initialisera datadata.
Ladda ner Jami genesis-filen från Jami github repo
Skapa en katalog på din dator som du kommer att använda för att lagra Jami blockchain data
Exempel för MacOS (/User/username/jamichain)
Exempel för Linux (/home/username/jamichain)
Exempel för Windows (C:\User\username\jamichain)
Använd geth för att initialisera den katalog du skapat i (2) genom att köra
./geth --datadir /home/username/jamichain init genes is.json
Du kan nu börja geth med de befallningslinjer du behöver och ange ett av Jami: s startnoder som följer:
geth --datadir=/home/username/jamichain --syncmode=full --networkid 1551 --bootnodes "enode://11ba6d3bfdc29a8afb24dcfcf9a08c8008005ead62756eadb363523c2ca8b819efbb264053db3d73949f1375bb3f03090f44cacfb88bade38bb6fc2cb3d890a5@173.231.120.228:30301" console
Det här startar en geth-daemon med en ansluten konsol som nu synkroniseras med Jami:s nätverk.