자미 유통 네트워크

연결성

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

  • 실패는 전혀 없죠

  • 검열에 더 잘 대처할 수 있는

  • 이용자 이외의 어떤 것에 의존하지 않습니다.

  • 노드들 간의 신뢰는 필요하지 않습니다.

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,

  • NAT 구멍을 뚫는 표준 프로토콜을 사용한다.

자미는 두 개의 서로 다른 분산 네트워크에 기반을 두고 있습니다.

  • 분산 연결 시설 및 메시지 배포를 제공하는 OpenDHT 카데밀리아 네트워크

  • JamiNS 블록체인이 분산된 이름 등록을 제공하도록

오픈DHT 네트워크

더 보기

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.

오픈DHT 네트워크는 네트워크에 이미 연결된 모든 노드를 알고 연결될 수 있습니다. 이 노드는 그 다음 네트워크의 다른 노드에 대한 지식을 공유합니다.

자미 클라이언트는 첫 번째 세션 후 네트워크에 다시 연결하기 위해 지속적인 노드 캐시를 사용합니다. 첫 번째 연결을 위해 구성 가능한, 알려진, 안정적인 “부트스트랩” 노드를 사용하거나 캐시된 노드가 응답하지 않으면 사용됩니다.

자미 클라이언트는 현재 기본 (구성 가능한) 부트스트랩 노드와 네트워크 ID 0 ( 기본, 공개 OpenDHT 네트워크) 로 bootstrap.jami.net:4222를 사용합니다.

OpenDHT 네트워크에 기여

모든 Jami 계정은 OpenDHT 노드를 운영하고, 네트워크에 기여하고 Jami의 확장을 가능하게 합니다.

자미 사용자는 자미의 안정적인 OpenDHT 노드를 실행하고, 자미에서 부트스트랩 노드로 구성함으로써 완전한 독립성을 가질 수 있으며, 동시에 공공 OpenDHT 네트워크의 모든 사용자들의 안정성, 탄력성 및 탄력성을 향상시키는 데 도움이 될 수 있습니다.

독립 노드는 OpenDHT와 함께 포함된 [dhtnode 유틸리티] (https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) 를 사용하여 실행될 수 있습니다. dhtnode는 데이터를 유지하지 않으며 기본 메모리 저장 제한이 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.

참고

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

JamiNS 블록체인

JamiNS 블록체인은 실험적이고, 그 구조는 진화할 것으로 예상된다.

자미 클라이언트는 블록체인 노드를 직접 실행하지 않고, REST API를 사용하여 이름 등록 및 쿼리를 위해 HTTP를 사용하여 자미NS 서버와 통신합니다. 이는 블록체인 노드를 실행하는 데 필요한 자원이 대부분의 최종 사용자에게 너무 높기 때문입니다.

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

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.

자미 노드를 실행

Prerequisites

  1. Geth 1.8.23+ (download from here)

  2. Jami genesis file (download from here)

자미 네트워크 에 가입

자미 네트워크에 가입하는 과정은 일반 이더리움 네트워크에 가입하는 과정과 비슷하지만, 데이터 디렉토리를 초기화하기 위해 제네시스 파일이 사용된다는 차이점이 있습니다.

  1. Jami github repo에서 Jami genesis 파일을 다운로드

  2. 컴퓨터에 디렉토리를 만들면 Jami 블록체인 데이터를 저장할 수 있습니다.

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

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

    • 윈도우의 예제 (C:\ 사용자\ 사용자 이름\ 자미창)

  3. geth를 사용하여 (2) 에서 생성한 디렉토리를 ./geth --datadir /home/username/jamichain init genes is.json

  4. 이제 필요한 명령 줄 옵션을 사용하여 Jami의 부팅 노드 중 하나를 지정하여 geth을 시작할 수 있습니다.

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

이것은 자미의 네트워크와 동기화되는 연결 콘솔을 가진 게이트 데이몬을 시작하게 될 것입니다.