DEV: Рубиновые тона – Telegram
DEV: Рубиновые тона
3.22K subscribers
143 photos
2 videos
8 files
976 links
Анонсы новых видео о программировании (Ruby/Rails, Solidity/Ethereum, Python, JS и не только), практические советы, обзор полезных инструментов и новости из мира IT
Download Telegram
В этом уроке продолжаем говорить про OpenZeppelin Defender. В этот раз узнаем, как легко создать Multisig и Timelock, настроить их и как добавлять предложения в эту цепочку. Как выясняется, для этого нам не потребуется вообще писать код: всё делается через графический интерфейс! https://www.youtube.com/watch?v=ElM2sv9EQw4
👍18🔥1
Сейчас у нас в чате школы заметил анонс очередного занятия по английскому, и там было использовано обращение "guys". Казалось бы, все так говорят - вон в американских фильмах про колледж все так друг друга называют.

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

Не сказать, что это большая бестактность, но всё-таки нечто, о чём следует помнить. Самое простое - использовать обращение "everyone", "colleagues", может быть даже "friends". Мелкие вещи, которым особенно не учат, но из них впоследствии складывается общее впечатление о человеке. А это особенно важно, если вы работаете в режиме удалёнки - в этом случае все мысли и эмоции мы зачастую выражаем только текстом, смайликами, гифками.
🔥115👍3👎2
Мой товарищ (пусть и не близкий) Райан опубликовал новую книгу по Rails и GraphQL. Я не читал пока, но предыдущие релизы у него были весьма приличные https://leanpub.com/graphql-rails
🔥15
Starship - это "расширение" для обычной командной строки, которое работает во всех ОС и большинстве терминалов. Он добавляет подсказки, цветовые схемы и прочие штуки. Я попробовал, мне понравилось - вместе с ConEmu полёт нормальный. 💫 https://starship.rs/
🔥9
Сайт, где можно увидеть сроки поддержки разнообразных версий инструментов и языков https://endoflife.date/
9
В этом уроке продолжаем говорить обо всяких штуках, связанных с криптографией. Хотелось бы обсудить, как именно компьютер "загадывает" случайные числа, то есть откуда вообще они берутся? Какие там алгоритмы? Узнаем, почему числа псевдорандомные, когда эта рандомность может выйти боком и как это победить. Также напишем свой алгоритм для потокового шифрования данных. https://www.youtube.com/watch?v=q9PWljGSpKY
7🔥3👍2
Оказывается, уже год прошёл со съёмок нашего клипа... С одной стороны - как летит время, а с другой - сколько всего произошло (увы, далеко не всегда хорошего). https://www.youtube.com/watch?v=VdVI8xC04bI
🤯3
Сегодня в Швеции. Приехали поздно, уже ночь, а солнце как будто и не село.
👍23🔥1👀1
В этом уроке по Solidity мы узнаем, как с помощью ораклов (oracles) генерировать надёжные случайные числа. Мы узнаем, что такое VRF (Verifiable Randomness Function), как это работает за кулисами и как генерировать такие числа самостоятельно в своих контрактах. https://www.youtube.com/watch?v=7v-MiN2OOd4
🔥124👏1
Когда забыл убрать тестовый текст и опубликовал на продакшене... В титре написано буквально "бурый медведь - мягкий, жмякательный парень" 😂
😁15🤡3🔥2
В этом уроке по Elixir мы поговорим об OTP (Open Telecommunication Protocol) и в частности о GenServer, который позволяет легко создавать собственные сервера. Для демонстрации мы сделаем новое приложение с помощью mix и напишем игру game of stones для двух участников, которая и будет построена по принципу клиент-сервер. https://www.youtube.com/watch?v=DCjRQUWK1HM
🔥8
В следующий понедельник залетайте на стрим! В этот раз мы обсудим, что такое ECC (криптография эллиптической кривой), как это вообще всё работает и зачем нужно, как генерируются ключевые пары, какие есть особенности у этого подхода и почему он лучше, чем классический RSA, и как он применяется в Ethereum (и не только). https://youtube.com/live/q51qT9MRbLs?feature=share
🔥54👍1
Итак, друзья, как и обещано, в понедельник у нас стрим - это открытый урок на GuideDAO, будем работать сразу на двух площадках. По этому поводу также рад предложить всем подписчикам интересный бонус 😄

Хочешь стать Web3-разработчиком?

Мои друзья из GUIDE DAO предлагают скидку 0,15 ETH на все крипто-буткемпы по промокоду KRUK! Материалы этих буткемов подготовлены в том числе и мной.

Учись с нуля, иди до первого оффера, выбирай, что тебе больше нравится.

Оплачиваешь буткемп – получаешь пожизненный доступ ко всему: стримам, семинарам, сессиям по кодингу. Любые активности – все в твоем распоряжении.

Наставники и HR-партнеры подготовят к собеседованию, помогут с кодом, проведут тренинг по собесам и научат не терять голову на вопросах.

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

Жми на ссылку: ПЕРЕЙТИ (https://www.guidedao.xyz/?utm_source=partner&utm_medium=krukowski&utm_campaign=telegram&utm_content=zakrep&utm_term=kruk15)
Выбирай буткемп
Используй промокод: KRUK
5👏1
Я, в общем-то, не хочу превращаться в трэвел-блогера, тем более, что с 2020 года вообще почти никуда не выезжал, но раз уж зашла речь, немного поделюсь впечатлениями о Швеции.

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

- Народу, конечно, много. После Риги как-то совсем неуютно 😂 За годы страна приняла много мигрантов, а с начала войны сюда приехало множество беженцев, часто видел мам с детишками. Некоторые уже нашли тут работу, но подробностей про житьё-бытьё не знаю, честно говоря. Отовсюду слышится разная речь, в целом, все сосуществуют мирно.

- Цены, как и в других скандинавских странах, достаточно высокие. Ну, то есть как - обычные продукты в магазинах не сильно дороже, чем в среднем по больнице, но если есть желание пойти куда-нибудь поесть, то это, в общем, недешёвое предприятие. Обычный ужин на двоих может стоить в духе 80-100 евро (тут в ходу крона, так что цены приблизительные), причём в достаточно обычном месте. Хорошо, что большую часть времени мы жили за городом, где у нас была своя кухонька.

- Интересно, что алкоголь в обычных магазинах можно купить только совсем лёгкий - до 3.5 градусов. Если нужно что-то крепче, то welcome в отдельные заведения, у которых свой график работы. Честно говоря, я в такие "специальные" магазины не заходил, но слышал, что работают они чуть ли не по несколько часов в день. Пробовал местное пиво - в целом, вполне прилично.

- Общественный транспорт развит весьма достойно, причём можно купить проездной на несколько дней (или даже на год), который действует вообще на все виды: автобус, трамвай, метро, пригородные поезда и даже паромы 😊

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

- Так как Стокгольм расположен на островах, тут повсюду ходят паромы - это совершенно обычное дело. Имеются специальные остановки, куда попадаешь просто отсканировав билет (или код в смартфоне). Причаливает кораблик, едешь куда нужно, сходить - ну, как обычный автобус.

- Были в нескольких музеях. Я вообще-то не большой фанат музеев, скажу честно - мне больше нравится на природе. Но очень понравился этнографический музей под открытым небом и музей корабля "Васа". В этнографическом музее имеется реконструкция всяких исторических домиков, и зоопарк в одном флаконе. Увы, вход дорогой, в духе 20-23 евро с носа. Музей "Васы" - это там, где стоит в натуральную величину гигантский корабль, затонувший ещё при царе Горохе (потом его удалось поднять). Вообще, когда вы допускаете ошибки, то вспоминайте про "Васу", тк этот гигант своего времени затонул в первом же плавании, только выйдя из порта - его неправильно сконструировали. Были также в музее северных стран, но это вообще нечто странное: там один этаж занимают какие-то шмотки из Британии и Парижа (?), а интересная часть экспозиции проходится минут за 10-15.

- Зашли на местный рынок, очень колоритное место, где можно приобрести как рыбку-колбаску, так и всякие вкусности из других стран. Сюрстрёмминга не попробовали, ибо не сезон (начинается в августе). Кстати, все эти видео, где ребята пытаются есть тухлую рыбку прямо из банки - это перевод продукта 😂 Настоящие викинги отдельно делают картошечку, хлебушек, маслецо и прочее, и только вместе с этим в небольших дозах кушают сам сюрстрёмминг.

- Дороги хорошие, много велодорожек с отличной проектировкой. Бензин дороже, чем у нас (около 1.7-1.8 евро, кажется). Водители в целом вежливые. Полиции мало, по-моему, всего один раз встречали машину с мигалками.

- Как уже писал выше, поздним вечером город как будто вымирает, активность только в центре. Можно идти по улице и долгое время вообще не встретить ни одного человека.
👍13
- Это страна, где любят хоккей и тяжёлую музыку 🤟 Впрочем, ребят с патлами встречал не так, что очень часто. 😀

- Удалось (совершенно случайно) попасть на фестиваль фолковой музыки, который проводился недалеко от центра, вход был бесплатный. Послушали такую группу, как "Добраночь" - они из Германии, поют на немецком, русском и, кажется, на идиш. Скрипач, конечно, у них супер-техничный, играет классно.

- Я грешным делом думал даже попробовать передать "коллегам" из группы Garmarna кое-какие сувениры, но подумал, что это будет уж как-то слишком 😅 Ладно, пока мы тут готовим кавер на одну их песню, посмотрим на реакцию.

В общем, впечатления хорошие, но свои особенности, безусловно, есть. Спасибо за внимание, скоро увидимся 🙌 https://www.youtube.com/watch?v=hLxvS4Frxy8
👍123❤‍🔥1
Итак, по следам сегодняшней лекции о криптографии эллиптической кривой (ECC), давайте зафиксируем важные вещи.

Первый вопрос: зачем всё это надо? Дело в том, что (применительно к Ethereum) любая транзакция должна быть подписана пользователем. Мы должны подтвердить, что, условно говоря, вот этот денежный перевод со своего кошелька делаю действительно я, а не какой-то неизвестный товарищ. Если говорить из общих соображений, то подпись транзакции можно представить высчитывание её хэша и затем шифрование получившегося хэша с помощью закрытого ключа (private key) пользователя. Закрытый ключ, как подсказывает название, известен лишь самому юзеру.

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

Другой пример - это использование ассиметричного шифрования для так называемого handshake, когда две стороны вырабатывают общий ключ. Этот ключ используется во время обмена данными (например, по https). Про это мы говорили в лекции по RSA.

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

Таким образом, мы поняли, зачем вообще этот ECC нужен - мы можем использовать эллиптические кривые, чтобы создавать надёжные ключи. Что же это за кривые такие? В общем случае у таких кривых довольно длинное уравнение, но в крипте мы работаем с кривыми Вейерштрасса, которые попроще. Описываются они как y ** 2 = x ** 3 + a * x + b, где ** - это возведение в степень. a и b - это параметры кривой, которые подбираются криптографами и могут варьироваться в зависимости от стандарта (важно то, что эти параметры известны всем). К примеру, для Bitcoin и Ethereum используется кривая под названием secp256k1, параметры которой равны 0 и 7 соответственно. Уравнение же превращается в y ** 2 = x ** 3 + 7.

Как выглядят эллиптические кривые и как меняются в зависимости от параметров можно посмотреть вот на этой визуализации https://www.desmos.com/calculator/ialhd71we3 В частности, можно видеть, что эта кривая симметрична относительно оси Х, что довольно важно (есть у неё и ряд других свойств, о которых позже).

Также следует отметить, что в ECC эти кривые строятся на конечном поле Fp (оно называется поле Галуа), где p - это натуральное число. Если говорить простым, языком, то кривая не бесконечна, а лежит в квадрате p x p. В существующих стандартах число p очень большое. К примеру, для кривой secp256k1 значение p равно 2 ** 190 - 1 - это совершенно гигантское число. Спецификацию можно глянуть тут https://en.bitcoin.it/wiki/Secp256k1 Это нужно для того, чтобы мы могли сгенерировать очень много потенциальных ключевых пар. Поэтому фактически мы можем сказать, что наше уравнение трансформируется в y ** 2 = x ** 3 + 7 (mod p), где mod - остаток от деления.
👍16❤‍🔥2🤯2
Ещё один важный момент заключается в том, что в ECC мы работаем только с целыми числами, поэтому на нашей кривой нас интересуют только точки, чьи координаты x и y целые. Кстати, проверить, принадлежит ли точка кривой можно очень легко - для этого нужно решить уравнение x ** 3 + 7 - y ** 2 = 0 (опять таки с mod p). Если равенство нулю есть, то точка лежит на кривой.

На поле Галуа, где лежит кривая, можно выполнять математические операции над точками - в частности, сложение и умножение, причём результатом будет другая точка. А вот зачем нужны эти операции, поговорим во второй части.
👍10😱2❤‍🔥1