💎💎💎 Дальше мы прокачаем наше общение с базой данных с помощью NocoDB. Поставить можно по инструкции с сайта или прям из coolify. Просто вешаем на какой то порт и ходим до интерфейса по этому порту или мапим нужный поддомен через nginx pm. По одному инстанусу noco на каждую БД.
Что делает NocoDB?
- Позволит вам управлять вашей БД через отвратный material ui интерфейс (создавать, импортировать, менять таблицы, отображать в разных представлениях и т.д)
- Разграничение прав пользователей и доступ к БД по токенам авторизации
- 🔥 Позволяет клепать формы по типу гугл таблиц для создания записей в таблице. Т.е можно наклепать таких форм и дать какой-нибудь девочке задачу наполнять тебе БД данными не переживая что она уничтожит базу, без необходимости делать интерфейсы самому.
- 🔥🔥 Позволит подключаться к вашей БД через api nocodb из приложений что это поддерживают (например n8n), а так же через SDK для nodejs (например). Это по сути делает ваши БД и таблицы универсальными т.к вам вообще не надо думать о разнице между условным mysql и postgres, писать SQL запросы и т.д.
- 🔥🔥🔥 Позволит общаться с вашей БД как с обычным REST API. Т.е фактически превращает любую SQL БД в нечто подобное airtable/firebase. Т.е, ты будучи беспомощным фронтед разрабом можешь создать себе базу данных и
общаться с ней напрямую без необходимости писать бекенд (пока не упрешься в какую то сложную задачу, конечно).
💎💎💎💎И самое сладкое, n8n. Эта штука позволит вам автоматизировать какое-нибудь безумие, создав какой то пайплайн из действий, который будет запускаться через заданный период времени.
Например:
Каждые 10 минут обращаемся к какому то api и получаем список каких нибдуь монеток, чекаем среди них те что нет в нашей БД, добавляем в базу новые записи и отправляем уведомление в телеграм.
Т.е возможности ограничены фактически вашей фантизией и навыками писать небольшие кусочки кода.
====
В целом этого достаточно что бы не думать о бекенде и прочей инфраструктуре, запилить себе какой-нибудь проектик на реакте и играться только с ним. При этом полностью на своей инфраструктуре и с полным контролем всего и вся, когда какого-нибудь vercel становится недостаточно, а разбирваться с кучей технологий совсем не хочется.
Удачи!
Йо! Полтора месяца прокрастинации, десятки консультаций в ЛС и огромное желание написать полезный материал для начинающих, не призывающий "вкладывать в крипту все деньги, торговать на фьючерсах и абузить StepN" наконец подошли к финалу.
Статья получилась технической, с примерами кода и ОГРОМНОЙ подборкой материалов для старта.
💬 Как попасть в Web 3.0, где брать знания и в чем различие? Вы всё так же пишите на React или используете новые фронтенд фреймворки?
Как фронтендерам обновиться из Web 2.0 в Web 3.0
Ну что парни, давно не виделись, рассказать чем я занимался последние полтора месяца?
Я тут подустал от всех этих минтов, взлетов, крушений и в целом окончательно для себя осознал что вся крипта по большей мере скам (что немного поменяло моё отношение к всему происходящему тут). Но технологии то я люблю, поэтому я ударился в еще более глубокое изучение солидити, а что бы не скучать взял заказ на разработку контракта для простой игры (ну вы понимаете основной тип игр в крипте 🙂 )
Паралельно прилетел небольшой заказик сделать ревью контракта для другого схожего проекта, если интересно то можете посмотреть как я его разнес в пух и прах тут.
Касаемо заказа.
Контракт получился сложный, комплексный, оптимизированный, максимально документированный и максимально покрытый тестами, едва уложился в ограничение сети на размер, т.к общий размер вышел в 21.7Кб (EIP-170 накладывает ограничение на размер контракта в 24.5Кб). Тестировать его было крайне интересно, хотя бы потому что для полноценного теста мне было необходимо загонять в контракт по 100 кошельков, а потом сверять балансы каждого и т.д. Кодить ещё интересное, ведь солидити накладывает кучу ограничений и требует баланса компактности и оптимизации кода, что бы и газ не жрался и логика не падала и был доступ к максимуму возможных данных при минимальных возможностях для хранения этих данных. Всё как я люблю. Контракт сделал обновляемым что бы можно было в него внедрить бекдур внести багфиксы в случае проблем. Пригодилось кстати, т.к заказчик спросил что будет если изменить систему выплат (в более профитную для участников сторону), так как это поможет привлечь больше рекламных кампаний, а для этого изменения пришлось менять некоторые формулы. Было немного нервозно обновлять живой работающий контракт.
Кстати у меня скопилась куча ну очень полезных ссылок по самым острым проблемам в солидити + несколько супер полезных сервисов и утилзов о которых я хочу расскзаать вам, так что в ближайшее время ждите пачку ссылок.
Но я хотел бы поговорить не о коде, а о команде и людях. Когда я брал заказ - я сразу сказал что не хочу заниматься фронтендом и моя часть - контракт и помощь в интеграции. Спросил заказчика что за команда будет делать весь проект и он заверил меня что люди проверенные, опытные в web3, их там кто-то посоветовал и всё точно будет чётко. Хорошо, говорю я, ведь мне не хотелось бы в в последний момент все переделывать за какими то джунами. К сожалению это стало пророчеством и в целом весь процесс напоминал какой то п**ц, так что я пожалуй напишу об этом отдельную историю, ждите пост.
А пока, мы в срочном порядке исправляли неровности после запуска и вот наконец-то сегодня, на 3й день я могу с увереностью сказать что с кодом всё чётко и ничего не умрёт в самый ответственный момент.
Заказчик закупает рекламу и видимо успешно, т.к сегодня открывался пул ценой в 4.4бнб и заполнился за минуту (я не успел, хах). Возможно часть из вас уже слышала о проекте, т.к я уже получал скрины от знакомых людей кто был в теме чем я занят)), но название светить не буду.
В ближайшее время ждите посты, постараюсь порадовать интересной/полезной инфой (давно пора).
Всех люблю, всех обнял ❤️💛🤍💙
В идеале для таких игр надо поднимать собственную ноду (а лучше майнеров), хотя очевидно что это не спасёт, но по крайней мере можно сильно срезать задержки на общении между вашим провайдером и rpc. Но надежность маленькая, видимо гораздо проще просто угадывать газвар.
А что-бы не терять на отклонившихся транзах можно кидать транзы через флешботс, поэтому на следующий день я решаю добить флешботс версию. В тестах работает неплохо, но в паблике… Люди говорят флешботс требует на 40% газа (гвей) больше чем для обычной транзакции. Я отправил транзу с гвей 100 в момент когда базовый прайс был около 60 и оно не смайнилось за более чем 10 блоков, устал ждать, отменил. По наблюдениям ребята которые успешно проходят ставят газ в 2-3 раза выше достаточного. Походу флешботс так же отлетает для меня и лучше на него сильно не расчитывать.
💩 Но вчера ночью я реально очень жидко с подливой обосрался 💩
Вылез на радаре очень гемный гем. Сейл каких то лимонов, прайс 0.5, флур ~2, капа 500шт. На паблик остается примерно 100-150 (за два часа до сейла админ ублюдок поменял вайтлист и сминтил около 50шт, уверен себе и друзьям, так что нам осталось ~90шт).
Интерес этого сейла в том что чуваки для паблика решили использовать merkleTree вместо простых сигнатур для защиты от ботов.
Короч как это работает: Есть какие-то данные (например список адресов). Из них строится некий граф, где конечные элементы графа это сами адреса. Алгоритм позволяет доказать что какой то адрес содержится в этом графе без необходимости знать обо всех элементах этого графа. Нужен только хэш всего дерева (root), хеш искомого элемента (leaf) и массив хешей “пруфов” (proofs).
Причем в контракт надо было передать сразу два пруфа. Один строится по массиву неких “пропусков”, которые были зашиты в коде сайта. Второй строится от твоего адреса, но дерево содержит еще кучу мусора, однако в контракт передается сам root. Т.е можно собрать любое дерево где будет твой адрес и он пройдет. Я собрал дерево из одного элемента, в таком случае root == leaf а список пруфов пустой. В теории это еще и газ экономит (по сравнению с минтом через сайт, где в контракт передаются лишние данные).
В общем собрал я все данные, протестил в тестнете и принялся писать вокруг этого кода упрощенную версию минтилки. Моя актуальная версия слишком сложная т.к умеет работать в 3 режимах включая фронтран + ускорение транзакций, считает газ хитрым ораклом из мемпула и т.д. Захотелось сделать версию сильно проще и очевиднее. Где-то за час до сейла все было готово, десяток раз протестировано и готово к запуску. И вот тут я ловлю какой то лютый баг, код тупо падает. Правлю, еще раз тестирую в тестнете, откатываю все константы к паблику и запускаю. Начинается минт, а мои транзы не проходят с ошибкой “неправильная сумма”. Твою ж мать, я когда искал баг переопределил value не в конфиге, а прям в коде который вычисляет хеши для дерева и забыл удалить эту строчку. Лютейший фейл, т.к по газу я точно прошел бы и поимел профит в пару эфирчиков.
_
Такие дела, не будь как я 🤍💙🤍
По поводу поста выше есть небольшой напряг, я не очень понимаю зачем так через жопу все делать. Короч я вчера попробовал пополнить баланс через tether, и вот что:
🚸 Во первых, у ребят крайне кривой TG бот, который постоянно теряет навигацию и выкидывает то в главное меню, то просто в рандомные разделы где ты до этого был.
🚸 Во вторых, кошелек для пополнения общий, на нем лежит около 250к баксов. И ты просто скидываешь на него деньги, а им отсылаешь хеш транзакции. Предварительно бот спрашивает на какую сумму ты собираешься пополнить. Так вот это полный бред, я абсолютно не понимаю как они верифицируют транзакции, если только не вручную, потому что любой чел может сидеть обновлять тронскан, ловить транзакции от людей и вбивать себе хеши, типа пополнил баланс.
Короче спустя где то 20 часов мои 12 баксов не дошли. Бот пишет что для новых юзеров нужно ждать до 3х суток, ок. Проблема что я указал что хочу получить $14, а отправил $11.93 т.к скидывал с капиталиста на котором зависли эти доллары, а он взял конскую комиссию за вывод. С другой стороны дружище (которого я вижу каждый день и у меня нет оснований ему не доверять) закинул чуть больше $200 и получил их примерно через 3 минуты (причем указал что вводит 200, а скинул чуть больше).
🚸 В третьих, у карт судя по всему подключен овердрафт, т.к я добавил карту в гпей и гугл списал и тут же вернул 1 рубль для проверки. А за операции в других валютах чуваки берут комиссию $0.3, в итоге у меня теперь минус на счету 🤦
🚸 В четвертых, под капотом они используют stripe. Это примерно как пейпал, или яндекс-деньги (юкасса), или робокасса, только очень популярная в америке. Грубо говоря почти все сервисы которые берут с вас деньги онлайн скорее всего берут его через страйп. Так вот у страйпа есть апи для выпуска виртуальных (и вроде даже физических) “white-label” карт. Но получить это апи нельзя, нужно написать им письмо почему для твоей компании это важно. Компания в котороя я работаю тоже использует страйп и у нас был хитрый план оформить себе таких карт и спокойно использовать (еще бы пластик с логотипом выпустили, ну кайф же). Но страйп нам отказал, сказал так нельзя. Я это к тому что весь сервис bankoff может быть закрыт по щелчку пальца какого-нибудь менеджера из stripe. Например когда тысячи ру-абузеров побежат выпускать карты и страйпу станет интересно что это за фигня происходит, и окажется что bankoff нарушает какие-то правила.
Короче если используйте, то используйте с осторожностью, хранить на этом сервисе суммы большие чем вы готовы потерять я бы не рекомендовал.
А я вот под сегодняшний матч криптанов в CS GO писал смарт-контракт для создания и контроля за ставками. Дальше к нему была идея сделать какой-то простенький сайт для взаимодействия с смарт-контрактом. Но к сожалению не успел, контракт более-менее закончил, а сайт точно не успел бы при всем желании. Простити 🥹
Читать полностью…Исключительно моё личное видением того что важно чтобы стать хорошим программистом 🤓
Надеюсь вам будет интересно и полезно. Делитесь с друзьями, я буду очень признателен ❤️
Осторожно, очень много букв.
https://telegra.ph/YA-ochen-hochu-progat-02-18
Поднял сейчас себе свой VPN для семьи, через рабочую виртуалку, делюсь шагами как сделать так же. На самом деле пацаны вообще ребята, сделали скрипт который всё просто идеально поднимает и думать совсем не надо, а сложности могут возникнуть только если совсем нет опыта работы с линуксом.
Подробно расписывать не буду, чисто ссылками, итак:
1. Как-то добываем, покупаем (если придумаете как оплатить) или берем бесплатную (если кто даст) линукс машину, дедик, виртуалку, энивей. Подойдет любая убунту, дебиан, центос, практически не имеет значения. Важно только параметры сети и местоположение сервера (очевидно не в СНГ). Записываем адрес сервера, подключаемся по SSH.
2. Выдумываем PSK key, login, password:
PSK генерим по инструкции (https://cloud.google.com/network-connectivity/docs/vpn/how-to/generating-pre-shared-key)
Логин и пароль выбираем какой нам нравится, например test / test
Записываем эти данные куда-нибудь.
3. Устанавливаем по мануалу (https://github.com/hwdsl2/setup-ipsec-vpn#installation):wget https://git.io/vpnsetup -nv -O vpn.sh
sudo VPN_IPSEC_PSK=‘Наш PSK' \
VPN_USER=‘логин’ \
VPN_PASSWORD=‘пароль’ \
sh vpn.sh
Если возникает вопрос почему не в докере, то вот (https://github.com/hwdsl2/docker-ipsec-vpn-server)
По окончанию процесса оно выдаст кучу данных, в т.ч параметры подключения и пути до файлов .sswan, .mobileconfig . Файлы скачиваем, данные копируем куда-нибудь (как скачать файлы с сервера гуглите по запросу “Download file from ssh” для вашей ОС. Можно использовать sftp или scp, но если винда то я хз, не видел винду с выхода 7-ки)
4. [Как ни странно самое сложное] Настраиваем клиенты (ваши роутеры, телефоны, маки и т.д), инструкции тут (https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients.md)
Простыми словами ищите:
Тип подключения: L2TP / IPSec
Вбиваем логин, пароль, PSK
Ищем галку по типу “Использовать для всех подключений” или “Подключаться по требованию”
4.1. Если вам не повезло и у вас Android 12 и выше или какая-то другая причина не использвать L2TP, то настраиваем IKEv2 тип подключения по мануалам отсюда (https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md), т.е используя .sswan файл
Для этого понадобятся скачанные файлы в п.3
4.2. На самом деле на OSX / iOS может проще так же через .mobileconfig файл настроить, по крайней мере не надо будет ничего вводить руками
В целом всё, если устройство подключилось, то все должно работать и все ресурсы открыавться как положено 😉Всем мира! (хз незаконно вроде так говорить теперь)
А теперь давайте дружно в комментариях накидаем список p2p обменников, кроме бинанса 🙏🙏🙏
Читать полностью…Я кстати как то писал авторегистер кошельков под Near Network, в принципе не жалко поделиться кодом, там нет никаких секретных разработок 😂
В Near для регистрации кошелька его надо активировать, пополнив баланс минимум на 0.1, однако после активации почти весь баланс можно перевести на другой кошелек. Соответственно если взять 1 нир, создать кошелек и перевести на него 0.99 нир, затем от имени нового кошелька создать еще кошелек и перевести туда 0.98 нир и т.д рекурсивно, то можно довольно дешево нагенерить кучу кошельков. Затраты только на газ + на балансе должно оставаться какое то количество что бы покрывать “хранилище”. В целом на 5 кошельков в тестнете уходило 0.04 нир.
Не знаю кому это может пригодиться, а еще не уверен что код вообще запустится, т.к запускал я его давным-давно, но может как пример работы с нир кому будет полезно. За качество не ручаюсь, потому что делал для себя на коленке за пару часов. Архив в комменте к посту.
П.с. Сейчас вычитываю статью про вход в кодинг, скоро опубликую 🤓
Так ребят внимание, есть такой крутой сервис, позволяет вообще изян делать собственных ботов без сильного задротства. Самое классное что в списке готовых рецептов есть много полезных штучек интересных именно нашему крипто-брату. Ну например мониторинг коллекции на опенси с отправкой уведомлений о продажах в телеграм и т.д.
Не реклама, просто сервис правда полезный, пользуйтесь: https://app.boto.io
После нагенерил сигнатур для прода и оставалось только ждать открытия паблика, но из-за постоянных задержек и переносов я решил заняться доработкой минтилки, итого я сделал:
1️⃣ Фронтран режим с отслеживанием транзакции овнера и ускорением моей транзы если транза овнера получила конфирм, а моя не получила в этом же блоке
2️⃣ Расчет стоимости газа по последним транзакциям в пендинге (кстати кто-то постоянно забивает сеть транзами с очень низким газом, пришлось их фильтровать)
3️⃣ Режим минта по появлению хедера блока с временем больше указанного (запуск по таймеру короч)
4️⃣ Безопасный режим с эстимейтом транзы каждые N мс и запуск настоящей транзы как только эстимейт перестал падать
5️⃣ Режим минта по нажатию enter
6️⃣ Режим минта “сейчас”. Мусор, т.к код слишком долго стартует.
7️⃣ Многопоточность. Это причина по которой код долго стартует, т.к он написан на TS и ему надо сперва собрать код. Подозреваю что можно ускорить если использовать кластер вместо спавна процессов или сперва собирать проект и запускать уже собранный. Зато можно заводить кучу кошельков и с разными параметрами газа, ускорения и прочего для каждого ключа.
И вот наступает день X. Так как сигнатуры я нагенерил неделю назад, перед сейлом проверил что сигнер в контракте тот же и сигнатуры сработают, радуюсь что все получится, грущу что опять боты все заберут, запускаю фронтран режим с ускорением и жду. И он срабатывает за пару минут до начала и транза фейлится, WTF. Тварь, кто это сделал, кто кинул транзакцию setSaleState, я же не учел что надо строго проверять кто отправитель транзы 🤦. В итоге минтилка тригерится и пытается минтить на каждую транзу с нужным именем и значением, вне зависимости от того кто ее отправляет. Я слишком верю в людей, мысли не было что кто-то будет так шутить, они же просто теряют деньги на газе. Времени дописывать проверки нет, две минуты до сейла, перезапускаю, замечаю что кроме меня есть еще один дебилушка с такой же проблемой и еще один просто буйный (слал в каждый блок по транзакции и терял с каждой по 10$ на неудаче). А дальше оказалось что сайт лежит, минт закрыт, анонсов нет, время уже 20:07, а какие то ублюдки уже в четвертый раз кидают метод setSaleState и шатают мои нервы (и тратят свой и мой газ на неудачные транзы, но благо там копейки). Я все же в панике дописываю проверку на отправителя, перезапускаю минтилку на дедике и еду домой т.к из офиса скоро выгонят. Пока ехал они выкинули пост что из-за ботов переносят сейл на пару часов. Класс. Я так понял им заддосили апи не подготовившие сигнатуры заранее, т.к сайт вроде работал, но кнопки подключения и пр. не работали. После переноса они просто перемешали вопросы и ответы, подобрать не составило труда. Этим они только все усугубили и дали время на подготовку оставшимся ботоводам. Но за 5 минут до сейла таки поняли как налажали перенесли еще на сутки, и вот тут стало действительно интересно.
Во первых они прикрутили клаудфлейр и запрос сигнатур отваливался с ошибкой 403 (cf1020). Но это я умею обходить, писал об этом пост в начале. Но ни одна вариация ответов к ID не подходит, а значит либо изменились ответы, либо изменилось сообщение (логичнее и проще чем поменять 30 картинок с вопросами). Сайт не обновляют, а сигнер в контракте таки изменился и мои сигнатуры протухли. Дописал код который загрузит данные сигнатур и сразу автоматом обновит конфиг, а в минтилку дописал логику вотча конфига и обновления параметров без перезапуска. Нужны только правильные параметры, а для этого нужно увидеть свежий код сайта. За 5 минут до начала надеюсь что сайт обновится и я успею дернуть живительную инфу. Хрен там, код сайта не менялся даже когда я увидел успешные транзации в эзерскане (возможно балансировщик и для каких то серверов релиз прошел быстрее).
Обидно только одно, я такую совершенную минтилку изготовил, она разве только кофе не умеет заваривать, а испробовать ее не могу из-за таких вот защит. Терн уже написал что к чему, но я возможно чуть позже опишу подробнее что происходило с этим сейлом и как я к нему готовился)
Читать полностью…Вот вам пацаны макет в котором все ответы для котов.
Нажимаем на первый символ и видим все картинки начинающиеся с этого символа. Кнопка R возвращает на главный экран. Возможно так получится быстрее чем глазами решать. За картинки спасибо мне, а макет сделал товарищ.
https://www.figma.com/proto/n6zAhOf7bMy5TtnpdQM9sh/Untitled?page-id=0%3A1&node-id=2%3A475&viewport=280%2C48%2C1&scaling=min-zoom&starting-point-node-id=2%3A475
Небольшая заметочка.
CoolCats сделали гениально, итак господа расчитывающие на паблик раунд, готовьтесь что вам прийдется сперва собрать пазл из картиночек, всего 30 таких пазлов, вам выпадет рандомный по логике Math.floor(30 * Math.random() + 1)
, ну т.е буквально любой в диапазоне от 1 до 30. Дальше надо ввести ответ в инпут и подписать сигнатуру, после чего уже минт. Пазлы возможно еще поменяют, вот пример одного такого ребуса.
Вот такой подход к минту мне нравится. И от ботов какая-никакая защита, и народу развлечение. Молодцы ребята. 👍
Кто первый разгадает ребус и напишет ответ в комментариях - будет первым и сможет этим гордиться 😆
Минт для вайтлиста перенесли на завтра, паблик видимо будет еще позже, решают какие то проблемы. Вчера зачем-то деплоили контракты в тестнете каждые 20 минут и ничего с ними не делали, так и не понял в чем прикол, видимо встретили какие то непреодолимые трудности 😼
У меня пока всё.
Привет ребят. Хочу накинуть вам полезных Nocode / Lowcode решений, которые могут помочь вам в разработке каких то своих сервисов или ботов. Отчасти это заметки для меня самого.
👩💻 Сначала я рекомендую купить себе мак или накатить уже наконец линукс на свой десктоп или хотя бы виртуалку. Работать с линуксом прийдется достаточно. Хотя на крайний случай на винде вроде как встроена хорошая линукс подсистема, стоило бы включить хотя бы её. Иначе скорее всего твой первый вопрос будет “Твою мать, а как к ssh то подключиться?”.
🗄 Далее покупаем себе виртуалку на какой нибудь убунте (выберите свой любимый дистрибутив), конфига 2 ядра, 4 гб должно хватить для старта, улучшить парамерты виртуалок как правило можно в любой момент.
👾 Сразу можно купить домен, что бы не думать об IP-адресах. В настройках сети виртуалки находим что то вроде “Публичный DNS”, добавляем купленный домен (зону), копируем NS адреса и указываем их там где покупали домен. Далее добавляем A запись для всех поддоменов (*) на IP виртуалки. Сразу нихера не заработает, домен может раздупляться до 2х суток, так что этот шаг можно провернуть заранее просто что-бы потом не думать.
Дальше подключаемся к серверу и ставим OhMyZsh. Он тормознее чем обычный bash, но в сто раз удобнее и если пользоваться им, то времени сэкономите немерянно. Так же ставим темку по душе, моя любимая agnoster
Ну и погнали 🤟:
💎 Первое что нам понадобится если нам нужны будут домены, это Nginx Proxy Manager, он позволит вам:
- Легко мапить поддомены вашего домена на порты на вашей машине
- Делать редиректы
- Получать SSL сертификаты от LetsEncrypt в два клика
💎💎 Далее ставим Coolify. Это БААЗА. Что-то типа селф-хостед Heroku / Netlify / Vercel.
Что нам даст Coolify?
- Быстрое овервью состояния сервера (память, диск, cpu)
- Возможность в один клик создавать базы данных
- Возмоность развертывания приложений из github\gitlub,
- Легкая установка некоторых сервисов
В целом самый мастхэв тут это БД, остальное по желанию (кому то проще просто собственные докер контейнеры запускать). Так же эта штука умеет получать ssl сертификаты и вешать приложения/сервисы на хосты, но у меня как то не завелось, поэтому я запуская какое либо приложение просто вешаю его на свободный порт (допустим 9010) и дальше маплю нужный хост на этот порт через Nginx Proxy Manager.
Так что для начала создаем тестовую БД, где нибудь да пригодится.
Всем кто немного знаком с фронтенд-разработкой и хочет погрузиться в web3 или найти работу в крипте, но не знает с чего начать - чекните статью этого парня, она совсем базовая с технической стороны, но содержит много полезных ссылок и многим может помочь, рекомендую 👍
Читать полностью…Вобщем хочу рассказать чем я тут в выходные занимался и заодно похвастаться своим продуктом.
Как вы наверное знаете - терн запускает приватку (пост тут).
А еще те кто внимательно читал мои статьи могли догадаться что я большую часть времени занимаюсь разработкой потрясающего конструктора сайтов Flexbe ❤️
Поэтому мы объединились и по быстрому пильнули terncrypto.plus на моей платформе 🎉
Рекомендую вам попробовать влететь и в приватку, и познакомиться с конструктором если необходимо.
Всех обнял 🤟
Хотите узнать немного про главного неудачника недели? И так немного размышлений, не знаю как это еще назвать.
Я тут вроде как приободрился и начал более-менее активно работать, поделюсь немного пережитым опытом.
В прошлые выходные нацеливался на паблик ArcadeLand земель, но у меня сейчас бомж-режим и я не могу участвовать в газварах. Поэтому я решил испытать удачи в фронтране, пусть шансов мало, но и риск почти нулевой. Достал свой старый код, сдул пыль, кое-чего поправил, протестил в тестнете, запустил на отложенный старт и ушёл спать. На самом деле не ушёл, а паралельно писал флешботс версию, но чёт не завелось (хотя прежде работало), а меня уже рубило, так что я просто забил.
С утра чекнул - транза не прошла, печаль, но есть логи для изучения. На первый взгляд все четко, поймали транзу создателя, встали за ней. В следующем блоке ловим конфирм транзы создателя, но не ловим свой. Значит мы не попали в блок и участвуем в газваре со всеми. Дальше код должен проверить нужно ли ускорить транзу, и может не ускорять если в конфиге явно указано “нельзя” или расчетный средний газ выше моего максимального лимита. Видимо я где то косякнул и на этот случай не вывел лог, потому что транза не пыталась ускоряться и я не знаю почему. Отклонилась через 9 минут когда газ стабилизировался.
В теории не попасть в блок создателя я мог по ряду причин, самое банальное:
- Поздно обнаружил и задекодил транзакцию создателя
- RPC-Нода затупила (возможно тормоза сети + паблик rpc типа инфуры любят тупить во время сейлов)
- Транза создателя оказалось в конце блока и мне тупо не хватило места. Ну или таких же фронтранеров образовалось так много что все не влезли, тут вообще хз какой алгоритм сортировки т.к газ у всех выставлен одинаковый. Возможно по времени создания в мемпуле, упираемся в п.2
- Транза создателя была создана в обход мемпула
В попытках понять где самое слабое место и на что можно повлиять я обнаружил что:
1. Получение события о новом блоке срабатывает с задержкой в 2-9 сек. Но может быть и 30 сек. Причем алхими стабильно на 2 сек. быстрее инфуры. Возможно это лаг провайдера, возможно это нормальный лаг сети. В интернетах люди с нодами в целом задаются теми же вопросами, ответ на который примерно “ну таймштамп блока это самое первое время его майнинга, а узлы сети так то должны валидировать этот блок и только потом распространять информацию другим узлам, поэтому влияет размер сети и т.д”. Совершенно непонятно есть ли какой-то способ на это повлиять.
2. Тестнет показал, что время от времени может не хватить 2.5 секунд между отправкой транзы в мемпул и майнингом нового блока, даже когда блоки почти пустые и сеть не нагружена. Грубо говоря - нельзя успеть в последнюю миллисекунду влететь в мемпул в надежде попасть в pending блок, нужен запас в пару секунд. Это сильно сужает шанс на успех.
3. Блок в котором включился паблик оказался подозрительно пустым, всего 70 транзакций. А транзакция создателя самая первая в блоке. Ну прям идеальные условия что-бы все прошло идеально для меня. Но эти читеры кинули транзу через flashbots, а значит транзакция приватная, не попадала в мемпул и мой код не мог увидеть создание такой транзы. Поэтому мой код вызвался уже когда транзакция замайнилась, что автоматически означает попадание в самое пекло газвара. Фактически оказалось что я перехватил транзакцию на три секунды позже времени когда она была смайнена (лаг из п.1). Хотя я так и не смог понять как так я вообще перехватил эту транзу, в тестнете воспроизвести не получилось.
Дружище посоветовал сервис, сказал что выпустил карту и смог оплатить ей вебфлоу. Выпустил тоже, в Google Pay добавилась. Проверю в начале следующего месяца, когда у меня закончится спотифай 🎧
Можно пополнять в usdt (TRC-20)
https://bankoff.co/
Ууухх ребятушки, вас уже тысяча человек, спасибо большое за то что вы есть 🥰
Мне теперь точно нельзя вас подводить, прийдется баловать каким-то контентом ☺️
Не пропустите пост выше, написать его было очень важно для меня и я буду очень рад обратной связи.
Всем добра! 💛
В связи с происходящими вокруг спецоперациями у меня совершенно нет сил что-то делать и поэтому я с очень большим трудом завершил статью. Тем не менее я очень старался и надеюсь что вам понравится. Приятного чтения, всех люблю 👻
Читать полностью…Ребят, вы лучшие, а есть какие то варианты сделать виртуальную визу/мастеркард (тру иностранную) если ты сраный отброс общества из России?
Всё что я перебрал не работает с Россией, к сожалению.
Если вдруг кто-то всё ещё не понимает о каком таком тракторе все вокруг говорят, вот:
https://youtu.be/elSDCBcK8Lw
К сожалению видосу сто лет в обед, а актуальности он не теряет, и даже наоборот :(
Знаете, интереснейшая вещь тут произошла с коллекцией Cryptochiks, интересная именно с точки зрения авторского права и роли нфт в этом.
Кратко пересказываю историю:
Чуваки (точнее, девчонки) сделали коллекцию из 200 оригинальных чикс (флур около 4 эфиров), после запустили коллекцию из 10к сгенерированных (флур 0.6 сейчас), и тут внезапно всплывает некая бразильская художница и обвиняет коллекцию в плагиате, т.к она нарисовала "чиксу" ещё в 2018 году (есть пост в инсте).
На картинке сравнение бразильской версии (слева) и чиксы #2 из коллекции на 200шт (справа). Не сложно заметить что это не просто взято за референс, это прям копия линия в линию.
Понятное дело комьюнити рвет и мечет, на что авторы отвечают что вообще ничего об этом не знают и сами в шоке, давайте подождем Полину (художницу из России которая рисовала это), она все объяснит когда проснется. Просыпается Полина и говорит примерно следующее "ну мне 19 лет, у меня опыта не много и я вообще не думала что так нельзя, извинити". А пару часов назад команда делает анонс в котором сообщает что им очень жаль что так вышло, они исключили Полину из команды и собираются соорудить какой то фонд для поддержки женщин-хужодниц, приостановили работу над чем мы там сейчас работаем, нас поддерживают какие то ребята... Короче ничего конкретного.
Комьюнити тем временем ищет и находит другие следы плагиата в анонсированных, но не реализованных проектах команды.
Ситуация интересная с нескольких сторон:
1. Судя по всему это первый такой (крупный) прецедент
2. Идея нфт во владении произведением и сохранении авторских прав, и тут вылазит такая подстава
3. Вообще непонятно как доказать что бразильская девушка сама не присвоила себе эту работу, т.к в интернете находят использование этого изображения на куче разных сайтов
Выводов не будет.
В общем на минтилку не осталось надежд, останавливаем и берем руками. Дружище из моих картинок собрал макет с навигацией в фигме, так что я быстро по первому символу нашел свою картинку, но ответ не подходит т.к эти жуки вместо 4 букв сделали 5 (не поленились ведь картинки перерисовать), и у меня к слову PUNK из ребуса добавилось множественное число. Блин элегантно, а я не догадался пробить сигнатуры по таким словам (хотя как они поступили с ответами типа CATS - вопрос). В итоге взял одну за +- эфир, если прибавить потери на неудачных транзакциях. Газа лишнего дал, аж 4к, все таки ребус хорошо сгладил газвар и защитил от ботов.
В общем весело было последнюю неделю и особенно эти два дня, пацаны из CoolCats вообще ребята, мне всё понравилось.
А минтилку применил вечером на SloatiJr и нихрена не взял т.к там оказался баг с расчетом газа. Он передавался из основного кода в подпроцессы некорректно и в итоге брался тот который был актуален на момент запуска минтилки. Тупейший баг возникший после небольшого рефакторинга и по невнимательности. В тестнетах такое хрен отловишь т.к там газ не меняется почти никогда.
Следующий пост постараюсь написать про мои мысли как стать прогером и что важно, а что нет, советы и напутствие с точки зрения себя и своего бекграунда. Очень просят. Заметочки накидываю потихоньку, а с ходу такое не выдать к сожалению.
Сейл котов, как это было
Я готовился к этому минту недели две. Не то, что бы я тормоз, просто все время у них происходили какие то факапы. Весь сейл проходил в три этапа: сперва бесплатный минт для владельцев оригинальной CoolCats коллекции, потом рафл, потом паблик остатков (минимум 1600шт). Первый этап сперва перенесли на несколько дней, затем на 5к сминченых остановили сейл т.к у некоторых людей не обновились DNS адреса их сайта и они не могли на него зайти, поэтому минт стоял на паузе два дня или больше. У владельцев оригинальной коллекции было очень много времени чтобы подумать хотят ли они бесплатно забрать себе животное. Реально пара дней. Потом минт тех кто прошел в рафле где то сутки, а потом паблик (который опять перенесли). В итоге у меня было примерно дней 10 на подготовку:
Первым делом (до обновления сайта) идем в тестовый опенси, находим там несколько коллекций с подозрительно похожим названием, оттуда выходим на контракт, далее на создателя и с него на другие контракты. Деплоили они их в тестнете как ненормальные, по нескольку штук в день. И все без верификации, но по данным в транзакциях и коду из декомпилятора расшифровываю название метода для минта и параметры (какая то херня подозрительно похожая на Unix Timestamp и какая то фигня подозрительно похожая на сигнатуру (130 символов = 65 байт)). Не помню только, код на сайт был залит одновременно с контрактом в майннете или нет, но как же я удивился когда увидел верифнутый контракт в майннете. Т.е я мог ничего не делать и просто прочитать исходники если бы подождал один день. Зато написал кучу хелперов для себя для кодирования/декодирования данных и т.д.
Когда сайт обновился, на нем уже был весь код фронтенда еще до начала минта для владельцев CoolPets. Из кода сайта я понял что нам предстоит пройти ребус, похвалил ребят и сделал об этом пост выше. Всего ребусов 30шт, я их просто все разгадал руками (хотя это было не обязательно и достаточно было любой рандомной, но я не люблю незаконченные дела). Далее по коду сайт берет ID картинки (от 1 до 30), ответ на картинку (напр. DOGS), сообщение (захардкожено в коде), собирает из сообщения и ответа хеш, подписывает его и отправляет полученную сигнатуру, кошелек и ID ответа на бекеннд. Бекенд восстанавливает хеш сообщения из переданного ID ответа и проверяет что хеш с переданной сигнатурой восстанавливается в адрес отправителя (т.е ответ и сообщение верные и подписаны переданным кошельком). Стандартная подпись короче. Мне остается только кинуть правильный запрос из скрипта, получить сигнатуру и как то проверить что все пройдет успешно. Не помню как, либо DNS дампером, либо из кода сайта я нашел адрес их дев-бекенда, успешно получил сигнатуру от них, убедился что эта сигнатура декодится в адрес овнера контракта в тестнете и успешно сминтил животное в одном из контрактов где не был отключен паблик сейл. Я потом неделю переживал что чуваки спалили меня и примут меры, а какой то герой через три дня повторил мой “подвиг”.
Хаха, они добавили еще один символ к этим картинкам. У меня вместо PUNK выпал PUNKS. Одну штуку забрал с газом 4к гвей, наверное переплатил (0.43)
Самое тупое что транзы на минт пошли раньше обновления кода сайта и как и почему так вышло я вообще не понял.
Чем то не тем я в жизни занимаюсь
Все наверное уже слышали об рафле гучи. Идея что ты заходишь, в определенный промежуток времени закидываешь свой адрес в чат и надеешься что тебя выберут случайно среди еще ~190 таких же счастливчиков. Если выберут то купишь себе новый солярис не в кредит. Так вот за час за события везде повылезали репосты и на дискорд гучи нахлынули толпы абузеров. Эти дауны из гучи сперва опоздали на 20 минут, после перенесли открытие окна на 2 часа, а затем убрали постоянную ссылку на дискорд.
И вот что случилось - какой то ушлый скамер создал занял их ссылку, в канале приветствия кинул ссылку на страничку с “минтом”, на страничке с минтом позволил щедро забрать до 5 нфт ценой в 1 эфир и таким образом заработал ну штук 30 эфира за 20 минут.
А окно так и не открыли все ещё, зато уже больше часа прошло и они кидают предупреждение что ссылка в поддельном дс фейковая. Предупреждение людям которые уже состоят в офф.дискорде и не подозревают о том что произошло. Фейспалм и только.
Что такое крипто-кошелек, где хранятся токены и как обезопасить себя от потерь?
https://telegra.ph/CHto-takoe-koshelek-gde-hranyatsya-tokeny-i-kak-obezopasit-sebya-ot-poter-01-29
--------------
Пост получился слишком большой, поэтому упаковал его в телеграф, а сообщения выше удалил.