美好的一天!
我想与社区分享一些关于创建独立的去中心化电子邮件的有趣想法,并演示现有的实现在实践中如何工作。
最初,“电报”是作为我们小型学生社区成员之间的一种业余通讯方式而开发的,该社区以某种方式致力于计算机技术和通信。
注意BENE:“电报”是一种业余通讯方式; 在工业规模上获得实际效益似乎是相当有问题的,但这个问题在任何程度上都很难被称为重大——我们认为我们的主要目标是直接吸引人们对这种通信系统的开发的关注。
我们倾向于认为,提高人们对各种通信系统开发的普遍兴趣是必要且相当重要的,因为了解这些系统如何工作的基本原理以及它们的基础是什么,是提高公民信息安全意识的关键问题。
ACHTUNG!为了避免可能的误解,在某些情况下您可以滚动浏览图像:
该系统基于志愿者和纯粹的热情 - 我们只是喜欢我们所做的事情。 你可以认为这是一种爱好,你不会错的——毕竟,仍然有人喜欢通过纸质信件进行交流; 在大多数情况下,“电报”可以表示为普通邮件原理的数字实现。
Telegraph 是一种独立的电子邮件类似物,允许您在不使用互联网的情况下发送简单的文本消息。 “电报”在某种程度上可以归因于
闪存驱动器用作邮箱,而终端(计算机,是接收和发送电子信件的唯一接入点)用作邮局。
让我们考虑与系统交互的最简单的示例。 我们有两个闪存驱动器和一个终端库存。 脚本本身包含后续与系统交互所需的全局变量 - 终端号、根路径等。
如果我们将可移动驱动器连接到终端并运行脚本,它将尝试从目录接收传出消息 /mnt/电报/发件箱 并将它们传输到您的内存中,然后检查内存中当前用户的新消息。 如果有的话,把它们写下来 /mnt/电报/收件箱.
注册新设备
它发生得很随机。 该脚本会查找连接到系统的新闪存驱动器,并尝试将其唯一 ID 与根目录中显示的 ID 进行匹配。 如果设备之前尚未注册,它们将根据 Telegraph 规定的规则进行格式化。
注册新设备后,根结构采用以下形式:
在配置文件中 配置文件,位于闪存驱动器的根目录中,有系统信息——唯一标识符和密钥。
给人们一些朗姆酒!
不,真的,认真的! 你可以得到来源
但我应该多说几句消息系统在实践中是如何工作的。
首先,让我们弄清楚十一位唯一标识符由什么组成。 例如, 10455000001.
第一个数字 1,负责国家号码。 国际代码 - 0,在这种情况下是俄罗斯 - 1.
接下来是四位数字,负责终端所在区域的号码。 0455 是科洛姆纳市区。
他们后面跟着两个数字 - 00,——直接负责的终端号。
然后才是 - 四位数字,这是分配给该终端的用户的序列号。 我们有这个—— 0001。 还有 0000 — 该号码直接属于终端本身。 您无法向其发送书面信件,但终端本身使用该号码向用户发送服务消息。 例如,如果由于某种原因无法传递消息。
在我们的“邮箱”的根目录下,有两个用于接收和发送短信所必需的目录。 当设备连接到终端时,传出消息会从“发件箱”目录发送到服务器,传入消息会加载到“收件箱”目录中,这是逻辑上的。
每个文件根据目录由收件人或发件人号码命名。
如果我们尝试向不存在的收件人发送消息,终端将向我们发送一条错误消息。
但是,如果我们决定向位于另一个终端上的收件人(无论是否存在)发送一封信件,则在代理将书面信件从我们的终端传输到他的终端之前,该信件将被记录在终端的内存中。
当分公司代理时 10500000000 (换句话说,邮递员)将他的设备连接到我们的终端,发出的信件将被传输到他的驱动器。 随后,当他将设备连接到终端时,这些信件将被转储到终端的内存中,并等待收件人将它们下载到他的闪存驱动器中。
交流会
让我们尝试发送一条包含文本“Hello!”的消息。 从 10455000001 к 10455000002.
就这样!
我很高兴收到对项目源代码和文章本身的任何批评。
感谢您的关注。
来源: habr.com