Το δίκτυο κατανομής Jami
Συνδεσιμότητα
Jami relies on a distributed network, which brings multiple advantages when compared to federated networks:
Δεν υπάρχει λόγος αποτυχίας.
Περισσότερο ανθεκτικό στη λογοκρισία,
Δεν εξαρτάται από τίποτα άλλο εκτός από τους χρήστες του,
Η εμπιστοσύνη μεταξύ των κόμβων δεν είναι απαραίτητη.
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,
Χρήση τυποποιημένων πρωτόκολλων για την τρύπα επίθεση NAT.
Η Τζάμι είναι χτισμένη σε δύο διαφορετικά διανεμημένα δίκτυα:
το δίκτυο kademlia OpenDHT για την παροχή διανεμημένης εγκατάστασης συνδεσιμότητας και διανομής μηνυμάτων,
Το σύστημα Τζαμίνς για τη διασφάλιση της καταχώρισης ονομάτων.
Το δίκτυο OpenDHT
Δείτε επίσης
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.
Ένα OpenDHT δίκτυο μπορεί να ενωθεί γνωρίζοντας για οποιοδήποτε κόμβο ήδη συνδεδεμένο στο δίκτυο.
Οι πελάτες Jami χρησιμοποιούν μια επίμονη απομνημονεύουσα δέσμη για να επανασυνδεθούν στο δίκτυο μετά από μια πρώτη συνεδρίαση.
Οι πελάτες Jami χρησιμοποιούν σήμερα bootstrap.jami.net:4222 ως προεπιλεγμένο (συσταγμένο) κόμβο bootstrap και το network ID 0 (το προεπιλεγμένο, δημόσιο δίκτυο OpenDHT).
Συμμετοχή στο δίκτυο OpenDHT
Κάθε λογαριασμός Jami τρέχει ένα κόμβο OpenDHT, συμβάλλοντας στο δίκτυο και επιτρέποντας Jami να κλιμακωθεί.
Οι χρήστες Jami μπορούν να έχουν πλήρη ανεξαρτησία εκτελώντας τον δικό τους σταθερό κόμβο OpenDHT και να το ρυθμίζουν ως ένα κόμβο εκκίνησης στο Jami, βοηθώντας παράλληλα στη βελτίωση της σταθερότητας, της ανθεκτικότητας και της ανθεκτικότητας για κάθε χρήστη του δημόσιου δικτύου OpenDHT.
Ένα αυτόνομο κόμβο μπορεί να εκτελεσθεί χρησιμοποιώντας την υπηρεσία [dhtnode utility]https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) που περιλαμβάνεται με το OpenDHT.
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.
Σημείωση
To add a community-run DHT node to the default bootstrap server list, please email contact@jami.net.
Το blockchain JamiNS
Το blockchain JamiNS είναι πειραματικό και η αρχιτεκτονική του αναμένεται να εξελιχθεί.
Οι πελάτες Jami δεν εκτελούν τους ίδιους τους κόμβους blockchain αλλά επικοινωνούν με έναν διακομιστή JamiNS χρησιμοποιώντας HTTP για την εγγραφή ονόματος και την αναζήτηση, με REST API.
The name server is set at the account level. This enables the Jami client to connect simultaneously to multiple user directories.
Συνεισφορά στο blockchain JamiNS
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.
Δουλεύοντας ένα κόμβο Jami
Prerequisites
Ενώδευόμαστε στο Δίκτυο Τζάμι
Η διαδικασία σύνδεσης στο δίκτυο Jami είναι παρόμοια με τη διαδικασία σύνδεσης σε ένα κανονικό δίκτυο ethereum με τη διαφορά ότι το αρχείο γενέσεως χρησιμοποιείται για την αρχική χρήση του καταλόγου δεδομένων.
Κατεβάστε το αρχείο Jami genesis από το repo του Jami github
Δημιουργήστε έναν κατάλογο στον υπολογιστή σας που θα χρησιμοποιήσετε για να αποθηκεύσετε τα δεδομένα της Τζάμι blockchain
Example for GNU/Linux (/home/username/jamichain)
Example for macOS (/Users/username/jamichain)
Παραδείγμα για Windows (C:\Users\username\jamichain)
Χρησιμοποιήστε geth για να αρχιεριοποιήσετε το κατάλογο που δημιουργήσατε στο (2) εκτελώντας
./geth --datadir /home/username/jamichain init genes is.json
Τώρα μπορείτε να ξεκινήσετε το geth με τις επιλογές της γραμμής εντολής που χρειάζεστε και να καθορίσετε έναν από τους κόμβους εκκίνησης του Jami ως εξής:
geth --datadir=/home/username/jamichain --syncmode=full --networkid 1551 --bootnodes "enode://11ba6d3bfdc29a8afb24dcfcf9a08c8008005ead62756eadb363523c2ca8b819efbb264053db3d73949f1375bb3f03090f44cacfb88bade38bb6fc2cb3d890a5@173.231.120.228:30301" console
Αυτό θα ξεκινήσει ένα δαίμονο Geth με μια προσαρτημένη κονσόλα που τώρα συγχρονίζεται με το δίκτυο του Jami.