Saltar al contenido principal
Versión: Siguiente

Configurar un Servidor de Producción

Una vez que el servidor de prueba esté en vivo y hayas probado ambos flujos de depósito y retirada de fondos, es hora de comenzar con el despliegue real conectado a KYC real y proveedores de banking rails reales. Antes de utilizar cualquier API bancaria, es crucial que realices una auditoría de seguridad completa en el sistema para asegurarte de que no haya vulnerabilidades.

Desplegando un Entorno Seguro

Asegúrate de mantener el servidor de prueba activo y desplegar el sistema de producción (mainnet) en un entorno separado. Tener dos despliegues te permite validar nuevas características en la testnet antes de moverlas al despliegue final de producción. También puedes tener un tercer entorno de preproducción si hay un gran equipo trabajando en esta base de código y/o habrá muchos empujes que se deben probar internamente antes de compartir con otras instituciones.

Para cambiar a la red pública (mainnet) de Stellar, solo necesitas cambiar el passphrase de la red (para autenticar solicitudes) y la URL de Horizon.

Puedes copiar tus configuraciones de desarrollo existentes para crear una configuración de producción.

Primero, necesitas cambiar tu archivo de información (stellar.toml):

# stellar.toml
NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015"

A continuación, cambia tu configuración de Anchor Platform en el archivo production.env:

# production.env
STELLAR_NETWORK_NETWORK="Public"
STELLAR_NETWORK_HORIZON_URL=https://horizon.stellar.org

Conectando a KYC Real

La mayoría de los anchors necesitan recopilar información de Conoce a tu Cliente para cumplir con las regulaciones locales antes de honrar depósitos y retiros. El flujo de KYC generalmente consiste en un formulario simple que recopila información relevante sobre el usuario, como nombre, correo electrónico, dirección, edad y número de identificación emitido por el gobierno.

Cómo manejes KYC depende de ti: hay muchos servicios que proporcionan soluciones KYC a través de APIs y iFrames, y validan los datos de entrada y sincronizan con bases de datos gubernamentales para verificar los requisitos. Cada jurisdicción tiene requisitos KYC específicos, y difieren de una jurisdicción a otra, así que es mejor encontrar un proveedor de KYC específico de cada país que satisfaga tus necesidades.

Algunos países requieren diferentes campos de KYC dependiendo de la cantidad a depositar o retirar. Si ese es el caso en tu jurisdicción y necesitas adaptar tus formularios KYC según la cantidad de depósito o retirada de fondos, simplemente agrega un campo de cantidad antes del formulario de KYC y asegúrate de que los campos de KYC se actualicen según ese valor.

La información de KYC debe vincularse a la sesión creada a través de Stellar Web Authentication y, en consecuencia, al usuario, así que solo necesitas preguntar al usuario una vez. Después de que el primer flujo de KYC esté completo, un usuario no debería tener que ingresar la información nuevamente.

Asegúrate de que los errores y mensajes de validación sean claros e incluyan instrucciones sobre qué hacer a continuación para garantizar una buena experiencia de usuario y aumentar la tasa de conversión de KYC. También debes localizar los mensajes según el idioma y la ubicación del usuario.

Rellenando el Formulario de KYC

Rellenar el formulario de KYC de forma anticipada es una excelente manera de reducir la fricción para comenzar a utilizar un anchor, y las billeteras suelen proporcionar un conjunto de campos que se utilizan comúnmente en todo el ecosistema. En resumen, el anchor puede renderizar el formulario KYC con los valores del usuario que se enviaron previamente por la billetera en los endpoints /transactions/deposit/interactive y /transactions/withdraw/interactive.

Todos los campos de SEP-9 pueden ser enviados por billeteras en los endpoints mencionados anteriormente, pero los más comunes son: correo electrónico, nombre, apellido y número de teléfono. Además, aún debes habilitar que los campos rellenados anticipadamente sean editables, ya que el usuario podría haber ingresado un nombre diferente en el proceso de registro de la billetera y podría querer editarlo antes de finalizar el proceso de KYC del Anchor.

Todos los datos de SEP-9 que se enviaron desde la billetera son parte del JWT Interactivo, enviado por Anchor Platform

Conectando a Banking Rails Reales

Se espera que los emisores de tokens respaldados por fiat gestionen una reserva completa. Eso significa que hay una relación de 1:1 entre los tokens de la red Stellar y el dinero en el banco. Dado que cada token fiat en Stellar está respaldado por un activo subyacente del mundo real y puede ser canjeado por él, los emisores de tokens respaldados por fiat necesitan conectarse a los bancos reales para validar depósitos de usuarios (a través de transferencias bancarias, pagos con tarjeta de crédito, etc.) y completar retiros de usuarios (generalmente a través de transferencias bancarias). Si eres un anchor que honra depósitos y retiros de un token que emite otra organización, seguirás un proceso similar. y para completar los retiros de usuarios (generalmente a través de transferencias bancarias). Si eres un anchor que honra depósitos y retiros de un token que otra organización emite, seguirás un proceso similar.

Para obtener (y identificar) una transferencia de usuario, los emisores generalmente adoptan uno de dos enfoques:

  • API Polling: esta opción consiste en obtener la API del banco, a través de un trabajo cron, para comprobar el estado actualizado de la lista de transferencias recibidas por (y enviadas desde) la cuenta bancaria del emisor. Una vez que el sistema confirma una nueva transacción e identifica que se relaciona con un depósito específico, puede enviar los fondos digitales a la cuenta de ese usuario.
  • Webhook: no todas las vías bancarias admiten esta opción, pero es la más sencilla en términos de lógica de back-end. En este enfoque, el banco accede proactivamente a un endpoint del emisor una vez que recibe una nueva transferencia, actualizando esa información en la base de datos del emisor. El emisor puede igualar esa transacción a un depósito en proceso existente y validar que el usuario pueda recibir sus fondos digitales.

Algunos bancos (y países) tienen infraestructura de transferencia que permite la creación de una sola cuenta bancaria por transferencia; otros requieren que los usuarios agreguen un parámetro de identificación a sus transferencias. Algunos bancos (y países) tienen infraestructura de transferencias que permite la creación de una cuenta bancaria por transferencia; otros requieren que los usuarios añadan un parámetro de identificación a sus transferencias. Algunos bancos proporcionan el número de identificación del usuario en la información de la transacción para que los emisores puedan igualar eso con la información proporcionada en el formulario KYC.

Asegúrate de realizar una auditoría de seguridad completa en tus sistemas cuando las conexiones de banking rails estén en su lugar. Algunos bancos proporcionan una API de prueba que se puede utilizar para el desarrollo y el despliegue en testnet o entornos de preproducción, lo que significa que puedes probar y auditar la base de código antes de pasar a una integración bancaria lista para producción final. Para mayor seguridad, algunos anchors también prefieren agregar un paso final manual antes de aprobar las transferencias de retirada de fondos. En términos de experiencia de usuario, esta aprobación manual es aceptable siempre que los tiempos de espera se alineen con las expectativas del usuario, lo que generalmente significa que no sean más de un par de horas.

Probando Casos Extremos

Una vez que tu aplicación esté completamente funcional, es una buena idea probar diferentes escenarios y casos extremos para asegurarte de que el sistema se comporte como se espera. Aquí hay una lista de sugerencias de pruebas que deberían cubrir una gran cantidad de los casos extremos de la aplicación:

Pruebas Generales

  • Prueba la usabilidad del flujo interactivo
  • Prueba la interfaz utilizando diferentes informaciones regionales, y verifica el contenido traducido, incluidos mensajes de error, respuestas, formato de fechas y formato de números

Pruebas de KYC

  • Verifica que KYC aparezca con un nuevo SK de billetera
  • Verifica que KYC no acepte entradas con formato incorrecto y que los mensajes de error sean comprensibles
  • Verifica que puedes utilizar la misma información de KYC (correo electrónico, número de teléfono, nombre de usuario, etc.) múltiples veces
  • Verifica que puedes pasar por KYC múltiples veces con el mismo SK de Stellar.

Prueba Interactiva

  • Verifica que el flujo de depósito se complete y que los banking rails estén funcionando
  • Verifica que no puedes realizar una retirada de un valor superior al saldo actual
  • Verifica que el flujo de retirada se complete y que los banking rails estén funcionando

Pruebas de Seguridad

  • Asegúrate de que los endpoints de la plataforma estén seguros

Pulido e Internacionalización

Admitir dos idiomas (inglés y el idioma del país de la moneda fiat) permite a los usuarios tener una experiencia fluida mientras navegan a través de las pantallas, y apoya a instituciones internacionales (como billeteras) que necesitan probar el producto antes de iniciar nuevas integraciones.

Puedes admitir múltiples idiomas en tu aplicación web utilizando el parámetro Accept-Language de los encabezados de la solicitud http para localizar el contenido y permitir que los usuarios cambien eso de manera simple (por ejemplo, un ícono de bandera en la barra superior). Si una billetera específica no envía el parámetro de encabezado, recomendamos mostrar al usuario una pantalla de selección de idioma al inicio de los procesos de depósito y retirada de fondos. Una vez que un usuario elija un idioma, puedes almacenar su selección así que solo necesitas preguntarles una vez. Además de localizar el texto, asegúrate de verificar el formato de los números, las fechas, etc.

Tener un grupo de beta testers es una excelente manera de verificar si hay algún caso extremo que necesita pulido y de confirmar que el sistema está funcionando bien con una variedad de entradas de usuario. Puedes probar en beta utilizando una fase de lanzamiento suave antes de que comiences a dedicar esfuerzo al marketing y la distribución. Documentar el proceso de pruebas con capturas de pantalla y videos es muy útil para futuras auditorías de seguridad y brinda claridad y confianza en el producto a nuevos socios y usuarios potenciales.

Conectando a Billeteras

Todas las interacciones de los usuarios de Anchor se realizan a través de una billetera, así que es vital que los Anchors estén conectados a billeteras que tengan una buena penetración de mercado en la región donde el negocio esté más enfocado. Conectar a billeteras es un proceso simple, ya que ambos extremos de esa integración ya son compatibles con SEPs.

Stellar.org mantiene una lista de billeteras, muchas de las cuales actualmente soportan SEP-24. Enviarles un mensaje con más información sobre un activo y una cuenta emisor es una excelente manera de comenzar a obtener algunos usuarios reales para el Anchor.