«Тэлеграф» - электронная пошта без інтэрнэту

Добры дзень!

Мне б хацелася падзяліцца з супольнасцю цікавымі думкамі аб стварэнні аўтаномнай дэцэнтралізаванай электроннай пошты і прадэманстраваць на практыцы працу адной ужо наяўнай рэалізацыі.

Першапачаткова «Тэлеграф» распрацоўваўся як аматарскі сродак сувязі паміж чальцамі нашай невялікай студэнцкай супольнасці, так ці інакш сваю дзейнасць які прысвяціў вылічальнай тэхніцы і камунікацыям.

Нотабене: «Тэлеграф» - аматарскі сродак камунікацыі; практычную выгаду атрымаць у прамысловых маштабах уяўляецца даволі праблематычным, аднак праблему гэтую наўрад ці хоць у якой-небудзь ступені можна назваць істотнай - пераважна галоўнай нашай мэтай мы лічым непасрэдна прыцягненне ўвагі да распрацоўкі падобнага роду камунікацыйных сістэм.

Мы схільныя лічыць, што павышэнне агульнай зацікаўленасці ў сферы распрацоўкі розных сістэм камунікацый — справа патрэбная і дастаткова важная, таму што разуменне асноўных прынцыпаў таго, як працуюць і на чым трымаюцца гэтыя сістэмы — асноўны ключ да павышэння дасведчанасці грамадзян у пытаннях інфармацыйнай бяспекі.

«Тэлеграф» - электронная пошта без інтэрнэту

Ахтунг!Каб пазбегнуць магчымых непаразуменняў - у некаторых выпадках выявы можна гартаць:
«Тэлеграф» - электронная пошта без інтэрнэту

Сістэма трымаецца на добраахвотных пачатках і чыстым энтузіязме - нам проста падабаецца тое, чым мы займаемся. Можаце палічыць гэта за хобі і не апынецеся няправымі - бо да гэтага часу існуюць аматары зносін з дапамогай выкарыстання папяровай карэспандэнцыі; "Тэлеграф" жа ў большасці выпадкаў можна прадставіць як лічбавую рэалізацыю прынцыпаў працы звычайнай пошты.

"Тэлеграф" уяўляе сабой аўтаномны аналаг электроннай пошты, які дазваляе перадаваць простыя тэкставыя паведамленні без выкарыстання інтэрнэту. "Тэлеграф" у той ці іншай ступені можна аднесці да Снікернет - спосаб абмену інфармацыяй без выкарыстання сеткі.

У якасці паштовых скрынь выкарыстоўваюцца флэш-назапашвальнікі, а ў ролі паштовых аддзяленняў выступаюць тэрміналы - кампутары, якія ўяўляюць сабой своеасаблівыя пункты доступу да атрымання і перадачы электроннай карэспандэнцыі.

Разгледзім найпросты прыклад узаемадзеяння з сістэмай. У нас у наяўнасці ёсць дзве флэшкі і адзін тэрмінал. У самым скрыпце прапісаны неабходныя глабальныя зменныя для наступнага ўзаемадзеяння з сістэмай - нумар тэрмінала, шлях да кораня і інш.

Калі мы падключым здымны назапашвальнік да тэрмінала і запусцім скрыпт, то ён паспрабуе атрымаць выходныя паведамленні з дырэкторыі. /mnt/Telegraph/Outbox і перанесці іх у сваю памяць, пасля - праверыць наяўнасць у сваёй памяці новых паведамленняў для бягучага карыстальніка. Калі такія маюцца - запісаць іх у /mnt/Telegraph/Inbox.

Рэгістрацыя новых прылад

Адбываецца дастаткова самавіта. Скрыпт знаходзіць новыя флэш-назапашвальнікі, падлучаныя да сістэмы, і спрабуе супаставіць іх унікальныя ідэнтыфікары з тымі, якія прадстаўлены ў корані. Калі прылады раней не падвяргаліся рэгістрацыі, яны будуць адфарматаваны ў адпаведнасці з заяўленымі "Тэлеграфам" правіламі.

Пасля рэгістрацыі новай прылады структура кораня прымае наступны выгляд:

Паглядзець паведамленні imgur.com

У канфігурацыйным файле config.ini, размешчаным у корані флэш-назапашвальніка, знаходзіцца сістэмная інфармацыя - унікальны ідэнтыфікатар і сакрэтны ключ.

Паглядзець паведамленні imgur.com

Дайце людзям рому!

Не, ну, сапраўды, сур'ёзна! Зыходнікі здабыць можна тут, А нам ужо паволі час перабірацца ад тэорыі да практыкі.

Але я павінен сказаць яшчэ некалькі слоў аб тым, як на практыцы ўладкована сістэма абмену паведамленнямі.

Для пачатку давайце разбярэмся, з чаго складаецца адзінаццацізначны ўнікальны ідэнтыфікатар. Напрыклад, 10455000001.

Першая лічба, 1, адказвае за нумар краіны. Міжнародны код - 0, Расія ж у дадзеным выпадку - 1.

Далей ідуць чатыры лічбы, якія адказваюць за нумар рэгіёна, у якім размешчаны тэрмінал. 0455 — гэта Каломенская гарадская акруга.

За імі ідуць дзве лічбы, - 00, - Якія адказваюць непасрэдна за нумар тэрмінала.

І толькі потым - чатыры лічбы, якія з'яўляюцца парадкавым нумарам карыстальніка, што замацаваны за дадзеным тэрміналам. У нас гэта - 0001. Таксама існуе і 0000 - Гэты нумар належыць непасрэдна самому тэрміналу. На яго нельга адправіць пісьмовую карэспандэнцыю, але затое сам тэрмінал выкарыстоўвае гэты нумар для адпраўкі службовых паведамленняў карыстальнікам. Напрыклад, калі паведамленне не ўдалося даставіць па якіх-небудзь прычынах.

Паглядзець паведамленні imgur.com

У корані нашай «паштовай скрыні» знаходзіцца дзве дырэкторыі, неабходныя для таго, каб атрымліваць і адпраўляць тэкставыя паведамленні. Пры падлучэнні прылады да тэрмінала з дырэкторыі "Outbox" на сервер адгружаюцца выходныя паведамленні, а ў дырэкторыю "Inbox", што лагічна, загружаюцца ўваходныя.

Кожны файл у залежнасці ад дырэкторыі пайменаваны нумарам атрымальніка ці адпраўніка.

Калі мы паспрабуем адправіць паведамленне неіснуючаму адрасату, то тэрмінал нам дашле паведамленне пра памылку.

Паглядзець паведамленні imgur.com

Аднак, калі ж мы вырашым адправіць ліст адрасату, які знаходзіцца на іншым тэрмінале (незалежна ад таго, існуе той ці не), ён будзе запісаны ў памяць тэрмінала да таго, як агент не перанясе пісьмовую карэспандэнцыю з нашага тэрмінала на свой.

Паглядзець паведамленні imgur.com

Калі агент аддзялення 10500000000 (іншымі словамі - паштальён) падключыць сваю прыладу да нашага тэрмінала, выходныя лісты будуць перададзены на яго назапашвальнік. Пасля, калі ён падлучыць свая прылада да свайго тэрмінала, гэтыя лісты апынуцца скінутымі ў памяць тэрмінала і будуць чакаць, калі адрасат адгрузіць іх на свой флэш-назапашвальнік.

Сеанс сувязі

Давайце паспрабуем перадаць паведамленне з тэкстам "Прывітанне!" ад 10455000001 к 10455000002.

Паглядзець паведамленні imgur.com

На гэтым усё!

Буду рады любой крытыцы ў адрас зыходнага кода праекта і непасрэдна самога артыкула.

Дзякуй за ўвагу.

Крыніца: habr.com

Дадаць каментар