Урок 7

Desarrollo avanzado en MetisDAO

Este módulo cubre los aspectos técnicos del desarrollo de aplicaciones en MetisDAO, cubriendo las funciones avanzadas y las herramientas de desarrollo proporcionadas por la plataforma.

Resumen de las herramientas de desarrollo de MetisDAO

Metis proporciona una amplia suite de herramientas de desarrollo para construir aplicaciones descentralizadas (dApps) en su plataforma de Capa 2. Estas herramientas están diseñadas para optimizar tanto el proceso de desarrollo como el rendimiento de las aplicaciones que se ejecutan en la cadena de bloques.

Kit de Desarrollo de Software (SDK) de Metis

El Kit de Desarrollo de Software (SDK) de Metis es un recurso crítico para los desarrolladores que desean desarrollar en esta cadena de bloques. Incluye un conjunto de bibliotecas y marcos que simplifican la integración de funcionalidades de cadena de bloques en aplicaciones.

El SDK está diseñado para ser flexible y fácil de usar, compatible con una gran cantidad de lenguajes de programación y entornos de desarrollo, lo que permite a los desarrolladores incorporar fácilmente las capacidades blockchain de Metis en sus proyectos, ya sea que estén construyendo instrumentos financieros complejos o aplicaciones descentralizadas básicas.

Interfaz de línea de comandos de Metis (CLI)

La Interfaz de Línea de Comando (CLI) de Metis es otra herramienta importante que mejora la experiencia del desarrollador. Proporciona una forma sencilla de gestionar despliegues de proyectos e interactuar con la red de Metis directamente desde la línea de comandos.

La CLI permite a los desarrolladores ejecutar tareas básicas, como implementar contratos, gestionar transacciones y consultar el estado de la red. Esta herramienta es particularmente útil para automatizar flujos de trabajo y simplificar el proceso de desarrollo.

APIs y Plantillas de Contratos Inteligentes

Metis ofrece una variedad de API que permiten a los desarrolladores obtener datos de la cadena de bloques, interactuar con contratos inteligentes e integrar fuentes de datos externas. Están diseñados para ser seguros, lo que garantiza que los desarrolladores puedan confiar en datos precisos y oportunos para sus aplicaciones.

Las APIs también proporcionan una variedad de plantillas de contratos inteligentes pre-diseñadas que sirven como punto de partida para muchas aplicaciones comunes de blockchain, como la creación de tokens, mecanismos de votación y servicios de depósito automático. Están diseñadas para ser seguras y personalizables.

Para complementar estas herramientas, Metis ofrece una documentación detallada que abarca todos los aspectos del proceso de desarrollo, desde la configuración inicial hasta las funciones avanzadas.

La documentación se actualiza regularmente y proporciona ejemplos prácticos y tutoriales para ayudar a los desarrolladores a comprender y utilizar las herramientas de manera efectiva. También hay una comunidad de desarrolladores donde las personas pueden compartir ideas, hacer preguntas y colaborar en proyectos, siendo un entorno seguro tanto para desarrolladores novatos como experimentados que buscan expandir sus habilidades y contribuir al ecosistema.

Cómo construir aplicaciones descentralizadas en Metis

Configurando el entorno de desarrollo

El primer paso para crear una dApp en Metis es configurar el entorno de desarrollo. Los desarrolladores deben instalar el kit de desarrollo de software (SDK) de Metis y configurar la interfaz de línea de comandos (CLI) de Metis. Estas herramientas proporcionan las funcionalidades necesarias para interactuar con la cadena de bloques de Metis, implementar contratos y administrar aplicaciones.

También es importante establecer una conexión con la red de prueba de Metis, que permite a los desarrolladores probar sus aplicaciones en un entorno controlado antes de lanzarlas en la red principal.

Escribir e implementar contratos inteligentes

Los contratos inteligentes son la columna vertebral de cualquier dApp. Los desarrolladores utilizan Solidity, un lenguaje de programación orientado a contratos, para escribir la lógica de los contratos que operarán en la red Metis.

La plataforma Metis admite todas las características estándar de Solidity, con optimizaciones adicionales para soluciones de capa 2.

  1. Desarrollo de contratos: Comience escribiendo los contratos inteligentes usando Solidity. Enfoque en definir funciones claras, concisas y seguras que realicen operaciones específicas dentro de la dApp.
  2. Pruebas locales: Utilice el entorno de desarrollo local para probar los contratos inteligentes. Esto implica ejecutar pruebas unitarias y simulaciones para garantizar que los contratos funcionen como se espera sin errores o vulnerabilidades.
  3. Implementación en la red de prueba: Una vez que los contratos hayan sido probados exhaustivamente a nivel local, el siguiente paso es desplegarlos en la red de prueba de Metis. Esto brinda la oportunidad de ver cómo interactúan los contratos con un entorno de blockchain real sin arriesgar fondos reales.
  4. Optimización y Uso de Gas: Analizar los contratos en busca de posibles optimizaciones, especialmente en lo que respecta al uso de gas. Dado que Metis opera como una solución de capa 2, ofrece tarifas de gas reducidas, pero optimizar la eficiencia del contrato sigue siendo crucial para minimizar costos y mejorar el rendimiento.

Desarrollando la interfaz frontend

El frontend de una dApp es con lo que interactúan los usuarios, y necesita ser amigable y funcional.

  1. Diseño de interfaz: Diseñar la interfaz de usuario teniendo en cuenta la usabilidad y accesibilidad. La interfaz debe proporcionar una navegación clara y un fácil acceso a las funcionalidades de la dApp.
  2. Integración Web3: Utilice bibliotecas Web3 como Web3.js o Ethers.js para conectar el frontend con la cadena de bloques Metis. Estas bibliotecas facilitan las interacciones entre la interfaz de usuario y los contratos inteligentes, lo que permite tareas como la ejecución de transacciones, la obtención de saldos de usuarios y la supervisión de registros de eventos.
  3. Pruebas de interacciones del usuario: Probar a fondo la interfaz para asegurar que todas las interacciones con la cadena de bloques sean fluidas y sin errores. Esto incluye probar los flujos de transacciones, el manejo de respuestas y la gestión de errores.

Lanzamiento del dApp

Una vez que la dApp haya sido probada a fondo y esté funcionando sin problemas en la testnet, el paso final es lanzarla en la mainnet de Metis.

  1. Auditoría final: Realice una auditoría exhaustiva de los contratos inteligentes y de la dApp en general. Esto a menudo implica auditores externos que pueden proporcionar una capa adicional de escrutinio e identificar cualquier vulnerabilidad que se pase por alto.
  2. Implementación en Mainnet: Implemente los contratos inteligentes en la red principal de Metis utilizando las herramientas de CLI. Asegúrese de que todas las configuraciones estén establecidas correctamente para un entorno en vivo.
  3. Integración y Soporte de Usuarios: Proporcionar documentación clara y canales de soporte para los usuarios. Materiales de integración efectivos, incluidas guías de usuario y preguntas frecuentes, pueden mejorar significativamente la experiencia del usuario y la adopción.

Desarrollo de contratos inteligentes en Metis

El desarrollo de contratos inteligentes en la plataforma Metis requiere una comprensión funcional tanto de la programación en Solidity como de las optimizaciones específicas posibles dentro de la arquitectura de escalado de la Capa 2 de Metis.

Esta sección guía a los desarrolladores a través de los procesos esenciales y las mejores prácticas para crear contratos inteligentes seguros, eficientes y funcionales en Metis.

Usando Solidity en Metis

Solidityes el idioma principal utilizado para escribir contratos inteligentes en Ethereum y sus extensiones de Capa 2 como Metis.

Los desarrolladores nuevos en Solidity deben primero aprender su sintaxis y conceptos básicos, incluyendo tipos, funciones y herencia.

Para aquellos que ya estén familiarizados con Solidity, el enfoque se centrará en las mejoras específicas de Metis y en las características que se pueden aprovechar para mejorar el rendimiento del contrato y reducir costos.

Diseño modular para contratos inteligentes

Un enfoque clave en el desarrollo de contratos inteligentes es el diseño modular.

Esto implica estructurar los contratos de una manera que permita que los componentes se reutilicen en diferentes aplicaciones sin tener que reescribir el código. Los desarrolladores deben aprender a crear contratos modulares en Metis que se puedan actualizar y mantener fácilmente.

Patrones de seguridad y vulnerabilidades comunes

La seguridad es crítica en el desarrollo de contratos inteligentes debido a la naturaleza inmutable y pública de la tecnología blockchain. Esta sección aborda la identificación y mitigación de vulnerabilidades de seguridad comunes en contratos inteligentes en la plataforma Metis y explica los patrones de seguridad esenciales que los desarrolladores deben implementar.

Vulnerabilidades Comunes

  • Ataques de reentrancia: Estos ocurren cuando un contrato externo llama de vuelta al contrato actual antes de que se complete la primera ejecución, lo que potencialmente conduce a exploits como el drenaje de fondos.
  • Desbordamiento y desbordamiento de enteros: Estas vulnerabilidades surgen cuando las operaciones aritméticas exceden los límites del tipo de datos, provocando comportamientos inesperados que podrían manipular variables de estado.
  • Control de acceso inadecuado: Los controles de acceso insuficientes pueden permitir que entidades no autorizadas realicen acciones restringidas como alterar variables de estado o retirar fondos.

Implementación de Patrones de Seguridad

  • Patrón de Verificaciones-Efectos-Interacciones: Este patrón evita los ataques de reentrada al garantizar que los contratos comprueben primero las condiciones, luego actualicen los cambios de estado y, por último, controlen las interacciones con otros contratos. Esta secuencia minimiza los riesgos asociados con las llamadas externas.
  • Limitación de la exposición: Restringir la visibilidad de la función conprivadoyinternoLas palabras clave reducen la superficie de ataque al evitar que los contratos externos accedan a funciones o variables sensibles.
  • Bibliotecas de Matemáticas SegurasEl uso de bibliotecas que verifican automáticamente las operaciones aritméticas para evitar desbordamientos y subdesbordamientos, como SafeMath de OpenZeppelin, ayuda a prevenir estas vulnerabilidades comunes.

Herramientas para el Análisis de Seguridad

  • Herramientas de Análisis Estático: Slither y MythX escanean contratos inteligentes en busca de vulnerabilidades y malas prácticas.
  • Verificación formal: Herramientas como VeriSol y el marco K verifican que los contratos inteligentes cumplan ciertas propiedades especificadas a través de pruebas matemáticas.
  • Frameworks de prueba: Truffle y Hardhat permiten a los desarrolladores escribir y ejecutar pruebas que simulan varios escenarios de ataque.
    Comprender estas vulnerabilidades e implementar patrones de seguridad apropiados mejora la seguridad de los contratos inteligentes en Metis, asegurando la confiabilidad e integridad de las aplicaciones descentralizadas.

Aspectos destacados

  • Configuración del entorno de desarrollo: Los desarrolladores comienzan instalando el Kit de Desarrollo de Software Metis (SDK) y configurando la Interfaz de Línea de Comandos Metis (CLI), esencial para interactuar con la cadena de bloques de Metis, implementar contratos y gestionar aplicaciones.
  • Escribir e implementar contratos inteligentes: utilizando Solidity, los desarrolladores escriben, prueban y optimizan contratos inteligentes, centrándose en la seguridad, funcionalidad y eficiencia de gas. Después de las pruebas locales, los contratos se implementan en la red de prueba de Metis para validar su interacción con un entorno de blockchain real.
  • Desarrollo de la interfaz frontend: El diseño frontend se centra en la facilidad de uso y la funcionalidad, integrando bibliotecas Web3 como Web3.js o Ethers.js para una interacción sin problemas con la cadena de bloques Metis. La prueba exhaustiva de las interacciones del usuario garantiza operaciones fluidas y sin errores.
  • Lanzamiento del dApp: El paso final implica una auditoría exhaustiva de los contratos inteligentes y del dApp, seguido por su implementación en la red principal de Metis. Las configuraciones se verifican meticulosamente para asegurarse de que estén configuradas correctamente para el entorno en vivo.
  • Integración y Soporte de Usuarios: Para facilitar la adopción de usuarios y mejorar la experiencia del usuario, se proporcionan documentación clara, guías de usuario y preguntas frecuentes. Se establecen canales de soporte para ayudar a los usuarios con cualquier problema que puedan encontrar.
Відмова від відповідальності
* Криптоінвестиції пов'язані зі значними ризиками. Дійте обережно. Курс не є інвестиційною консультацією.
* Курс створений автором, який приєднався до Gate Learn. Будь-яка думка, висловлена автором, не є позицією Gate Learn.
Каталог
Урок 7

Desarrollo avanzado en MetisDAO

Este módulo cubre los aspectos técnicos del desarrollo de aplicaciones en MetisDAO, cubriendo las funciones avanzadas y las herramientas de desarrollo proporcionadas por la plataforma.

Resumen de las herramientas de desarrollo de MetisDAO

Metis proporciona una amplia suite de herramientas de desarrollo para construir aplicaciones descentralizadas (dApps) en su plataforma de Capa 2. Estas herramientas están diseñadas para optimizar tanto el proceso de desarrollo como el rendimiento de las aplicaciones que se ejecutan en la cadena de bloques.

Kit de Desarrollo de Software (SDK) de Metis

El Kit de Desarrollo de Software (SDK) de Metis es un recurso crítico para los desarrolladores que desean desarrollar en esta cadena de bloques. Incluye un conjunto de bibliotecas y marcos que simplifican la integración de funcionalidades de cadena de bloques en aplicaciones.

El SDK está diseñado para ser flexible y fácil de usar, compatible con una gran cantidad de lenguajes de programación y entornos de desarrollo, lo que permite a los desarrolladores incorporar fácilmente las capacidades blockchain de Metis en sus proyectos, ya sea que estén construyendo instrumentos financieros complejos o aplicaciones descentralizadas básicas.

Interfaz de línea de comandos de Metis (CLI)

La Interfaz de Línea de Comando (CLI) de Metis es otra herramienta importante que mejora la experiencia del desarrollador. Proporciona una forma sencilla de gestionar despliegues de proyectos e interactuar con la red de Metis directamente desde la línea de comandos.

La CLI permite a los desarrolladores ejecutar tareas básicas, como implementar contratos, gestionar transacciones y consultar el estado de la red. Esta herramienta es particularmente útil para automatizar flujos de trabajo y simplificar el proceso de desarrollo.

APIs y Plantillas de Contratos Inteligentes

Metis ofrece una variedad de API que permiten a los desarrolladores obtener datos de la cadena de bloques, interactuar con contratos inteligentes e integrar fuentes de datos externas. Están diseñados para ser seguros, lo que garantiza que los desarrolladores puedan confiar en datos precisos y oportunos para sus aplicaciones.

Las APIs también proporcionan una variedad de plantillas de contratos inteligentes pre-diseñadas que sirven como punto de partida para muchas aplicaciones comunes de blockchain, como la creación de tokens, mecanismos de votación y servicios de depósito automático. Están diseñadas para ser seguras y personalizables.

Para complementar estas herramientas, Metis ofrece una documentación detallada que abarca todos los aspectos del proceso de desarrollo, desde la configuración inicial hasta las funciones avanzadas.

La documentación se actualiza regularmente y proporciona ejemplos prácticos y tutoriales para ayudar a los desarrolladores a comprender y utilizar las herramientas de manera efectiva. También hay una comunidad de desarrolladores donde las personas pueden compartir ideas, hacer preguntas y colaborar en proyectos, siendo un entorno seguro tanto para desarrolladores novatos como experimentados que buscan expandir sus habilidades y contribuir al ecosistema.

Cómo construir aplicaciones descentralizadas en Metis

Configurando el entorno de desarrollo

El primer paso para crear una dApp en Metis es configurar el entorno de desarrollo. Los desarrolladores deben instalar el kit de desarrollo de software (SDK) de Metis y configurar la interfaz de línea de comandos (CLI) de Metis. Estas herramientas proporcionan las funcionalidades necesarias para interactuar con la cadena de bloques de Metis, implementar contratos y administrar aplicaciones.

También es importante establecer una conexión con la red de prueba de Metis, que permite a los desarrolladores probar sus aplicaciones en un entorno controlado antes de lanzarlas en la red principal.

Escribir e implementar contratos inteligentes

Los contratos inteligentes son la columna vertebral de cualquier dApp. Los desarrolladores utilizan Solidity, un lenguaje de programación orientado a contratos, para escribir la lógica de los contratos que operarán en la red Metis.

La plataforma Metis admite todas las características estándar de Solidity, con optimizaciones adicionales para soluciones de capa 2.

  1. Desarrollo de contratos: Comience escribiendo los contratos inteligentes usando Solidity. Enfoque en definir funciones claras, concisas y seguras que realicen operaciones específicas dentro de la dApp.
  2. Pruebas locales: Utilice el entorno de desarrollo local para probar los contratos inteligentes. Esto implica ejecutar pruebas unitarias y simulaciones para garantizar que los contratos funcionen como se espera sin errores o vulnerabilidades.
  3. Implementación en la red de prueba: Una vez que los contratos hayan sido probados exhaustivamente a nivel local, el siguiente paso es desplegarlos en la red de prueba de Metis. Esto brinda la oportunidad de ver cómo interactúan los contratos con un entorno de blockchain real sin arriesgar fondos reales.
  4. Optimización y Uso de Gas: Analizar los contratos en busca de posibles optimizaciones, especialmente en lo que respecta al uso de gas. Dado que Metis opera como una solución de capa 2, ofrece tarifas de gas reducidas, pero optimizar la eficiencia del contrato sigue siendo crucial para minimizar costos y mejorar el rendimiento.

Desarrollando la interfaz frontend

El frontend de una dApp es con lo que interactúan los usuarios, y necesita ser amigable y funcional.

  1. Diseño de interfaz: Diseñar la interfaz de usuario teniendo en cuenta la usabilidad y accesibilidad. La interfaz debe proporcionar una navegación clara y un fácil acceso a las funcionalidades de la dApp.
  2. Integración Web3: Utilice bibliotecas Web3 como Web3.js o Ethers.js para conectar el frontend con la cadena de bloques Metis. Estas bibliotecas facilitan las interacciones entre la interfaz de usuario y los contratos inteligentes, lo que permite tareas como la ejecución de transacciones, la obtención de saldos de usuarios y la supervisión de registros de eventos.
  3. Pruebas de interacciones del usuario: Probar a fondo la interfaz para asegurar que todas las interacciones con la cadena de bloques sean fluidas y sin errores. Esto incluye probar los flujos de transacciones, el manejo de respuestas y la gestión de errores.

Lanzamiento del dApp

Una vez que la dApp haya sido probada a fondo y esté funcionando sin problemas en la testnet, el paso final es lanzarla en la mainnet de Metis.

  1. Auditoría final: Realice una auditoría exhaustiva de los contratos inteligentes y de la dApp en general. Esto a menudo implica auditores externos que pueden proporcionar una capa adicional de escrutinio e identificar cualquier vulnerabilidad que se pase por alto.
  2. Implementación en Mainnet: Implemente los contratos inteligentes en la red principal de Metis utilizando las herramientas de CLI. Asegúrese de que todas las configuraciones estén establecidas correctamente para un entorno en vivo.
  3. Integración y Soporte de Usuarios: Proporcionar documentación clara y canales de soporte para los usuarios. Materiales de integración efectivos, incluidas guías de usuario y preguntas frecuentes, pueden mejorar significativamente la experiencia del usuario y la adopción.

Desarrollo de contratos inteligentes en Metis

El desarrollo de contratos inteligentes en la plataforma Metis requiere una comprensión funcional tanto de la programación en Solidity como de las optimizaciones específicas posibles dentro de la arquitectura de escalado de la Capa 2 de Metis.

Esta sección guía a los desarrolladores a través de los procesos esenciales y las mejores prácticas para crear contratos inteligentes seguros, eficientes y funcionales en Metis.

Usando Solidity en Metis

Solidityes el idioma principal utilizado para escribir contratos inteligentes en Ethereum y sus extensiones de Capa 2 como Metis.

Los desarrolladores nuevos en Solidity deben primero aprender su sintaxis y conceptos básicos, incluyendo tipos, funciones y herencia.

Para aquellos que ya estén familiarizados con Solidity, el enfoque se centrará en las mejoras específicas de Metis y en las características que se pueden aprovechar para mejorar el rendimiento del contrato y reducir costos.

Diseño modular para contratos inteligentes

Un enfoque clave en el desarrollo de contratos inteligentes es el diseño modular.

Esto implica estructurar los contratos de una manera que permita que los componentes se reutilicen en diferentes aplicaciones sin tener que reescribir el código. Los desarrolladores deben aprender a crear contratos modulares en Metis que se puedan actualizar y mantener fácilmente.

Patrones de seguridad y vulnerabilidades comunes

La seguridad es crítica en el desarrollo de contratos inteligentes debido a la naturaleza inmutable y pública de la tecnología blockchain. Esta sección aborda la identificación y mitigación de vulnerabilidades de seguridad comunes en contratos inteligentes en la plataforma Metis y explica los patrones de seguridad esenciales que los desarrolladores deben implementar.

Vulnerabilidades Comunes

  • Ataques de reentrancia: Estos ocurren cuando un contrato externo llama de vuelta al contrato actual antes de que se complete la primera ejecución, lo que potencialmente conduce a exploits como el drenaje de fondos.
  • Desbordamiento y desbordamiento de enteros: Estas vulnerabilidades surgen cuando las operaciones aritméticas exceden los límites del tipo de datos, provocando comportamientos inesperados que podrían manipular variables de estado.
  • Control de acceso inadecuado: Los controles de acceso insuficientes pueden permitir que entidades no autorizadas realicen acciones restringidas como alterar variables de estado o retirar fondos.

Implementación de Patrones de Seguridad

  • Patrón de Verificaciones-Efectos-Interacciones: Este patrón evita los ataques de reentrada al garantizar que los contratos comprueben primero las condiciones, luego actualicen los cambios de estado y, por último, controlen las interacciones con otros contratos. Esta secuencia minimiza los riesgos asociados con las llamadas externas.
  • Limitación de la exposición: Restringir la visibilidad de la función conprivadoyinternoLas palabras clave reducen la superficie de ataque al evitar que los contratos externos accedan a funciones o variables sensibles.
  • Bibliotecas de Matemáticas SegurasEl uso de bibliotecas que verifican automáticamente las operaciones aritméticas para evitar desbordamientos y subdesbordamientos, como SafeMath de OpenZeppelin, ayuda a prevenir estas vulnerabilidades comunes.

Herramientas para el Análisis de Seguridad

  • Herramientas de Análisis Estático: Slither y MythX escanean contratos inteligentes en busca de vulnerabilidades y malas prácticas.
  • Verificación formal: Herramientas como VeriSol y el marco K verifican que los contratos inteligentes cumplan ciertas propiedades especificadas a través de pruebas matemáticas.
  • Frameworks de prueba: Truffle y Hardhat permiten a los desarrolladores escribir y ejecutar pruebas que simulan varios escenarios de ataque.
    Comprender estas vulnerabilidades e implementar patrones de seguridad apropiados mejora la seguridad de los contratos inteligentes en Metis, asegurando la confiabilidad e integridad de las aplicaciones descentralizadas.

Aspectos destacados

  • Configuración del entorno de desarrollo: Los desarrolladores comienzan instalando el Kit de Desarrollo de Software Metis (SDK) y configurando la Interfaz de Línea de Comandos Metis (CLI), esencial para interactuar con la cadena de bloques de Metis, implementar contratos y gestionar aplicaciones.
  • Escribir e implementar contratos inteligentes: utilizando Solidity, los desarrolladores escriben, prueban y optimizan contratos inteligentes, centrándose en la seguridad, funcionalidad y eficiencia de gas. Después de las pruebas locales, los contratos se implementan en la red de prueba de Metis para validar su interacción con un entorno de blockchain real.
  • Desarrollo de la interfaz frontend: El diseño frontend se centra en la facilidad de uso y la funcionalidad, integrando bibliotecas Web3 como Web3.js o Ethers.js para una interacción sin problemas con la cadena de bloques Metis. La prueba exhaustiva de las interacciones del usuario garantiza operaciones fluidas y sin errores.
  • Lanzamiento del dApp: El paso final implica una auditoría exhaustiva de los contratos inteligentes y del dApp, seguido por su implementación en la red principal de Metis. Las configuraciones se verifican meticulosamente para asegurarse de que estén configuradas correctamente para el entorno en vivo.
  • Integración y Soporte de Usuarios: Para facilitar la adopción de usuarios y mejorar la experiencia del usuario, se proporcionan documentación clara, guías de usuario y preguntas frecuentes. Se establecen canales de soporte para ayudar a los usuarios con cualquier problema que puedan encontrar.
Відмова від відповідальності
* Криптоінвестиції пов'язані зі значними ризиками. Дійте обережно. Курс не є інвестиційною консультацією.
* Курс створений автором, який приєднався до Gate Learn. Будь-яка думка, висловлена автором, не є позицією Gate Learn.