Рубрика «routing»

В этой короткой статье я расскажу, как определить IP-адреса, которые использует Telegram. А что делать с этой информацией дальше - решайте сами.

Мне нужно было автоматизировать блокировку богоненавистного Telegram в своей сети. Сначала я пытался блокировать его по всем известным доменам: это давало лишь частичный эффект, а в последний месяц такой способ практически перестал работать. Затем я пробовал использовать публично доступные списки IP-адресов Telegram, например такие:

91.108.56.0/22
91.108.4.0/22
91.108.8.0/22
91.108.16.0/22
91.108.12.0/22
149.154.160.0/20
91.105.192.0/23
91.108.20.0/22
185.76.151.0/24
2001:b28:f23d::/48
2001:b28:f23f::/48
2001:67c:4e8::/48
2001:b28:f23c::/48
2a0a:f280::/32

Читать полностью »

Uniswap V4 - это платформа для строительства DeFi протоколов, реализующая архитектуру "Singleton Design", которая позволяет внедрять произвольную логику в работу пула.

Архитектура четвертой версии протокола претерпела значительные изменения: объединила все пулы ликвидности на одном смарт-контракте и реализовала механизм "хуки" для кастомизации логики пулов.

В третьей версии протокола работает правило 1 пул = 1 смарт-контракт. Для создания нового пула используется специальный смарт-контракт фабрики UniswapV3Factory.sol, который наследуется от Читать полностью »

И так, формулировка задачи следующая: есть база данных, в ней хранится информация о дорогах, включая координаты, нужно реализовать построение маршрутов из начальной точки к конечной.

Как хранить сеть дорог в БД для построения маршрута? - 1

Построение маршрутов - задача распространенная, и, как для каждой распространённой задачи, для неё давно существуют реализации. Мне нравится GraphHopperЧитать полностью »

Построение маршрутов..., люди регулярно этим пользуются, особенно для автомобильных маршрутов, в навигаторах.

Решений, для построения маршрута тоже немало, в том числе существует GraphHopper, который умеет строить маршруты, и для автомобилей, и для пешеходов, и даже для пешего туризма, - подойдёт, наверно, в 99% случаев.

Читать полностью »

Легковесный роутинг на микросервисах - 1

Мобильные приложения в последнее время стали по-настоящему большими — не только в смысле своей значимости для нас с вами, но и в прямом смысле.

По своей функциональности они бывают просто огромными. Некоторые приложения состоят из десятков, сотен экранов и переходов между ними. И пока пользователь открывает очередной экран с деталями заказа, наслаждаясь плавной анимацией, в мире MVVM происходит много всего интересного: вью-контроллер — создается, вью-модель — создается, аргументы — пробрасываются, зависимости — резолвятся.

Кто делает всю эту важную, но незаметную работу? Советую запастись чаем и печеньками: это мини-сериал о том, как я ни в чем себе не отказывал, реализуя MVVM в одном из своих домашних проектов. Сегодня заключительная серия — про слой роутинга в iOS-приложении.

Читать полностью »

По мере исчерпания адресов IPv4, многие операторы связи столкнулись с необходимостью организовывать доступ своих клиентов в сеть с помощью трансляции адресов. В этой статье я расскажу, как можно получить производительность уровня Carrier Grade NAT на commodity серверах.
Читать полностью »

Spring — эффективный роутинг - 1

Виктор Васнецов, Рыцарь на распутье; fatcatart.com

Привет! Здесь краткий пересказ интересной баги c GitHub. Для воспроизведения см. проект spring-flux-callstack.

Не так давно я заметил, что при ошибках приложения, стектрейс иногда довольно длинный. И в нем повторялось по многу раз один и тот же набор строк (сам стектрейс под катом):

at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:75)
at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:78)
at reactor.core.publisher.Operators.complete(Operators.java:135)
at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:45)
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
at reactor.core.publisher.Mono.subscribe(Mono.java:4110)

Как вы уже поняли, это методы из Project Reactor, который обеспечивает асинхронную работу для Router Function в WebFlux.

Налицо неэффективность, ведь каждый такой блок кода порождает несколько объектов в куче, а таких блоков много. И создаюся они на каждый вызов.

Читать полностью »

Здравствуй, Habr. Недавно я согласился на ревью сайта, заказанного на фрилансе. Я ожидал увидеть контроллеры, которые делают вообще все и занимают 200+ строк (и прочие проявления плохого кода), но все было вполне прилично. Валидация не лежала в контроллере, что встречается достаточно часто. Иногда, конечно, встречались некоторые несоответствия PSR-2, но все выглядело нормально, пока я не заглянул в файл с маршрутами. Он занимал несколько экранов и имел комментарии о группах маршрутов. Я связался с разработчиком и он сказал, что все немного «разрослось» и согласился поправить. В следующей версии я увидел, что он создал несколько классов со статическими методами, в которые переложил код и вызвал их, как это обычно делается, с авторизацией. Тут я вспомнил, что уже сталкивался с подобным и встречал такую аргументацию: «В документации ничего не говорится о вынесении маршрутов в разные файлы». Буквально через пару минут я нашел статью и отправил разработчику. Через пол часа я получил маршруты в нормальном виде и принял решение, что многим новичкам эта статья будет полезна. Так родился этот вольный перевод.

Если вы ни разу не правили файл RouteServiceProvider, добро пожаловать под кат.
Читать полностью »

FHRP (First Hop Redundancy Protocol) — семейство протоколов, предназначенных для создания избыточности шлюза по умолчанию. Общей идеей для данных протоколов является объединение нескольких маршрутизаторов в один виртуальный маршрутизатор с общим IP адресом. Этот IP адрес будет назначаться на хостах как адрес шлюза по умолчанию. Свободной реализацией данной идеи является протокол VRRP (Virtual Router Redundancy Protocol). В этой статье рассмотрим основы протокола VRRP.

Принцип работы протокола VRRP - 1

Читать полностью »

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

Итак, что такое BGP? BGP — это протокол динамической маршрутизации, являющийся единственным EGP( External Gateway Protocol) протоколом. Данный протокол используется для построение маршрутизации в интернете. Рассмотрим как строится соседство между двумя маршрутизаторами BGP.

My Image
Рассмотрим соседство между Router1 и Router3. Настроим их при помощи следующих команд: Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js