Đường mạng phân phối Jami

Kết nối

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

  • Không có điểm thất bại.

  • Khả năng chống lại kiểm duyệt hơn,

  • Không phụ thuộc vào bất cứ điều gì khác ngoài người sử dụng nó,

  • Sự tin tưởng giữa các nút không cần thiết.

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,

  • Sử dụng các giao thức tiêu chuẩn cho việc đấm lỗ NAT.

Jami được xây dựng trên hai mạng lưới phân tán riêng biệt:

  • mạng kademlia OpenDHT để cung cấp thiết lập kết nối phân tán và phân phối thông điệp,

  • Các nhà quản lý của JamiNS để cung cấp đăng ký tên phân tán.

Mạng lưới OpenDHT

Xem thêm

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.

Một mạng OpenDHT có thể được kết nối bằng cách biết về bất kỳ nút nào đã kết nối với mạng.

Các khách hàng Jami sử dụng một ổ ghi nhớ nút liên tục để kết nối lại với mạng sau phiên đầu tiên. Một nút "bootstrap" có thể cấu hình, được biết đến và ổn định được sử dụng cho kết nối đầu tiên hoặc nếu các nút được ghi nhớ không trả lời.

Các khách hàng Jami hiện đang sử dụng bootstrap.jami.net:4222 như là nút bootstrap mặc định (có thể cấu hình) và ID mạng 0 (đường mặc định, mạng OpenDHT công cộng).

Tham gia vào mạng lưới OpenDHT

Mỗi tài khoản Jami chạy một nút OpenDHT, đóng góp cho mạng và cho phép Jami mở rộng quy mô.

Người dùng Jami có thể có sự độc lập hoàn toàn bằng cách chạy nút OpenDHT ổn định của riêng họ và cấu hình nó như một nút khởi động trong Jami, đồng thời giúp cải thiện sự ổn định, độ bền và khả năng phục hồi cho mỗi người dùng của mạng OpenDHT công cộng.

Một nút độc lập có thể được chạy bằng cách sử dụng [dhtnode tiện ích]https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) bao gồm với OpenDHT. dhtnode không tồn tại bất kỳ dữ liệu nào và có giới hạn lưu trữ trong bộ nhớ mặc định là 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.

Ghi chú

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

Các JamiNS blockchain

Các JamiNS blockchain là thử nghiệm và kiến trúc của nó được dự kiến sẽ phát triển.

Các khách hàng Jami không tự chạy các nút blockchain mà thay vào đó giao tiếp với một máy chủ JamiNS sử dụng HTTP để đăng ký tên và truy vấn, với một API REST.

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

Tham gia vào 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.

Tiến hành một nút Jami

Prerequisites

  1. Geth 1.8.23+ (download from here)

  2. Jami genesis file (download from here)

Tham gia mạng lưới Jami

Quá trình gia nhập mạng Jami tương tự như quá trình gia nhập mạng ethereum thông thường với sự khác biệt là tệp tạo được sử dụng để khởi tạo thư mục dữ liệu.

  1. Tải file Jami genesis từ repo Github Jami

  2. Tạo một thư mục trên máy tính của bạn mà bạn sẽ sử dụng để lưu trữ dữ liệu của Jami blockchain

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

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

    • Ví dụ cho Windows (C:\Users\username\jamichain)

  3. Sử dụng geth để khởi tạo thư mục bạn đã tạo trong (2) bằng cách chạy ./geth --datadir /home/username/jamichain init genes is.json

  4. Bây giờ bạn có thể bắt đầu geth với các tùy chọn dòng lệnh bạn cần và chỉ định một trong các nút khởi động của Jami như sau:

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

Điều này sẽ bắt đầu một con quỷ geth với một máy điều khiển được gắn liền mà bây giờ đang đồng bộ với mạng của Jami.