贾米分布式网络

连接性

贾米依赖于[分布式网络] (教程/贾米分布式网络),

  • 没有什么失败的点,

  • 更多的抗拒审查,

  • 没有依赖其它任何东西,

  • 结点之间的信任是不必要的.

网络拓扑

此网络构成了分布式哈希表 (DHT)

分布式通信系统的核心问题是同行连接,

  • 关于DHT的加密消息,

  • 采用NAT孔孔孔的标准协议.

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

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

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

OpenDHT网络

查看[https://github.com/savoirfairelinux/opendht>]https://github.com/savoirfairelinux/opendht) 更多关于OpenDHT的信息,该系统为Jami的连接设备 (ICE) 和消息分发提供分布式关键值数据库.

通过了解已经连接到网络的任何节点,可以加入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.

根据其所有者的要求,将稳定社区运营的DHT节点添加到默认启动列表中,因为更多的启动节点意味着更具弹性,更独立的网络.

贾米纳斯区块链

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

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

名称服务器可以在 Jami 中配置副帐户,允许连接 Jami 客户端到各种多或少的集中用户目录.

贡献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

运行 Jami 节点

前提:

  1. Geth 1.8.23+ (此处下载)

  2. Jami genesis file (download from HERE)

加入 Jami 网络

加入 Jami 网络的过程与连接普通的以太坊网络的过程相似,区别在于使用 genesis 文件用于初始化数据目录。

  1. 通过 Jami github 源下载 Jami 的创始文件(genesis 文件)

  2. 在您的电脑上创建一个目录用于存储 Jami 区块链数据

  • MacOS 下的示例(/Users/用户名/jamichain)

  • Linux 的示例(/home/用户名/jamichain)

  • Windows 的示例(C:\用户\用户名\jamichain)

  1. 运行 ./geth --datadir /home/username/jamichain init genes is.json ,以通过 geth 初始化您在 (2) 中创建的目录。

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

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

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