Bitcoin Forum

Local => Hardware y Minería => Topic started by: barruka on December 15, 2013, 10:30:56 AM



Title: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: barruka on December 15, 2013, 10:30:56 AM
Como no tenemos un subforo de desarrollo en español, pongo aquí el mensaje porque no se dónde ponerlo, si lo tengo que mover se mueve o lo que sea, no problem.

Pensando en una posible utilización del BTC para recibir/enviar pagos a nivel empresa, es decir para ventas a clientes y devoluciones a clientes, ahora mismo estoy con una hoja en blanco: no tengo mucha idea de cómo funciona técnicamente el protocolo del BTC y voy a empezar a buscar la info lógicamente en inglés en su wiki, además de "usar el puto google" ;)

Ahora bien para desarrolladores de software que estén trabajando con BTC y lo conozcan, yo soy desarrollador y tengo un gran defecto: creo que "para dormir a gusto me tengo que hacer yo mismo la cama". Por tanto aunque hay mucho código opensource en la red, a mí me gusta empezar con el IDE en blanco y picar mis propias líneas de código.

Lógicamente voy a usar las librerías disponibles ya desarrolladas, no voy a ponerme a desarrollar hard coded el envío de info a la red BTC byte a byte. Pero sí quiero desarrollar la integración para la automatización del proceso, es decir, no quiero tener que abrir el monedero, crear una dirección y estar mirando hasta que vea la transacción.

Entonces, el análisis que estoy pensando de funcionamiento de la integración es:

1. Cliente hace una compra e indica que quiere pagar con BTC. Le muestro importe total a pagar convertido de EUR a BTC.
¿ Qué exchange debería utilizar para obtener la tasa de cambio que más refleje el valor del mercado ? Creo que lo más correcto sería utilizar el valor del día anterior, no calcularlo a cada segundo ya que según fluctuara el mercado podría perjudicar mucho o beneficiar mucho al cliente, con o sin su conocimiento.

2. Genero una dirección BTC única (ADDRESS_ORDER) y su clave privada para ese pago ya que no quiero que mi competencia conozca los BTC que voy recibiendo.
¿ Cuando el cliente me envíe dinero desde su wallet (bien local u online) (ADDRESS_CUSTOMER) a mi dirección BTC ADDRESS_ORDER podría pedir expresamente que no tenga comisiones/fees ?
Si esto es posible, ¿sin fees cuanto tiempo puede pasar hasta que la transacción tenga la primera confirmación en la cadena de bloques?

3. Como es el cliente el que me envía los BTC, no querría pedirle el id de transacción, por lo que ¿puedo preguntarle a la cadena de bloques que me diga las transacciones que tiene ADDRESS_ORDER y consultar las confirmaciones de cada transacción?

---------------

A nivel funcionamiento del protocolo BTC:

a. ¿veis lagunillas en el análisis del proceso planteado o es el proceso correcto?

b. ¿que source de información creéis que tengo que estudiar?


Gracias por anticipado.


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: vitruvio on December 15, 2013, 12:34:00 PM
Como no tenemos un subforo de desarrollo en español, pongo aquí el mensaje porque no se dónde ponerlo, si lo tengo que mover se mueve o lo que sea, no problem.

Pensando en una posible utilización del BTC para recibir/enviar pagos a nivel empresa, es decir para ventas a clientes y devoluciones a clientes, ahora mismo estoy con una hoja en blanco: no tengo mucha idea de cómo funciona técnicamente el protocolo del BTC y voy a empezar a buscar la info lógicamente en inglés en su wiki, además de "usar el puto google" ;)

Ahora bien para desarrolladores de software que estén trabajando con BTC y lo conozcan, yo soy desarrollador y tengo un gran defecto: creo que "para dormir a gusto me tengo que hacer yo mismo la cama". Por tanto aunque hay mucho código opensource en la red, a mí me gusta empezar con el IDE en blanco y picar mis propias líneas de código.

Lógicamente voy a usar las librerías disponibles ya desarrolladas, no voy a ponerme a desarrollar hard coded el envío de info a la red BTC byte a byte. Pero sí quiero desarrollar la integración para la automatización del proceso, es decir, no quiero tener que abrir el monedero, crear una dirección y estar mirando hasta que vea la transacción.

Entonces, el análisis que estoy pensando de funcionamiento de la integración es:

1. Cliente hace una compra e indica que quiere pagar con BTC. Le muestro importe total a pagar convertido de EUR a BTC.
¿ Qué exchange debería utilizar para obtener la tasa de cambio que más refleje el valor del mercado ? Creo que lo más correcto sería utilizar el valor del día anterior, no calcularlo a cada segundo ya que según fluctuara el mercado podría perjudicar mucho o beneficiar mucho al cliente, con o sin su conocimiento.

2. Genero una dirección BTC única (ADDRESS_ORDER) y su clave privada para ese pago ya que no quiero que mi competencia conozca los BTC que voy recibiendo.
¿ Cuando el cliente me envíe dinero desde su wallet (bien local u online) (ADDRESS_CUSTOMER) a mi dirección BTC ADDRESS_ORDER podría pedir expresamente que no tenga comisiones/fees ?
Si esto es posible, ¿sin fees cuanto tiempo puede pasar hasta que la transacción tenga la primera confirmación en la cadena de bloques?

3. Como es el cliente el que me envía los BTC, no querría pedirle el id de transacción, por lo que ¿puedo preguntarle a la cadena de bloques que me diga las transacciones que tiene ADDRESS_ORDER y consultar las confirmaciones de cada transacción?

---------------

A nivel funcionamiento del protocolo BTC:

a. ¿veis lagunillas en el análisis del proceso planteado o es el proceso correcto?

b. ¿que source de información creéis que tengo que estudiar?


Gracias por anticipado.

Supongo que hablas de una tienda web, si es algún paquete conocido puede que ya haya pasarelas de pago para btc.

De todas formas básicamente el proceso que se hace es lo que dices:

-sobre el precio pues una media diaria de precio, mtgox el precio de referencia mas usado, aun con la volatilidad de precios que tienes si no usas alguna gestor de pagos como bitpay que te haga el cambio instantáneo de precios a € (a ti te ingresan los €) te arriesgas  a pillarte los dedos si el mercado baja.

-sobre las direcciones si, lo normal es generar una por cliente o por pago si quieres (todo con el mismo cliente bitcoind), pero la dirección btc del cliente no deberías controlarla, de hecho es probable que el mismo cliente en su cartera tenga varias direcciones y que en el mismo pago recibas los fondos de varias e ellas, el cliente bitcoin  lo hace automáticamente, las fees las paga el que te manda los btc así que él verá si paga y cuanto, de ello dependerá en gran medida cuanto tarda en confirmarse la transacción, el id de transaccóon tampoco te lo tendría que dar, eso lo sacas de tu cliente btc cuando recibas el pago.

Mas que la mecánica del proceso lo delicado es el tema de tener el cliente btc y la billetera accesible desde el servidor web para generar las direcciones en el instante, si te hackean la web estás perdido, tendrías que ver como gestionar todo esto sin tener la billetera accesible desde el server web.

Un saludo


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: barruka on December 15, 2013, 03:45:34 PM
Sí, sería para varias tiendas online pero como decía no querría utilizar bitpay ni similares, quiero hacerlo lo más propio posible.

Por la seguridad no es algo que me preocupe ahora mismo ya que no creo que reciba un volumen significativo de pagos en un primer momento, por el tipo de productos que venden las tiendas online, el BTC ya te digo que el 99,9% de los clientes no saben ni lo que es.

Pero quiero integrarlo a nivel marketing-publicidad y por darles en los morros a la competencia ;) que siempre viene bien ser el primero en tu sector en utilizar una nueva herramienta / tecnología.

Como toda nuestra tecnología es propia no hay bugs ni backdoors conocidas, sólo tenemos las propias del SO. Y para el monedero podríamos tener un servidor dedicado corriendo DEBIAN a pelo con el cliente bitcoin modo server al que le haríamos las llamadas desde los distintos servidores web con json. A este debian server monedero, se le cierran todos los puertos por firewall, sólo se podría acceder desde la IP fija de la oficina para puerto de control remoto y desde los servidores web para los puertos del json. No estaría accesible en Internet, ni el password de root sería admin ni 1234 ;)

Que seguro si algún hacker "malicioso" (por no decir HDLGP) se empeña nos toca las pelotas pero sólo podría acceder a nuestras btc address únicas que han recibido los pagos de las que aún no se hubieran tansferido los BTC a la cuenta AHORRO_BTC que no se habría creado en el monedero debian, sino offline y sólo impresa en papel dirección y clave privada.

He visto que blockchain.info hace esto de forma gratuíta con una API, por lo que también podría ser otra opción mucho más sencilla y económica para empezar, ya que ni server dedicado ni preocupación por seguridad.

No se... sigo pensando intentando darle forma al proyecto.


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: fernarios on December 15, 2013, 04:27:05 PM
Por la seguridad no es algo que me preocupe ...

Dejé de leer ahí.


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: barruka on December 15, 2013, 05:08:10 PM
Por la seguridad no es algo que me preocupe ...

Dejé de leer ahí.

gracias por tu aportación técnica fernarios, muy bien explicada y desarrollada

gracias por tu crítica constructiva, siempre es un placer aprender de grandes profesionales



Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: vitruvio on December 15, 2013, 05:20:21 PM
Sí, sería para varias tiendas online pero como decía no querría utilizar bitpay ni similares, quiero hacerlo lo más propio posible.

Por la seguridad no es algo que me preocupe ahora mismo ya que no creo que reciba un volumen significativo de pagos en un primer momento, por el tipo de productos que venden las tiendas online, el BTC ya te digo que el 99,9% de los clientes no saben ni lo que es.

Pero quiero integrarlo a nivel marketing-publicidad y por darles en los morros a la competencia ;) que siempre viene bien ser el primero en tu sector en utilizar una nueva herramienta / tecnología.

Como toda nuestra tecnología es propia no hay bugs ni backdoors conocidas, sólo tenemos las propias del SO. Y para el monedero podríamos tener un servidor dedicado corriendo DEBIAN a pelo con el cliente bitcoin modo server al que le haríamos las llamadas desde los distintos servidores web con json. A este debian server monedero, se le cierran todos los puertos por firewall, sólo se podría acceder desde la IP fija de la oficina para puerto de control remoto y desde los servidores web para los puertos del json. No estaría accesible en Internet, ni el password de root sería admin ni 1234 ;)

Que seguro si algún hacker "malicioso" (por no decir HDLGP) se empeña nos toca las pelotas pero sólo podría acceder a nuestras btc address únicas que han recibido los pagos de las que aún no se hubieran tansferido los BTC a la cuenta AHORRO_BTC que no se habría creado en el monedero debian, sino offline y sólo impresa en papel dirección y clave privada.

He visto que blockchain.info hace esto de forma gratuíta con una API, por lo que también podría ser otra opción mucho más sencilla y económica para empezar, ya que ni server dedicado ni preocupación por seguridad.

No se... sigo pensando intentando darle forma al proyecto.


https://blockchain.info/es/api/blockchain_wallet_api

Con la api de blockchain podrías generar nuevas direcciones como si fuera el cliente bitcoin, pero delegas toda la seguridad fuera, si crees que su seguridad (paranoia) es mayor a la que tu necesitas, pues te ahorras mucho en desarrollo y mantenimiento del segundo servidor y la billetera offline. 


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: mauricioltc on December 16, 2013, 02:49:51 AM
amigo barruka yo te iba decir lo mismo puedes acojer alguna de estas api sea de btc-e o de cryptsy o de ecoins-e
creo que hacer tu propia api te llevara mas tiempo pero lee esto

si tu principal coin es bitcoin cuando ya transfiero de okpay, o de virwox o de blockchain a btc-e es de lujo solo toma 3 minutos en confirmarse maximo 7 minutos asi que las api de btc-e para recibir pagos te venderia bien

ahora personalmente probe un pago con la api de cryptsy desde ecoins-e y que problema amigo me ha sacado canas es muy inestable por ahora de los otros no hablo porque no tengo conocimiento no se como ira la api de bitstamp

ahora en cuanto a seguridad algo muy bueno es la confirmacion por email esto ayuda algo, tambien puedes pagar para proteger tu server de ataques de denegacion de servicios, hay muy buenas startups que ofrecen super vpns para proteger tu server en fin

ir por cuenta propia sinceramente en castellano encontraras muy poca info sobre todo para crear tu propia api

te deseo exitos en tu nuevo proyecto amigo barruka


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: barruka on December 22, 2013, 04:42:07 PM
Teniendo en cuenta que una transacción sin comisión podría quedar huérfana y no ser incluida en la cadena de bloques (ya que por lo que he leído los mineros pueden decidir que transacciones procesar), ¿Podría yo tener un minero que minara esta transacción concreta hasta que le sacara al menos la primera confirmación?


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: LuisCar on December 22, 2013, 05:11:08 PM
No se minan transacciones, se minan bloques.


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: barruka on December 22, 2013, 05:32:02 PM
Y como es que he leído que los mineros pueden decidir cuales minar? Leen el bloque, ven las transacciones que llevan y sus comisiones y si les interesan lo procesan?

Siento ser tan ignorante en cuanto al funcionamiento


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: vitruvio on December 22, 2013, 06:47:01 PM
No vas mal encaminado, realmente un bloque es un conjunto de transacciones, el bloque no está preestablecido y los mineros miran dentro, son los mineros los que eligen las transacciones sin confirmar en la red y van montando su bloque, pero lo que no vas a poder es minar un bloque que incluya solo una transacción, como poder puedes pero necesitarías TeraHashes de potencia para conseguirlo, es verdad que los mineros (el software de las pool) eligen que transacciones a añadir al bloque que están buscando, pero realmente no son tan discriminatorias que dejen fuera las de fee 0 por regla, al final entrará esa transacción.

Un saludo



Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: LuisCar on December 22, 2013, 09:25:21 PM
La pega es que no siempre acaban entrando las transacciones de muy poco montante con 0 btc de comisión.


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: vitruvio on December 22, 2013, 09:43:18 PM
La pega es que no siempre acaban entrando las transacciones de muy poco montante con 0 btc de comisión.

Pues no se, yo creo que si, o una transacción se acaba perdiendo sin más? o tienen caducidad?

https://blockchain.info/es/unconfirmed-transactions?offset=950

Aquí la transacción más antigua es del día 20. Ya me dirás como se hace esa purga.



Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: barruka on December 22, 2013, 10:08:01 PM
joder esto es complicado de cojones  ;D

entonces ya que vosotros controlais del tema:

¿podría de alguna forma agilizar mis propias transacciones para que tuvieran la primera confirmación?

la preocupación es por recibir el pago, si un cliente me hace un pago con bitcoin, la idea es que lo haga él desde su wallet por lo que lo hará sin fee

entonces, imaginemos que hace un pedido a las 17:00 y lo paga con bitcoin, la agencia de transporte pasa a recoger los paquetes a las 18:00 ya no tengo el control, y si esa transacción queda huérfana, el cliente se queda con sus BTC y con el producto gratix

que si, que le podré pedir que me haga la tx de nuevo... pero ya me entendeis


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: vitruvio on December 22, 2013, 10:17:16 PM
joder esto es complicado de cojones  ;D

entonces ya que vosotros controlais del tema:

¿podría de alguna forma agilizar mis propias transacciones para que tuvieran la primera confirmación?

la preocupación es por recibir el pago, si un cliente me hace un pago con bitcoin, la idea es que lo haga él desde su wallet por lo que lo hará sin fee

entonces, imaginemos que hace un pedido a las 17:00 y lo paga con bitcoin, la agencia de transporte pasa a recoger los paquetes a las 18:00 ya no tengo el control, y si esa transacción queda huérfana, el cliente se queda con sus BTC y con el producto gratix

que si, que le podré pedir que me haga la tx de nuevo... pero ya me entendeis

La única forma de agilizarlo es que pague fee. Aun así su inclusión en un bloque o en otro posterior no tienes forma de controlarlo.


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: aTg on December 22, 2013, 11:56:54 PM
No me he leído mucho el hilo pero por los dos últimos post si lo que quieres es 0% de comisión y estar seguro de que vas a obtener los BTC al momento, puedes idear un software con el que el cliente te envíe la clave privada que contenga el importe a pagar, la transferencia es instantánea puesto que no hay transferencia realmente y tu puedes al momento comprobar que esa clave controlar la cantidad de BTC acordados.
Siempre me ha parecido que para solucionar el problema de los pagos instantáneos lo mejor es transferirse las claves privadas, es como pagar con un billete en mano o un cheque al portador.


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: LuisCar on December 23, 2013, 01:49:15 AM
Vamos a ver, el problema se da en ocasiones con transferencias de muy poco montante y sin comisión, al no tener comisión y ser tan pequeñas tienen una prioridad muy baja por lo que pueden tirarse mucho tiempo en la cola de espera para entrar en un bloque, ya que constantemente aparecen nuevas transacciones con prioridad más alta que la suya. Eventualmente, si no entran en un bloque acaban "desapareciendo", evidentemente los bitcoins no han salido nunca de la dirección origen (esto ocurre cuando la transacción pasa a formar parte de la cadena de bloques porque un minero/pool la haya incluido en un bloque resuelto). Creo que el cliente desde el que se ha realizado la transacción continúa remitiendo la misma a la red, pero si dicho cliente se cierra, con el tiempo la transacción acaba desapareciendo. Desde luego me ha ocurrido y sé de algún otro caso de transacciones en el limbo sin resolver nunca.

La solución es fácil, solicitar que el pago incluya comisión (sobre todo si es de una cantidad pequeña, de céntimos o milibitcoins) y verificarlo antes si deseamos aceptarlo con cero confirmaciones, si no lleva comisión nos esperaremos a que dicha transacción se confirme.

La verdad es que no veo tan complicado que la gente se acostumbre a enviar las transacciones con el equivalente a un par de céntimos de euro de comisión, sobre todo si se quiere inmediatez. Se puede poner en la pagina de pago una leyenda del tipo "Si desea un procesado rápido de su pedido, por favor, incluya al realizar el pago una pequeña comisión minera". De algo tendrán que vivir los mineros en un futuro, digo yo.

No me he leído mucho el hilo pero por los dos últimos post si lo que quieres es 0% de comisión y estar seguro de que vas a obtener los BTC al momento, puedes idear un software con el que el cliente te envíe la clave privada que contenga el importe a pagar, la transferencia es instantánea puesto que no hay transferencia realmente y tu puedes al momento comprobar que esa clave controlar la cantidad de BTC acordados.

El problema es que luego tienes que hacer la transacción desde la clave privada recibida hasta otra que controles tú, ya que de no hacerlo, te puedes encontrar en la situación de que el comprador te la vacíe en algún momento futuro, por lo que pienso que es mejor que la realice directamente el comprador. Además enviar la clave privada supone un riesgo añadido, y es que haya terceros que puedan acceder a ella durante el proceso de envío, por lo que tendríamos que enviarla cifrada, etc. lo que complica todo muchísimo más. Además este método deja fuera a las personas menos técnicas que no saben bien ni siquiera qué son las claves privadas y que será un tipo de usuario que debería crecer con el tiempo si Bitcoin acaba teniendo mucho éxito.


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: tiozes on December 23, 2013, 01:49:29 AM
No me he leído mucho el hilo pero por los dos últimos post si lo que quieres es 0% de comisión y estar seguro de que vas a obtener los BTC al momento, puedes idear un software con el que el cliente te envíe la clave privada que contenga el importe a pagar, la transferencia es instantánea puesto que no hay transferencia realmente y tu puedes al momento comprobar que esa clave controlar la cantidad de BTC acordados.
Siempre me ha parecido que para solucionar el problema de los pagos instantáneos lo mejor es transferirse las claves privadas, es como pagar con un billete en mano o un cheque al portador.

Si no lo he entendido mal seria como si por ejemplo se tienen 5 btcs en un paper wallet, el tio te pasa la clave privada y ya lo tienes, solo tienes q transferirlo, pero ya estaria en tu poder no?


Saludos


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: LuisCar on December 23, 2013, 01:53:37 AM
Si no lo he entendido mal seria como si por ejemplo se tienen 5 btcs en un paper wallet, el tio te pasa la clave privada y ya lo tienes, solo tienes q transferirlo, pero ya estaria en tu poder no?

Correcto, estaría en el poder de "al menos" dos. A continuación te tocaría hacer a ti la transacción.

Postdata: Acabo de ver precisamente como tras unas 48 horas la red ha olvidado una transacción que no se ha llegado a confirmar nunca al ser de un pequeño importe (milibitcoins) y no llevar comisión.

https://bitcointalk.org/index.php?topic=172530.msg4088395#msg4088395


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: barruka on December 23, 2013, 09:22:16 PM
Pues no me parece bien!!!

Pensando en un pago en BTC entre 15 y 100 eur, que por los menos son los que procesaría yo, además a medida que el precio del BTC vaya subiendo estos pagos en BTC serán más reducidos

Sobre el fee de la tx, no creo que sea el cliente el que tenga que decir que cuanta comisión quiere pagar.

Chicos no penséis como linux, que luego pasa lo que pasa y los usuarios no lo utilizan, sólo los frikis informáticos (y me incluyo tanto en lo de friki como en lo informático). Yo pienso en una pasarela de pago lo más simple posible para el user, a la hora de pagar, y esto de que la tx se pueda quedar fuera de la blockchain da miedo, mucho miedo

Además, el cliente puede poner una fee de 0.0001 y que a los mineros NO les parezca bien. Lo que me raya es que los mineros SI puedan decidir qué tx incorporan al bloque que están minando y yo no pueda tener un minero exclusivo para incorporar al bloque que esté minando las tx que quiera, no lo entiendo.

Sigo leyendo y pensando....


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: vitruvio on December 23, 2013, 09:40:25 PM
Lo que me raya es que los mineros SI puedan decidir qué tx incorporan al bloque que están minando y yo no pueda tener un minero exclusivo para incorporar al bloque que esté minando las tx que quiera, no lo entiendo.

Sigo leyendo y pensando....

Te pierdes porque no llegas a comprender como va el minado, el software de las pools va añadiendo las transacciones que quiere (según el criterio que siga)  y le manda el trabajo a minero, si el minero encuentra da con la solución al problema que se le plantea pues tenemos nuevo bloque que incluye las transacciones en las que se basaban los cálculos, tu puedes poner un minero a minar lo que quieras, crear un soft de pool que te coja solo tus transacciones y busque un bloque, con una potencia de calculo de 1 TH/s tardarías de media dos meses en encontrar un bloque y realmene es lo mismo minar añadiendo 1 transacción que 100, dicho de otra forma no es mas dificil minar con 100 transacciones añadidas a la "lista" que una.

Volviendo al tema, solo te queda que esperar que esa tx se incluya en un bloque, el componente aleatorio de que se incluya o no por la pool y de que el los bloques se encuentren en los 10 minutos de referencia, te hace tener que esperar a que se confirme antes de enviar nada al cliente o corres el riesgo de perder los btc.

Creo que te estas obcecando en el tema de la confirmación y demás, todos los sistema de pago con btc tienen ese problema, si se quiere asegurar que la tx se incluya rápido en un bloque hay que pagar fee.

Un saludo


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: fernarios on December 23, 2013, 09:55:54 PM
Debería haber algo para rescatar transacciones del limbo, algo para poder añadir una recompensa desde una tercera address a cualquier transacción... eso le quitaría también la preocupación a los comerciantes que siempre tienen que advertir al cliente que envíe con fee.


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: barruka on December 23, 2013, 10:21:39 PM
vitruvio muchas gracias, tu explicación me lo ha dejado claro... MUY A MI PESAR !!! :(

con lo de la potencia de minado necesaria en exclusiva para mis transacciones me has matado, pero la realidad es la realidad aunque no me guste

la idea de fernarios es cojonuda y ojalá en un futuro los responsables de desarrollo de btc también lo vean así e implementen una mejora en el protocolo que permita hacer ese tipo de transacciones de añadir fees a una transacción sin fee



Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: LuisCar on December 24, 2013, 02:02:32 AM
Vamos a ver, el protocolo es claro. Y el desarrollo que se ha hecho para el cliente te informa de que esperes las seis confirmaciones de rigor antes de dar por bueno el pago. El caso es que mientras esto lo sigue, por ejemplo, MtGox a rajatabla ya que las transacciones que se mueven allí son importantes, para montos más pequeños no es necesario esperar a tener seis confirmaciones de la transacción. De hecho, podemos aceptarla con una alta seguridad para importes no muy grandes siempre y cuando incluya comisión. De hecho, incluso para importes como los que comenta barruka de entre 15 y 100 € la transacción por no ser tan pequeña tendrá una prioridad lo suficientemente alta como para que no tarde mucho en ser incluida en un bloque aunque no lleve comisión, al menos con el número de transacciones por bloque actuales. Aunque yo, si la transacción me llegase sin comisión me esperaría a la primera confirmación (hablando de los montantes anteriores).

Chicos no penséis como linux, que luego pasa lo que pasa y los usuarios no lo utilizan, sólo los frikis informáticos (y me incluyo tanto en lo de friki como en lo informático). Yo pienso en una pasarela de pago lo más simple posible para el user, a la hora de pagar, y esto de que la tx se pueda quedar fuera de la blockchain da miedo, mucho miedo

No te montes películas tú sólo. Todos los clientes bitcoin (monederos) vienen configurados con una comisión por defecto. Si el usuario la elimina quiere decir que sabe lo que hace, y si va de listo, pues le toca esperar a que se confirme su pago. No veo la "complicación linuxera" en la usabilidad.

Además, el cliente puede poner una fee de 0.0001 y que a los mineros NO les parezca bien. Lo que me raya es que los mineros SI puedan decidir qué tx incorporan al bloque que están minando y yo no pueda tener un minero exclusivo para incorporar al bloque que esté minando las tx que quiera, no lo entiendo.

Te lo ha explicado bien vitruvio, a los mineros les cuesta lo mismo minar un bloque vacío que lleno, si la transacción lleva comisión significa ganancias a mayores por el mismo esfuerzo y será incluida. Si no la lleva la cosa cambia algo. El problema se planteará cuando el número de transacciones a querer entrar en un bloque sea mayor que el número de transacciones máximo que entran en un bloque, lo que significará que sólo entrarán las que mayor comisión tengan. Pero para llegar a ese escenario aún queda tiempo.

con lo de la potencia de minado necesaria en exclusiva para mis transacciones me has matado, pero la realidad es la realidad aunque no me guste

Y respecto a eso, lo de meter potencia de minado para tus transacciones, es un error provocado por el desconocimiento de cómo funciona la minería. Para que te hagas una idea, minar un bloque no es como ir resolviendo un puzzle con el tiempo hasta que llega un momento en que lo completas y dices: ¡Eh! ¡Chicos! ¡He resuelto un bloque! Sino que es mucho más parecido a tirar un dado y sacar un seis, por ejemplo, el que lo saca es quien ha resuelto el bloque y ha incluido previamente las transacciones que le parecen bien, con la diferencia de que el dado no tiene seis caras, sino muchos millones de ellas (a mayor dificultad, mayor número de caras en el dado) y los mineros que tienen más potencia de cómputo simplemente es como si tiraran el dado más veces que tú cada segundo (los famosos GHash/s).

Espero que ahora ya entiendas por qué no puedes minar "tus transacciones" (seguramente otro saque el seis antes que tú).


Title: Re: DESARROLLO SW: Integración BTC para recibir/enviar pagos
Post by: barruka on December 24, 2013, 10:29:27 AM
LuisCar muchas gracias por tu explicación puesto que aunque he leído la info oficial para desarrolladores y la info propia del protocolo bitcoin... no hay como que te lo expliquen con palabras del día a día.

Lógicamente por todo lo que me habéis explicado sobre el proceso de los bloques, mi feliz idea de procesar las transacciones para agilizar la primera confirmación queda descartada por ser totalmente inútil.

Espero en breve poder comenzar el desarrollo, he visto que existe TestNet que es el entorno de pruebas en el que jugar.

Cuando me ponga con el tema os iré contando.

Muchas gracias.