Pull to refresh
23
0
Aleks Lozovyuk @aleks_raiden

Криптовалюты, финансы, распределенные системы

Send message

Полный разбор Polymarket: от интерфейса до смарт-контрактов

Level of difficultyMedium
Reading time14 min
Views1.8K

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

Читать далее
Total votes 9: ↑7 and ↓2+7
Comments16

Почему СУБД такие медленные

Level of difficultyMedium
Reading time11 min
Views34K


Недавно на Хабре публиковался перевод статьи «Просто выберите Postgres» (оригинал, англ. яз) с аргументами, что Postgres — оптимальная БД для десктопных и мобильных приложений. Аналогичное мнение высказывают в других популярных статьях вроде «До свидания MongoDB, здравствуй PostgreSQL». Главным недостатком SQLite называют то, что данные хранятся в одном файле, а MongoDB (а также DynamoDB и Cassandra) — низкую производительность:

«Всё это связано с тем, что подобные базы данных, по сути, представляют собой огромную распределённую хеш-таблицу. Единственные операции, работающие без необходимости сканирования всей базы данных — это поиск по секционному ключу и сканы, при которых используется ключ сортировки.

…Если паттерны доступа существенно изменятся, то может потребоваться полная повторная обработка всех данных».

Более производительные резидентные БД хранят данные в памяти (Redis, Valkey), но их использование ограничено объёмом ОЗУ.

После такого заявления интересно посмотреть на независимые тесты производительности разных СУБД.
Читать дальше →
Total votes 97: ↑63 and ↓34+55
Comments42

Паттерны многопоточности в Go

Level of difficultyEasy
Reading time16 min
Views10K

В этой статье я постараюсь рассказать о том как их компоновать в самые популярные паттерны для поддержки масштабируемости и удобства сопровождения будущих систем.Почему же многопоточность так важна? Сегодняшние приложения должны быть быстрыми и отзывчивыми, а для этого нужно выполнять множество задач одновременно. 

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

Читать далее
Total votes 24: ↑22 and ↓2+25
Comments12

Как в цифровом мире безопасно рассказать информацию не выдавая себя?

Level of difficultyMedium
Reading time5 min
Views9K

К примеру контрибьютер опенсорс проекта хочет рассказать о планах но при этом остаться анонимным.

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

Или просто какая-то тема запрещена для обсуждения которую очень хочется обсудить.

Как же быть? Использовать кольцевые подписи!

Читать далее
Total votes 21: ↑19 and ↓2+23
Comments4

Как потратить шесть лет и быть невидимкой в Play Market

Level of difficultyEasy
Reading time13 min
Views24K

Всем привет!

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

Если вкратце: шесть лет трачу вечера на то, чтобы написать собственную игру.
Игра доступна на своём сайте, но в Play Market её не видно.

Читать далее
Total votes 14: ↑10 and ↓4+8
Comments18

Этот учёный хочет постепенно заменить ваш мозг

Reading time8 min
Views1.8K

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

Его идея? Заменить части тела. Все. Включая мозг.

Ожидается, что Жан Эбер, новый сотрудник агентства перспективных проектов США в области здравоохранения (ARPA-H), возглавит новую крупную инициативу по «функциональной замене мозговой ткани» – идее добавления новой ткани в мозг людей.

Президент Джо Байден создал ARPA-H в 2022 как агентство в составе Министерства здравоохранения и социальных служб для реализации того, что он назвал «смелыми, неотложными инновациями» с изменяющим потенциалом.

Читать далее
Total votes 10: ↑9 and ↓1+12
Comments6

Собираем сетевое хранилище (NAS) XPenology

Level of difficultyEasy
Reading time12 min
Views24K

Привет! С вами снова Александр, DevOps из Банки.ру. Прошлая статья «Домашний сервер на базе Proxmox» вызвала интерес сообщества и бурное обсуждение в комментариях. 

Сегодня продолжу тему и расскажу о сборке NAS (Network Attached Storage) своими руками из доступного сейчас железа. Остановлюсь на процессе выбора, покупках, ориентировочной цене общей сборки на данный момент. 

Читать далее
Total votes 34: ↑33 and ↓1+40
Comments86

Насколько быстры B-деревья по сравнению с хэш-таблицами?

Reading time12 min
Views11K

Во многих «скриптовых» языках для стандартных ассоциативных структур данных используется хэш-таблица (hashmap) (объекты Javascript, словари Python и так далее). Хэш-таблицы обладают множеством раздражающих свойств:

  • Уязвимость к hash flooding.
  • В случае защиты от hash flooding случайными seed порядок итераций становится недетерминированным, что мешает при тестировании снэпшотов, создании воспроизводимых сборок и так далее.
  • При вставке может требоваться рехэширование, что в наихудших случаях создаёт для больших хэш-таблиц ужасные задержки.
  • Многократное увеличение больших распределений памяти без фрагментации сложно реализовать в целевых платформах wasm, потому что трюки с виртуальной памятью недоступны, а для страниц невозможно выполнить unmapping.
  • Векторные команды в wasm ограничены, а команды AES отсутствуют. Это делает многие хэш-функции ещё более медленными.

Упорядоченные структуры данных наподобие B-деревьев не имеют этих недостатков. Обычно они медленнее хэш-таблиц, но меня удивило, насколько разнятся ожидания людей относительно их скорости.
Читать дальше →
Total votes 13: ↑13 and ↓0+21
Comments3

Тернистый путь к единому хранилищу метрик

Level of difficultyMedium
Reading time16 min
Views4K

Метрики — один из трёх базовых типов телеметрии и основа мониторинга любого приложения. Но что, если необходимо собирать их в рамках крупной и высоконагруженной экосистемы? Как собрать метрики с десятков тысяч хостов разных ЦОДов и сотен типов приложений? И как упростить инженерам настройку правил алертинга и создание дашбордов?

Привет, Хабр! Я Филипп Бочаров, руководитель стрима мониторинга и наблюдаемости в МТС Digital. Мы занимаемся всеми типами телеметрии: логами, трассировкой и, конечно, метриками. Единое хранилище метрик экосистемы — часть нашей платформы наблюдаемости. Для этих целей мы используем агент Telegraf и большой кластер VictoriaMetrics, принимающий 10+ миллионов сэмплов в секунду.

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

Читать далее
Total votes 17: ↑16 and ↓1+22
Comments0

Техническая история Kubernetes: секреты создателя

Level of difficultyHard
Reading time27 min
Views6.6K

Однажды Брайан Грант, первый lead architect Kubernetes, написал в Twitter серию тредов о технической истории проекта. Он рассказал о появлении разных фичей в K8s и логике, которая стояла за принятием отдельных решений. В этом году в честь очередного юбилея оркестратора Брайан собрал все твиты в одну статью. Под катом — её перевод, из которого вы узнаете, как появились контроллеры рабочих нагрузок, декларативная модель ресурсов, descheduler и многое другое.

Читать далее
Total votes 29: ↑29 and ↓0+41
Comments2

Шины данных для очень больших инсталляций, или Почему большим компаниям сложно с опенсорсом

Level of difficultyMedium
Reading time15 min
Views3.1K

Как технический менеджер в Яндексе я отвечаю за эксплуатацию больших кластеров, через которые мы передаём данные, — для этого мы используем YDB Topics, собственный аналог Apache Kafka, о котором я уже рассказывал.

Но если посмотреть не только на нас, но и на примеры других крупных систем, то становится понятно, почему энтерпрайзу сложно брать готовые опенсорс‑решения. Стоит лишь представить, что бывает, если команда с большими масштабами начинает использовать Apache Kafka.

В этой статье я покажу собирательный образ такой крупной системы из нашего опыта общения с большими распределёнными командами, и мы увидим разницу в TCO Apache Kafka и YDB Topics на конкретных цифрах.

Читать далее
Total votes 14: ↑14 and ↓0+20
Comments0

Лоттократия лучше демократии! Статья о криптографических выборах

Level of difficultyEasy
Reading time14 min
Views4.1K

Тайное голосование с применением однотипных бюллетеней впервые появилось в Австралии в 1856 году. Насколько хорошо эта система была спроектирована? Если бы вы замыслили в наши дни создать систему выборов, защищённую от мошенничества и фальсификаций, получилось бы у вас то же самое? На мой взгляд, такая система не соответствует разумным требованиям безопасности и изначально основана на принципах, которые неизбежно приводят к узурпации власти той или иной влиятельной группировкой.

В последние десятилетия появились системы сквозного проверяемого голосования, такие как Prêt à Voter, Scantegrity или DRE-ip, в той или иной мере использующие криптографические методы для защиты от фальсификаций. В этой статье я немного расскажу об одной из этих систем, после чего опишу систему случайного голосования с использованием non-malleable time lock puzzles, которая вообще отказывается от того, чтобы предоставлять гражданам осознанно выбирать руководящих лиц государства.

Читать далее
Total votes 21: ↑21 and ↓0+29
Comments100

Дизайн и реализация виртуальной машины CPython

Level of difficultyMedium
Reading time21 min
Views6.9K

Наиболее интересной частью каждого языка, компилируемого в байт‑код является виртуальная машина (также известная как интерпретатор байт‑кода), в которой происходит исполнение байт‑кода. Поскольку это наиболее важная часть реализации языка, она должна быть крайне производительной. Даже если вы не занимаетесь разработкой компиляторов, знание внутреннего устройства ее реализации может дать вам возможность найти новые способы оптимизации вашего кода, что может быть полезно в других областях вашей работы. А если вы занимаетесь разработкой компиляторов, вам всегда стоит исследовать реализации в других языках, чтобы найти для себя новые трюки и потенциально упущенные детали.

В этой статье мы обсудим формат инструкций байт‑кода CPython, а также реализацию цикла обработки байт‑кода в интерпретаторе, где он и исполняется.

Читать далее
Total votes 22: ↑22 and ↓0+30
Comments2

LotItBit или история ранней криптолотереи

Level of difficultyEasy
Reading time10 min
Views1.4K

LotItBit или как я создал криптолотерею и потерял все.

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

Читать далее
Total votes 18: ↑9 and ↓9+5
Comments1

Настройка CI/CD для GitLab-репозитория: работа с микросервисами

Level of difficultyMedium
Reading time20 min
Views12K

Рассказываем о полезных практиках конфигурации пайплайна с помощью GitLab CI/CD в контексте микросервисной архитектуры. Рассмотрим: добавление заданий в пайплайн путём проверки изменений в определённых микросервисах, концепцию модульных пайплайнов и явное указание зависимостей между заданиями для их выполнения не по этапам.

Читать далее
Total votes 9: ↑9 and ↓0+12
Comments4

Как снизить расходы на мониторинг: более разумный подход к данным

Reading time8 min
Views1.6K

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

Читать далее
Total votes 7: ↑7 and ↓0+11
Comments0

Книга: «Разрушители. Грибки и грядущая пандемия»

Reading time20 min
Views1.6K
image Привет, Хаброжители!

Грибки есть везде. Есть безвредные, есть даже полезные. Однако некоторые из них — это жестокие убийцы. Если мы абстрагируемся и взглянем на все со стороны, то можно утверждать, что грибы являются самыми разрушительными организмами на Земле. Они могут уничтожить все вокруг и остаться единственными на планете.

В книге автор Эмили Моноссон рассказывает, как торговля, путешествия и меняющийся климат делают нас всех более уязвимыми для пандемии.

Однако не стоит пугаться раньше времени. Да, грибки — это жестокие организмы, способные уничтожить все живое на планете, но профилактика не невозможна!

Прослеживая историю распространения грибков и самые последние открытия в этой области, Моноссон знакомится с учеными, которые неустанно работают над защитой видов, находящихся под угрозой, чьи инновационные подходы к инвазии грибков могут спасти человеческие жизни. Углубляясь в тематические исследования, одновременно увлекательные, отрезвляющие и обнадеживающие, эта книга служит тревожным сигналом, напоминанием о тонкой взаимосвязанности мира природы. И является уроком, позволяющим смотреть на жизнь на нашей планете с осознанием ее хрупкости.
Читать дальше →
Total votes 8: ↑6 and ↓2+9
Comments2

Как снизить расходы на мониторинг: замена Prometheus на VictoriaMetrics

Reading time6 min
Views7.6K

Мониторинг может оказаться дорогим делом из-за огромных объемов данных, которые необходимо обрабатывать. В этой статье вы узнаете о лучших способах хранения и обработки метрик мониторинга для снижения расходов и о том, как VictoriaMetrics может в этом помочь.

(cм. вторую статью из этой серии — Как снизить расходы на мониторинг: более разумный подход к данным.)

Читать далее
Total votes 8: ↑8 and ↓0+13
Comments6

Потребление ресурсов в Prometheus: кто виноват и что делать (обзор и видео доклада)

Level of difficultyEasy
Reading time14 min
Views5.1K

У Prometheus есть серьёзный недостаток — чрезмерное потребление ресурсов. Проблема может заключаться в недостаточном понимании инструмента и его неверном использовании. А Prometheus требует грамотного управления метриками и лейблами.

В своем докладе технический директор Deckhouse Observability Platform Владимир Гурьянов выяснил, кто виноват в этом и что делать.

Читать далее
Total votes 39: ↑39 and ↓0+49
Comments7

Попробуйте Tauri

Level of difficultyMedium
Reading time6 min
Views7.8K

Хочу рассказать про один из моих любимых Opensource проектов: Tauri. Это среда для создания десктопно-мобильных приложений на JavaScript, но быстрых и легковесных. С опциональными дополнениями на Rust, а через него и на всех других языках.

Читать далее
Total votes 24: ↑22 and ↓2+27
Comments30

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity