Jami distribueret netværk

Forbindelse

Jami relies on a distributed network, which brings multiple advantages when compared to federated networks:

  • Ingen grund til at fejle.

  • Mere modstandsdygtig overfor censur,

  • De er ikke afhængige af andet end deres brugere.

  • Fortro mellem knudepunkter er ikke nødvendigt.

Network topographies

This forms a Distributed Hash Table (DHT) network.

The core problem of distributed communication systems is peer connectivity. Jami achieves it through two elements:

  • Encrypted announcements on the DHT network,

  • Brug af standardprotokoller til NAT-hulsprøjtning.

Jami er bygget på to forskellige distribuerede netværk:

  • OpenDHT kademlia-netværket til at levere distribueret forbindelse og beskedsdistribution

  • JamiNS blockchain til at levere distribueret navn registrering.

OpenDHT-netværket

Se også

Visit the https://github.com/savoirfairelinux/opendht page for more information about OpenDHT. OpenDHT provides a distributed key-value datastore for connectivity establishment (with ICE) and message distribution in Jami.

Et OpenDHT-netværk kan tilsluttes ved at vide om ethvert node, der allerede er forbundet til netværket.

Jami-klienter bruger en persistent node cache til at forbinde igen til netværket efter en første session. En konfigurerbar, kendt, stabil »bootstrap« node bruges til den første forbindelse eller hvis cache-noder ikke svarer.

Jami-klienter bruger i øjeblikket bootstrap.jami.net:4222 som standard (konfigurerbar) bootstrap-node og netværks-ID 0 (det standard, offentlige OpenDHT-netværk).

Bidra til OpenDHT-netværket

Hver Jami-konto kører en OpenDHT-node, der bidrager til netværket og giver Jami mulighed for at skale.

Jami-brugere kan få fuld uafhængighed ved at køre deres egen stabile OpenDHT-node og konfigurere den som en bootstrap-node i Jami, samtidig med at de hjælper med at forbedre stabiliteten, robustiteten og modstandsdygtigheden for hver bruger af det offentlige OpenDHT-netværk.

En standalone node kan køre ved hjælp af [dhtnode-utility]https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) inkluderet med OpenDHT. dhtnode ikke opretholder nogen data og har en standard lagring i hukommelse grænse på 8 MiB.

Stable community-run DHT nodes will be added to the default bootstrap server list at the request of their owner, as more bootstrap nodes means a more resilient, independent network.

Bemærk

To add a community-run DHT node to the default bootstrap server list, please email contact@jami.net.

JamiNS-blokken

JamiNS-blokken er eksperimenterende, og dens arkitektur forventes at udvikle sig.

Jami-klienter kører ikke blockchain-noder selv, men kommunikerer snarere med en JamiNS-server ved hjælp af HTTP til navneregistrering og forespørgsel, med en REST API. Dette skyldes, at de ressourcer, der er nødvendige for at køre en blockchain-noder, er for høje for de fleste slutbrugere.

The name server is set at the account level. This enables the Jami client to connect simultaneously to multiple user directories.

Bidra til 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.

Kør en Jami-knode

Prerequisites

  1. Geth 1.8.23+ (download from here)

  2. Jami genesis file (download from here)

Jeg er medlem af Jami-netværket

Processen med at slutte sig til Jami-netværket er lig den proces med at slutte sig til et almindeligt ethereum-netværk med forskellen på, at genesisfilen bruges til at initialisere datadministratoren.

  1. Download Jami genesis fil fra Jami github repo

  2. Oprett et katalog på din computer, som du vil bruge til at gemme Jami blockchain data

    • Example for GNU/Linux (/home/username/jamichain)

    • Example for macOS (/Users/username/jamichain)

    • Eksempel for Windows (C:\brugere\brugernavn\jamichain)

  3. Brug geth til at initialisere det katalog, du oprettede i (2) ved at køre ./geth --datadir /home/username/jamichain init genes is.json

  4. Du kan nu starte geth med de kommando-linje-optioner du har brug for og angive en af Jami’s startnodes som følger:

geth --datadir=/home/username/jamichain --syncmode=full --networkid 1551 --bootnodes "enode://11ba6d3bfdc29a8afb24dcfcf9a08c8008005ead62756eadb363523c2ca8b819efbb264053db3d73949f1375bb3f03090f44cacfb88bade38bb6fc2cb3d890a5@173.231.120.228:30301" console

Det starter en geth daemon med en tilkoblet konsol, som nu synkroniseres med Jami’s netværk.