Jami verspreid netwerk
Connectiviteit
Jami relies on a distributed network, which brings multiple advantages when compared to federated networks:
Geen punt van falen.
Meer veerkrachtig tegen censuur,
Afhankelijk zijn van niets anders dan van hun gebruikers,
Vertrouwen tussen knooppunten is niet nodig.
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,
Gebruik van standaardprotocollen voor het doorbochten van gaten in NAT.
Jami is gebouwd op twee verschillende verspreide netwerken:
het OpenDHT kademlia-netwerk om gedistribueerde verbindingsinstallaties en berichtenverdeling te bieden,
De JamiNS blockchain om gedistribueerde naamregistratie te bieden.
Het OpenDHT-netwerk
Zie ook
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.
Een OpenDHT-netwerk kan worden aangesloten door kennis te hebben van elke knoop die al aan het netwerk is aangesloten.
Jami-clients gebruiken een persistente node cache om na een eerste sessie opnieuw verbinding te maken met het netwerk.
Jami-clients gebruiken momenteel bootstrap.jami.net:4222 als standaard (configureerbare) bootstrap-knop en netwerk-ID 0 (de standaard, openbaar OpenDHT-netwerk).
Bevordering van het OpenDHT-netwerk
Elke Jami-account heeft een OpenDHT-knop, waardoor Jami kan schaalvormen.
Jami-gebruikers kunnen volledige onafhankelijkheid hebben door hun eigen stabiele OpenDHT-knop te laten draaien en deze te configureren als een bootstrap-knop in Jami, terwijl ze helpen bij het verbeteren van de stabiliteit, robuustheid en veerkracht voor elke gebruiker van het openbare OpenDHT-netwerk.
Een standalone node kan worden uitgevoerd met behulp van de [dhtnode utility]https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) opgenomen met OpenDHT. dhtnode blijft geen gegevens en heeft een standaard opslag limiet in het geheugen van 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.
Notitie
To add a community-run DHT node to the default bootstrap server list, please email contact@jami.net.
De JamiNS-blockchain
De JamiNS blockchain is experimentele en de architectuur zal naar verwachting evolueren.
Jami-clients voeren geen blockchain-knopen zelf uit, maar communiceren eerder met een JamiNS-server met HTTP voor naamregistratie en navraag, met een REST API.
The name server is set at the account level. This enables the Jami client to connect simultaneously to multiple user directories.
Bevolgen van de 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.
Een Jami-knop laten draaien
Prerequisites
Ik sluit me aan bij het Jami-netwerk
Het proces van het aansluiten bij het Jami-netwerk is vergelijkbaar met het proces van het aansluiten bij een regulier ethereum-netwerk met het verschil dat het genesis-bestand wordt gebruikt om het data directory te initialiseren.
Download het Jami genesis bestand van de Jami github repo
Maak een directory op je computer waarmee je de Jami blockchain gegevens kunt opslaan
Example for GNU/Linux (/home/username/jamichain)
Example for macOS (/Users/username/jamichain)
Voorbeeld voor Windows (C:\User\username\jamichain)
Gebruik geth om het directory dat je hebt gemaakt in (2) te initialiseren door
./geth --datadir /home/username/jamichain init genes is.json
Je kunt nu met de opties van de commandolijn beginnen en een van Jami’s startknopen als volgt vermelden:
geth --datadir=/home/username/jamichain --syncmode=full --networkid 1551 --bootnodes "enode://11ba6d3bfdc29a8afb24dcfcf9a08c8008005ead62756eadb363523c2ca8b819efbb264053db3d73949f1375bb3f03090f44cacfb88bade38bb6fc2cb3d890a5@173.231.120.228:30301" console
Hiermee start een geth daemon met een aangesloten console die nu synchroniseert met Jami’s netwerk.