Ir al contenido
GitHub

Interledger

Crear y mantener su propio conector para participar en la red de Interledger puede ser una tarea compleja y que requiere mucho tiempo. Como implementación de referencia de la pila de Interledger, Rafiki le ofrece todas las herramientas que necesita para unirse a la red y habilitar las capacidades de Interledger en las cuentas de sus usuarios.

En el núcleo de Interledger se encuentra el Interledger Protocol (ILP). Es un protocolo de solicitud/respuesta en el que las solicitudes y las respuestas son paquetes ILP.

Estos paquetes de datos contienen información sobre un pago. Por lo general, la información sobre un único pago agregado del remitente al destinatario se divide en varios paquetes ILP.

Cada paquete representa un pagaré condicional que afecta los saldos contables financieros entre pares. Los importes se ajustan en función del activo del remitente, el activo del destinatario y el servicio de tipos de cambio configurado de Rafiki. Luego, los importes se utilizan para actualizar la liquidez de las cuentas en su base de datos contable (TigerBeetle o Postgres).

Interledger en sí es una red de computadoras que permite enviar mensajes de pago a través de redes de pago. Cada computadora de la red es un nodo.

Para que dos nodos de la red de Interledger intercambien paquetes ILP entre sí, los dos nodos deben ser pares. Hay una serie de requisitos que tanto usted como su posible par deben cumplir para establecer una relación de interconexión.

Dado que el propósito de la interconexión es facilitar los pagos, lo que a menudo implica extender líneas de crédito, su par debe ser alguien en quien confíe. Recomendamos encarecidamente que usted y su posible par definan sus expectativas y describan sus acuerdos en un documento legalmente vinculante antes de iniciar una interconexión.

Cada nodo de la red de Interledger puede asumir el papel de remitente, conector o destinatario, según el pago.

  • Remitente: origina el pago mediante el envío de paquetes ILP.
  • Conector: un intermediario entre un remitente y un destinatario que reenvía paquetes ILP. Los conectores pueden facilitar los pagos hacia o desde cualquier par con el que estén interconectados.
  • Destinatario: el destinatario final de los paquetes ILP y, por lo tanto, del pago.

Si los nodos remitente y destinatario son pares, el flujo de pago es directo y no se necesitan nodos conectores intermediarios. Sin embargo, si el remitente y el destinatario no son pares, el pago debe pasar por uno o más conectores. El servicio de backend de Rafiki incluye un conector de Interledger para enviar y recibir paquetes ILP.

En la imagen a continuación, el nodo remitente (A) y el nodo destinatario (C) comparten un par común (B). En los pagos del remitente al destinatario, el nodo B desempeña el papel de conector para facilitar los pagos entre ambos.

Relación de interconexión que muestra un remitente, un conector y un destinatario

En realidad, puede haber múltiples conectores entre un nodo remitente y un nodo destinatario. Cuantos más nodos compatibles con distintos activos se interconecten entre sí, más fácil será que los pagos puedan atravesar la red de Interledger.

Un Payment Pointer es un tipo de wallet address que funciona como un punto final de SPSP para facilitar el envío y la recepción de paquetes ILP. Rafiki asignará un Payment Pointer a cada una de las cuentas de sus clientes.

Los Payment Pointers deben resolverse en una URL HTTPS y pueden representarse mediante la notación abreviada $ (por ejemplo, $wallet.example.com/alice) o como una URL (por ejemplo, https://wallet.example.com/alice).

Consulte Payment pointers y wallet addresses para obtener más información.

El Protocolo de Configuración de Pago Simple (SPSP) es un protocolo de la capa de aplicación que utiliza HTTPS para intercambiar información de pago. Cada Payment Pointer emitido por Rafiki funciona como un punto final de SPSP de forma predeterminada (ENABLE_SPSP_PAYMENT_POINTERS).

Cuando se realiza una solicitud GET a un Payment Pointer, la respuesta contiene la dirección ILP de la cuenta de destino y un secreto compartido. Estos detalles son necesarios para establecer una conexión STREAM entre dos contrapartes a fin de facilitar pagos directos a través de Interledger.

El protocolo STREAM es el protocolo de la capa de transporte en la pila del Interledger Protocol. Después de que SPSP comunica la dirección ILP de la cuenta de destino y el secreto compartido, el protocolo STREAM utiliza estos detalles para establecer una conexión STREAM entre las contrapartes.

El servicio de backend de Rafiki incluye un conector de Interledger para enviar y recibir paquetes STREAM. Los paquetes STREAM se codifican, cifran y envían como el campo data en los paquetes ILP. El protocolo utiliza el secreto compartido para autenticar y cifrar los paquetes, y para generar las condiciones y los cumplimientos.

Una función fundamental de STREAM es determinar el tipo de cambio de la ruta y gestionar cualquier cambio en el tipo de cambio. El servicio de tipos de cambio de Rafiki le permite proporcionar información sobre los tipos de cambio.