
Aller on fav ![]()
Merci pour les tutos je vais me plonger dedans
Le 18 mars 2022 à 00:20:55 :
Oui j'étais dégouté de voir que tu avais supprimé tes topics d'ailleurs.
Tu fais partie de ceux qui m'ont lancé dans la DeFi et le dev blockchain khey
Par contre pas de language pour L'EVM dans ta liste, tu ne travaille pas sur Ethereum ?
Perso ça me paraît trop gros comme objectif pour le moment, je me focalise encore sur Solidity et l'apprentissage d'architectures robustes pour trouver un boulot la dedans.
Mais clairement la MEV donne envie.
Tu fais a un autre boulot à côtéou à l'époque où tu t'y es mis ?
Pour l'EVM, Solidity bien évidemment. Le compilateur du langage Vyper fait de belles optimisations mais Solidity est beaucoup plus flexible et permet de faire des optimisations à la main.
Apprendre Yul est une très bonne idée pour développer sa connaissance de l'EVM, je le recommande fortement. De plus, réécrire son contrat en Yul permet de réduire la consommation du gas de ~5% (en partant du principe que votre code Solidity est déjà un minimum opti). C'est essentiel pour certaines stratégies compétitives comme les arbitrages UniswapV2 / V3.
0 boulot avant ni après.
Le truc qui est bien avec le trading algo c'est que si tu trouves une bonne alpha (technique ou stratégie nouvelle quasi-inconnue), tu codes ton bot et si c'est du lourd et qu'il tourne bien pendant quelques temps et bien tu n'as plus besoin de travailler pendant quelques années.
En ce moment je code un bot de backrunning. C'est un bot qui simule toutes les transactions de la mempool, et si une transaction créée un arbitrage en impactant fortement une pool par exemple et bien mon bot trouve la route la plus profitable en achetant et revendant sur une autre pool. La transaction du bot sera exécutée juste derrière la transaction ciblée (d'où le nom de backrun).
Pour le moment le nombre de swaps max est de 3 (tokenA-tokenB -> tokenB-tokenC -> tokenC-tokenA) mais je pense pouvoir monter à 4. Les arbitrages sont cycliques: le token du début de la route est le même que celui de la fin.
Dans mes algos je n'ai pas l'habitude d'estimer le poids d'un arbitrage, je bruteforce systématiquement les montants d'achats optimaux avec un algo type recherche dichotomique (je crois que ça s'appelle comme ça ?) pour trouver le maximum de la fonction de l'équation de l'arbitrage (combien de tokens vous aurez à la fin pour X tokens achetés pour une route quelconque).
C'est une approche de merde car ça multiplie le temps de calcul par 1000 mais j'ai pas trouvé de solution satisfaisante pour choisir le meilleur ou un des meilleurs arbitrage sans tout calculer.
ça veut dire quoi quand tu dis atomic khey?
et il s'est passé quoi sur cette TX ? https://twitter.com/DaApexApe/status/1504495602356436997
jcomprends rien comme dirait espinoza mais intéressant
t'entend quoi par simuler les transactions
Le 18 mars 2022 à 02:49:25 :
Le truc qui est bien avec le trading algo c'est que si tu trouves une bonne alpha (technique ou stratégie nouvelle quasi-inconnue), tu codes ton bot et si c'est du lourd et qu'il tourne bien pendant quelques temps et bien tu n'as plus besoin de travailler pendant quelques années.En ce moment je code un bot de backrunning. C'est un bot qui simule toutes les transactions de la mempool, et si une transaction créée un arbitrage en impactant fortement une pool par exemple et bien mon bot trouve la route la plus profitable en achetant et revendant sur une autre pool. La transaction du bot sera exécutée juste derrière la transaction ciblée (d'où le nom de backrun).
Pour le moment le nombre de swaps max est de 3 (tokenA-tokenB -> tokenB-tokenC -> tokenC-tokenA) mais je pense pouvoir monter à 4. Les arbitrages sont cycliques: le token du début de la route est le même que celui de la fin.Dans mes algos je n'ai pas l'habitude d'estimer le poids d'un arbitrage, je bruteforce systématiquement les montants d'achats optimaux avec un algo type recherche dichotomique (je crois que ça s'appelle comme ça ?) pour trouver le maximum de la fonction de l'équation de l'arbitrage (combien de tokens vous aurez à la fin pour X tokens achetés pour une route quelconque).
C'est une approche de merde car ça multiplie le temps de calcul par 1000 mais j'ai pas trouvé de solution satisfaisante pour choisir le meilleur ou un des meilleurs arbitrage sans tout calculer.
Comment tu fais pour te positionner par rapport au autres bots alors, si le tiens est si peu optimisé ?
Le 18 mars 2022 à 03:14:52 :
ça veut dire quoi quand tu dis atomic khey?et il s'est passé quoi sur cette TX ? https://twitter.com/DaApexApe/status/1504495602356436997
Atomique ça veut dire que dans une seule transaction, tu peux exécuter un nombre arbitraire de swap.
Ex: WETH -> WBTC -> LINK -> APE -> FTM -> WETH.
Si un seul de ces swaps fail pour une raison ou une autre, alors la transaction sera rejetée.
ça c'est possible que sur la DeFi, dans le trading algo "classique" et bien chaque trade est séparé.
La transaction fait partie d'un sandwich:
Transaction 1: https://etherscan.io/tx/0xe65e555252991f5e9cade1b6617d885921f7cce5773d559449e303bdff9f6824 (bot)
Transaction 2: https://etherscan.io/tx/0xd4e640dbd326259e7ad815d56bc44d0aa68b516b62c69e690f2f671427132202 (victime)
Transaction 3: https://etherscan.io/tx/0x6898cb1fadfb7df71f3d4b11c805ed2d420a62770f1e858651f1092d57da67f3 (bot)
Au final, il s'est seulement fait quelques dollars sur ce sandwich. De ce que j'ai compris, il a utilisé un flashswap pour créer un effet de levier à l'aide des deux pools. C'est une technique (risquée) des bots de sandwiching: https://twitter.com/bertcmiller/status/1430169143123353611
Le 18 mars 2022 à 03:29:17 :
t'entend quoi par simuler les transactions
Je récupère la transaction qui transite sur le réseau P2P Ethereum avant qu'elle soit confirmée et incluse dans un bloc, et je la simule sur ma propre Ethereum Virtual Machine pour savoir exactement ce qu'elle va faire.
Le 18 mars 2022 à 07:58:16 :
Le 18 mars 2022 à 02:49:25 :
Le truc qui est bien avec le trading algo c'est que si tu trouves une bonne alpha (technique ou stratégie nouvelle quasi-inconnue), tu codes ton bot et si c'est du lourd et qu'il tourne bien pendant quelques temps et bien tu n'as plus besoin de travailler pendant quelques années.En ce moment je code un bot de backrunning. C'est un bot qui simule toutes les transactions de la mempool, et si une transaction créée un arbitrage en impactant fortement une pool par exemple et bien mon bot trouve la route la plus profitable en achetant et revendant sur une autre pool. La transaction du bot sera exécutée juste derrière la transaction ciblée (d'où le nom de backrun).
Pour le moment le nombre de swaps max est de 3 (tokenA-tokenB -> tokenB-tokenC -> tokenC-tokenA) mais je pense pouvoir monter à 4. Les arbitrages sont cycliques: le token du début de la route est le même que celui de la fin.Dans mes algos je n'ai pas l'habitude d'estimer le poids d'un arbitrage, je bruteforce systématiquement les montants d'achats optimaux avec un algo type recherche dichotomique (je crois que ça s'appelle comme ça ?) pour trouver le maximum de la fonction de l'équation de l'arbitrage (combien de tokens vous aurez à la fin pour X tokens achetés pour une route quelconque).
C'est une approche de merde car ça multiplie le temps de calcul par 1000 mais j'ai pas trouvé de solution satisfaisante pour choisir le meilleur ou un des meilleurs arbitrage sans tout calculer.Comment tu fais pour te positionner par rapport au autres bots alors, si le tiens est si peu optimisé ?
Il est plutôt optimisé, car j'ai très bien filtré mes données et le bot fait donc très peu de calculs inutiles. Calculer tous les arbitrages avec précision a aussi un réel intérêt, car tu trouveras forcément le meilleur arbitrage possible donc plus de bénéfices. Mais ça c'est possible uniquement sur Ethereum, car il y a Flashbots. Flashbots est un système d'enchère utilisé par les mineurs et les traders. En gros, tu payes des fees ETH pour que ta transaction soit la première transaction du futur bloc. Tu peux aussi choisir une transaction de la mempool et la placer avant ou après ta transaction. Si ta transaction échoue, alors elle ne sera en théorie jamais incluse.
Ainsi ce système privilégie l'optimisation en gas et la qualité de l'arbitrage. Sur la BSC par exemple, il n'y a pas un tel système, c'est premier arrivé premier servi donc la rapidité et primordiale.
Tu penses quoi des flash loan khey?
Je lis merci
En gros, tu payes des fees ETH pour que ta transaction soit la première transaction du futur bloc. Tu peux aussi choisir une transaction de la mempool et la placer avant ou après ta transaction. Si ta transaction échoue, alors elle ne sera en théorie jamais incluse.
Ainsi ce système privilégie l'optimisation en gas et la qualité de l'arbitrage. Sur la BSC par exemple, il n'y a pas un tel système, c'est premier arrivé premier servi donc la rapidité et primordiale.
En gros tu dis que un mineur peut choisir de privilégier un gars qui a mis moins de gwei qu'un autre, arbitrairement?
Alors qu'en toute logique les mineurs privilégient les mecs qui ont mis plus de gwei vu que ça leur rapporte plus
Ou j'ai mal compris
Parce que j'ai toujours cru que si tu mettais le plus de gwei, les validateurs te prendraient en premier (pas automatiquement mais par choix) mais j'avais jamais pensé qu'il y avait des magouilles de ce type mdr (logique quand j'y pense)
(a moins que j'ai mal compris et que c'est pas possible de sélectionner arbitrairement qui on veut mettre en premier, c'est en fait ça ma question, c'est possible ? et si oui, il le font de maniere automatisé j'imagine, comment ça discrimine, via l'adresse? il met un bout de code qui dit "si c'est cette adresse, priorise le" ?)
Le 19 mars 2022 à 05:59:11 :
Tu penses quoi des flash loan khey?Je lis merci
ça permet des stratégies innovantes. Mais pour de l'arbitrage, ça consomme plus de gas donc un mec qui possède réellement les fonds te battra sur la même stratégie.
Le 19 mars 2022 à 06:08:24 :
En gros, tu payes des fees ETH pour que ta transaction soit la première transaction du futur bloc. Tu peux aussi choisir une transaction de la mempool et la placer avant ou après ta transaction. Si ta transaction échoue, alors elle ne sera en théorie jamais incluse.
Ainsi ce système privilégie l'optimisation en gas et la qualité de l'arbitrage. Sur la BSC par exemple, il n'y a pas un tel système, c'est premier arrivé premier servi donc la rapidité et primordiale.
En gros tu dis que un mineur peut choisir de privilégier un gars qui a mis moins de gwei qu'un autre, arbitrairement?
Alors qu'en toute logique les mineurs privilégient les mecs qui ont mis plus de gwei vu que ça leur rapporte plus
Ou j'ai mal compris
Parce que j'ai toujours cru que si tu mettais le plus de gwei, les validateurs te prendraient en premier (pas automatiquement mais par choix) mais j'avais jamais pensé qu'il y avait des magouilles de ce type mdr (logique quand j'y pense)
(a moins que j'ai mal compris et que c'est pas possible de sélectionner arbitrairement qui on veut mettre en premier, c'est en fait ça ma question, c'est possible ? et si oui, il le font de maniere automatisé j'imagine, comment ça discrimine, via l'adresse? il met un bout de code qui dit "si c'est cette adresse, priorise le" ?)
En théorie, un mineur choisit ce qu'il veut. Dans l'implémentation par défaut de Geth, l'ordre des transactions est défini par le prix du gas et si le prix est identique par l'ancienneté dans la transaction (moment de la réception de la transaction par le nœud).
Flashbots est un relais privé et une version modifiée de Geth. Environ 80% des mineurs font tourner le client Flashbots (appelé MEV-Geth).
Les traders envoient des "bundles" de transactions à Flashbots (un bundle peut être constitué de une ou plusieurs transactions). Flashbots détermine quels sont les bundles les plus profitables en fonction du prix du gas des bundles et les envoie aux mineurs. Par bloc il y a généralement max 3/4 bundles flashbots, et ils sont toujours dans les premières transactions du bloc.
Si les transactions de la mempool sont plus profitables à inclure que les bundles flashbots, alors le client MEV-Geth fait le tri et n'inclue aucun bundle. C'est donc toujours plus profitable pour les mineurs.
L'avantage pour les traders c'est que si une des transactions du bundle revert, alors leur bundle ne sera jamais exécuté. Ils ne perdent donc pas d'argent en payant du gas inutilement.
Salut l'OP ![]()
Est-ce que Flashbots = du flash loan ?
Si oui, est ce que Aave (ou d'autres comme Equalizer sur la BSC) permettent de flash loan n'importe quel token ?
J'ai une question aussi par rapport à l'utilisation du flash loan à partir du bot, il suffit d'inclure l'API de la fonction du smart contract pour l'appeler quand on en a besoin ?
Merci d'avance ![]()
Le 19 mars 2022 à 18:48:23 :
Salut l'OPEst-ce que Flashbots = du flash loan ?
Si oui, est ce que Aave (ou d'autres comme Equalizer sur la BSC) permettent de flash loan n'importe quel token ?
J'ai une question aussi par rapport à l'utilisation du flash loan à partir du bot, il suffit d'inclure l'API de la fonction du smart contract pour l'appeler quand on en a besoin ?
Merci d'avance
None ça n'a rien à voir, Flashbots c'est un relais centralisé sur Ethereum pour les traders qui veulent que leur transaction soit effectuée en tête du prochain bloc. Utile pour les bots et les gens qui mint des NFTs. Tout est expliqué sur leur wiki.
Pour un flashloan, les tokens sont limités. En vérité il y a peu de tokens. Par contre sur presque tous les DEXs, tu peux faire un flashswap, c'est à dire emprunter un token de la pool et rembourser ton emprunt avec l'un des deux tokens.
Pour faire ça t'appelles la fonction "swap" de la pool sans passer par le routeur. Le routeur est chargé de transférer les tokens que tu vends sur la pool, et la pool est chargée de transférer les tokens que t'achètes sur ton adresse. Quand tu call swap sur la pool directement, elle va t'envoyer les tokens et seulement à la fin vérifier que l'équation est toujours valide. Dans le cas contraire la transaction est annulée.
Entre temps, elle vérifie si il y a des données additionnelles dans le swap. Si c'est le cas, alors la pool call l'envoyeur en envoyant les données additionnelles.
L'idée c'est donc de coder un smart contract qui exécute les données que la pool va lui transmettre.
Par exemple:
Tu appelles ton smart contract avec l'adresse d'une pool, le token qu'il faut acheter, le montant, et des données additionnelles qui une fois décodée représentent une stratégie d'arbitrage. Ton smart contract appelle la fonction swap de la pool, la pool t'envoie les tokens et regarde si il y a des données additionnelles. Si oui, elle va rappeler ton smart contract en lui envoyant les données. Ton smart contract reçoit ça et interprète les données comme une stratégie d'arbitrage. Ton smart contract exécute la stratégie, et à la fin il transfert un des deux tokens à la pool. La pool vérifie que l'équation est respectée, la transaction est valide.
Pour un flashloan, ça marche pareil. Sauf qu'au lieu que ça se passe pas dans un swap. Le problème avec les flashswaps c'est que tu dois payer la fees comme pour un trade normal (UniV2: 0.3%) donc si tu flash des millions ça fait vite beaucoup. Un flashloan, tu peux en faire presque sans fees.
Bon je pose la question sans vergogne et sans rien apporter au topic mais = tu penses que c'est quoi la strat pour dégager un peu en le - de temps possible ? Il me faut un quick win sinon je vais abandonner (je suis déjà un programmeur correct). Les liquidations ça me semble pas mal non ? Mieux vaut faire ça sur Ethereum ou osef ?
Le 20 mars 2022 à 01:13:47 :
Bon je pose la question sans vergogne et sans rien apporter au topic mais = tu penses que c'est quoi la strat pour dégager un peu en le - de temps possible ? Il me faut un quick win sinon je vais abandonner (je suis déjà un programmeur correct). Les liquidations ça me semble pas mal non ? Mieux vaut faire ça sur Ethereum ou osef ?
Difficile de répondre à cette question.
Je vais prendre un risque et tenter d'y répondre. Je dirai que faire un liquidateur pour un protocole DeFi nouveau / peu connu en plein top du bull market lorsque tout le monde est over-leveraged c'est le plus rentable. Avant, regarde bien si il y a des positions juteuses à liquider et si il y a de la concurrence.
Maintenant actuellement les conditions ne sont pas réunies, alors la deuxième option (la plus frustrante) est de chercher une stratégie long-tail sans concurrents. Un exemple récent: un gars a fait un bot qui visait le bloc lors duquel l'airdrop du token APE aux possesseurs de NFTs BAYC allait avoir lieu.
La technique était très simple: emprunter tous les NFTs BAYC disponibles (apparement on peut faire un "flashloan" de NFTs dans des pools spécialisées ou qui sont détenus par des DAOs) claim l'airdrop, et rendre les NFTs, le tout en une seule transaction.
Il s'est fait airdrop 1.100 000$ en tokens APE, sans posséder un seul BAYC.
Pour ça il a fallu un smart contract et un bot qui spam les transactions lorsque le bloc visé approche, autant dire qu'en 1 journée c'est pliée.
L'arbitrage c'est bien trop compétitif et y'a des bots monstrueux et ultra-performants, je déconseille ça aux débutants.
Le long tail ça a l'air d'être la technique la plus flippante pour la plupart des gens, mais peut être la meilleure option au final. Dans la théorie, pas de concurrence, et il y'a pléthore de nouveaux écosystèmes tous les jours avec des smart contracts à exploiter. Ca me tente pas mal ces trucs. En plus je pense qu'à la longue tu peux repérer les patterns et faire du crawling pour trouver des failles. Un peu comme pour du bug bounty classique en fait
Mais merci pour le mot clé "long tail" khey. Ca va me donner des idées.