Oyun Kitabı
Remix + OpenZeppelin : Livraison sans casque (Remix Openzeppelin Livraison Sans Casque)
Comment le protocole Bare Crypto a-t-il été compilé et déployé sans Hardhat/Foundry avec les importations Remix IDE et OpenZeppelin v4.1 GitHub ? ADR et compromis.
Protocole de marché Bare Crypto Solidity
Partie 1 de 5
BareNFT sans Hardhat/Foundry avec Remix IDE et OpenZeppelin v4.1 Importations GitHub, réserve, enchères au Royaume-Uni et architecture d'émission BareToken contrôlée par NFT ; ADR, faible RNG et compromis entre les autorités d’urgence.
Livraison du contrat en l'absence de chaîne d'outils
Le protocole du marché Bare Crypto a été compilé dans l'IDE Remix en important directement les contrats OpenZeppelin v4.1.0 avec les URL GitHub, sans installer le pipeline local Hardhat ou Foundry. Il s'agissait d'un ADR délibéré pour des tests rapides et un déploiement par un seul opérateur en 2021 : vitesse et broche de libération gagnées, CI répétable et tests de sécurité de type perdus.```text Remix IDE ├─ BareNFT.sol ├─ BareNFTReserve.sol ├─ BareNFTAuction.sol └─ BareToken.sol | v https://github.com/OpenZeppelin/.../v4.1.0/... | v injected Web3 / MetaMask deploy
## Concepts à la première mention```text
📦 Remix IDE
Tarayici tabanli Solidity derleyici ve deploy yuzeyi; lokal node_modules gerektirmez.
📦 GitHub import pin
OpenZeppelin sozlesmelerini v4.1.0 blob URL'siyle sabitleyerek surum kaymasini onleme.
📦 ADR
Mimari karar kaydi: ne secildi, neden, hangi sonuc kabul edildi.
📦 Tekrarlanabilir build
Ayni kaynaklarin farkli makinelerde ayni bytecode'u uretmesi; Remix'te zayif nokta.
```L'importation GitHub Remix + épinglée est un compromis conscient entre « droit rapide » et « droit CI » ; S'il n'y a pas de code PIN, chaque compilation peut avoir des dépendances différentes.
## ADR : Pas de casque, juste Remix
Décision : conserver les accords de protocole dans Remix, importer OpenZeppelin v4.1.0 depuis GitHub et déployer via MetaMask. Justification : petite équipe, opérateur unique, itération rapide. Prix accepté : il n'y a pas de suite de tests automatiques, de couverture, de rapporteur de gaz et d'archives d'artefacts déterministes. Cet ADR a sciemment reporté la dette de CI sous la pression de « laisser le marché fonctionner ».
## Surface OpenZeppelin épinglée
BareNFT et BareToken extraient les surfaces OpenZeppelin ERC721/ERC20/AccessControl/Pausable via https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.1.0/... La broche de balise interrompt le glissement de version mineur ; Cependant, le cache Remix et le dossier .deps permettent à l'équipe de demander « quel bytecode est diffusé ? Il ne répond pas à la question aussi clairement que l'artefact local Hardhat.```text
import OZ v4.1.0
ERC721 + Enumerable + Burnable + Pausable
AccessControlEnumerable
SafeMath / IERC20
|
v
Remix .deps/github mirror
```## Échec : dépendance flottante et fork silencieux
Si un opérateur modifie accidentellement la balise de l'URL du blob en master, ou si Remix se recompile avec un pragma de compilateur différent, un fork se produira qui ressemblera à la même source mais produira un bytecode différent. L'interface utilisateur de Marketplace annule les appels de réclamation/d'offre lorsque vous parlez à l'ancien ABI ; L'incident est considéré comme un « bug du front-end », la cause première étant l'indiscipline de la chaîne d'outils. En termes de performances, dans Remix, la grande arborescence OZ est à nouveau résolue à chaque build – une boucle de rétroaction plus lente et plus fragile que CI sans cache local.
## Les confrontations les plus déroutantes de cet épisode```text
❌ Remix = sadece oyuncak, production'da kullanilmaz
✓ Remix + pinned OZ, kucuk operator marketplace'lerinde gecerli bir ADR olabilir; bedeli dokumante edilmelidir
❌ GitHub import otomatik olarak guvenlidir
✓ Tag pin olmadan import, tedarik zinciri kaymasidir; v4.1.0 blob sabitlemesi zorunlu disiplindir
❌ Hardhat yoksa audit edilemez
✓ Audit kaynak ve bytecode uzerinden yapilir; eksik olan tekrarlanabilir pipeline ve regresyon testidir
Liste de contrôle de votre propre système
- Avez-vous une balise de version (par exemple v4.1.0) dans vos URL d'importation OpenZeppelin ?
- Est-ce que deux versions Remix du même commit donnent le même hachage de bytecode ?
- De quel artefact provient l'ABI des adresses déployées — Remix ou copie manuelle ?
- La version du compilateur et les paramètres d'optimisation sont-ils fixés dans un ADR ou un README ?
- Quel symptôme l'interface utilisateur du marché affiche-t-elle si une dépendance disparaît, qui le remarquera ?
Choses à retenir de cette section
- Bare Crypto a choisi la livraison Remix sans casque pour sa rapidité ; Il l'a laissé comme une dette sachant qu'elle était reproductible.
- La broche GitHub d'OpenZeppelin v4.1 est le seul véritable verrou de version en l'absence de chaîne d'outils.
- Le décalage du bytecode apparaît comme un « retour étrange » dans l'interface utilisateur ; Pourquoi root n’est-il souvent pas frontal ?
La livraison rapide est une fonctionnalité ; L'importation sans broches est une usine de fourches silencieuse.
FAQ
Frequently asked questions
Qu’est-ce que l’IDE Remix ?
Compilateur Solidity basé sur un navigateur et surface de déploiement ; Ne nécessite pas de node_modules locaux.
Qu’est-ce que le code PIN d’importation GitHub ?
Empêchez la dérive de version en épinglant les contrats OpenZeppelin avec l'URL du blob v4.1.0.
Est-il vrai que « Remix = juste un jouet, non utilisé en production » ?
Remix + OZ épinglé peut être un ADR valide sur les marchés des petits opérateurs ; Le coût doit être documenté
Que corrige cette section ?
Cette section explique pourquoi Bare Crypto a choisi un modèle de livraison sans casque et quels scénarios d'échec ce choix ouvre. Le protocole du marché Bare Crypto a été compilé dans l'IDE Remix en important directement les contrats OpenZeppelin v4.1.0 avec les URL GitHub, sans installer le pipeline local Hardhat ou Foundry. Il s'agissait d'un ADR délibéré pour des tests rapides et un déploiement par un seul opérateur en 2021 : vitesse et broche de libération gagnées, CI répétable et tests de sécurité de type perdus.
Principes d'ingénierie appris
- La chaîne d'outils ADR doit être écrite en fonction de la taille de l'équipe et du modèle de confiance de l'opérateur.
- Le déploiement en production ne doit pas être effectué sans épingler les importations GitHub avec des balises.
- L’analyse des causes profondes des incidents sans bytecode reproductible n’est que spéculation.
Continuer la lecture
Continuer la lecture
Suivant en série
BareNFT : Rôles, Pausable et URI de jeton
BareNFT propose un mint (to, id, uri) contrôlé par rôle avec ERC721 Enumerable/Burnable/Pausable et AccessControl. URI par jeton et compromis de pause.
Même série
BareNFTReserve : Escrow, RandomBuy et RNG faible
CreateNewListing, buy et randomBuy réservés au propriétaire — keccak256 (revealNonce, block.difficulty, msg.sender) % 3.…
Même série
BareNFTAucure : réclamation, remboursement et pouvoirs d'urgence
Enchères britanniques : offre, réclamation, annulation, retour sous réserve et compromis de transfert d'urgence du propriétaire/transferFunds.