Fundamentos de desarrollo en Near Protocol

Resumen

Construye con confianza en Near desde el día uno. Aquí encontrarás un recorrido claro para organizar tu equipo, preparar el entorno, entender los contratos inteligentes y desplegar tu primera dapp con Near CLI, sin perder de vista costos, identidad y buenas prácticas. Todo explicado de forma directa y accionable.

¿Cómo organizar el proyecto Near y el equipo?

Para avanzar rápido y con calidad, la organización es clave. Se propone trabajar en equipos de 4 personas y reportar avances semanales.

  • Regístrate en el documento de equipos con nombre y Near ID de testnet.
  • Usa Discord: Networking para compartir recursos. Aprendizaje/dudas técnicas para preguntas. Proyectos para avances semanales. Voice channel para consultas en vivo.
  • Prepara prerrequisitos: wallet en testnet y Near CLI instalado.
  • Sigue el espacio en Notion con actividades semanales.
  • Entregables: definición de idea de proyecto a mitad de semana y reporte cada viernes en el canal de proyectos.

¿Qué es un contrato inteligente en Near y cómo funciona?

Un contrato inteligente es código que vive en la red de Near y se ejecuta en una máquina virtual de Web Assembly. La UX cambia: en web3 el usuario paga el cómputo.

¿Qué tipos de métodos existen y cuánto cuestan?

  • view: solo lectura del estado. No tiene costo para el usuario.
  • call: modifica el estado. Involucra transacción y fees.
  • Almacenamiento: modelo key–value (pares llave–dato).

Ejemplo trabajado: un contrato de saludos con get_greeting (view) y set_greeting (call). Los logs con near.log quedan on-chain.

¿Qué aporta el objeto near en tiempo de ejecución?

Controla variables de entorno útiles para la lógica del contrato:

  • Identidad: predecessor (quien invocó), signer (quien firmó), current account (el contrato).
  • Dinero: attached deposit en yoctoNEAR (10^−24), account balance, account locked balance.
  • Tiempo y cómputo: timestamp, block index, used gas, storage used.

Aplicaciones:

  • Verificar quién compra un NFT usando predecessor y signer.
  • Cobrar con attached deposit (por ejemplo, 3 NEAR en un marketplace).

¿Cómo impactan gas, almacenamiento y arquitectura?

  • Modelo de ejecución tipo serverless: el método vive mientras corre. Límite aprox. de 1 segundo y hasta 300 TeraGas por llamada.
  • Estructuras de datos: Vector, LookupMap, UnorderedMap, UnorderedSet. Elige según iterabilidad, consumo de gas y velocidad.
  • Storage cost: cada ~100 KB ≈ 1 NEAR de respaldo en el contrato. Optimizar tamaño es esencial; por eso se usa Web Assembly y serialización (decoradores como el mencionado nearVinted en el ejemplo). Para NFT, se suele guardar el hash en IPFS y no la imagen en cadena.
  • Llamadas asíncronas entre contratos: patrón de promesas entre marketplace.near y minter.marketplace.near para comprar y transferir.

¿Cómo versionar sin perder datos?

  • En desarrollo: borrar carpeta near-dev, recompilar y redeploy.
  • En producción: usar migraciones y upgrade de contrato para preservar y transformar el state.

¿Cómo crear, compilar y desplegar una dapp con Near CLI?

Con Near CLI puedes crear cuentas, ver llaves, desplegar contratos, firmar transacciones y consultar estado. También se integra en pipelines CI/CD.

¿Cómo iniciar el proyecto y compilar a Web Assembly?

  • Crear app sin front end en TypeScript y con contrato base.
npx create-near-app@latest # Selecciona TypeScript y "No front end"
  • Scripts clave en package.json: build, deploy, test.
  • Compilar el contrato a Web Assembly:
npm run build # Genera contract/build/hello-near.wasm

Estructura relevante: contract/ con src/ del contrato, build/ con el .wasm, y README con pasos.

¿Cómo autenticar, desplegar y probar métodos?

  • Iniciar sesión y otorgar full access key a Near CLI:
near login
  • Desplegar con cuenta de desarrollo en testnet:
near dev-deploy contract/build/hello-near.wasm
  • Invocar método que escribe (call) y consultar (view):
# Escribir near call $CONTRACT set_greeting '{"message":"Hola, comunidad de Platzi"}' --accountId TU_CUENTA.testnet # Leer near view $CONTRACT get_greeting
  • Ver detalles en el Explorer: transacción firmada, logs on-chain, gas y storage.

¿Cómo gestionar llaves, redes y estado?

  • Revisar llaves y sus permisos (incluye allowance de 0.25 NEAR para function-call):
near keys TU_CUENTA.testnet
  • Cambiar red con variable de entorno y consultar estado:
NEAR_ENV=mainnet near state contrato.near
  • Otras utilidades: near send, near delete-account, near view-state.

Habilidades y conceptos que pondrás en práctica:

  • Configuración de entorno con Near CLI y wallet de testnet.
  • Modelado de contratos con métodos view y call.
  • Uso del objeto near para identidad, depósitos y tiempo de ejecución.
  • Optimización por gas y storage cost en Web Assembly.
  • Operaciones de despliegue: build, dev-deploy, llamadas y lectura de estado.
  • Manejo de access keys y precisión con yoctoNEAR.
  • Patrones de llamadas entre contratos y nociones de sharding con Nightshade.

¿Tienes dudas o quieres compartir el avance de tu equipo y tu idea de proyecto? Déjalo en los comentarios y cuéntanos qué quieres construir en Near.