Por qué importa más de lo que parece
Piensa en un envío que expira por tiempo. ¿Llegó a la cadena? No lo sabes. Sin un ID de orden del cliente, tus opciones son consultar las órdenes recientes y adivinar por mercado, lado, precio y cantidad, o no hacer nada y confiar en la suerte. Con uno, la ambigüedad desaparece. Cancelas por el identificador que generaste. Si la orden existía, queda cancelada. Si nunca llegó, la cancelación no encuentra nada. En ambos casos acabas en un estado conocido, que es lo que de verdad necesita un sistema que funciona sin que ninguna persona lo vigile. Esto es también lo que hace manejable la conciliación. Tus propios registros se indexan por un identificador que asignaste tú, así que contrastar tu visión con la de la cadena es una búsqueda directa y no una heurística.Formato
El identificador es un valor de 16 bytes, que se envía como una cadena hexadecimal en minúsculas de 32 caracteres con el prefijo0x.
- Solo minúsculas. El hexadecimal en mayúsculas se rechaza en lugar de normalizarse.
- Longitud exacta. Los valores más cortos o más largos se rechazan.
- Todo ceros está reservado.
0x00000000...0000es el valor centinela que significa ausente y no se puede usar como identificador.
Unicidad
La unicidad tiene como ámbito la subcuenta: la combinación de la dirección que firma y la subcuenta que cuelga de ella. De ahí se derivan dos consecuencias. Subcuentas distintas bajo la misma dirección pueden usar el mismo identificador sin conflicto, algo útil cuando ejecutas estrategias independientes que generan cada una sus propios ID. Y dentro de una misma subcuenta, reutilizar un identificador que pertenece a una orden activa es un error, no una sustitución.Genera los identificadores de forma aleatoria, no secuencial. Un contador resulta tentador porque hace visible el orden, pero un reinicio que pierda el contador produce colisiones con órdenes que siguen activas, y 16 bytes aleatorios no colisionan nunca en la práctica.
Qué puedes hacer con él
Vida útil
El identificador pertenece a la orden, no a tu sesión. Se puede seguir consultando después de que la orden se ejecute o se cancele, que es lo que lo hace útil para conciliar a posteriori. Vuelve a ser reutilizable en cuanto la orden que identificaba deja de estar activa. En la práctica hay pocos motivos para reutilizar uno: un valor aleatorio nuevo no cuesta nada y elimina cualquier duda sobre a qué orden se refiere un registro histórico.Qué leer a continuación
Modificar órdenes
Cambiar una orden activa y qué ocurre con sus identificadores.
Tipos de orden
A qué puedes adjuntar un identificador.
Desarrolladores
Enviar órdenes y gestionar respuestas ambiguas desde el código.
Secuenciación de transacciones
Por qué una cancelación enviada en el mismo bloque se ejecuta antes que una orden agresora.