Делал запросы к Dune. Запрос “дернуть транзакцию по хэшу”:
SELECT *
FROM ethereum.transactions
WHERE hash = 0x…
занимает несколько минут.
Потом в дискорде подсказали, что нужно включать block_number (взять из etherscan):
SELECT *
FROM ethereum.transactions
WHERE hash = 0x…
AND block_number = 123
и тогда запрос выполняется секунды. Причина?
В Dune данные хранятся в паркетном формате (гибрид построчного и поколоночного способов). Что обеспечивает как относительно быстрое агрегирование (сумму по колонке удобнее вычислить, когда данные по колонкам сгруппированы), так и поиск по определенному условию (например, по block_number во втором запросе). В поиске есть доп оптимизация – для каждой группы строк (row group) хранится максимальное и минимальное значение колонки, что позволяет быстро "пролистывать" те группы, не соответствующие критерию (см. картинку).
Хэши транзакций, т.к. они равномерно случайно сгенерированы, эффективно использоваться в max/min не могут.
Подробнее про паркет тут и тут
SELECT *
FROM ethereum.transactions
WHERE hash = 0x…
занимает несколько минут.
Потом в дискорде подсказали, что нужно включать block_number (взять из etherscan):
SELECT *
FROM ethereum.transactions
WHERE hash = 0x…
AND block_number = 123
и тогда запрос выполняется секунды. Причина?
В Dune данные хранятся в паркетном формате (гибрид построчного и поколоночного способов). Что обеспечивает как относительно быстрое агрегирование (сумму по колонке удобнее вычислить, когда данные по колонкам сгруппированы), так и поиск по определенному условию (например, по block_number во втором запросе). В поиске есть доп оптимизация – для каждой группы строк (row group) хранится максимальное и минимальное значение колонки, что позволяет быстро "пролистывать" те группы, не соответствующие критерию (см. картинку).
Хэши транзакций, т.к. они равномерно случайно сгенерированы, эффективно использоваться в max/min не могут.
Подробнее про паркет тут и тут
👍5
Очередная волна Wish list Grants от Uniswap
Uniswap выкатывает интересные им проекты, и команды/разработчики могут подаваться для реализации проекта в заданном бюджете.
Всего проектов пять. Два наиболее интересных с моей точки зрения:
LP Actions Open Source Library (бюджет $55K)
Требуется разработать опенсорс-библиотеку, которая будет упрощать задачу предоставления ликвидности и "вытаскивания" ликвидности из пулов. Сейчас, чтобы предоставить ликвидность в пул нужно: (а) посчитать на внешнем сервисе, сколько токенов предоставить (б) поменять нужное кол-во, чтобы они лежали в кошельке (с) "загрузить" ликвидность в пул. Предлагается это сделать одной командой (и в одной транзакции), и одним входным токеном. Также просят сделать простой UI. Аналогично со снятием.
LP Tax Tool (бюджет $25-35K)
Требуется разработать инструмент (UI) для расчета налоговой базы при работе с пулами ликвидности. То есть вы можете заработать прибыль, и нужен инструмент, чтобы удобно отчитаться в налоговые US, EU.
Также есть два контентных проекта и один исследовательский.
Смотрите, подавайтесь. Дедлайн до 20 февраля.
Upd. Мне нравится LP Actions Open Source Library, если кому-то тоже, то можно подумать насчёт создания огненной команды.
@web3dev_notes
Uniswap выкатывает интересные им проекты, и команды/разработчики могут подаваться для реализации проекта в заданном бюджете.
Всего проектов пять. Два наиболее интересных с моей точки зрения:
LP Actions Open Source Library (бюджет $55K)
Требуется разработать опенсорс-библиотеку, которая будет упрощать задачу предоставления ликвидности и "вытаскивания" ликвидности из пулов. Сейчас, чтобы предоставить ликвидность в пул нужно: (а) посчитать на внешнем сервисе, сколько токенов предоставить (б) поменять нужное кол-во, чтобы они лежали в кошельке (с) "загрузить" ликвидность в пул. Предлагается это сделать одной командой (и в одной транзакции), и одним входным токеном. Также просят сделать простой UI. Аналогично со снятием.
LP Tax Tool (бюджет $25-35K)
Требуется разработать инструмент (UI) для расчета налоговой базы при работе с пулами ликвидности. То есть вы можете заработать прибыль, и нужен инструмент, чтобы удобно отчитаться в налоговые US, EU.
Также есть два контентных проекта и один исследовательский.
Смотрите, подавайтесь. Дедлайн до 20 февраля.
Upd. Мне нравится LP Actions Open Source Library, если кому-то тоже, то можно подумать насчёт создания огненной команды.
@web3dev_notes
👍1🔥1
На прошлой неделе опубликовал статью на Хабре про Dune. Главное изменение по сравнению с постом – даны решения 5ти задач 12DaysOfDune.
Бекстейжд:
1. Начал проходить курс. А что такого, всего 12 дней (заданий). За пару часов с каждым справлюсь, я же опытный программист.
2. Первые три задания сделал, потратив полный день на каждое. Четвертое делал два дня. Пятое – четыре дня.
3. Решаю заканчивать с курсом, т.к. тратить полмесяца на оставшиеся задания не хочется. Да, освою чуть лучше Dune и копну в ликвидность Uniswap, но по 20/80 это будет оставшиеся 20% результата в плане саморазвития.
В сухом остатке – 5 заданий, найдено 2 бага в авторских решениях, 1 баг в данных, возникла 1 идея проекта: Chrome расширение, которое будет упрощать написание Dune-запросов. Его киллер-фича – в коде запроса можно установить курсор на таблицу и в момент посмотреть ее структуру и пример данных 🔥 Думаю, через пару недель будет релиз.
Если есть идеи, чего не хватает в редакторе – добро пожаловать в комментарии.
Бекстейжд:
1. Начал проходить курс. А что такого, всего 12 дней (заданий). За пару часов с каждым справлюсь, я же опытный программист.
2. Первые три задания сделал, потратив полный день на каждое. Четвертое делал два дня. Пятое – четыре дня.
3. Решаю заканчивать с курсом, т.к. тратить полмесяца на оставшиеся задания не хочется. Да, освою чуть лучше Dune и копну в ликвидность Uniswap, но по 20/80 это будет оставшиеся 20% результата в плане саморазвития.
В сухом остатке – 5 заданий, найдено 2 бага в авторских решениях, 1 баг в данных, возникла 1 идея проекта: Chrome расширение, которое будет упрощать написание Dune-запросов. Его киллер-фича – в коде запроса можно установить курсор на таблицу и в момент посмотреть ее структуру и пример данных 🔥 Думаю, через пару недель будет релиз.
Если есть идеи, чего не хватает в редакторе – добро пожаловать в комментарии.
👍3
Последний месяц занимаюсь web2 разработкой – пишу расширение для Dune. React, TypeScript, верстка. Это мой первый проект на таком стеке, поэтому много открытий чудных сделал (и еще много впереди, подозреваю, хотя после массива с длиной N, не содержащего элементов, я ко всему готов). Скоро релиз, а пока давайте про web3 немного напишу.
Попался вчера хороший твит с аналитикой по веб3 проектам, которые получили финансирование в феврале 2023 в США.
Всего за февраль были профинансированы 77 проектов, а тут выжимка 8 самых интересных, по мнению автора. Давайте расскажу одной строкой про каждый проект:
1. Renegade ($3.4M) – криптобиржа/протокол, чтобы люди могли торговать анонимно, не раскрывая детали сделок. Сейчас, в традиционных DEXах типа Uniswap, детали торгов видны всем (без привязки к конкретной личности, но все же), что открывает возможности для фронтраннинга, влияния на чужие транзакции.
2. Huma Finance ($8.3M) – DeFi протокол для займов, где оценка основана на заработке человека/бизнеса. Традиционная практика кредитных организаций – понять источники дохода заемщика, чтобы оценить риски и сколько можно дать взаймы. Тут предлагается сделать то же самое, но для крипты, в т.ч. включив крипто источники заработка.
3. Ether.fi ($5.3M) – протокол LSD, где ключи остаются у стейкеров. LSD (liquid staking derivatives) – производный финансовый инструмент. Предположим, вы занимаетесь стейкингом – предоставляете токены, чтобы зарабатывать пассивный доход. Ваши токены залочены, но если вдруг вам срочно понадобились средства, то LSD – это производные токены, выпущенные под обеспечение ваших залоченных, которыми можно торговать.
4. Kaito ($5.3) – аналог ChatGPT, чтобы можно было делать запросы применительно к крипте. С информацией из таких источников как Twitter, Discord, форумы и тд. Думаю, полезное начинание, если отладят обучение на актуальных данных, т.к. крипто сообщество очень живое.
5. Minogames ($15M) – гейм-студия. Просто гейм-студия с web3 играми 🙂
6. Sesamelabs ($4.5M) – маркетинговая платформа для web3 проектов, включающая управление кампаниями, рекламную сеть, CRM. Из интересного – ончейн аналитика по пользователям.
7. SpaceIDProtocol ($10M) – протокол для управления web3 доменными именами из разных сетей на одной платформе. Можно регистрировать, управлять свои домены, торговать на встроенном маркетплейсе.
8. Phi.xyz ($2M seed) – игровые квесты для вовлечения людей в web3. Игра, в которой вам предлагается, например, купить NFT, поменять токены один на другой, зарегистрировать домен. Классная, кстати, штука, сам бы попробовал.
Надеюсь, резюме было полезно. Мне такая информация точно помогает держать руку на пульсе рынка.
Попался вчера хороший твит с аналитикой по веб3 проектам, которые получили финансирование в феврале 2023 в США.
Всего за февраль были профинансированы 77 проектов, а тут выжимка 8 самых интересных, по мнению автора. Давайте расскажу одной строкой про каждый проект:
1. Renegade ($3.4M) – криптобиржа/протокол, чтобы люди могли торговать анонимно, не раскрывая детали сделок. Сейчас, в традиционных DEXах типа Uniswap, детали торгов видны всем (без привязки к конкретной личности, но все же), что открывает возможности для фронтраннинга, влияния на чужие транзакции.
2. Huma Finance ($8.3M) – DeFi протокол для займов, где оценка основана на заработке человека/бизнеса. Традиционная практика кредитных организаций – понять источники дохода заемщика, чтобы оценить риски и сколько можно дать взаймы. Тут предлагается сделать то же самое, но для крипты, в т.ч. включив крипто источники заработка.
3. Ether.fi ($5.3M) – протокол LSD, где ключи остаются у стейкеров. LSD (liquid staking derivatives) – производный финансовый инструмент. Предположим, вы занимаетесь стейкингом – предоставляете токены, чтобы зарабатывать пассивный доход. Ваши токены залочены, но если вдруг вам срочно понадобились средства, то LSD – это производные токены, выпущенные под обеспечение ваших залоченных, которыми можно торговать.
4. Kaito ($5.3) – аналог ChatGPT, чтобы можно было делать запросы применительно к крипте. С информацией из таких источников как Twitter, Discord, форумы и тд. Думаю, полезное начинание, если отладят обучение на актуальных данных, т.к. крипто сообщество очень живое.
5. Minogames ($15M) – гейм-студия. Просто гейм-студия с web3 играми 🙂
6. Sesamelabs ($4.5M) – маркетинговая платформа для web3 проектов, включающая управление кампаниями, рекламную сеть, CRM. Из интересного – ончейн аналитика по пользователям.
7. SpaceIDProtocol ($10M) – протокол для управления web3 доменными именами из разных сетей на одной платформе. Можно регистрировать, управлять свои домены, торговать на встроенном маркетплейсе.
8. Phi.xyz ($2M seed) – игровые квесты для вовлечения людей в web3. Игра, в которой вам предлагается, например, купить NFT, поменять токены один на другой, зарегистрировать домен. Классная, кстати, штука, сам бы попробовал.
Надеюсь, резюме было полезно. Мне такая информация точно помогает держать руку на пульсе рынка.
🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
Вчера зарелизил Web3 Wizard Helper Chrome расширение для Dune 🥳🥳🥳
Для деталей, если вы веб3 аналитик данных – будет полезно видео и тред в тви.
Бекстейдж и результаты на утро 10 марта:
– Разработка заняла ровно 4 недели (20 дней) фул-тайм работы.
– По времени: 1я неделя – PoC, проверка, что данные по таблицам можно получить, авторизация. 2я неделя – первая работающая версия с версткой, схемой таблицы. 3я неделя – превью данных, попап страница, логгинг, доработки для "реальной жизни". 4я – инструмент поиска сигнатур, правка багов, подготовка к релизу (видео/материалы).
С учетом, что это мой первый серьезный проект на стеке React + Webpack + верстка – нормально.
– В твиттере 11 репостов, 70 лайков, +22 фолловера, хороший фидбек от юзеров, включая Dune CTO и Head of Engineering.
– По количеству установок пока статистики нет.
Что дальше? Наверное, лучше всего будет сделать расширение опенсорсным и оставить его развиваться самостоятельно. Пока прикрутил донаты через крипту, но пока никто денег не прислал 😀 В плане функционала – имеет смысл добавлять новые инструменты, типа поиска по keccak256 сигнатуре метода (то, что прикрутил через API https://www.4byte.directory/). Будем смотреть на трудозатраты и дальнейший фидбек.
Happy data hacking! 🧙♂️
Для деталей, если вы веб3 аналитик данных – будет полезно видео и тред в тви.
Бекстейдж и результаты на утро 10 марта:
– Разработка заняла ровно 4 недели (20 дней) фул-тайм работы.
– По времени: 1я неделя – PoC, проверка, что данные по таблицам можно получить, авторизация. 2я неделя – первая работающая версия с версткой, схемой таблицы. 3я неделя – превью данных, попап страница, логгинг, доработки для "реальной жизни". 4я – инструмент поиска сигнатур, правка багов, подготовка к релизу (видео/материалы).
С учетом, что это мой первый серьезный проект на стеке React + Webpack + верстка – нормально.
– В твиттере 11 репостов, 70 лайков, +22 фолловера, хороший фидбек от юзеров, включая Dune CTO и Head of Engineering.
– По количеству установок пока статистики нет.
Что дальше? Наверное, лучше всего будет сделать расширение опенсорсным и оставить его развиваться самостоятельно. Пока прикрутил донаты через крипту, но пока никто денег не прислал 😀 В плане функционала – имеет смысл добавлять новые инструменты, типа поиска по keccak256 сигнатуре метода (то, что прикрутил через API https://www.4byte.directory/). Будем смотреть на трудозатраты и дальнейший фидбек.
Happy data hacking! 🧙♂️
🔥12❤1👍1
Мой первый open source
Открыл исходный код расширения для Dune.
Интересные чувства, когда потратил месяц своего времени, и шаришь это для сообщества. Посмотрим, как будет (и будет ли) развиваться дальше. Вижу возможное развитие в плане добавление новых тулзов, которые удобно иметь под рукой во время написания запросов. Как пример – поиск по keccak256 сигнатуре метода (сейчас реализован) – когда работаешь с ethereum.traces – полезная штука.
Были мысли добавить AI помощника на GPT-4, но, как будто, ценности большой нет в том, что он будет прямо в Dune окне (можно же переключаться на окно рядом, чтобы задать вопрос).
Еще за неделю сделал:
– Чтобы работало в полноэкранном режиме.
– Для read-only queries (например, из этого списка топ-запросов Dune).
Спасибо сообществу за добрые слова и мотивацию. Движемся дальше, к другому проекту 🚀
Открыл исходный код расширения для Dune.
Интересные чувства, когда потратил месяц своего времени, и шаришь это для сообщества. Посмотрим, как будет (и будет ли) развиваться дальше. Вижу возможное развитие в плане добавление новых тулзов, которые удобно иметь под рукой во время написания запросов. Как пример – поиск по keccak256 сигнатуре метода (сейчас реализован) – когда работаешь с ethereum.traces – полезная штука.
Были мысли добавить AI помощника на GPT-4, но, как будто, ценности большой нет в том, что он будет прямо в Dune окне (можно же переключаться на окно рядом, чтобы задать вопрос).
Еще за неделю сделал:
– Чтобы работало в полноэкранном режиме.
– Для read-only queries (например, из этого списка топ-запросов Dune).
Спасибо сообществу за добрые слова и мотивацию. Движемся дальше, к другому проекту 🚀
👍7🔥2
Последнюю неделю думаю над новым продуктом, ресерчу.
Смотрел Gelato – децентрализованный бекенд для web3.
Бывает у вас такое, что заходите на страницу проекта, и не совсем понимаете, что же он делает? Программисты говорят "просто покажи код". Я такой же – пока не увижу хоть какой-то простой сниппет, мне сложно понять миссию проекта.
Теперь мне в этом помогает ChatGPT. Простой запрос "Please show me some pseudocode on how to work with Gelato" выдал вот такое (картинка). Просто и понятно.
А вообще, Gelato, судя по всему, классная вещь, если вам нужно делать отправку транзакций по расписанию, реагировать на ончейн-события, отправлять gasless транзакции (чтобы юзеру не нужно было платить за газ) – и все это без создания своего бекенда. Если будет реальный опыт – отпишу в деталях.
Смотрел Gelato – децентрализованный бекенд для web3.
Бывает у вас такое, что заходите на страницу проекта, и не совсем понимаете, что же он делает? Программисты говорят "просто покажи код". Я такой же – пока не увижу хоть какой-то простой сниппет, мне сложно понять миссию проекта.
Теперь мне в этом помогает ChatGPT. Простой запрос "Please show me some pseudocode on how to work with Gelato" выдал вот такое (картинка). Просто и понятно.
А вообще, Gelato, судя по всему, классная вещь, если вам нужно делать отправку транзакций по расписанию, реагировать на ончейн-события, отправлять gasless транзакции (чтобы юзеру не нужно было платить за газ) – и все это без создания своего бекенда. Если будет реальный опыт – отпишу в деталях.
👍5🔥1
Если бы я сейчас делал с нуля веб3 приложение на EVM-блокчейне, я бы использовал ThirdWeb SDK (есть для React, Go и проч.), а не Ethers.js.
Очень классно сделано, много низкоуровневых деталей затипизировано и скрыто.
Вот как, например, выглядит получение баланса токена. Не требуется работать с ABI, для всего стандартного есть типизация.
Если провести аналогию с БД, то ethers можно сравнить с SQL запросами, а ThirdWeb SDK – с ORM.
Рекомендую!
Очень классно сделано, много низкоуровневых деталей затипизировано и скрыто.
Вот как, например, выглядит получение баланса токена. Не требуется работать с ABI, для всего стандартного есть типизация.
Если провести аналогию с БД, то ethers можно сравнить с SQL запросами, а ThirdWeb SDK – с ORM.
Рекомендую!
❤7👍2
Где я был эти три месяца?
Произошло столько событий, попробую вспомнить:
1. После удачного проекта расширения для Dune Analytics словил почти двухмесячный "творческий кризис" – не понятно было, чем заняться дальше. Не было большой идеи. Пет-проекты не радовали, не видел в них перспективы.
2. Благодаря удачному стечению цепочки обстоятельств и знакомств залетел в крипто проект Yoki.finance – протокол подписок и рекуррентных платежей – в качество ко-фаундера и CTO. Мы поучаствовали в хакатоне от Polygon, сейчас готовимся к публичному запуску MVP. Заняли 3-е место на хакатоне Dora DAO (но это вряд ли моя заслуга). Общаемся с партнерами, т.к. значительная часть нашего проекта – это B2B. Опыт включал в себя вход в проект при наличии в некотором смысле устаканившейся команды, ее переформатирование, онбоардинг новых людей. Кстати, вот канал моего партнера и CEO проекта Константина: @yokifinance
3. Выбирал (и выбрал) хостинг для проекта, чтобы он был дружественен к части команды из России, а также можно было оплачивать из юрисдикций Гонконг или Дубай. По этим причинам отпали Amazon, Azure, Yandex.Cloud, остановился на Alibaba Cloud и пока все нравится.
4. Настроил CI/CD Next.js фронт части проекта на Github Actions + Bash + Docker compose с максимальной независимостью от Github Actions, чтобы можно было при необходимости перенести на любую другую платформу (например, если захочется Jenkins / Gitlab on premise). По сути, на Github хранятся только настройки, секреты и окружения, все остальное делается bash скриптами. Пока билдим на Гитхабе, т.к. получили год бесплатного Enterprise. Это дает 50 000 билд минут в месяц, что для нас на текущем этапе овердофига.
5. В нашей студии веб-разработки недавно приняли с партнерами важные решения. Одно из них – запустили процесс найма директора. Старый вскоре перейдет руководить новым направлением, и мы ищем, кому передать руководство операционным бизнесом. У нас уже был удачный опыт найма директора, поэтому с перспективой смотрим в будущее.
Так что, web3/крипто из моей жизни не уходит, просто разрастается "в ширину". Буду писать по мере решения различных проблем в более широком формате. Если что-то интересно из тем выше, дайте знать, раскрою в отдельном сообщении/статье.
Let's rock!
@web3dev_notes
Произошло столько событий, попробую вспомнить:
1. После удачного проекта расширения для Dune Analytics словил почти двухмесячный "творческий кризис" – не понятно было, чем заняться дальше. Не было большой идеи. Пет-проекты не радовали, не видел в них перспективы.
2. Благодаря удачному стечению цепочки обстоятельств и знакомств залетел в крипто проект Yoki.finance – протокол подписок и рекуррентных платежей – в качество ко-фаундера и CTO. Мы поучаствовали в хакатоне от Polygon, сейчас готовимся к публичному запуску MVP. Заняли 3-е место на хакатоне Dora DAO (но это вряд ли моя заслуга). Общаемся с партнерами, т.к. значительная часть нашего проекта – это B2B. Опыт включал в себя вход в проект при наличии в некотором смысле устаканившейся команды, ее переформатирование, онбоардинг новых людей. Кстати, вот канал моего партнера и CEO проекта Константина: @yokifinance
3. Выбирал (и выбрал) хостинг для проекта, чтобы он был дружественен к части команды из России, а также можно было оплачивать из юрисдикций Гонконг или Дубай. По этим причинам отпали Amazon, Azure, Yandex.Cloud, остановился на Alibaba Cloud и пока все нравится.
4. Настроил CI/CD Next.js фронт части проекта на Github Actions + Bash + Docker compose с максимальной независимостью от Github Actions, чтобы можно было при необходимости перенести на любую другую платформу (например, если захочется Jenkins / Gitlab on premise). По сути, на Github хранятся только настройки, секреты и окружения, все остальное делается bash скриптами. Пока билдим на Гитхабе, т.к. получили год бесплатного Enterprise. Это дает 50 000 билд минут в месяц, что для нас на текущем этапе овердофига.
5. В нашей студии веб-разработки недавно приняли с партнерами важные решения. Одно из них – запустили процесс найма директора. Старый вскоре перейдет руководить новым направлением, и мы ищем, кому передать руководство операционным бизнесом. У нас уже был удачный опыт найма директора, поэтому с перспективой смотрим в будущее.
Так что, web3/крипто из моей жизни не уходит, просто разрастается "в ширину". Буду писать по мере решения различных проблем в более широком формате. Если что-то интересно из тем выше, дайте знать, раскрою в отдельном сообщении/статье.
Let's rock!
@web3dev_notes
🔥12❤2👍1
Сегодня копал Web3Auth, который сильно упрощает регистрацию криптокошелька для новичка. Сейчас, чтобы создать криптокошелек, требуется установить Метамаск или аналог, записать seed phrase, вот это вот все.
Web3Auth предлагает "web2" подход к созданию кошелька.
Кто подзабыл, то в Ethereum нет как такового "создания кошелька". Off-chain создается случайный 256-битный приватный ключ (если быть точным, то в MM он генерируется на основе seed phrase), потом алгоритмом ECDSA генерируется публичный ключ, из которого получается адрес взятием последних 20 байт keccak256 хэша публичного ключа и прибавлением "0x".
Упрощенно:
Private_Key = random_bits(256)
Public_Key = EDCSA(Private_Key)
Public_Key_Hash = keccak256(Public_Key)
Address = "0x" + Public_Key_Hash[-20:]
И этим Private_Key можно подписывать транзакции от имени Address.
Подход Web3Auth:
1. Пользователь нажимает "Войти":
2. Создается приватный ключ.
3. Ключ делится на 3 части.
4. Части раскидываются – локальная машина, привязка к логину на внешнем сервисе (Oauth) – Google/Twitter/etc, привязка к контрольному вопросу/паролю (можно добавить СМС и много чего еще).
5. При необходимости подписать транзакцию приватный ключ собирается из частей, не сохраняясь нигде целиком.
Каждой из этих трех частей недостаточно, чтобы сконструировать приватный ключ, поэтому утечка одной из них не страшна. И это очень классная фича, ведь, по сути, приватный ключ/seed phrase нигде не хранится отдельно.
У них есть наглядная демка – генерация и восстановление приватного ключа. Подробнее механика работы описана тут. Такая технология позволяет не возиться с установкой кошелька. Можно подписывать транзакции без подтверждений MM, т.к. фронтенд всегда может сконструировать приватный ключ самостоятельно.
Но сразу возникают вопросы:
1. Что мешает авторам dApp проводить нежелательные транзакции от имени пользователя?
2. Как проконтролировать, какие транзакции будет подписывать приложение? (пример с подтверждением allowance, когда приложение может поставить любой allowance без ведома юзера, что создает возможную дыру в безопасности).
3. Как снять деньги с такого кошелька? (Если в приложении будет опция Withdraw, приложение может взять любую комиссию).
То есть non-custodial, но не совсем.
При этом Метамаск три дня назад твитил, что вряд ли seed phrase будет достаточно, чтобы заонбоардить миллиард новых пользователей, намекая на движение в ту же сторону.
Возможно, мы придем к гибридному варианту, когда "продвинутые" будут делать подтверждения, контролируя каждую транзакцию dApp, а "обычные" будут пользоваться упрощенным вариантом. Такие мысли.
А вы что думаете по этому поводу? Есть те, кто регулярно пользуется dApp'ами с Web3Auth входом?
Web3Auth предлагает "web2" подход к созданию кошелька.
Упрощенно:
И этим Private_Key можно подписывать транзакции от имени Address.
Подход Web3Auth:
1. Пользователь нажимает "Войти":
2. Создается приватный ключ.
3. Ключ делится на 3 части.
4. Части раскидываются – локальная машина, привязка к логину на внешнем сервисе (Oauth) – Google/Twitter/etc, привязка к контрольному вопросу/паролю (можно добавить СМС и много чего еще).
5. При необходимости подписать транзакцию приватный ключ собирается из частей, не сохраняясь нигде целиком.
Каждой из этих трех частей недостаточно, чтобы сконструировать приватный ключ, поэтому утечка одной из них не страшна. И это очень классная фича, ведь, по сути, приватный ключ/seed phrase нигде не хранится отдельно.
У них есть наглядная демка – генерация и восстановление приватного ключа. Подробнее механика работы описана тут. Такая технология позволяет не возиться с установкой кошелька. Можно подписывать транзакции без подтверждений MM, т.к. фронтенд всегда может сконструировать приватный ключ самостоятельно.
Но сразу возникают вопросы:
1. Что мешает авторам dApp проводить нежелательные транзакции от имени пользователя?
2. Как проконтролировать, какие транзакции будет подписывать приложение? (пример с подтверждением allowance, когда приложение может поставить любой allowance без ведома юзера, что создает возможную дыру в безопасности).
3. Как снять деньги с такого кошелька? (Если в приложении будет опция Withdraw, приложение может взять любую комиссию).
То есть non-custodial, но не совсем.
При этом Метамаск три дня назад твитил, что вряд ли seed phrase будет достаточно, чтобы заонбоардить миллиард новых пользователей, намекая на движение в ту же сторону.
Возможно, мы придем к гибридному варианту, когда "продвинутые" будут делать подтверждения, контролируя каждую транзакцию dApp, а "обычные" будут пользоваться упрощенным вариантом. Такие мысли.
А вы что думаете по этому поводу? Есть те, кто регулярно пользуется dApp'ами с Web3Auth входом?
👍6❤1
Простите, что опять про ChatGPT, но до сих пор большинство разрабов его не используют, и я не понимаю, почему. Ведь это отличный буст продуктивности.
Одно из неочевидных применений – трансформация данных по заданному алгоритму.
Например, у меня был список пакетов из package.json и нужно было перечислить их имена в одной строке, разделенной пробелами. Конечно, можно потратить несколько минут на работу пальцами, но это не наш метод – см. картинку.
Кстати, у меня уже спрашивали, как я вызываю ChatGPT. Прямо из Chrome, расширение Sider.
Всем эффективного кодинга!
Одно из неочевидных применений – трансформация данных по заданному алгоритму.
Например, у меня был список пакетов из package.json и нужно было перечислить их имена в одной строке, разделенной пробелами. Конечно, можно потратить несколько минут на работу пальцами, но это не наш метод – см. картинку.
Кстати, у меня уже спрашивали, как я вызываю ChatGPT. Прямо из Chrome, расширение Sider.
Всем эффективного кодинга!
👍6❤1
Последний месяц пилим пилотный проект для клиента по приему подписок в крипте (yoki.finance). Go, NestJS, проектирование базы и API, согласования между членами команды – разработческая рутина, но интересная и бодрая. Вместе с тем, это пока не сильно "вебтришно". Когда запилим интересное, то поделюсь. Планируем спонсирование транзакций на ERC 4337, чтобы с газом людей не напрягать. Мелочь, а приятно должно быть.
В процессе работы возникли идеи потенциальных опенсорс проектов. Первая – простая альтернатива WalletConnect/Web3Modal (популярная абстракция, чтобы разные криптокошельки подключать), который недавно заблокировал (а потом через 3 дня разблокировал) пользователей из РФ, но осадочек-то остался. Забавно, что называющий себя "децентрализованным" WalletConnect представляет собой клиентскую библиотеку, обращающуюся к собственному уникальному облачному API.
Вторая идея – упрощенный вариант gelato automate/web3 functions для автоматизации повторяющихся веб3 задач, опять же self-hosted, а не как у gelato. События последних пары лет показали, что децентрализация рулит, и не только для веб3, поэтому я все больше придерживаюсь такой концепции, выбирая децентрализованные решения где только возможно.
В процессе работы возникли идеи потенциальных опенсорс проектов. Первая – простая альтернатива WalletConnect/Web3Modal (популярная абстракция, чтобы разные криптокошельки подключать), который недавно заблокировал (а потом через 3 дня разблокировал) пользователей из РФ, но осадочек-то остался. Забавно, что называющий себя "децентрализованным" WalletConnect представляет собой клиентскую библиотеку, обращающуюся к собственному уникальному облачному API.
Вторая идея – упрощенный вариант gelato automate/web3 functions для автоматизации повторяющихся веб3 задач, опять же self-hosted, а не как у gelato. События последних пары лет показали, что децентрализация рулит, и не только для веб3, поэтому я все больше придерживаюсь такой концепции, выбирая децентрализованные решения где только возможно.
👍4🔥1
Еще один пост про SuperDAO (простите, побуду немного стартапером).
Довольно хайповый проект, стартовавший в 2021ом как платформа для создания и поддержки DAO (децентрализованных организаций), несколько дней назад закрылся. Юрий Лившиц, фаундер, любезно поделился с сообществом опытом, что мне показалось очень занятным. Интересующимся рекомендую ознакомиться, полезная информация также в pre-seed/seed memo (понять, как делается позиционирование для инвестора, сравнение с другими проектами). Запали две мысли:
1. В 2021ом было популярно мнение, что крипто/веб3 изменит разные отрасли (игры, недвижимость, спорт, программы лояльности и тд), люди из разных отраслей будут создавать DAO, чего в итоге не случилось, только крипто + финансы оказалось рабочей связкой.
2. Клиенты, которые использовали DAO для своих компаний, не получали лучших операционных метрик по сравнению с традиционным (еще и более понятным) способом организации юрлица.
В итоге, в такой рыночной коньюнктуре, SuperDAO не мог построить устойчивый бизнес и ребята решили закрыть проект. Хочу пожелать им удачи и уверен, что следующий проект у них точно получится – они супер крутые.
Довольно хайповый проект, стартовавший в 2021ом как платформа для создания и поддержки DAO (децентрализованных организаций), несколько дней назад закрылся. Юрий Лившиц, фаундер, любезно поделился с сообществом опытом, что мне показалось очень занятным. Интересующимся рекомендую ознакомиться, полезная информация также в pre-seed/seed memo (понять, как делается позиционирование для инвестора, сравнение с другими проектами). Запали две мысли:
1. В 2021ом было популярно мнение, что крипто/веб3 изменит разные отрасли (игры, недвижимость, спорт, программы лояльности и тд), люди из разных отраслей будут создавать DAO, чего в итоге не случилось, только крипто + финансы оказалось рабочей связкой.
2. Клиенты, которые использовали DAO для своих компаний, не получали лучших операционных метрик по сравнению с традиционным (еще и более понятным) способом организации юрлица.
В итоге, в такой рыночной коньюнктуре, SuperDAO не мог построить устойчивый бизнес и ребята решили закрыть проект. Хочу пожелать им удачи и уверен, что следующий проект у них точно получится – они супер крутые.
👍4
Почему вам не нужен account abstraction (AA) если вы не делаете свой кошелек
Про AA в двух словах. Есть два подхода к кошелькам в Ethereum:
1️⃣ традиционный – Externally Owned Accounts, EOA – пара адрес/приватный ключ, который невозможно поменять. Кошелек инициирует транзакции, подписывая их приватником. Но чтобы отправить транзу, нужен газ. Если приватник засветился или потерялся, то туши свет. Такие в целом минусы.
2️⃣ современный – Smart Contract Accounts (SCA). Это когда создается кошелек – смарт контракт, и на него закидываются средства. И вот тут уже можно прикрутить разные интересные штуки, типа multisig (чтобы отправить транзу, нужны например, подписи двух его владельцев), или можно авторизацию по email прикрутить. А вот чтобы отправить транзакцию от имени этого смарт-контракта, как будто от EOA, и придумали AA. Сейчас стандарт ERC4337.
Осенью мы в Yoki начали разработку пилота по приему платежей для клиента. В то время я думал, как прикрутить AA, чтобы улучшить качество продукта. А именно – у нас решение некастодиальное – чтобы газ спонсировать для клиента, или чтобы для оплаты газа было достаточно купленного через fiat on ramp стейблкоина, например. Думал про создание смарт аккаунта, чтобы юзер закидывал туда средства на подписки.
Далее, после раздумий и обсуждения с партнером, стало понятно, что юзеры побоятся отправлять средства на смарт-контракт, созданныйпока никому не известным протоколом Yoki finance.
❗️Следовательно, чтобы решить часть задач, лучше всего сделать, чтобы наш dApp бесшовно работал со Smart Contract Wallets, т.е. кошельками на основе SCA. Соответственно, мы имеем плюшки типа мультисига, логина по email, оплату газа любым токеном, fiat-on-ramp, предоставляемых привычным юзеру кошелькоми все это в нашем dApp как бы
Я тестил Safe и Ambire, и остановился на последнем, т.к. там есть оплата газа стейблкоинами, что мне и нужно было для тестирования приложения. Пока тестируем на нем, смотрим как работает, про AA не вспоминаем. Такие дела.
P.S. Если вам зачем-то понадобится информация про AA, то вот тут люди целую гитхаб репу запилили.
Про AA в двух словах. Есть два подхода к кошелькам в Ethereum:
1️⃣ традиционный – Externally Owned Accounts, EOA – пара адрес/приватный ключ, который невозможно поменять. Кошелек инициирует транзакции, подписывая их приватником. Но чтобы отправить транзу, нужен газ. Если приватник засветился или потерялся, то туши свет. Такие в целом минусы.
2️⃣ современный – Smart Contract Accounts (SCA). Это когда создается кошелек – смарт контракт, и на него закидываются средства. И вот тут уже можно прикрутить разные интересные штуки, типа multisig (чтобы отправить транзу, нужны например, подписи двух его владельцев), или можно авторизацию по email прикрутить. А вот чтобы отправить транзакцию от имени этого смарт-контракта, как будто от EOA, и придумали AA. Сейчас стандарт ERC4337.
Осенью мы в Yoki начали разработку пилота по приему платежей для клиента. В то время я думал, как прикрутить AA, чтобы улучшить качество продукта. А именно – у нас решение некастодиальное – чтобы газ спонсировать для клиента, или чтобы для оплаты газа было достаточно купленного через fiat on ramp стейблкоина, например. Думал про создание смарт аккаунта, чтобы юзер закидывал туда средства на подписки.
Далее, после раздумий и обсуждения с партнером, стало понятно, что юзеры побоятся отправлять средства на смарт-контракт, созданный
❗️Следовательно, чтобы решить часть задач, лучше всего сделать, чтобы наш dApp бесшовно работал со Smart Contract Wallets, т.е. кошельками на основе SCA. Соответственно, мы имеем плюшки типа мультисига, логина по email, оплату газа любым токеном, fiat-on-ramp, предоставляемых привычным юзеру кошельком
Я тестил Safe и Ambire, и остановился на последнем, т.к. там есть оплата газа стейблкоинами, что мне и нужно было для тестирования приложения. Пока тестируем на нем, смотрим как работает, про AA не вспоминаем. Такие дела.
P.S. Если вам зачем-то понадобится информация про AA, то вот тут люди целую гитхаб репу запилили.
👍4
После прочтения текста выше могло показаться , что мы интегрируемся только с Ambire. Нет, будем работать с любым Smart Contract Wallet, поддерживающим WalletConnect (лидеры все поддерживают). Нужно только убедиться , что все сделали правильно, и интеграция работает.
👍1
ERC2612 и dApp UX
Тут разраб из твиттера запилил сервис на Ethereum для получения газового токена, если у вас его нет. Например, купили USDC на бирже, перевели на кошелек, воспользовались сервисом и счастье – есть чем за газ платить.
Хорошая идея! Начал разбираться, как реализовано. Оказалось, стандартом ERC2612, который позволяет делать gasless approvals. В двух словах, юзер оффчейн подписывает "документ" со сроком действия, который криптографически подтверждает разрешение снятия (аппрув) контрактом-ботом определенного количества токенов с дедлайном. Далее этот документ-разрешение передается боту, который вызывает
Классное решение! – подумал я. Стало интересно, какие популярные токены так могут. Сделал простейшую аналитику на наличие
Негусто! – почесал репу. И запилил прототип, посмотреть как работает на примере Polygon USDC.e, который был у меня кошельке и… потратив чуть ли не день, с удивлением обнаружил – чтобы корректно поддерживать ERC2612, токен должен корректно реализовывать и EIP712, а с этим у USDC.e проблема. Он пытается его реализовать, но domain separator конструируется не по стандарту, соответственно, подпись, сделанная кошельком по EIP712, не проходит. Получилось допилить ethers.js, чтобы принимал захардкоженный domain separator, который можно дернуть с токена, но на UI это, по видимому, невозможно… В итоге все заработало на обычном USDC, поэтому из таблицы часть "зеленых" – это никакие не зеленые, а прикидывающиеся зелеными (тема отдельной проверки). Если будет интерес, то напишу статью на эту тему.
Прочитал в Сети мнение, что в Эфире только ERC20 нормально сделан, а остальное стагнирует, в том числе из-за легаси. Интересно, есть ли не-EVM блокчейны, где функции для UX побогаче, с учетом полученного на Ethereum опыта? Думаю, настало время попробовать что-то еще.
Не одним эфиром, как говорится.
Тут разраб из твиттера запилил сервис на Ethereum для получения газового токена, если у вас его нет. Например, купили USDC на бирже, перевели на кошелек, воспользовались сервисом и счастье – есть чем за газ платить.
Хорошая идея! Начал разбираться, как реализовано. Оказалось, стандартом ERC2612, который позволяет делать gasless approvals. В двух словах, юзер оффчейн подписывает "документ" со сроком действия, который криптографически подтверждает разрешение снятия (аппрув) контрактом-ботом определенного количества токенов с дедлайном. Далее этот документ-разрешение передается боту, который вызывает
permit
у токена (дает аппрув, проверяя документ), снимает нужное количество с кошелька, меняет на газовый токен, берет свою комиссию.Классное решение! – подумал я. Стало интересно, какие популярные токены так могут. Сделал простейшую аналитику на наличие
permit
в коде, см. картинку.Негусто! – почесал репу. И запилил прототип, посмотреть как работает на примере Polygon USDC.e, который был у меня кошельке и… потратив чуть ли не день, с удивлением обнаружил – чтобы корректно поддерживать ERC2612, токен должен корректно реализовывать и EIP712, а с этим у USDC.e проблема. Он пытается его реализовать, но domain separator конструируется не по стандарту, соответственно, подпись, сделанная кошельком по EIP712, не проходит. Получилось допилить ethers.js, чтобы принимал захардкоженный domain separator, который можно дернуть с токена, но на UI это, по видимому, невозможно… В итоге все заработало на обычном USDC, поэтому из таблицы часть "зеленых" – это никакие не зеленые, а прикидывающиеся зелеными (тема отдельной проверки). Если будет интерес, то напишу статью на эту тему.
Прочитал в Сети мнение, что в Эфире только ERC20 нормально сделан, а остальное стагнирует, в том числе из-за легаси. Интересно, есть ли не-EVM блокчейны, где функции для UX побогаче, с учетом полученного на Ethereum опыта? Думаю, настало время попробовать что-то еще.
Не одним эфиром, как говорится.
👍2🔥2❤1
Web3 разработчик
ERC2612 и dApp UX Тут разраб из твиттера запилил сервис на Ethereum для получения газового токена, если у вас его нет. Например, купили USDC на бирже, перевели на кошелек, воспользовались сервисом и счастье – есть чем за газ платить. Хорошая идея! Начал…
Запоздалый анонс. Кто пришел не с Хабра – тему с ERC2612 я раскрыл в статье там.
Так что, если хотите подробнее узнать, как работают gasless approvals и выдача разрешений – приятного чтения.
Так что, если хотите подробнее узнать, как работают gasless approvals и выдача разрешений – приятного чтения.
Хабр
ERC-2612 и юзабилити Ethereum dApp
Бороздя просторы Твиттера/X, увидел сервис smolrefuel.com , ( тви ), который решает проблему получения газового токена на Эфир-сетях, если у вас его нет, а есть выведенный, например, на кошелек с...
❤1