
Reticulum-это сетевой стек, основанный на криптографии, для создания локальных и широких сетей с легко доступным оборудованием. Он может работать даже с очень высокой задержкой и чрезвычайно низкой пропускной способностью. Reticulum позволяет вам создавать широкоамериканские сети с готовыми инструментами и предлагает сквозное шифрование и подключение, анонимность инициатора, автоконфигурирование криптографически поддержку много-хоп транспорт, эффективная адресация, неразрушенные благодарности о доставке и многое другое.
Видение ретикулума состоит в том, чтобы позволить кому-либо быть своим собственным сетевым оператором, и сделать его дешевым и легко охватывать обширные области с множеством независимых, взаимосвязанных и автономных сетей. Ретикулум - это не одна сеть. Это инструмент для строительства тысяч сетей . Сети без переключений убийств, наблюдения, цензуры и контроля. Сети, которые могут свободно взаимодействовать, ассоциироваться и разобщаться друг с другом и не требуют центрального надзора. Сети для людей. Сети для людей .
Reticulum - это полный сетевой стек и не полагается на IP или более высокий уровень, но можно использовать IP в качестве основного носителя для ретикулума. Поэтому это тривиально для туннельного ретикулума через Интернет или частные IP -сети.
Не имея зависимости от традиционных сетевых стеков, освобождая накладные расходы, которые использовались для реализации сетевого стека, созданного непосредственно на криптографических принципах, что позволяет устойчиво и стабильному функциональности, даже в открытых и допустимых сетях.
Никаких модулей ядра или драйверов не требуется. Reticulum работает полностью в пользовательке и может работать практически в любой системе, которая работает Python 3.
Полная документация для ретикулума доступна по адресу markqvist.github.io/reticulum/manual/.
Вы также можете загрузить Руководство по ретикулуме как PDF или как электронная книга в формате EPUB.
Для получения дополнительной информации см. Reticulum.network и раздел FAQ вики.
В то время как ретикулум уже является полностью изготовленным и функциональным сетевым стеком, многие улучшения и дополнения активно работают и планируются на будущее.
Чтобы узнать больше о направлении и будущем ретикулума, пожалуйста, посмотрите дорожную карту разработки.
Если вы хотите быстро получить представление о том, что может сделать ретикулум, посмотрите на следующие ресурсы.
Практически любая среда, которая может поддерживать как минимум полудуплексный канал с большей пропускной способностью, чем 5 бит в секунду, и MTU 500 байтов. Радио данных, модемы, радиостанции Lora, последовательные линии, AX.25 TNCS, любительские радио цифровые режимы, устройства Wi-Fi и Ethernet, оптические звенья свободного пространства и аналогичные системы являются примерами типов физических устройств, которые можно использовать.
Интерфейс на основе LORA с открытым исходным кодом, называемый RNODE, был разработан специально для использования с ретикулумом. Можно построить себя, или его можно приобрести как полный приемопередатчик, который просто нуждается в USB -соединении с хостом.
Ретикулум также может быть инкапсулирован по существующим IP -сети, поэтому ничто не мешает вам использовать его через проводной Ethernet, вашей локальной сети Wi -Fi или Интернета, где он будет работать так же хорошо. На самом деле, одна из сильных сторон ретикулума заключается в том, насколько легко он позволяет вам подключать различные среды в самоконфигурирующую, устойчивую и зашифрованную сетку, используя любую доступную смесь доступной инфраструктуры.
Например, можно настроить Raspberry Pi, подключенный как к радио, пакетному радио TNC и сети Wi -Fi. Как только интерфейсы будут настроены, ретикулум позаботится об остальном, а любое устройство в сети Wi -Fi может общаться с узлами на боковых сторонах сети Лора и пакетов и наоборот.
Лучший способ начать работу с сетевым стеком Reticulum зависит от того, что вы хотите сделать. Для получения полной информации и примеров взгляните на начало быстрого раздела Руководства по ретикулуме.
Чтобы просто установить ретикулум и связанные с ними утилиты в вашей системе, самый простой способ - через pip . Затем вы можете запустить любую программу, которая использует ретикулум, или запустить ретикулум в качестве системной службы с утилитой RNSD.
pip install rns Если вы используете операционную систему, которая блокирует обычную установку пользовательского пакета через pip , вы можете вернуть pip к нормальному поведению, редактируя файл ~/.config/pip/pip.conf и добавив следующую директиву в разделе [global] :
[global]
break-system-packages = true
В качестве альтернативы, вы можете использовать инструмент pipx для установки ретикулума в изолированной среде:
pipx install rnsПри первом запуске Reticulum создаст файл конфигурации по умолчанию, обеспечивая базовое подключение к другим узлам ретикулума, которые могут быть локально достижимыми. Файл конфигурации по умолчанию содержит несколько примеров и ссылки на создание более сложной конфигурации.
Если у вас есть старая версия pip в вашей системе, вам может потребоваться обновить ее сначала с помощью pip install pip --upgrade . Если у вас еще нет установки pip , вы можете установить его, используя диспетчер пакетов вашей системы с sudo apt install python3-pip или аналогичным.
Для получения более подробных примеров о том, как расширить общение на многих средах, таких как пакетное радио или LORA, последовательные порты, или по быстрым IP -ссылкам и Интернету, используя интерфейсы UDP и TCP, посмотрите на раздел поддерживаемых интерфейсов Руководства по ретикулуме.
Reticulum включает в себя ряд полезных утилит для управления вашими сетями, статуса просмотра и информации, а также других задач. Вы можете прочитать больше об этих программах в разделе «Включенные коммунальные программы» Руководства по ретикулуме.
rnsd для запуска ретикулума как всегда доступный сервисrnstatus , которая отображает информацию о интерфейсахrnpath позволяет просматривать и изменять таблицы путиrnprobe для проверки связности с назначениемrncp , позволяющая легко передавать файлы между системамиrnid позволяет вам управлять идентификаторами и зашифрованными/дешифрованными файламиrnx позволяет запустить команды и программы и получить результаты из удаленных систем Все инструменты, в том числе rnx и rncp , работают надежно и хорошо по сравнению с очень низкой пропускной способностью, таких как LORA или Packet Radio. Для полнофункциональных удаленных оболочек над ретикулумом также взгляните на программу RNSH.
Reticulum реализует ряд обобщенных типов интерфейса, которые охватывают большую часть аппаратного обеспечения связи, которое может работать ретикулум. Если ваше оборудование не поддерживается, это просто внедрить пользовательский модуль интерфейса.
Запросы на привлечение на пользовательские интерфейсы с благодарностью приняты, при условии, что они в целом полезны и хорошо проверяются в реальном использовании.
В настоящее время поддерживаются следующие встроенные интерфейсы:
Reticulum нацелена на очень широкую полезную оболочку, но приоритет функциональности и производительности на среде с низкой пропускной способностью. Цель состоит в том, чтобы обеспечить динамическую конверт производительности от 250 бит в секунду до 1 гигабита в секунду на обычном оборудовании.
В настоящее время облегчаемый конверт производительности составляет приблизительно 150 бит в секунду до 40 мегабит в секунду, причем физические среды быстрее, чем насыщенные. Производительность за пределы текущего уровня предназначена для будущих обновлений, но не очень расставляется с приоритетом на данный момент.
Ретикулум в настоящее время следует считать бета -программным обеспечением. Все элементы протокола основного протокола реализованы и функционируют, но дополнения, вероятно, будут происходить по мере использования реального мира. Будут ошибки. API и формат провода можно считать относительно стабильными в данный момент, но могут измениться, если оправдать.
Установка пакета rns по умолчанию требует зависимости, перечисленных ниже. Почти все системы и распределения имеют легко доступные пакеты для этих зависимостей, и когда пакет rns установлен с помощью pip , они также будут загружены и установлены.
В более необычных системах и в некоторых редких случаях может быть невозможно установить или даже составить один или несколько из вышеперечисленных модулей. В таких ситуациях вы можете использовать пакет rnspure , которые не требуют внешних зависимостей для установки. Обратите внимание, что содержимое пакетов rns и rnspure идентичнее . Единственное отличие состоит в том, что пакет rnspure не перечисляет никаких зависимостей, необходимых для установки.
Независимо от того, как установлен и запускается ретикулум, он будет загружать внешние зависимости, только если они необходимы и доступны . Если, например, вы хотите использовать ретикулум в системе, которая не может поддерживать Pyserial, это вполне возможно сделать, используя пакет rnspure , но ретикулум не сможет использовать последовательные интерфейсы. Все остальные доступные модули все еще будут загружены при необходимости.
Пожалуйста, обрати внимание! Если вы используете пакет rnspure для запуска ретикулума в системах, которые не поддерживают PYCA/криптографию, важно, чтобы вы прочитали и понимали раздел криптографических примитивов этого документа.
Если вы просто хотите начать экспериментировать, не создавая никаких физических сетей, вы можете присоединиться к Testnet RNS Development.
Testnet - это просто неформальная сеть для тестирования и экспериментов. Большую часть времени он будет расти, и любой может присоединиться, но это также означает, что нет никаких гарантий для доступности обслуживания.
Вероятно, само собой разумеется, но не используйте точки входа в тестовую сеть в качестве интерфейсов жестко-кодирования или по умолчанию в любых приложениях, которые вы отправляете пользователям . При доставке приложений наилучшей практикой является предоставление собственных решений по подключению по умолчанию, если это необходимо и применимо, или в большинстве случаев, просто оставьте их пользователю, к каким сетям подключиться и как.
TestNet запускает самую последнюю версию Reticulum (часто даже задолго до того, как она публично выпущена). Иногда экспериментальные версии ретикулума могут быть развернуты в узлах на тесте, что означает, что может возникнуть странное поведение. Если ничто из этого не пугает вас, вы можете присоединиться к Testnet через TCP или i2p. Просто добавьте один из следующих интерфейсов в файл конфигурации ретикулума:
# TCP/IP interface to the RNS Amsterdam Hub
[[RNS Testnet Amsterdam]]
type = TCPClientInterface
enabled = yes
target_host = amsterdam.connect.reticulum.network
target_port = 4965
# TCP/IP interface to the BetweenTheBorders Hub (community-provided)
[[RNS Testnet BetweenTheBorders]]
type = TCPClientInterface
enabled = yes
target_host = reticulum.betweentheborders.com
target_port = 4242
# Interface to Testnet I2P Hub
[[RNS Testnet I2P Hub]]
type = I2PInterface
enabled = yes
peers = g3br23bvx3lq5uddcsjii74xgmn6y5q325ovrkq2zw2wbzbqgbuq.b32.i2p
Testnet также содержит ряд узлов Nomad Network и узлы распространения LXMF.
Вы можете помочь поддержать дальнейшее развитие открытых, бесплатных и частных систем связи, пожертвовав по одному из следующих каналов:
84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w
0xFDabC71AC4c0C78C95aDDDe3B4FA19d6273c5E73
35G9uWVzrpJJibzUwpNUQGQNFzLirhrYAH
Являются ли определенные функции в дорожной карте развития важны для вас или вашей организации? Сделайте их реальностью быстро, спонсируя их реализацию.
Reticulum использует простой набор эффективных, сильных и хорошо проверяемых криптографических примитивов, с широко доступными реализациями, которые можно использовать как на процессорах общего назначения, так и на микроконтроллерах. Используемые примитивы:
В конфигурации установки по умолчанию примитивы X25519 , Ed25519 и AES-128-CBC предоставляются OpenSSL (через пакет PYCA/Cryptography). Функции хеширования SHA-256 и SHA-512 предоставляются стандартным Python Hashlib. HKDF , HMAC , Token примитивы и функция прокладки PKCS7 всегда предоставляются следующими внутренними реализациями:
Reticulum также включает в себя полную реализацию всех необходимых примитивов в Pure Python. Если OpenSSL & PYCA не доступны в системе при запуске ретикулума, reticulum вместо этого будет использовать внутренние примитивы чистопитона. Тривиальным следствием этого является производительность: бэкэнд OpenSSL намного быстрее. Однако наиболее важным следствием является потенциальная потеря безопасности с использованием примитивов, которые не видели такого же количества проверки, тестирования и обзора, что и от OpenSSL.
Если вы хотите использовать внутренние примитивы чистопитона, очень желательно, чтобы у вас было хорошее понимание рисков, которые эта поза и принял обоснованное решение о том, являются ли эти риски приемлемыми для вас.
Ретикулум является относительно молодым программным обеспечением, и его следует рассматривать как таковое. Несмотря на то, что он был построен из-за наилучших практик криптографии, оно не имело внимания, он не проверялся извне аудирована, и вполне может быть ошибки конфиденциальности или нарушения безопасности. Если вы хотите помочь или помочь спонсировать аудит, пожалуйста, свяжитесь с нами.
Ретикулум может существовать только из -за горы работы с открытым исходным кодом, которую она была построена на вершине, вклад всех участников, и всех, кто поддерживал проект на протяжении многих лет. Всем, кто помог, большое спасибо.
Ряд других модулей и проектов либо являются частью, либо используются с помощью ретикулума. Искренняя благодаря авторам и участникам следующих проектов: