Solución de Problemas (FAQ)
Esta guía agrupa las preguntas y problemas más comunes que los desarrolladores encuentran al trabajar con contratos inteligentes en ISBE, organizados por la fase del ciclo de vida del proyecto.
Antes del despliegue
¿Cuándo debo usar una plantilla vs. desarrollar custom?
Si tu lógica de negocio se limita a la emisión de un token (fungible o no fungible), trazabilidad de estados o sellado de tiempo, usa una plantilla. Solo desarrolla un contrato custom si tienes reglas de validación o procesos multi-actor que las plantillas no pueden cubrir. Ver qué plantilla necesito.
¿Qué modalidad de despliegue me conviene?
Depende del nivel de control y cumplimiento que necesites. La Modalidad 1 es la recomendada para la mayoría de los casos por su facilidad y pricing preferente. Si tienes una lógica de negocio extremadamente específica, opta por la Modalidad 2. La Modalidad 3 se reserva para pruebas o entornos no regulados. Ver comparación de modalidades.
¿Cuánto tarda el proceso de conformidad?
El tiempo de revisión técnica depende del Nivel de Conformidad requerido:
- Nivel C (Básico): 2-4 semanas.
- Nivel B (Avanzado): 4-8 semanas.
- Nivel A (Crítico/Regulado): 4-12 semanas. Entregar documentación incompleta o tests que fallan reiniciará estos plazos. Ver detalles de los niveles.
¿Puedo usar librerías externas como OpenZeppelin?
Sí, de hecho es recomendable utilizar versiones auditadas de OpenZeppelin para estándares comunes. Sin embargo, debes incluir el código fuente de las dependencias exactas que usaste en tu entrega para garantizar que el build es reproducible durante el análisis de seguridad de ISBE.
¿Necesito conocimientos previos de blockchain para usar las plantillas?
No es estrictamente necesario conocer Solidity para usar las plantillas, ya que solo requieren configuración de parámetros. Sin embargo, se recomiendan conocimientos básicos sobre cómo funcionan las transacciones y las direcciones en una red compatible con Ethereum.
Durante el desarrollo
¿Tengo que implementar el Patrón Diamond (EIP-2535) yo mismo?
No. Tú entregas un contrato estándar en Solidity. La infraestructura de despliegue de ISBE se encarga de empaquetar tu lógica dentro del patrón Diamond de la red. Solo debes preocuparte de tu lógica de negocio y de usar el patrón de almacenamiento correcto.
¿Cómo gestiono los roles de mi contrato?
Los roles iniciales que deseas asignar se indican en la solicitud de despliegue. Una vez desplegado, puedes gestionar los roles (conceder o revocar) utilizando las funciones estándar de AccessControl si tu contrato las incluye o si estás usando una plantilla.
¿Qué es Unstructured Storage y por qué es obligatorio?
Es un patrón de almacenamiento que evita colisiones de memoria cuando un contrato es actualizado. Es obligatorio en ISBE para garantizar que las actualizaciones de lógica no corrompan los datos existentes en el estado del contrato.
¿Puedo asignar roles a un DID en lugar de a direcciones individuales?
Sí. El sistema de ISBE está diseñado para que los roles puedan ser ostentados por identidades descentralizadas (DIDs), lo que facilita la gestión de permisos a nivel institucional en lugar de depender de claves privadas individuales.
¿Cómo obtengo el DID de una dirección en mi lógica de contrato?
Si utilizas los componentes Core de ISBE, puedes consultar el registro central de identidad para obtener el DID asociado a msg.sender o a cualquier otra dirección Ethereum. Ver Referencia Técnica sobre DID.
En producción
¿Qué pasa si encuentro un bug después del despliegue?
Deberás iniciar un proceso de gestión de cambios. Una vez que la corrección sea homologada por ISBE, se realizará una actualización de la "facet" correspondiente en el Diamond para parchear la vulnerabilidad sin cambiar la dirección del contrato ni perder los datos.
¿Cómo solicito una actualización de mi contrato desplegado?
Las actualizaciones se solicitan a través del portal de ISBE, adjuntando el nuevo código y la documentación de cambios justificativa. El proceso sigue un flujo de conformidad similar al despliegue inicial pero centrado en los cambios realizados.
¿En qué circunstancias puede ISBE pausar mi contrato?
ISBE puede pausar contratos ante incidentes de seguridad graves, fallos críticos de integridad o mandatos legales/judiciales. Los detalles específicos y la gobernanza de este proceso se detallan en la sección de Seguridad y Gobernanza de Red.
¿Qué significa que mi address esté filtrado en la red?
Es una medida de último recurso donde los nodos de la red rechazan transacciones hacia una dirección específica. Solo se aplica cuando no existen mecanismos técnicos de pausa o estos no han sido efectivos ante una amenaza crítica. Ver Filtrado de Address.
¿Dónde puedo verificar mi contrato públicamente?
Puedes consultar cualquier contrato desplegado, sus transacciones y eventos a través de Blockscout, el explorador de bloques oficial de ISBE. Ir a Blockscout.
¿No encuentras la respuesta que buscas? Contacta con el equipo de soporte a través de tu Canal de Service Provider asignado.