Saltar al contenido principal
Versión: 2,8

Configurar un Servidor de Producción

Una vez que el servidor de prueba esté en vivo y hayas probado tanto los flujos de depósito como de retirada, es hora de comenzar con la implementación real conectada a KYC real y a proveedores de banking rails reales. Antes de usar cualquier API bancaria, es crítico que realices una auditoría de seguridad completa en el sistema para asegurarte de que no haya vulnerabilidades.

Implementar un Entorno Seguro

Asegúrate de mantener el servidor de prueba activo y de implementar el sistema de producción (mainnet) en un entorno separado. Tener dos implementaciones te permite validar nuevas características en el testnet antes de moverlas a la implementación 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 push que se deben probar internamente antes de compartir con otras instituciones.

Para cambiar a la red pública (mainnet) de Stellar, lo único que tienes que hacer es cambiar la passphrase de 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 la configuración de Anchor Platform en el archivo production.env:

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

Conectar a KYC Real

La mayoría de los anchors necesitan recopilar información de Conozca a su Cliente para cumplir con las regulaciones locales antes de honrar los 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 ofrecen soluciones KYC a través de APIs e 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, por lo que es mejor encontrar un proveedor KYC específico del país que satisfaga tus necesidades.

Algunos países requieren diferentes campos 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 retiro, simplemente agrega un campo de cantidad antes del formulario KYC, y asegúrate de que los campos KYC se actualicen según ese valor.

La información KYC debería estar vinculada a la sesión creada a través de Stellar Web Authentication y, por consiguiente, al usuario, así que solo necesitas pedirle al usuario una vez. Después de que se complete el primer flujo de KYC, un usuario no debería tener que ingresar la información nuevamente.

Asegúrate de que los mensajes de error y 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 KYC. También deberías localizar los mensajes basándote en el idioma y la ubicación del usuario.

Rellenar Previamente el Formulario KYC

Rellenar previamente el formulario KYC es una excelente manera de reducir la fricción al comenzar a usar un ancla, y las billeteras generalmente proporcionan un conjunto de campos que son comúnmente utilizados en todo el ecosistema. En resumen, el ancla puede renderizar el formulario KYC con los valores del usuario que fueron enviados previamente por la billetera en los endpoints /transactions/deposit/interactive y /transactions/withdraw/interactive.

Todos los campos de SEP-9 pueden ser enviados por las 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, deberías habilitar que los campos pre-rellenados 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 KYC del Anchor.

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

Conectar a Rails Bancarios Reales

Se espera que los emisores de tokens respaldados por fiat gestionen una reserva completa. Eso significa que hay una relación 1:1 entre los tokens de la red Stellar y el dinero en el banco. Since each fiat token on Stellar is backed by, and can be redeemed for, an underlying, real-world asset, issuers of fiat-backed tokens need to connect to real banking rails to validate user deposits (through bank transfers, credit card payments, etc.) y para completar las retiradas de los usuarios (generalmente a través de transferencias bancarias). Si eres un ancla que honra depósitos y retiradas de un token que otra organización emite, seguirás un proceso similar.

Para recuperar (e identificar) una transferencia de usuario, los emisores generalmente toman uno de dos enfoques:

  • Polling de API: esta opción consiste en recuperar la API del banco, a través de un trabajo programado, para verificar 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 está relacionada con un depósito específico, puede enviar los fondos digitales a la cuenta de ese usuario
  • Webhook: no todos los rails bancarios admiten esta opción, pero es la más ligera en términos de lógica de backend. En este enfoque, el banco activa de manera proactiva un endpoint del emisor una vez que recibe una nueva transferencia, actualizando esa información en la base de datos del emisor. The issuer can then can match that transaction to an existing in-process deposit, and validate that the user can receive their digital funds

Hay muchas formas de identificar que una transferencia bancaria específica se relaciona con un depósito específico (y, en consecuencia, con un usuario). Al algunos bancos (y países) tienen una infraestructura de transferencia que permite la creación de una única cuenta bancaria por transferencia; otros requieren que los usuarios agreguen 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 igualarlo con la información proporcionada en el formulario KYC.

Asegúrate de realizar una auditoría completa de seguridad en tus sistemas cuando las conexiones de rails bancarios estén en su lugar. Algunos bancos proporcionan una API de prueba que se puede usar para desarrollo y 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 final lista para producción. Para mejorar la seguridad, algunos anchors también prefieren agregar un paso final manual antes de aprobar los retiros. En términos de UX, esta aprobación manual es aceptable siempre y cuando los tiempos de espera estén alineados con las expectativas del usuario, lo que generalmente significa que no son más largos que un par de horas.

Probar Casos Límite

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

Pruebas Generales

  • Prueba la usabilidad del flujo interactivo
  • Prueba la interfaz usando información de locale diferente y verifica el contenido traducido, incluidos mensajes de error, respuestas, formato de fechas y formato de números

Pruebas KYC

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

Prueba Interactiva

  • Verifica que el flujo de depósito funcione y que los rails bancarios estén operativos
  • Verifica que no puedas hacer una retirada con un valor superior al saldo actual
  • Verifica que el flujo de retirada se complete y que los rails bancarios estén operativos

Pruebas de Seguridad

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

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 por 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 webapp utilizando el parámetro Accept-Language de los encabezados de solicitud http para localizar el contenido y permitir que los usuarios cambien eso de una 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 comienzo de los procesos de depósito y retirada. Una vez que un usuario elige un idioma, puedes almacenar su selección para que solo necesites preguntarle una vez. Además de localizar el texto, asegúrate de verificar el formato de números, fechas, etc.

Tener un grupo de testers beta es una excelente manera de verificar si hay casos límite que necesitan pulirse y de confirmar que el sistema funciona bien con una variedad de entradas de usuario. Puedes hacer pruebas beta usando una etapa de lanzamiento suave antes de comenzar a poner esfuerzo en marketing y distribución. Documentar el proceso de prueba con capturas de pantalla y videos es muy útil para futuras auditorías de seguridad, y brinda a nuevos socios y usuarios potenciales claridad y confianza en el producto.

Conectar a Billeteras

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

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