贾米分布式网络

連線

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孔孔孔的标准协议.

贾米是建立在两个不同的分布式网络上:

  • 开放DHT卡德姆利亚网络提供分布式连接设备和信息分发,

  • 为了提供分布式名称登记.

开放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.

通过了解已经连接到网络的任何节点,可以加入OpenDHT网络.

贾米客户端使用一个持久的节点缓存器,在第一次会议后重新连接到网络.一个可配置,已知,稳定的」启动链」节点用于第一次连接,或者如果缓存节点不响应.

贾米客户端目前使用bootstrap.jami.net:4222作为默认 (可配置) 启动节点和网络ID 0 (默认,公共OpenDHT网络).

贡献OpenDHT网络

每个Jami帐户都运行一个OpenDHT节点,为网络做出贡献,

贾米用户可以通过运行自己的稳定OpenDHT节点并配置它为Jami中的启动节点,同时帮助提高公共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.

贾米纳斯区块链

贾米纳斯区块链是实验性的,

贾米客户端不会自己运行区块链节点,而是通过HTTP来与一个JAMINS服务器进行通信,用于名称注册和查询,使用REST API.这是因为运行区块链节点所需的资源对大多数最终用户来说太高.

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.

运行一个Jami节点

Prerequisites

  1. Geth 1.8.23+ (download from here)

  2. Jami genesis file (download from here)

加入贾米网络

加入Jami网络的过程与连接普通的以太坊网络的过程相似,但基因文件被用来初始化数据目录.

  1. 通过Jami github备份下载Jami的创始文件

  2. 在你的电脑上创建一个目录,

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

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

    • 对于Windows的例子 (C:\用户\用户名\jamichain)

  3. 使用geth来初始化您在 (2) 中创建的目录,运行 ./geth --datadir /home/username/jamichain init genes is.json

  4. 现在你可以用你需要的命令行选项开始,

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

这将启动一个与Jami的网络同步的连接控制台的Geth daemon.