Aceptamos pagos en Bitcoin: quinta parte, hay matices

Aceptamos pagos en Bitcoin: quinta parte, hay matices

Ya he cubierto la mayor parte de lo que necesitará para implementar una puerta de enlace para aceptar pagos con bitcoins. Pero, como siempre, en la vida real hay matices...

Sucede que muchas criptomonedas tienen como ancestro al Bitcoin. Sin embargo, con distintos grados de diferencias y distintos niveles de independencia, mucho se hereda del código principal. Esto incluye litecoin y DASH y, por supuesto, Bitcoin Cash (estos últimos generalmente son casi una copia exacta). Incluso algo tan exótico como Zcash contiene una gran cantidad de código fuente de bitcoin. 

Como efecto secundario, tenemos una copia casi completa de la implementación JSON-RPC. Y como resultado, una vez que haya implementado todo lo necesario para bitcoind, tendrá una base bastante completa para aceptar pagos en al menos las criptomonedas enumeradas. Eso sí, como dice el título, hay matices. Algunos comandos pueden ser diferentes o dar resultados diferentes. Por ejemplo, DASH no sabe qué son las direcciones multifirma y litecoind en algunas versiones requiere un esfuerzo adicional para generar una dirección en formato segwit. Pero en general todo es muy similar y adaptar el código terminado no será difícil. 

Pero no todo en nuestras vidas es tan color de rosa. Volvamos a cómo implementamos la aceptación de pagos en bitcoin. La forma en que implementamos esto es buena si tienes varias docenas de pagos por día. Después de todo, no es tan difícil comprobar incluso cien direcciones para detectar una transacción entrante. ¿Qué pasaría si le pidieran que creara una pasarela que aceptara pagos, por ejemplo, para eBay o Amazon?

Cuando en una o dos semanas su base de datos de direcciones emitidas crezca hasta varias decenas de miles, la velada dejará de ser lánguida. La velocidad de respuesta de Bitcoind comenzará a disminuir rápidamente y el flujo de solicitudes crecerá rápidamente. Y comprobar toda la base de datos ya no llevará segundos o decenas de minutos, sino horas. Creo que pocas personas querrán esperar un día para que se procese su pago. 

Es bueno que los desarrolladores de bitcoin se hayan encargado de esto y que sus sucesores hayan recibido una funcionalidad lista para usar. Por suerte para nosotros, bitcoind puede enviar una notificación de que se ha recibido una transacción entrante. Esta fue una buena noticia. Ahora, no muy bien. Más precisamente, varios.

En primer lugar, bitcoind puede informar el hecho de que se ha recibido una nueva transacción, pero no nos dirá una palabra sobre en qué dirección se recibió, pero nos enviará su tx-id, una cadena larga y aterradora, algo así. como:

ce397d610c0066f1f4f38d532bc527daac3bd6aac25081618be63620d9078c7b

Ya lo hemos visto en alguna parte.. E incluso sabemos que puedes preguntar:

bitcoin-cli gettransaction ce397d610c0066f1f4f38d532bc527daac3bd6aac25081618be63620d9078c7b

y obtener información completa al respecto. Esto es bueno porque, en primer lugar, en la información de la transacción encontraremos a qué dirección llegó. Y en segundo lugar, puede haber muchas direcciones de destinatarios en una transacción y, en teoría, podría haber varias de las nuestras en ella. 

Ahora tocamos los matices. Nuestro bitcoind solo envía notificaciones 2 veces. La primera es cuando la transacción pasa por la red, incluso antes de ser confirmada. La segunda es cuando la transacción se incluye en un bloque. Es decir, en la primera confirmación. Pero si desea reconocer que el pago se ha realizado en la sexta confirmación, estas notificaciones no le ayudarán mucho. 

Y un matiz desagradable más. El hecho es que bitcoind no envía una notificación de la forma habitual, como por ejemplo la misma solicitud RPC. Sólo puede ejecutar un comando dentro del sistema operativo en el que opera. Y pasa los datos como parámetro.

En el próximo artículo te diré cómo vivir con esto y, lo más importante, cómo configurarlo todo.

Leer también

22018-01-19

¿Cómo le explicas a un niño de cinco años qué es Bitcoin?

...o si todavía no puedes entender qué diablos es esto

Educación
22018-01-03

¿Qué es CopyMe?

El comercio de criptomonedas siempre ha sido una disciplina bastante difícil de dominar. Especialmente para aquellas personas que no entienden en absoluto los detalles técnicos de las criptomonedas. Por lo tanto, la mayoría de la gente simplemente copia las estrategias comerciales de los comerciantes famosos de Bitcoin y espera lo mejor. La plataforma CopyMe brindará la posibilidad de copiar dichas estrategias en tiempo real.

Educación

Últimos artículos de la sección Educación

Último vídeo del canal.