#FULLNODE
Существует способ запустить bsc full node и занять от 350гб (сам state) с помощью снапшота от bnb48
официальный снапшот
bnb48 снапшот (Скорость скачивания получалась 400Мб/с), на весь запуск потребовалась пара часов
В общих чертах нужно:
- Запустить скачивание и разархивирование снапшота одной командой
- Скачать/скомпилировать geth и его mainnet.toml
- На основе команды запуска geth от bnb48, обновить datadir и запустить.
Существует способ запустить bsc full node и занять от 350гб (сам state) с помощью снапшота от bnb48
официальный снапшот
bnb48 снапшот (Скорость скачивания получалась 400Мб/с), на весь запуск потребовалась пара часов
В общих чертах нужно:
- Запустить скачивание и разархивирование снапшота одной командой
- Скачать/скомпилировать geth и его mainnet.toml
- На основе команды запуска geth от bnb48, обновить datadir и запустить.
#DEFI
Как мы все знаем, в bsc минимальный gasPrice = 5gwei.
Но отдельный валидатор, если захочет, может принимать транзакции с 1gwei.
Идея в том, что пользователю нужно купить токен 1KOGE=11$.
1KOGE = 240000 gasLimit максимум.
Рост gasLimit от количества koge нелинейный, детали в офф чате.
Имея 1koge и установив их rpc link можно отправлять сколько угодно транзакций с 1gwei и до 240000gasLimit.
Пост-релиз в офф чате
Как мы все знаем, в bsc минимальный gasPrice = 5gwei.
Но отдельный валидатор, если захочет, может принимать транзакции с 1gwei.
Идея в том, что пользователю нужно купить токен 1KOGE=11$.
1KOGE = 240000 gasLimit максимум.
Рост gasLimit от количества koge нелинейный, детали в офф чате.
Имея 1koge и установив их rpc link можно отправлять сколько угодно транзакций с 1gwei и до 240000gasLimit.
Пост-релиз в офф чате
InVM - изнутри о Web3
#GETH EstimageGas метод использует тот же инструментарий что и во время создания блоков. Только применятся меньше правил. Общие моменты: - берут состояние state на запрошенный блок Х - подготавливают EVM контекст для исполнения транзакций Разные моменты:…
#GETH #FLASHBOTS
Перед отправкой бандла в flashbots, нужно произвести симуляцию бандла и убедиться что все транзакции будут исполнены без ошибок. Пример
Внутри это устроено так, что запущен форк geth под названием mev-geth внутри которого есть среди прочего метод симуляции бандла eth_callBundle, который последовательно виртуально исполняет транзакции, давая максимально реалистичный ответ, если бы тоже самое выполнить в mainnet без конкуренции.
Что нужно сделать, чтобы получить аналогичный метод симуляции в собстенной ноде geth?
- Простой ответ: запустить mev-geth и подружить с консенсус-клиентом
- Сложный ответ: нужно зарегистрировать кастомный namespace и дополнить внутренние методы.
По шагам:
1. В GetAPIs нужно передавать два аргумента, и тут
2. Регистрируем свой api-namespace с префиксом eth_ и добавляем прием двух аргументов
3. Определяем апи метод CallBundle
4. Дополнить внутренние методы исполнения транзакций, чтобы получать еще и receipt. Раз, Два
Думаю, что blocknative взял за основу callBundle и предлагает 300 симуляций (Simulations, Simulation Bundle Size) за всего-лишь 100$/mo
Перед отправкой бандла в flashbots, нужно произвести симуляцию бандла и убедиться что все транзакции будут исполнены без ошибок. Пример
Внутри это устроено так, что запущен форк geth под названием mev-geth внутри которого есть среди прочего метод симуляции бандла eth_callBundle, который последовательно виртуально исполняет транзакции, давая максимально реалистичный ответ, если бы тоже самое выполнить в mainnet без конкуренции.
Что нужно сделать, чтобы получить аналогичный метод симуляции в собстенной ноде geth?
- Простой ответ: запустить mev-geth и подружить с консенсус-клиентом
- Сложный ответ: нужно зарегистрировать кастомный namespace и дополнить внутренние методы.
По шагам:
1. В GetAPIs нужно передавать два аргумента, и тут
2. Регистрируем свой api-namespace с префиксом eth_ и добавляем прием двух аргументов
3. Определяем апи метод CallBundle
4. Дополнить внутренние методы исполнения транзакций, чтобы получать еще и receipt. Раз, Два
Думаю, что blocknative взял за основу callBundle и предлагает 300 симуляций (Simulations, Simulation Bundle Size) за всего-лишь 100$/mo
InVM - изнутри о Web3
#HACK Вероятный вектор обхода блокировки на продажу до роста цены: Контекст: 1. Так как пара токена добавлена в исключения, она всегда отправляет мгновенно, потому что все пользователи могут покупать много раз (пара отправляет токены к пользователю) 2. Как…
Сейчас идет спам-рассылка что нужно срочно покупать sui(bsc) убийца aptos’a в первые часы иксы все дела.
Но продать никто кроме админов не сможет.
И находятся люди, кто покупает: https://dexscreener.com/bsc/0xa71832bc3743e7453317a714ddfcfb0383e5f688 , не ловите FOMO)
На втором фото,
Но продать никто кроме админов не сможет.
И находятся люди, кто покупает: https://dexscreener.com/bsc/0xa71832bc3743e7453317a714ddfcfb0383e5f688 , не ловите FOMO)
На втором фото,
if _to == unknown…
это проверка на то, чтобы не позволять указать получателя pancakeswap.pair с ликвидностью sui*-busd. Покупать можно без проблем этот скам, но продать нельзяЕсть способ визуализации занимаемого пространста на накопителе в виде кубиков разного размера, соотвествующих размеру файла, а цвет - директории.
Если где-то затеряется файл на сотни GB, и про него уже все забыли, то так его можно обнаружить и удалить))
Для macos grandperspective
Для windows WinDirStat, SpaceSniffer
Если где-то затеряется файл на сотни GB, и про него уже все забыли, то так его можно обнаружить и удалить))
Для macos grandperspective
Для windows WinDirStat, SpaceSniffer
#FLASHBOTS
Для polygon тоже есть аналог flashbots, со свом mev-bor. Cделала команда marlin (которые больше, чем BDN bloxroute).
На этом хорошие новости закончились, потому что единственный валидатор 0x88c5e96c1459d224383dcb1fe0cedd1fcee25ffb создает блоки очень редко, например:
15 часов назад
11 дней назад
15 дней назад
17 дней назад
И это для сети, где блок создается раз в 2 секунды.
Если еще не передумали отправлять бандл в полигоне, то вот в помощь:
1. Убедиться, что валидатор сейчас валидирует блоки, а не неделю назад 0x88c5e96c1459d224383dcb1fe0cedd1fcee25ffb
2. С помощью контракта можно отправлять чаевые, не зная валидатора (как у flashbots подход) 0x0b787209ecb980e444babce86e980162288fafc3
3. eth_callBundle (симуляция бандла) возможна только на своей ноде mev-bor
4. Пример кода и доки marlin
5. Пример кода, с помощью которого получилось смайнить бандл 15 часов назад))
Upd: у валидатора низкий стейк, поэтому редко выигрывает аукцион на создание блоков
Для polygon тоже есть аналог flashbots, со свом mev-bor. Cделала команда marlin (которые больше, чем BDN bloxroute).
На этом хорошие новости закончились, потому что единственный валидатор 0x88c5e96c1459d224383dcb1fe0cedd1fcee25ffb создает блоки очень редко, например:
15 часов назад
11 дней назад
15 дней назад
17 дней назад
И это для сети, где блок создается раз в 2 секунды.
Если еще не передумали отправлять бандл в полигоне, то вот в помощь:
1. Убедиться, что валидатор сейчас валидирует блоки, а не неделю назад 0x88c5e96c1459d224383dcb1fe0cedd1fcee25ffb
2. С помощью контракта можно отправлять чаевые, не зная валидатора (как у flashbots подход) 0x0b787209ecb980e444babce86e980162288fafc3
3. eth_callBundle (симуляция бандла) возможна только на своей ноде mev-bor
4. Пример кода и доки marlin
5. Пример кода, с помощью которого получилось смайнить бандл 15 часов назад))
Upd: у валидатора низкий стейк, поэтому редко выигрывает аукцион на создание блоков
Недавно 1inch представили подход, чтобы обезопасить обмены пользователей от оборачивания потенциально уязвимых транзакций обменов для frontrun/backrun через flashbots для ethereum.
bloxroute (eth/bsc BDN) представили аналог, только для любых транзакций. Если отправлять транзакции через их rpc url, тогда транзакции не попадают в публичный мемпул. Дополнительная опция в том, что если вдруг транзакция обмена выгодна для ботов, то эти боты должны поделиться профитом с кошельком, который обмен инициировал https://t.me/bloXrouteLabsCommunity/28893
bloxroute (eth/bsc BDN) представили аналог, только для любых транзакций. Если отправлять транзакции через их rpc url, тогда транзакции не попадают в публичный мемпул. Дополнительная опция в том, что если вдруг транзакция обмена выгодна для ботов, то эти боты должны поделиться профитом с кошельком, который обмен инициировал https://t.me/bloXrouteLabsCommunity/28893
#EVM
В контракте роутера 1inch заложен функционал, что любой может вывести токены, которые по ошибке отправлены роутеру.
Это замечательная практика, чтобы не превращать фантики в мертвые фантики, отправленные по ошибке, которые будут лежать на адресе до скончания времен.
Думаю было бы хорошей практикой сделать что-то вроде «если с контрактом не взаимодействую дольше 2х лет по timestamp, то разрешить его удаление (selfdestruct) и вывод всех erc20 токенов инициатору». При массовом внедрении это позволит сократить размер node state.
Например, в bsc есть 25кк контрактов.
15кк из них удалено (bytecode = 0x)
10кк живые, но большинство неактивны.
Размер bsc ноды по bnb48 около 350гб, full node займет больше 1тб.
В контракте роутера 1inch заложен функционал, что любой может вывести токены, которые по ошибке отправлены роутеру.
Это замечательная практика, чтобы не превращать фантики в мертвые фантики, отправленные по ошибке, которые будут лежать на адресе до скончания времен.
Думаю было бы хорошей практикой сделать что-то вроде «если с контрактом не взаимодействую дольше 2х лет по timestamp, то разрешить его удаление (selfdestruct) и вывод всех erc20 токенов инициатору». При массовом внедрении это позволит сократить размер node state.
Например, в bsc есть 25кк контрактов.
15кк из них удалено (bytecode = 0x)
10кк живые, но большинство неактивны.
Размер bsc ноды по bnb48 около 350гб, full node займет больше 1тб.
InVM - изнутри о Web3
#EVM В контракте роутера 1inch заложен функционал, что любой может вывести токены, которые по ошибке отправлены роутеру. Это замечательная практика, чтобы не превращать фантики в мертвые фантики, отправленные по ошибке, которые будут лежать на адресе до…
Вот пример, никто не может вывести 56к$usdt, потому что в логику контракта не заложено, благо здесь прокси контракт и в перспективе админы могут обновить implementation и вывести себе))
InVM - изнутри о Web3
#EVM В контракте роутера 1inch заложен функционал, что любой может вывести токены, которые по ошибке отправлены роутеру. Это замечательная практика, чтобы не превращать фантики в мертвые фантики, отправленные по ошибке, которые будут лежать на адресе до…
Подсказки:
1. Адрес 1inch router v2
2. Пример транзакции вывода токенов
3. По моим данным там лежит целых 6$, но нужно обернуть в flashbots bundle
1. Адрес 1inch router v2
2. Пример транзакции вывода токенов
3. По моим данным там лежит целых 6$, но нужно обернуть в flashbots bundle
#HACK
Frontrun боты видят многое, но не все. По следам поста, которому больше 2х лет, попробовал свои силы, чтобы перехитрить ботов.
Общий алгоритм:
1. Создать максимально безопасный токен для трейда
2. Создать пару с ликвидностью
3. Совершать обмены с огромным slippage
4. Сделать так, чтобы бот думал что он выйдет в плюс, но на деле он или не видит или не успеет отменить свои транзакции.
После очередной проверки гипотезы, которым счет идет на десятки, удачно сложилась гипотеза+распространение транзакций, и бот не увидел подвоха
Фото 1. Бот покупает токен JH (в паре +80$bnb)
Фото 2. Моя транзакция обычного свапа с огромным slippage (условно amountOutMin=1). В худшем случае дарю боту 13$bnb.
Фото 3. Бот продает все JH и получает лишь 9$bnb (так как предоставляю ликвидность в пару только я, значит +90$ ко мне)
Под капотом бот не увидел моей второй, но первой транзакции, которая включила комиссии для всех не админов токена в 90% комиссии.
Жду вашей реакции, чтобы показать обратную сторону маленькой победы)
Frontrun боты видят многое, но не все. По следам поста, которому больше 2х лет, попробовал свои силы, чтобы перехитрить ботов.
Общий алгоритм:
1. Создать максимально безопасный токен для трейда
2. Создать пару с ликвидностью
3. Совершать обмены с огромным slippage
4. Сделать так, чтобы бот думал что он выйдет в плюс, но на деле он или не видит или не успеет отменить свои транзакции.
После очередной проверки гипотезы, которым счет идет на десятки, удачно сложилась гипотеза+распространение транзакций, и бот не увидел подвоха
Фото 1. Бот покупает токен JH (в паре +80$bnb)
Фото 2. Моя транзакция обычного свапа с огромным slippage (условно amountOutMin=1). В худшем случае дарю боту 13$bnb.
Фото 3. Бот продает все JH и получает лишь 9$bnb (так как предоставляю ликвидность в пару только я, значит +90$ ко мне)
Под капотом бот не увидел моей второй, но первой транзакции, которая включила комиссии для всех не админов токена в 90% комиссии.
Жду вашей реакции, чтобы показать обратную сторону маленькой победы)
InVM - изнутри о Web3
#HACK Frontrun боты видят многое, но не все. По следам поста, которому больше 2х лет, попробовал свои силы, чтобы перехитрить ботов. Общий алгоритм: 1. Создать максимально безопасный токен для трейда 2. Создать пару с ликвидностью 3. Совершать обмены с огромным…
#HACK 1/2
Чтобы заинтересовать frontrun ботов, нужно:
- Отправить транзакцию обмена через публичный мемпул
- Подобрать правильное соотношение ликвидности в паре и размеру свапа, чтобы боту было интересно. Например 30$bnb-100JH в паре, и свап на 10-15$bnb с очень низким slippage. Frontrun транзакции делают так, что пользователь обменяет токены по максимально не выгодному для пользователя курсу обмена (при slippage 99% = amountOutMin=1wei) бот 'заберет' все $bnb из транзакции.
- Чем объемнее ликвидность в паре, тем сложнее боту значительно влиять на цену и нужно больше капитала для этого.
- Учитывать случайность распространения транзакций по мемпулу между нодами, не каждый раз боты увидят.
- Чтобы другие транзакции публичного мемпула не испортили прибыльность боту.
Чтобы перехитрить ботов в bsc, только транзакции обмена недостаточно, они видят все, что происходит в публичном мемпуле и даже улавливают связи, что первая транзакция ок, а вторая ломает боту frontrun операции.
Чтобы заинтересовать frontrun ботов, нужно:
- Отправить транзакцию обмена через публичный мемпул
- Подобрать правильное соотношение ликвидности в паре и размеру свапа, чтобы боту было интересно. Например 30$bnb-100JH в паре, и свап на 10-15$bnb с очень низким slippage. Frontrun транзакции делают так, что пользователь обменяет токены по максимально не выгодному для пользователя курсу обмена (при slippage 99% = amountOutMin=1wei) бот 'заберет' все $bnb из транзакции.
- Чем объемнее ликвидность в паре, тем сложнее боту значительно влиять на цену и нужно больше капитала для этого.
- Учитывать случайность распространения транзакций по мемпулу между нодами, не каждый раз боты увидят.
- Чтобы другие транзакции публичного мемпула не испортили прибыльность боту.
Чтобы перехитрить ботов в bsc, только транзакции обмена недостаточно, они видят все, что происходит в публичном мемпуле и даже улавливают связи, что первая транзакция ок, а вторая ломает боту frontrun операции.
InVM - изнутри о Web3
#HACK 1/2 Чтобы заинтересовать frontrun ботов, нужно: - Отправить транзакцию обмена через публичный мемпул - Подобрать правильное соотношение ликвидности в паре и размеру свапа, чтобы боту было интересно. Например 30$bnb-100JH в паре, и свап на 10-15$bnb с…
Снимок экрана 2022-12-17 в 10.50.44.png
65.9 KB
#HACK 2/2
Почти единственный путь, это отправить транзакцию активации ловушки в токене через приватный мемпул bnb48. Но и тут есть 'случайности'. Часто активация проиходит позже, чем предсказано и очень похоже, что bnb48 через своего frontrun бота умышленно замедляет активацию, чтобы с 20k$bnb заработать 13$bnb (Фото 1)
Часть попыток перехитрить ботов переходят в подарить им bnb :D
Моя маленькая победа в +90$bnb стоила порядка ~200$(~10$ на попытку).
Во время проверки новой гипотезы, в токене не предусмотрел отключение всех ловушек. По итогу еще 180$ навсегда в паре :D. Тут только один вывод, ВСЕГДА делать запасные отключения ловушек, потому что они могут сработать и на админа :D
Почти единственный путь, это отправить транзакцию активации ловушки в токене через приватный мемпул bnb48. Но и тут есть 'случайности'. Часто активация проиходит позже, чем предсказано и очень похоже, что bnb48 через своего frontrun бота умышленно замедляет активацию, чтобы с 20k$bnb заработать 13$bnb (Фото 1)
Часть попыток перехитрить ботов переходят в подарить им bnb :D
Моя маленькая победа в +90$bnb стоила порядка ~200$(~10$ на попытку).
Во время проверки новой гипотезы, в токене не предусмотрел отключение всех ловушек. По итогу еще 180$ навсегда в паре :D. Тут только один вывод, ВСЕГДА делать запасные отключения ловушек, потому что они могут сработать и на админа :D
InVM - изнутри о Web3 pinned «Навигация О чем этот канал? #DEFI - uniswapV2, пары, боты Пример ethers+js Blockscan Uni форки AMM Pancakeswap.allPairsLength Про кошельки EVM,CEX,DEX Токен Landing protocol Как шортить через landing Uniswap USDT,USDC ERC20.approve Автоматизация…»
InVM - изнутри о Web3
pinned «Навигация О чем этот канал? #DEFI - uniswapV2, пары, боты Пример ethers+js Blockscan Uni форки AMM Pancakeswap.allPairsLength Про кошельки EVM,CEX,DEX Токен Landing protocol Как шортить через landing Uniswap USDT,USDC ERC20.approve Автоматизация…»
Переосмыслена оглавление навигация по постам, предлагаю ознакомиться еще раз, вдруг найдется что-то стоящее)