Categoría: Educación

os de prueba y los escenarios de las mismas se preparan, clasificándolos para simular todas las situaciones tipo y límite o prohibidas, siguiendo las especificaciones de diseño y calidad de la entidad responsable del proyecto.
CR3.2 El entorno de desarrollo se utiliza para crear y enviar sucesivas transacciones al Contrato Inteligente («Smart Contract»), asegurando el funcionamiento de cada una de las funciones siguiendo las especificaciones establecidas por la entidad responsable del proyecto.
CR3.3 El Contrato Inteligente («Smart Contract») se somete a sucesivas pruebas de integración y depuración en un entorno controlado y con información conocida, para asegurar su correcto funcionamiento en la red de Blockchain de acuerdo a las especificaciones de diseño.
CR3.4 El Contrato Inteligente («Smart Contract») se somete a pruebas de carga, provocando situaciones para detectar alteraciones de rendimiento que difieran de los niveles de calidad establecidos por la entidad.
CR3.5 Las limitaciones de funcionalidad y rendimiento detectadas se transmiten a la persona responsable por los cauces que determine la entidad encargada del proyecto.
CR3.6 Las pruebas de integración y rendimiento se documentan según la convención establecida en la entidad responsable del proyecto, reflejando el procedimiento y resultado de cada prueba de modo que sirva de guía para su entendimiento y futuras modificaciones.
RP4: Elaborar la documentación del Contrato Inteligente («Smart Contract») desarrollado, reflejando los pasos seguidos y las herramientas utilizadas, para garantizar su uso y futuro mantenimiento, según las normas de calidad establecidas por la entidad responsable del proyecto.
CR4.1 La documentación técnica del Contrato Inteligente («Smart Contract») se redacta explicando con precisión cada constante, variable, función y evento de forma que permita su fácil comprensión y modificación, de acuerdo con la convención establecida en la entidad responsable del proyecto.
CR4.2 El lenguaje de programación, la versión, la plataforma Blockchain y los estándares utilizados se reflejan en la documentación, para establecer el marco de referencia.
CR4.3 Las pautas de desarrollo seguidas se incluyen en la documentación, para facilitar la incorporación de actualizaciones, mejoras y correcciones en el Contrato Inteligente («Smart Contract»).
CR4.4 La documentación para el usuario se elabora, explicando por pasos las instrucciones de manejo, describiendo los componentes del Contrato Inteligente («Smart Contract»), el modelo de datos utilizado y otros elementos de ayuda de modo que faciliten el uso del mismo.
Contexto profesional:
Medios de producción:
Equipos informáticos y periféricos. Sistemas operativos y parámetros de configuración. Entorno de desarrollo online o local. Lenguaje de programación para el Contrato Inteligente («Smart Contract»). Herramientas de depuración. Herramientas de prueba. Herramientas de despliegue. Herramienta interfaz de comunicación con el Contrato Inteligente («Smart Contract»). Herramientas de control de cambios. Entorno de ejecución.
Productos y resultados:
Contrato inteligente («smart contract») desarrollado. Componentes del Contrato Inteligente («Smart Contract») probados. Código fuente del Contrato Inteligente («Smart Contract») elaborado. Código ejecutable del Contrato Inteligente («Smart Contract») obtenido. Contrato inteligente («smart contract») desplegado en la red de Blockchain. Pruebas en el entorno productivo desarrolladas. Cambios en el código desarrollado gestionados. Documentación del Contrato Inteligente («Smart Contract») elaborada.
Información utilizada o generada:
Normas externas de trabajo (normativa aplicable de seguridad, protección de datos, propiedad intelectual e industrial; normativa aplicable de planificación de la acción preventiva). Normas internas de trabajo (normas de procedimiento de trabajo, documentación, prueba, reglamentación y estándares de calidad; documentación de diseño y proyecto de desarrollo; documentación de pruebas de integración y rendimiento; documentación del código desarrollado; documentación del código desarrollado; plan de prevención de riesgos laborales -ergonomía-). Documentación técnica (documentación sobre versionado, lenguaje y plataforma de Blockchain; manuales de lenguajes de programación; manuales de desarrollo de Contratos Inteligentes («Smart Contracts»); manuales de entornos de desarrollo y ejecución; manuales de las herramientas de pruebas y carga; manuales de la comunidad de desarrolladores; guía de buenas prácticas de la comunidad de desarrolladores; manuales de uso y funcionamiento de la plataforma Blockchain, manuales de funcionamiento del software, ayuda en línea de bibliotecas y aplicaciones).
UNIDAD DE COMPETENCIA 3: DESARROLLAR INTERFACES DE USUARIO «FRONTEND» PARA INTERACCIÓN CON REDES DESCENTRALIZADAS BASADAS EN BLOCKCHAIN
Nivel: 3
Código: UC2632_3
Realizaciones profesionales y criterios de realización:
RP1: Programar interfaces de usuario «frontend», escogiendo previamente de entre las tecnologías disponibles aquellas que mejor se ajusten a las especificaciones del producto y a las tecnologías de registro distribuido, desarrollando el código y desplegando la aplicación para usarla en la interacción con redes descentralizadas basadas en Blockchain.
CR1.1 El marco de trabajo («framework») para entorno gráfico se selecciona, bajo la supervisión de la persona responsable del desarrollo, analizando sus características y comparándolos para elegir el que mejor se adapte a las necesidades del producto.
CR1.2 La aplicación se desarrolla usando el marco de trabajo («framework») para entorno gráfico seleccionado, integrando las librerías de uso común en el sector para el manejo de información sensible, garantizando la auditabilidad y resolviendo problemas tales como el manejo y generación de claves privadas y semillas, las soluciones de cifrado, la conectividad con extensiones de monederos («wallets»), la conexión con un «backend» o la comunicación de la aplicación con nodos externos, entre otros.
CR1.3 La aplicación se prueba, verificando su funcionalidad, tal como el acceso a los datos de la red descentralizada y la conexión en su caso con un «backend» en función del tipo de red y del caso de uso, evaluando su usabilidad.
CR1.4 Las herramientas de control de versiones centralizadas o distribuidas se utilizan, creando, bloqueando elementos para modificación, abriendo ramas («fork» o «branch») y publicando el código del interfaz «frontend» desarrollado o modificado para garantizar el control de cambios en el software, facilitando el desarrollo, la adición de nuevas funcionalidades y la corrección de errores.
CR1.5 La aplicación se despliega sobre la red usando un «hosting» descentralizado para distribuir el contenido y evitar ataques de denegación de servicio.
CR1.6 El acceso a la aplicación se configura en su caso mediante un Servicio Descentralizado de Nombres de Dominio para facilitar a los usuarios el uso de las direcciones.
CR1.7 La aplicación se documenta, usando herramientas cooperativas que faciliten la revisión, informando de las librerías usadas, pruebas efectuadas, resultado de las mismas, entre otros, usando las reglas de la comunidad y del departamento de IT para obtener como resultado una estructura de código sencilla y fácil de auditar.
RP2: Adaptar la aplicación «frontend» para una visualización de los datos comprensible, abstrayendo las soluciones criptográficas con el objeto de simplificar la experiencia de usuario (UX).
CR2.1 Los saldos de activos fungibles, tales como «token» tipo criptomoneda u otros, y no fungibles (NFT -Non Fungible Token-) se muestran, abstrayendo los balances y listando los activos de forma clara y sencilla para facilitar la experiencia de usuario (UX).
CR2.2 Las interacciones de usuario (UI) tales como facturas, transacciones o contratos inteligentes, se desarrollan mediante formularios para que sean accesibles y se puedan utilizar sin conocimientos técnicos.
CR2.3 Los eventos, registros «log» o información de oráculos se envían al usuario sin pasar por soluciones centralizadas para evitar la manipulación en su toma de decisiones.
CR2.4 Los exploradores de bloques externos, o en su caso otra herramienta similar, se utilizan a través de hipervínculos a aplicaciones externas para verificar la información de la aplicación.
RP3: Mantener interfaces de usuario «frontend» usando servicios ubicados en la parte de los clientes para reducir los vectores de ataque y el coste de mantenimiento de las soluciones centralizadas.
CR3.1 El acceso se configura estableciendo usuario («login») y autorización mediante un sistema de identidad soberano, basado en alguno de los siguientes modelos: firma desde clave privada de monedero, posesión de nodo propio o prueba de conocimiento cero.
CR3.2 La información suministrada al usuario se verifica a través de nodos Blockchain desplegados en el navegador cliente tipo SPV («Simplified Payment Verification») o Nodo Ligero para impedir la modificación de la información durante el envío desde un servidor externo.
CR3.3 El contenido estático de la aplicación se publica, manteniéndolo usando un nodo de contenido direccionado («Address Content») para aumentar la resiliencia y para reducir los costes de servidor («serverless»).
Contexto profesional:
Medios de producción:
Equipos informáticos cliente y periféricos. Sistemas de almacenamiento. Plataformas de desarrollo local o en la nube. Entornos de desarrollo para programación. Componentes software específicos de los sistemas de cadena de bloques tales como monedero («wallet»). Hardware específico tal como monederos fríos («cold wallets»).
Productos y resultados:
Aplicación «frontend» desarrollada. Experiencia de usuario de la aplicación «frontend» conseguida. Aplicación «frontend» mantenida en la red descentralizada.
Información utilizada o generada:
Normas externas de trabajo (normativa aplicable de seguridad, propiedad intelectual e industrial y de protección de datos; normativa de regulación de activos digitales). Normas internas de trabajo (Inventario de hardware; documentación de instalación y configuración; documentación de pruebas; plan de prevención de riesgos laborales -ergonomía-). Documentación técnica (requisitos técnicos para la instalación de los componentes software; documentación técnica de los componentes software; manuales de uso y funcionamiento de la plataforma; recomendaciones de mantenimiento de los fabricantes; catálogos de productos «software», proveedores y precios).
UNIDAD DE COMPETENCIA 4: DESPLEGAR CONTRATOS INTELIGENTES («SMART CONTRACTS») SOBRE NODOS DE RED DLT, BLOCKCHAIN
Nivel: 3
Código: UC2633_3
Realizaciones profesionales y criterios de realización:
RP1: Instalar el nodo de la red, previa descarga desde los repositorios de la comunidad de desarrolladores, configurándolo según las especificaciones técnicas de la comunidad de desarrolladores y los procedimientos establecidos por el departamento de tecnologías de la información (IT) para desplegar del Contrato Inteligente («Smart Contract»).
CR1.1 El proceso de instalación se planifica, teniendo en cuenta a las características del sistema tal como volumen de datos esperados, tráfico de la red, seguridad de la información, entre otros, ajustándolo a los tiempos y tareas previstos en la planificación.
CR1.2 El nodo se instala localmente previa descarga desde los repositorios de la comunidad de desarrolladores, parametrizándola y de acuerdo a los estándares establecidos en la documentación técnica de despliegue, garantizando el buen funcionamiento del mismo.
CR1.3 La seguridad, resiliencia, rendimiento y calidad de la instalación se verifican mediante pruebas al efecto, utilizando los principios establecidos por la comunidad y el departamento IT.
CR1.4 La sincronización de la cadena de bloques se comprueba que es completa en el nodo, garantizando el intercambio de información con los nodos de la red DLT.
CR1.5 El acceso a la información de la cadena de bloques tal como bloques, transacciones y direcciones, se verifica a través de la interfaz de programación de aplicaciones del nodo.
CR1.6 El software del nodo se actualiza con los mecanismos habilitados en el repositorio y siguiendo estándares definidos por la comunidad de desarrolladores y el departamento IT.
CR1.7 La documentación de los procesos de instalación y actualización se elabora incluyendo las incidencias y soluciones adoptadas, siguiendo el formato establecido tal como tipo de documento, tamaño, tipografía, entre otros, según los estándares del departamento IT.
RP2: Instalar el Contrato Inteligente («Smart Contract»), desplegándolo según el procedimiento generado por la comunidad y por el departamento de tecnologías de la información (IT), y verificando su funcionalidad para integrar el producto desarrollado en la red DLT.
CR2.1 La dirección desde la que se va a desplegar el Contrato Inteligente («Smart Contract») se comprueba que cuenta con los suficientes recursos para su despliegue.
CR2.2 El Contrato Inteligente («Smart Contract») se instala, lanzando una transacción de despliegue, siguiendo los procedimientos establecidos tanto por la comunidad como por la organización, garantizando su buen funcionamiento.
CR2.3 El despliegue del Contrato Inteligente («Smart Contract») dentro de la cadena de bloques se verifica mediante la obtención de sus datos tales como dirección o bloque en el que se despliega, entre otros.
CR2.4 El software se prueba verificando su funcionalidad tal como el acceso a los datos de la red descentralizada y la conexión en su caso con un «backend» en función del tipo de red y del caso de uso, evaluando su usabilidad y siguiendo los parámetros de calidad establecidos por la comunidad y la organización.
CR2.5 La nueva versión de un Contrato Inteligente («Smart Contract») se actualiza en su caso, difundiendo la nueva dirección del contrato actualizado, garantizando la integridad, seguridad y disponibilidad de la información.
CR2.6 Los trabajos realizados se documentan incluyendo las incidencias y soluciones adoptadas, y los procedimientos de restauración del servicio en caso de error, utilizando el formato que se establezca en los estándares que marque el departamento IT.
RP3: Administrar los componentes software y hardware que forman el producto, configurándolos para garantizar su disponibilidad, rendimiento y seguridad acorde a los planes del departamento de tecnologías de la información (IT) y de la comunidad de desarrolladores para mantener el propio nodo.
CR3.1 La capacidad de los componentes del sistema tales como la memoria, el disco, procesador, entre otros, se valora garantizando que se adecuan a las necesidades de rendimiento.
CR3.2 El rendimiento se comprueba midiendo tiempos de respuesta y capacidad de transferencia de la red proporcionados por el departamento IT y cotejándolo con los valores recomendados por la comunidad de desarrolladores.
CR3.3 Las herramientas de monitorización se instalan en su caso, comprobando la carga de la red, del hardware y el software, entre otros para garantizar el buen funcionamiento del producto siguiendo las recomendaciones de la organización.
CR3.4 La información de la cadena de bloques se visualiza utilizando un explorador de bloques o una herramienta similar.
CR3.5 Las claves criptográficas se crean invocando el comando específico de la Blockchain siguiendo los estándares de seguridad de la organización y la comunidad, para almacenarlas posteriormente.
CR3.6 Los cortafuegos se configuran, parametrizando las reglas de acceso a la red en que se encuentra el nodo de acuerdo a las «buenas prácticas» generadas por la organización.
CR3.7 Las operaciones de administración y configuración se documentan incluyendo las incidencias y soluciones adoptadas y utilizando los estándares de tipo de documento, tamaño y formato que definen los protocolos del departamento IT.
RP4: Gestionar los componentes de red, monitorizando el nodo y parametrizando los servicios, para asegurar la buena comunicación entre el nodo local y la red DLT según las necesidades establecidas por la comunidad de desarrolladores.
CR4.1 Los servicios de red se configuran, asignando valores a los parámetros propios de cada uno, siguiendo las directrices del departamento de comunicaciones garantizando el funcionamiento de la misma y la conexión con los servicios de «backend».
CR4.2 Los parámetros de conexión entre el nodo local y la red DLT se definen de modo que se eviten pérdidas de servicio en el resto de los componentes de la red corporativa utilizando los procedimientos del departamento de comunicaciones.
CR4.3 El nodo se monitoriza, incluyéndolo en los sistemas de monitorización de red de la compañía para garantizar la recolección de información en caso de pérdida de servicio.
CR4.4 Las incidencias detectadas se documentan, para enviarlas a los responsables del departamento de comunicaciones, indicando la causa del problema, las acciones realizadas y su resolución.
RP5: Desplegar los mecanismos de seguridad de acceso al nodo recomendados en el plan de seguridad y por la comunidad de desarrolladores para garantizar la confidencialidad, integridad y disponibilidad y el control de acceso.
CR5.1 Las políticas de acceso al sistema donde se aloja el nodo se definen, estableciendo usuarios, roles y permisos y aplicándolos según los parámetros establecidos por el departamento responsable de la seguridad.
CR5.2 La configuración de seguridad del nodo se implementa, configurando claves, puertos y/o el acceso remoto, entre otros, siguiendo las directrices establecidas por la comunidad de desarrolladores.
CR5.3 La clave privada generada en la instalación del nodo se mantiene segura, almacenando copias de respaldo siguiendo las directrices del departamento responsable de la seguridad.
CR5.4 El nodo se incluye en los sistemas de monitorización del departamento responsable de la seguridad, garantizando la recolección de información y alerta temprana en caso de incidencia.
CR5.5 Los procesos de seguridad implementados se documentan incluyendo las incidencias y soluciones adoptadas, siguiendo los estándares de formato, tamaño y tipo de letra que indican los procedimientos del departamento responsable de la seguridad para su almacenamiento y posterior utilización.
Contexto profesional:
Medios de producción:
Equipos informáticos y periféricos. Sistemas operativos y parámetros de configuración. Sistemas de almacenamiento. Clúster y centros de respaldo. Herramientas de seguridad y antivirus. Herramientas de gestión de archivos de registro (log). Herramientas de depuración. Herramientas de control de cambios. Planificadores de tareas. Monitores de rendimiento. Acceso a Internet. Herramientas software de instalación. Cortafuegos. Soporte software criptográfico para generación y almacenamiento de claves.
Productos y resultados:
Nodo de red instalado, configurado y desplegado. Contrato Inteligente («Smart Contract») instalado, verificado y listo para su uso. Componentes software y hardware monitorizados, verificados y administrados. Componentes de red gestionados y parametrizados, nodo monitorizado. Mecanismos de seguridad de acceso al nodo desplegados.
Información utilizada o generada:
Normas externas de trabajo (normativa aplicable en materia de seguridad, protección de datos, propiedad intelectual e industrial; normativa aplicable de planificación de la acción preventiva). Normas internas de trabajo (plan de seguridad; plan de calidad; documentación de trabajos de despliegue, mantenimiento, administración e incidencias; plan de prevención de riesgos laborales -ergonomía-). Documentación Técnica (manuales de administración y operación de los nodos de la red; manuales de despliegue de los Contratos Inteligentes - «Smart Contracts»-; manuales de configuración de cortafuegos; manuales de herramientas administrativas; manuales de ayuda en línea; manuales de seguridad en el ámbito de «Smart Contracts»).
MÓDULO FORMATIVO 1: PREPARACIÓN DE HERRAMIENTAS PARA EL DESARROLLO DE PRODUCTOS Y APLICACIONES QUE UTILICEN TECNOLOGÍAS DESCENTRALIZADAS BLOCKCHAIN
Nivel: 3
Código: MF2630_3
Asociado a la UC: Preparar herramientas de desarrollo de productos que utilicen tecnologías descentralizadas Blockchain
Duración: 60 horas
Capacidades y criterios de evaluación:
C1: Aplicar técnicas de selección de herramientas de programación, analizando las tecnologías disponibles, escogiendo aquellas que se ajusten a las especificaciones de un producto o aplicación basada en Contrato Inteligente («Smart Contract») para su desarrollo posterior.
CE1.1 Clasificar los tipos de estructura de cadena de bloques tales como cadena de bloques, grafos acíclicos dirigidos, entre otros, explicando sus ventajas, inconvenientes, diferencias y posibilidades.
CE1.2 Diferenciar los requerimientos de participación por una entidad externa («Permissioned») o de acceso libre y voluntario («permissionless»), explicando sus ventajas, inconvenientes, diferencias y posibilidades.
CE1.3 Clasificar las cadenas según su ámbito o entorno tales como cadenas de bloque en producción («mainnet»), prueba («testnet»), personalizadas («regtest» o «sigtest»), explicando sus diferencias y aplicaciones.
CE1.4 Clasificar los tipos de consenso de Blockchain tales como prueba de trabajo («Proof of Work» - PoW), prueba de participación («Proof of Stake» - PoS), prueba de autoridad («Proof of Authority» - PoA), entre otros, explicando sus ventajas, inconvenientes, diferencias y posibilidades.
CE1.5 Describir herramientas de asistencia a la programación en entornos locales o en la nube, explicando sus diferencias, ventajas e inconvenientes, especialmente las relativas a la seguridad.
CE1.6 En un supuesto práctico de aplicación de técnicas de selección de herramientas de programación, analizando las tecnologías disponibles, escogiendo aquellas que se ajusten a las especificaciones de un producto o aplicación basada en Contrato Inteligente («Smart Contract») para su desarrollo posterior:
- Evaluar tecnologías a utilizar, analizando si permiten: tecnologías de cadena de bloques o de grafos acíclicos dirigidos; participación por una entidad externa («Permissioned») o acceso libre y voluntario («permissionless»); entornos y cadenas de bloque en producción («mainnet»), prueba («testnet»), personalizadas («regtest» o «sigtest»); tipos de Consenso tales como prueba de trabajo («Proof of Work» - PoW), prueba de participación («Proof of Stake» - PoS), prueba de autoridad («Proof of Authority» - PoA), entre otros.
- Evaluar herramientas de asistencia a la programación de Contratos Inteligentes, en función de sus características y de su ubicación en local o en la nube.
- Seleccionar el entorno de desarrollo, para optimizar su relación coste/beneficio, priorizando las garantías de seguridad tanto contra el acceso y modificación de los datos, como ante la pérdida del activo monetario; las limitaciones tecnológicas para el producto o aplicación a desarrollar; la ubicación del entorno de desarrollo se selecciona, decidiendo entre local (nodo propio) o nube (nodo remoto).
C2: Aplicar procedimientos de instalación y configuración de herramientas para el desarrollo, depurado y test de aplicaciones tipo Contrato Inteligente («Smart Contract»), según los requisitos técnicos de la tecnología y en una ubicación previamente seleccionada
CE2.1 Describir procedimientos de instalación y configuración de entornos de desarrollo, explicando los pasos a seguir y diferenciando si la ubicación es local o en la nube, maximizando la seguridad y minimizando el tiempo de desarrollo.
CE2.2 Describir procedimientos de instalación y configuración del software tipo monedero («wallet»), explicando los pasos a seguir para generar semillas, claves públicas/privada y direcciones, así como para cargar saldo en las direcciones generadas con objeto de poder interactuar con los Contratos Inteligentes («Smart Contracts») desarrollados en entornos de test y producción.
CE2.3 Explicar los pasos a seguir para el despliegue local de una cadena de bloques en la estación de trabajo local o red interna, indicando los parámetros a configurarla y probarla.
CE2.4 En un supuesto práctico de aplicación de procedimientos de instalación y configuración de herramientas para el desarrollo, depurado y test de aplicaciones tipo Contrato Inteligente («Smart Contract»), según los requisitos técnicos de una tecnología y en una ubicación previamente seleccionada:
- Configurar un entorno de desarrollo en una ubicación seleccionada y de acuerdo a unos requerimientos técnicos, tanto para maximizar la productividad y la seguridad en los procesos de desarrollo, depurado, compilado, testeo y de despliegue del Contrato Inteligente («Smart Contract»).
- Instalar un entorno de desarrollo integrado («IDE») y los «framework» asociados a unas tecnologías Blockchain en la estación de trabajo local (nodo propio), de modo que permitan minimizar el tiempo de desarrollo y maximizar la seguridad de la aplicación o producto Contrato Inteligente («Smart Contract»).
- Instalar un software tipo monedero («wallet») en el servidor de forma segura, configurándolo y generando semillas, claves públicas/privada y direcciones, así como cargando saldo en las direcciones generadas, con objeto de poder interactuar con los Contratos Inteligentes («Smart Contracts») desarrollados en entornos de test y producción.
- Desplegar la cadena de bloques en la estación de trabajo local o red interna, en caso de requerir la máxima prioridad en el proceso de desarrollo, configurándola y arrancándola en un entorno privado, para evitar interactuar con nodos o cadenas de bloques externas.
C3: Aplicar procedimientos de conexión de herramientas de programación con una Blockchain previamente seleccionada, configurándolas y explorando el estado de la cadena de bloques para verificar la funcionalidad de la aplicación de Contrato Inteligente («Smart Contract») en un entorno de test o de producción.
CE3.1 Describir procedimientos de prueba y verificación de conexión con un nodo, usando la interfaz RPC («Remote Procedure Call»), obteniendo información básica almacenada en la cadena de bloques, tales como saldos de direcciones propias, o encontrando y visualizando transacciones y bloques concretos.
CE3.2 Explicar los pasos a seguir para verificar la conectividad al exterior con otros nodos de una red de cadena de bloques, utilizando un navegador de Internet para explorar el estado global de la cadena y su rendimiento.
CE3.3 En un supuesto práctico de aplicación de procedimientos de conexión de herramientas de programación con una Blockchain previamente seleccionada, configurándolas y explorando el estado de la cadena de bloques para verificar la funcionalidad de la aplicación de Contrato Inteligente («Smart Contract») en un entorno de test o de producción.:
- Comprobar la conexión con el nodo a través de la interfaz RPC («Remote Procedure Call»), obteniendo información básica almacenada en la cadena de bloques, tales como saldos de direcciones propias, o encontrando y visualizando transacciones y bloques concretos.
- Verificar la conexión para asegurar la conectividad al exterior con otros nodos de la red de cadena de bloques, utilizando un navegador de Internet para explorar el estado global de la cadena y su rendimiento.
- Documentar el proceso de preparación del desarrollo incluyendo ítems tales como parámetros de configuración, direcciones de monederos, archivos de testeo entre otros, de modo que se facilite la consulta posterior.
Capacidades cuya adquisición debe ser completada en un entorno real de trabajo:
C1 respecto a CE1.6; C2 respecto a CE2.4; C3 respecto a CE3.3.
Otras capacidades:
Responsabilizarse del trabajo que desarrolla y del cumplimiento de los objetivos.
Finalizar el trabajo atendiendo a criterios de idoneidad, economía y eficacia.
Adaptarse a situaciones o contextos nuevos.
Respetar los procedimientos y normas internas de la organización.
Mostrar una actitud de respeto hacia los compañeros, procedimientos y normas de la empresa.
Aplicar de forma efectiva el principio de igualdad de trato y no discriminación en las condiciones de trabajo entre mujeres y hombres.
Contenidos:
1. Tecnologías para entornos de desarrollo en Blockchain
Entornos de desarrollo locales y en la nube para Blockchain.
Soporte del IDE para tipos de estructura de cadena de bloque. Grafos acíclicos dirigidos.
Soporte del IDE para requerimientos de participación. Por entidad externa («Permissioned»). De acceso libre y voluntario («permissionless»).
Soporte del IDE según ámbito o entorno de las cadenas de bloque en producción («mainnet»), prueba («testnet»), personalizadas («regtest» o «sigtest»).
Soporte del IDE para tipos de consenso de Blockchain. Prueba de trabajo («Proof of Work» - PoW). Prueba de participación («Proof of Stake» - PoS). Prueba de autoridad («Proof of Authority» - PoA).
2. Instalación y configuración de entornos de desarrollo para Blockchain
Procedimientos de instalación y configuración de entornos de desarrollo Blockchain.
Procedimientos de instalación y configuración en local.
Procedimientos de instalación y configuración en la nube.
procedimientos de instalación y configuración del software tipo monedero («wallet»). Generación de semillas, Claves públicas/privada, Direcciones, Carga de saldo.
Procedimientos de despliegue. Despliegue local. Despliegue en la nube.
3. Procedimientos de pruebas de conexión desde entornos de desarrollo para Blockchain
Procedimientos de prueba y verificación de conexión con un nodo. Interfaz RPC («Remote Procedure Call»).
Procedimientos de verificación de la conectividad al exterior con otros nodos de una red de cadena de bloques mediante navegador.
Técnicas de documentación de instalación, despliegue y pruebas de un IDE para Blockchain.
Parámetros de contexto de la formación:
Espacios e instalaciones:
Los talleres e instalaciones darán respuesta a las necesidades formativas de acuerdo con el contexto profesional establecido en la unidad de competencia asociada, teniendo en cuenta la normativa aplicable del sector productivo, prevención de riesgos laborales, accesibilidad universal, igualdad de género y protección medioambiental. Se considerará con carácter orientativo como espacios de uso:
- Instalación de 2 m² por alumno o alumna.
Perfil profesional del formador o formadora:
1. Dominio de los conocimientos y las técnicas relacionados con la preparación de herramientas para el desarrollo de productos y aplicaciones que utilicen tecnologías descentralizadas Blockchain, que se acreditará mediante una de las dos formas siguientes:
- Formación académica de nivel 2 (Marco Español de Cualificaciones para la Educación Superior) o de otras de superior nivel relacionadas con el campo profesional.
- Experiencia profesional de un mínimo de 2 años en el campo de las competencias relacionadas con este módulo formativo.
2. Competencia pedagógica acreditada de acuerdo con lo que establezcan las Administraciones competentes.
MÓDULO FORMATIVO 2: PROGRAMACIÓN DE CONTRATOS INTELIGENTES («SMART CONTRACTS»)
Nivel: 3
Código: MF2631_3
Asociado a la UC: Programar Contratos Inteligentes («Smart Contracts»)
Duración: 120 horas
Capacidades y criterios de evaluación:
C1: Aplicar procedimientos de desarrollo de un Contrato Inteligente («Smart Contract») basado en tecnologías distribuidas, usando un lenguaje de programación y en un entorno de desarrollo para reflejar la lógica de aplicación, de modo que cumpla las especificaciones de un diseño y en condiciones de calidad.
CE1.1 Explicar las formas de abordar el desarrollo de un contrato inteligente en función de si la Blockchain es pública, privada, híbrida, entre otros, indicando las características de desarrollo que de ello se derivan.
CE1.2 Describir los componentes de un Contrato Inteligente («Smart Contract»), analizando un diseño previo, estableciendo las opciones de seguridad y permisos asociados a configurar.
CE1.3 Describir procedimientos de documentación del código, explicando las convenciones para describir cada componente.
CE1.4 Describir procedimientos de prueba, previo aislamiento del Contrato Inteligente («Smart Contract») en un entorno controlado para garantizar que sigue la funcionalidad descrita en un diseño.
CE1.5 Explicar procedimientos de uso de herramientas de control de versiones centralizadas o distribuidas, separando y describiendo los pasos a seguir para cada posible operación tal como creación, bloqueo elementos para modificación, apertura de ramas («fork» o «branch») y publicación de código del Contrato Inteligente («Smart Contract»).
CE1.6 En un supuesto práctico de desarrollo de un Contrato Inteligente («Smart Contract») basado en tecnologías distribuidas, usando un lenguaje de programación y en un entorno de desarrollo para reflejar la lógica de aplicación, de modo que cumpla las especificaciones de un diseño y en condiciones de calidad:
- Determinar las constantes, variables, modelos, funciones y eventos del Contrato Inteligente («Smart Contract»), en función de si la plataforma Blockchain es pública, privada, híbrida, entre otros y las características que se derivan.
- Detectar inconsistencias y limitaciones de un diseño, analizando y valorando la propuesta.
- Codificar componentes del Contrato Inteligente («Smart Contract»), utilizando el lenguaje de programación y en el entorno de desarrollo propuestos, siguiendo una guía de buenas prácticas y los estándares de la comunidad de desarrolladores.
- Establecer permisos por cada variable y función del Contrato Inteligente («Smart Contract») de acuerdo a unas especificaciones de seguridad establecidas en un diseño.
- El código se documenta según una convención, determinando el nombre y propósito de cada componente de forma precisa para facilitar su entendimiento.
- Someter los componentes del Contrato Inteligente («Smart Contract») desarrollados a sucesivas pruebas y a depuración en un entorno aislado, para asegurar su funcionamiento.
- Utilizar herramientas de control de versiones centralizadas o distribuidas, creando, bloqueando elementos para modificación, abriendo ramas («fork» o «branch») y publicando el código del Contrato Inteligente («Smart Contract») desarrollado o modificado para garantizar el control de cambios en el software, facilitando el desarrollo, la adición de nuevas funcionalidades y la corrección de errores.
C2: Aplicar técnicas de despliegue de un Contrato Inteligente («Smart Contract») desarrollado para integrar la lógica programada con una red de Blockchain, garantizando su funcionalidad.
CE2.1 Describir procedimientos de preparación de un entorno controlado de despliegue, explicando los pasos a seguir para configurar las herramientas a utilizar.
CE2.2 Describir procedimientos de conexión con una red de Blockchain, explicando los pasos a seguir para configurar una identidad.
CE2.3 Describir procedimientos de despliegue y prueba usando herramientas al efecto para compilar y desplegar el Contrato Inteligente («Smart Contract»), a través de un nodo de la red de Blockchain.
CE2.4 En un supuesto práctico de aplicación de técnicas de despliegue de un Contrato Inteligente («Smart Contract») desarrollado para integrar la lógica programada con una red de Blockchain, garantizando su funcionalidad:
- Preparar un entorno controlado de despliegue, configurando las herramientas de despliegue, siguiendo unas especificaciones y la guía de buenas prácticas de la comunidad.
- Configurar la conexión con una red de Blockchain a través de una identidad, utilizando las herramientas según el tipo de tecnología de la plataforma.
- Utilizar unas herramientas de despliegue para compilar y desplegar el Contrato Inteligente («Smart Contract») a través de un nodo de la red de Blockchain.
- Utilizar el entorno de desarrollo para construir y enviar una transacción a la red de Blockchain, asegurando la comunicación efectiva con el Contrato Inteligente («Smart Contract») desplegado y preparando las automatizaciones que se requieran desde el «backend».
- Documentar el proceso de despliegue según una convención de formato, determinando las instrucciones y resultados de cada paso, para facilitar su entendimiento y posteriores reiteraciones del proceso.
C3: Aplicar procedimientos de prueba de un Contrato Inteligente («Smart Contract») desarrollado, para asegurar que cumple unas especificaciones, garantizando su funcionamiento en el entorno productivo.
CE3.1 Explicar procedimientos de preparación de datos de prueba y escenarios, clasificándolos para simular todas las situaciones tipo y límite o prohibidas.
CE3.2 Explicar procedimientos creación y envío de transacciones para pruebas unitarias, de integración y de depuración, usando datos de prueba y escenarios, para verificar cada una de las funciones del Contrato Inteligente («Smart Contract»).
CE3.3 Describir procedimientos de pruebas de carga del Contrato Inteligente («Smart Contract»), provocando situaciones para detectar alteraciones de rendimiento que difieran de unos niveles de calidad.
CE3.4 Describir la estructura de la documentación de pruebas, explicando sus apartados, información a reflejar y opciones de formato.
CE3.5 En un supuesto práctico de aplicación de procedimientos de prueba de un Contrato Inteligente («Smart Contract») desarrollado, para asegurar que cumple unas especificaciones, garantizando su funcionamiento en el entorno productivo:
- Preparar un conjunto de datos de prueba y los escenarios de las mismas, clasificándolos para simular todas las situaciones tipo y límite o prohibidas, siguiendo unas especificaciones de diseño y calidad.
- Utilizar un entorno de desarrollo para crear y enviar sucesivas transacciones al Contrato Inteligente («Smart Contract»), asegurando el funcionamiento de cada una de las funciones siguiendo las especificaciones establecidas por la entidad responsable del proyecto.
- Someter al Contrato Inteligente («Smart Contract») a sucesivas pruebas de integración y depuración en un entorno controlado y con información conocida, para asegurar su correcto funcionamiento en la red de Blockchain de acuerdo a unas especificaciones de diseño.
- Someter a pruebas de carga el Contrato Inteligente («Smart Contract»), provocando situaciones para detectar alteraciones de rendimiento que difieran de los niveles de calidad esperados.
- Detectar limitaciones de funcionalidad y rendimiento, transmitiéndolas a la persona responsable por los cauces que determine la entidad encargada del proyecto.
- Documentar las pruebas de integración y rendimiento según una convención, reflejando el procedimiento y resultado de cada prueba de modo que sirva de guía para su entendimiento y futuras modificaciones.
C4: Aplicar técnicas de elaboración de la documentación de un Contrato Inteligente («Smart Contract») desarrollado, reflejando los pasos seguidos y las herramientas utilizadas, para garantizar su uso y futuro mantenimiento, en condiciones de calidad.
CE4.1 Clasificar elementos tales como constantes, variables, funciones y eventos, entre otros, para su inclusión en la documentación técnica del Contrato Inteligente («Smart Contract»), diferenciando y describiendo sus características de forma que permita su fácil comprensión y modificación.
CE4.2 Enumerar características generales a incluir en la documentación, tales como lenguaje de programación, la versión, la plataforma Blockchain y los estándares utilizados, describiendo sus características y denominación entre otros, para establecer el marco de referencia.
CE4.3 En un supuesto práctico de elaboración de documentación de un Contrato Inteligente («Smart Contract») desarrollado, reflejando los pasos seguidos y las herramientas utilizadas, para garantizar su uso y futuro mantenimiento, en condiciones de calidad:
- Redactar la documentación técnica de un Contrato Inteligente («Smart Contract») explicando con precisión cada constante, variable, función y evento de forma que permita su fácil comprensión y modificación, de acuerdo con una convención de contenido y formato.
- Reflejar en la documentación el lenguaje de programación, la versión, la plataforma Blockchain y los estándares utilizados, para establecer el marco de referencia.
- Incluir en la documentación las pautas de desarrollo seguidas, describiendo en su caso las motivadas por requisitos y el porqué de la adopción de determinadas soluciones, para facilitar la incorporación de actualizaciones, mejoras y correcciones en el Contrato Inteligente («Smart Contract»).
Capacidades cuya adquisición debe ser completada en un entorno real de trabajo:
C1 respecto a CE1.6; C2 respecto a CE2.4; C3 respecto a CE3.5; C4 respecto a CE4.3.
Otras capacidades:
Responsabilizarse del trabajo que desarrolla y del cumplimiento de los objetivos.
Finalizar el trabajo atendiendo a criterios de idoneidad, economía y eficacia.
Adaptarse a situaciones o contextos nuevos.
Respetar los procedimientos y normas internas de la organización.
Mostrar una actitud de respeto hacia los compañeros, procedimientos y normas de la empresa.
Aplicar de forma efectiva el principio de igualdad de trato y no discriminación en las condiciones de trabajo entre mujeres y hombres.
Contenidos:
1. Desarrollo de Contratos Inteligentes
Redes DLT. Blockchain. Blockchain públicas, privadas e híbridas.
Contratos Inteligentes («Smart Contracts»). Componentes. Seguridad y permisos. Lenguajes de programación, entornos de desarrollo y frameworks.
Procedimientos de prueba y documentación de Contratos Inteligentes («Smart Contracts»).
Herramientas de control de versiones.
2. Despliegue de Contratos Inteligentes
Procedimientos de preparación de entornos controlados de despliegue.
Procedimientos de conexión con una red de Blockchain. Configuración de identidades.
Procedimientos de despliegue y prueba. Herramientas para compilar y desplegar.
Conexión con «backend».
3. Prueba y documentación de Contratos Inteligentes
Procedimientos de preparación de datos de prueba y escenarios.
Procedimientos creación y envío de transacciones para pruebas unitarias, de integración y de depuración.
Procedimientos de pruebas de carga del Contrato Inteligente («Smart Contract»). Niveles de calidad.
Documentación de pruebas. Estructura y apartados, información a reflejar y opciones de formato.
Elaboración de la documentación de mantenimiento y uso del Contrato Inteligente («Smart Contract»). Estructura y herramientas.
Parámetros de contexto de la formación:
Espacios e instalaciones:
Los talleres e instalaciones darán respuesta a las necesidades formativas de acuerdo con el contexto profesional establecido en la unidad de competencia asociada, teniendo en cuenta la normativa aplicable del sector productivo, prevención de riesgos laborales, accesibilidad universal, igualdad de género y protección medioambiental. Se considerará con carácter orientativo como espacios de uso:
- Instalación de 2 m² por alumno o alumna.
Perfil profesional del formador o formadora:
1. Dominio de los conocimientos y las técnicas relacionados con la programación de Contratos Inteligentes («Smart Contracts»), que se acreditará mediante una de las dos formas siguientes:
- Formación académica de nivel 2 (Marco Español de Cualificaciones para la Educación Superior) o de otras de superior nivel relacionadas con el campo profesional.
- Experiencia profesional de un mínimo de 2 años en el campo de las competencias relacionadas con este módulo formativo.
2. Competencia pedagógica acreditada de acuerdo con lo que establezcan las Administraciones competentes.
MÓDULO FORMATIVO 3: DESARROLLO DE INTERFACES DE USUARIO «FRONTEND» PARA INTERACCIÓN CON REDES DESCENTRALIZADAS BASADAS EN BLOCKCHAIN
Nivel: 3
Código: MF2632_3
Asociado a la UC: Desarrollar interfaces de usuario «frontend» para interacción con redes descentralizadas basadas en Blockchain
Duración: 120 horas
Capacidades y criterios de evaluación:
C1: Aplicar técnicas de programación de un interfaz de usuario «frontend», escogiendo previamente de entre las tecnologías disponibles aquellas que mejor se ajusten a las especificaciones del producto y a las tecnologías de registro distribuido, desarrollando el código y desplegando la aplicación para usarla en la interacción con redes descentralizadas basadas en Blockchain.
CE1.1 Diferenciar marcos de trabajo («frameworks»), describiendo sus características y configuraciones garantizar la continuidad del funcionamiento de la aplicación.
CE1.2 Distinguir los tipos de «hosting» descentralizado, precisando los usos de cada uno y explicando sus características y tipología.
CE1.3 Distinguir Servicios Descentralizados de Nombres de Dominios, precisando sus usos y explicando los pasos de configuración.
CE1.4 Identificar librerías utilizadas para el desarrollo del interfaz «frontend», tales como librerías de criptografía, de comunicaciones, gráficas, entre otras, explicando los usos de cada una de ellas.
CE1.5 Describir herramientas de control de versiones centralizadas o distribuidas, clasificándolas según su arquitectura y funcionalidad para crear, bloquear elementos para modificación, abrir ramas («fork» o «branch») y publicar el código del interfaz «frontend» desarrollado o modificado, garantizando el control de cambios en el software, facilitando el desarrollo, la adición de nuevas funcionalidades y la corrección de errores.
CE1.6 Describir procedimientos de documentación de la aplicación, usando aplicaciones y requisitos de código abierto.
CE1.7 En un supuesto práctico de aplicación de técnicas de programación de un interfaz de usuario «frontend», escogiendo previamente de entre las tecnologías disponibles aquellas que mejor se ajusten a las especificaciones del producto y a las tecnologías de registro distribuido, desarrollando el código y desplegando la aplicación para usarla en la interacción con redes descentralizadas basadas en Blockchain:
- Seleccionar un marco de trabajo («framework») para entorno gráfico, analizando características y comparándolos para elegir el que mejor se adapte a las necesidades del producto.
- Desarrollar una aplicación usando el marco de trabajo («framework») para entorno gráfico seleccionado, integrando las librerías de uso común en el sector para el manejo de información sensible, garantizando la auditabilidad y resolviendo problemas tales como el manejo y generación de claves privadas y semillas, las soluciones de encriptación, la conectividad con extensiones de monederos, la conexión con un «backend» o la comunicación de la aplicación con nodos externos, entre otros.
- Probar la aplicación, verificando su funcionalidad, tal como el acceso a los datos de la red descentralizada y la conexión en su caso con un «backend» en función del tipo de red y del caso de uso, evaluando su usabilidad.
- Utilizar una herramienta de control de versiones centralizada o distribuida, creando, bloqueando elementos para modificación, abriendo ramas («fork» o «branch») y publicando el código del interfaz «frontend» desarrollado o modificado para garantizar el control de cambios en el software, facilitando el desarrollo, la adición de nuevas funcionalidades y la corrección de errores.
- Desplegar la aplicación sobre la red usando un «hosting» descentralizado para distribuir el contenido y evitar ataques de denegación de servicio.
- Configurar el acceso a la aplicación mediante un Servicio Descentralizado de Nombres de Dominio para usar un lenguaje humano.
- Documentar la aplicación, usando herramientas cooperativas que faciliten la revisión, informando de las librerías usadas, pruebas efectuadas, resultado de las mismas, entre otros, usando las reglas de la comunidad y del departamento de IT para obtener como resultado una estructura de código sencilla y fácil de auditar.
C2: Describir procedimientos de configuración y despliegue de nodos de contenido direccionado, clasificando los tipos de identidad soberana, de nodos ligeros y de «hosting» descentralizado para el desarrollo de aplicaciones «frontend» en Blockchain.
CE2.1 Distinguir los tipos de identidad digital soberana, precisando los usos de cada una, explicando sus características y tipología.
CE2.2 Distinguir los tipos de nodos ligeros, precisando sus usos y explicando sus características.
CE2.3 Detallar los procedimientos de configuración y despliegue de nodos de contenido direccionado, explicando los pasos a seguir.
C3: Aplicar procedimientos de mejora de la experiencia de usuario, abstrayendo soluciones criptográficas para el desarrollo de un interfaz «frontend».
CE3.1 Describir los pasos para obtener y mostrar de forma clara y sencilla los saldos de activos fungibles, tales como «token» tipo criptomoneda u otros, y no fungibles (NFT).
CE3.2 Describir procedimientos de interacción y determinación de campos de formulario correspondientes a facturas, transacciones o contratos inteligentes, de modo que se facilite su uso, explicando los pasos a seguir.
CE3.3 Detallar de manera determinista el camino recorrido por los datos usados en la aplicación, asegurando que nunca pasan por procesos centralizados.
CE3.4 Explicar procedimientos de verificación de la información de la aplicación mediante exploradores de bloques externos o herramientas similares, explicando los pasos a seguir.
CE3.5 En un supuesto práctico de aplicación de procedimientos de mejora de la experiencia de usuario, abstrayendo soluciones criptográficas para el desarrollo de un interfaz «frontend»:
- Mostrar saldos de activos fungibles, tales como «token» tipo criptomoneda u otros, y no fungibles (NFT), abstrayendo los balances y listando de forma clara y sencilla los activos para facilitar la experiencia de usuario (UX).
- Desarrollar las interacciones de usuario (UI) tales como facturas, transacciones o contratos inteligentes, mediante formularios para que sean accesibles y se puedan utilizar sin conocimientos técnicos.
- Enviar los eventos, registros «log» o información de oráculos al usuario sin pasar por soluciones ce