Đường mạng phân phối Jami
Kết nối
Jami dựa vào một mạng lưới phân phối (tutorial/Jami-distributed-network), mang lại nhiều lợi thế so với các mạng liên bang:
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.
[Tài liệu mạng]https://git.jami.net/savoirfairelinux/jami-project/uploads/9b725e440c2705a2a3c4d0a3df092066/Tài liệu mạng.png)
Mạng này tạo thành một bảng Hash phân phối (DHT)
Vấn đề cốt lõi của các hệ thống truyền thông phân tán là kết nối ngang hàng, Jami đạt được nó thông qua hai yếu tố:
Thông báo mã hóa trên DHT,
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 https://github.com/savoirfairelinux/opendht> để biết thêm thông tin về OpenDHT, cung cấp một kho dữ liệu chia sẻ giá trị chia sẻ cho thiết lập kết nối (với ICE) và phân phối tin nhắn ở 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.
Các nút DHT được run bởi cộng đồng ổn định sẽ được thêm vào danh sách khởi động mặc định theo yêu cầu của chủ sở hữu của họ, vì nhiều nút khởi động hơn có nghĩa là một mạng lưới độc lập bền vững hơn.
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.
Nameserver có thể được cấu hình theo tài khoản ở Jami, cho phép kết nối các khách hàng Jami với các thư mục người dùng trung tâm khác nhau.
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 : 1
Tiến hành một nút Jami
Các yêu cầu trước:
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.
Tải file Jami genesis từ repo Github Jami
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
Ví dụ cho MacOS (/Users/username/jamichain)
Ví dụ cho Linux (/home/username/jamichain)
Ví dụ cho Windows (C:\Users\username\jamichain)
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
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.