Playbook

Remix + OpenZeppelin: Entrega sin casco (Remix Openzeppelin Entrega Sin Casco)

¿Cómo se compiló e implementó el protocolo Bare Crypto sin Hardhat/Foundry con importaciones de GitHub de Remix IDE y OpenZeppelin v4.1? ADR y compensaciones.

Protocolo de mercado de solidez criptográfica desnuda

Parte 1 de 5

BareNFT sin Hardhat/Foundry con Remix IDE y OpenZeppelin v4.1 Importaciones de GitHub, reserva, subasta en el Reino Unido y arquitectura de emisión BareToken controlada por NFT; ADR, RNG débil y compensaciones de autoridad de emergencia.

Bare Crypto Solidity marketplace protocol diagram

Entrega del contrato en ausencia de cadena de herramientas

El protocolo del mercado Bare Crypto se compiló dentro del IDE de Remix importando directamente contratos OpenZeppelin v4.1.0 con URL de GitHub, sin instalar el canal Hardhat o Foundry local. Este fue un ADR deliberado para pruebas rápidas e implementación de un solo operador en 2021: velocidad y pasador de liberación ganados, CI repetible y pruebas de tipo seguro perdidas.```text Remix IDE ├─ BareNFT.sol ├─ BareNFTReserve.sol ├─ BareNFTAuction.sol └─ BareToken.sol | v https://github.com/OpenZeppelin/.../v4.1.0/... | v injected Web3 / MetaMask deploy


## Conceptos en la primera mención```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.
```La importación de GitHub remix + anclada es una compensación consciente entre "derecho rápido" y "derecho de CI"; Si no hay pin, cada compilación puede tener dependencias diferentes.

## ADR: Sin casco, solo Remix

Decisión: mantener los acuerdos de protocolo en Remix, importar OpenZeppelin v4.1.0 desde GitHub e implementar a través de MetaMask. Justificación: equipo pequeño, operador único, iteración rápida. Precio aceptado: no hay conjunto de pruebas automáticas, cobertura, reportero de gas ni archivo de artefactos deterministas. Este ADR pospuso deliberadamente la deuda de CI bajo la presión de "dejar que el mercado entre en funcionamiento".

## Superficie OpenZeppelin fijada

BareNFT y BareToken extraen las superficies OpenZeppelin ERC721/ERC20/AccessControl/Pausable a través de https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.1.0/... El pin de etiqueta interrumpe el deslizamiento de la versión menor; Sin embargo, la carpeta .deps y la caché de Remix permiten al equipo preguntar "¿qué código de bytes se transmite?" No responde a la pregunta tan claramente como el artefacto Hardhat local.```text
import OZ v4.1.0
  ERC721 + Enumerable + Burnable + Pausable
  AccessControlEnumerable
  SafeMath / IERC20
        |
        v
  Remix .deps/github mirror
```## Fallo: dependencia flotante y bifurcación silenciosa

Si un operador cambia accidentalmente la etiqueta en la URL del blob a master, o Remix vuelve a compilar con un pragma de compilador diferente, se producirá una bifurcación que se parece a la misma fuente pero produce un código de bytes diferente. La interfaz de usuario de Marketplace revierte las llamadas de reclamo/oferta cuando se habla con la antigua ABI; Se cree que el incidente es un "error de interfaz", la causa principal es la indisciplina en la cadena de herramientas. En términos de rendimiento, en Remix el gran árbol OZ se resuelve de nuevo con cada compilación: un circuito de retroalimentación que es más lento y más frágil que CI sin caché local.

## Los enfrentamientos más confusos de este episodio.```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

Lista de verificación de su propio sistema

  1. ¿Tiene una etiqueta de versión (por ejemplo, v4.1.0) en sus URL de importación de OpenZeppelin?
  2. ¿Dos compilaciones de Remix de la misma confirmación dan el mismo hash de código de bytes?
  3. ¿De qué artefacto proviene la ABI de las direcciones implementadas: remezcla o copia manual?
  4. ¿La versión del compilador y la configuración de optimización están fijadas en un ADR o README?
  5. ¿Qué síntoma muestra la interfaz de usuario del mercado si surge una dependencia? ¿Quién lo notará?

Cosas para recordar de esta sección

  1. Bare Crypto eligió la entrega de Remix sin casco por su velocidad; Lo dejó como deuda sabiendo que era repetible.
  2. El pin de GitHub de OpenZeppelin v4.1 es el único bloqueo de versión verdadero en ausencia de una cadena de herramientas.
  3. El desplazamiento del código de bytes aparece como "reversión extraña" en la interfaz de usuario; ¿Por qué la raíz a menudo no es la interfaz?

La entrega rápida es una característica; La importación sin pines es una fábrica de horquillas silenciosa.

FAQ

Frequently asked questions

¿Qué es Remix IDE?

Compilador Solidity basado en navegador y superficie de implementación; No requiere node_modules locales.

¿Qué es el pin de importación de GitHub?

Evite la propagación de versiones fijando contratos de OpenZeppelin con la URL del blob v4.1.0.

¿Es cierto que "Remix = sólo un juguete, no utilizado en producción"?

Remix + OZ fijado puede ser un ADR válido en mercados de operadores pequeños; El costo debe estar documentado.

¿Qué soluciona esta sección?

Esta sección establece por qué Bare Crypto eligió un modelo de entrega sin casco y qué escenarios de falla abre esta elección. El protocolo del mercado Bare Crypto se compiló dentro del IDE de Remix importando directamente contratos OpenZeppelin v4.1.0 con URL de GitHub, sin instalar el canal Hardhat o Foundry local. Este fue un ADR deliberado para pruebas rápidas e implementación de un solo operador en 2021: velocidad y pasador de liberación ganados, CI repetible y pruebas de tipo seguro perdidas.

Principios de ingeniería aprendidos

  • El ADR de la cadena de herramientas debe redactarse teniendo en cuenta el tamaño del equipo y el modelo de confianza del operador.
  • La implementación de producción no debe realizarse sin fijar las importaciones de GitHub con etiquetas.
  • El análisis de la causa raíz del incidente sin un código de bytes repetible es una especulación.

Continuar leyendo

Continuar leyendo

Siguiente en la serie

ENSAYO

BareNFT: Roles, Pausable y Token URI

BareNFT ofrece mint (a, id, uri) controlado por roles con ERC721 Enumerable/Burnable/Pausable y AccessControl. URI por token y compensaciones de pausa.

Misma serie

Misma serie

Paylaş