diff --git a/MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-25-Mainnet-Deploy.ipynb b/MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-25-Mainnet-Deploy.ipynb index ffc50df269..5736945c0a 100644 --- a/MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-25-Mainnet-Deploy.ipynb +++ b/MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-25-Mainnet-Deploy.ipynb @@ -363,6 +363,51 @@ "> **Note technique** : Le bytecode est déployé sur la blockchain. Son coût en gas dépend de sa taille (plus le contrat est complexe, plus il coûte cher à déployer).\n" ] }, + { + "cell_type": "markdown", + "id": "c131s25verif", + "metadata": {}, + "source": [ + "### Vérifier les trois grandeurs mises en avant\n", + "\n", + "Les trois cellules qui précèdent avancent chacune un chiffre. Deux se\n", + "recalculent exactement depuis les paramètres affichés ; le troisième non, et\n", + "la différence vaut la peine d'être nommée.\n", + "\n", + "**Le coût de déploiement se recompose.** `300 000` unités de gaz au prix mesuré\n", + "de `0.0060 gwei` donnent `300 000 x 0.0060 = 1 800 gwei`, soit `1.8e-6 ETH`\n", + "puisque `1 gwei = 1e-9 ETH` — exactement le `~0.0000018 ETH` annoncé. La\n", + "conversion en dollars suit le même taux : `1.8e-6 x 2500 = 0.0045`, soit moins\n", + "d'un demi-centime. L'arithmétique du tableau est donc cohérente de bout en\n", + "bout. Ce qu'il faut voir, c'est ce que `300 000` représente : une **hypothèse de\n", + "consommation**, pas une mesure. Le notebook ne peut pas l'obtenir, puisque la\n", + "clé est absente et que `eth_estimateGas` n'est jamais appelé ; le coût annoncé\n", + "dépend donc linéairement d'une constante non vérifiée ici.\n", + "\n", + "**La taille du bytecode se recompose aussi.** `1950` caractères hexadécimaux\n", + "valent `1950 / 2 = 975` octets, ce que la prose annonce correctement. C'est la\n", + "seule grandeur du notebook qui soit mesurée *et* exacte sans hypothèse : elle\n", + "sort directement de `solc 0.8.28`. C'est aussi celle qui pilote le coût, le\n", + "code déployé étant facturé à l'octet — la boucle entre les deux cellules est\n", + "donc réelle, pas décorative.\n", + "\n", + "**La comparaison avec Ethereum L1, elle, n'est pas mesurée.** Le facteur\n", + "« ~1000x moins cher » n'est adossé à aucune valeur produite ici : aucun RPC L1\n", + "n'est interrogé, donc ce rapport est une **connaissance de documentation** et\n", + "non un résultat de l'expérience. Le seul prix réellement mesuré est le\n", + "`0.0060 gwei` de Base ; c'est lui qu'il faut citer, et le rapport à L1 gagne à\n", + "être étiqueté comme référence externe — ou mesuré par un second appel RPC, ce\n", + "qui reste à faire.\n", + "\n", + "**Enfin, ce que la scène ne fait pas.** La cellule de déploiement se termine sur\n", + "un refus, `Deploiement non disponible (cle/connexion manquante)`, parce que\n", + "`DEPLOYER_PRIVATE_KEY` est vide. Le notebook enseigne donc un **garde-fou\n", + "fail-closed** plutôt qu'un déploiement : c'est le comportement correct à\n", + "montrer, mais il faut le dire explicitement — aucune transaction mainnet n'est\n", + "émise par cette exécution, et le tableau des six étapes décrit un chemin qui\n", + "n'est pas parcouru.\n" + ] + }, { "cell_type": "markdown", "id": "da8fa02b",