Добры дзень!
Мне б хацелася падзяліцца з супольнасцю цікавымі думкамі аб стварэнні аўтаномнай дэцэнтралізаванай электроннай пошты і прадэманстраваць на практыцы працу адной ужо наяўнай рэалізацыі.
Першапачаткова «Тэлеграф» распрацоўваўся як аматарскі сродак сувязі паміж чальцамі нашай невялікай студэнцкай супольнасці, так ці інакш сваю дзейнасць які прысвяціў вылічальнай тэхніцы і камунікацыям.
Нотабене: «Тэлеграф» - аматарскі сродак камунікацыі; практычную выгаду атрымаць у прамысловых маштабах уяўляецца даволі праблематычным, аднак праблему гэтую наўрад ці хоць у якой-небудзь ступені можна назваць істотнай - пераважна галоўнай нашай мэтай мы лічым непасрэдна прыцягненне ўвагі да распрацоўкі падобнага роду камунікацыйных сістэм.
Мы схільныя лічыць, што павышэнне агульнай зацікаўленасці ў сферы распрацоўкі розных сістэм камунікацый — справа патрэбная і дастаткова важная, таму што разуменне асноўных прынцыпаў таго, як працуюць і на чым трымаюцца гэтыя сістэмы — асноўны ключ да павышэння дасведчанасці грамадзян у пытаннях інфармацыйнай бяспекі.
Ахтунг!Каб пазбегнуць магчымых непаразуменняў - у некаторых выпадках выявы можна гартаць:
Сістэма трымаецца на добраахвотных пачатках і чыстым энтузіязме - нам проста падабаецца тое, чым мы займаемся. Можаце палічыць гэта за хобі і не апынецеся няправымі - бо да гэтага часу існуюць аматары зносін з дапамогай выкарыстання папяровай карэспандэнцыі; "Тэлеграф" жа ў большасці выпадкаў можна прадставіць як лічбавую рэалізацыю прынцыпаў працы звычайнай пошты.
"Тэлеграф" уяўляе сабой аўтаномны аналаг электроннай пошты, які дазваляе перадаваць простыя тэкставыя паведамленні без выкарыстання інтэрнэту. "Тэлеграф" у той ці іншай ступені можна аднесці да
У якасці паштовых скрынь выкарыстоўваюцца флэш-назапашвальнікі, а ў ролі паштовых аддзяленняў выступаюць тэрміналы - кампутары, якія ўяўляюць сабой своеасаблівыя пункты доступу да атрымання і перадачы электроннай карэспандэнцыі.
Разгледзім найпросты прыклад узаемадзеяння з сістэмай. У нас у наяўнасці ёсць дзве флэшкі і адзін тэрмінал. У самым скрыпце прапісаны неабходныя глабальныя зменныя для наступнага ўзаемадзеяння з сістэмай - нумар тэрмінала, шлях да кораня і інш.
Калі мы падключым здымны назапашвальнік да тэрмінала і запусцім скрыпт, то ён паспрабуе атрымаць выходныя паведамленні з дырэкторыі. /mnt/Telegraph/Outbox і перанесці іх у сваю памяць, пасля - праверыць наяўнасць у сваёй памяці новых паведамленняў для бягучага карыстальніка. Калі такія маюцца - запісаць іх у /mnt/Telegraph/Inbox.
Рэгістрацыя новых прылад
Адбываецца дастаткова самавіта. Скрыпт знаходзіць новыя флэш-назапашвальнікі, падлучаныя да сістэмы, і спрабуе супаставіць іх унікальныя ідэнтыфікары з тымі, якія прадстаўлены ў корані. Калі прылады раней не падвяргаліся рэгістрацыі, яны будуць адфарматаваны ў адпаведнасці з заяўленымі "Тэлеграфам" правіламі.
Пасля рэгістрацыі новай прылады структура кораня прымае наступны выгляд:
У канфігурацыйным файле config.ini, размешчаным у корані флэш-назапашвальніка, знаходзіцца сістэмная інфармацыя - унікальны ідэнтыфікатар і сакрэтны ключ.
Дайце людзям рому!
Не, ну, сапраўды, сур'ёзна! Зыходнікі здабыць можна
Але я павінен сказаць яшчэ некалькі слоў аб тым, як на практыцы ўладкована сістэма абмену паведамленнямі.
Для пачатку давайце разбярэмся, з чаго складаецца адзінаццацізначны ўнікальны ідэнтыфікатар. Напрыклад, 10455000001.
Першая лічба, 1, адказвае за нумар краіны. Міжнародны код - 0, Расія ж у дадзеным выпадку - 1.
Далей ідуць чатыры лічбы, якія адказваюць за нумар рэгіёна, у якім размешчаны тэрмінал. 0455 — гэта Каломенская гарадская акруга.
За імі ідуць дзве лічбы, - 00, - Якія адказваюць непасрэдна за нумар тэрмінала.
І толькі потым - чатыры лічбы, якія з'яўляюцца парадкавым нумарам карыстальніка, што замацаваны за дадзеным тэрміналам. У нас гэта - 0001. Таксама існуе і 0000 - Гэты нумар належыць непасрэдна самому тэрміналу. На яго нельга адправіць пісьмовую карэспандэнцыю, але затое сам тэрмінал выкарыстоўвае гэты нумар для адпраўкі службовых паведамленняў карыстальнікам. Напрыклад, калі паведамленне не ўдалося даставіць па якіх-небудзь прычынах.
У корані нашай «паштовай скрыні» знаходзіцца дзве дырэкторыі, неабходныя для таго, каб атрымліваць і адпраўляць тэкставыя паведамленні. Пры падлучэнні прылады да тэрмінала з дырэкторыі "Outbox" на сервер адгружаюцца выходныя паведамленні, а ў дырэкторыю "Inbox", што лагічна, загружаюцца ўваходныя.
Кожны файл у залежнасці ад дырэкторыі пайменаваны нумарам атрымальніка ці адпраўніка.
Калі мы паспрабуем адправіць паведамленне неіснуючаму адрасату, то тэрмінал нам дашле паведамленне пра памылку.
Аднак, калі ж мы вырашым адправіць ліст адрасату, які знаходзіцца на іншым тэрмінале (незалежна ад таго, існуе той ці не), ён будзе запісаны ў памяць тэрмінала да таго, як агент не перанясе пісьмовую карэспандэнцыю з нашага тэрмінала на свой.
Калі агент аддзялення 10500000000 (іншымі словамі - паштальён) падключыць сваю прыладу да нашага тэрмінала, выходныя лісты будуць перададзены на яго назапашвальнік. Пасля, калі ён падлучыць свая прылада да свайго тэрмінала, гэтыя лісты апынуцца скінутымі ў памяць тэрмінала і будуць чакаць, калі адрасат адгрузіць іх на свой флэш-назапашвальнік.
Сеанс сувязі
Давайце паспрабуем перадаць паведамленне з тэкстам "Прывітанне!" ад 10455000001 к 10455000002.
На гэтым усё!
Буду рады любой крытыцы ў адрас зыходнага кода праекта і непасрэдна самога артыкула.
Дзякуй за ўвагу.
Крыніца: habr.com