Bitcoin, la detección de depósitos a la node.js servidor (revisión de código)

Estoy tratando de detectar los depósitos que el usuario se hizo. Me lo explicó con las líneas de comentarios a continuación.

Puede que hay algún defecto en ella?

var _ = require('subrayado')

var check = function(cliente, sitio) {
 // comprobar el pasado 10 de transacciones
 bitcoin_client.cmd('listtransactions', '*', 10, function(e, transacciones) {

 si (!las transacciones) return;
 var TRANSACCIÓN = transacciones.las transacciones;

 for (var i = 0; i < TRANSACCIÓN.longitud; i++) {
depositDetector(i)()
};

 función depositDetector(i) {
 retorno de la función() {
 //comprobar si es recibido
 si (TRANSACCIÓN[i].categoría == "recibir" && TRANSACCIÓN[i].cantidad >= 0.00000100) {

 var txid = la TRANSACCIÓN[i].txid
 var dirección = la TRANSACCIÓN[i].dirección
 var cantidad = la TRANSACCIÓN[i].cantidad
 var confs = la TRANSACCIÓN[i].confirmaciones

 // buscar en los depósitos de la base de datos

de depósito.find({
 'txid': txid
 }).exec(function(e, _deposit) {
 // si no hay depósito con que txid del
 //guardar sus confirmaciones
 si (_deposit.length > 0) {
 _.cada uno(_deposit, la función de(a) {
 una.confs = confs;
 una.guardar() //confirmaciones actualizado
})

 } else { // el txid es nuevo, encontrar el usuario con su dirección
 //y actualización de usuario con el monto de la transacción.

usuario.findOneAndUpdate({
 'btc_address': dirección
 }, {
 $inc: {
 'btc_balance': cantidad
}
 }).exec(function(e, _user) {

 // !e && guardar el depósito de la base de datos / terminado 

}
})



}
})

}
}
}
})

}
+616
Markus Meyer 3 dic. 2015 10:30:28
24 respuestas
  1. instalar bitcoind por sudo apt install bitcoind en Ubuntu 16.04 servidor amd64(https://bitcoin.org/en/full-node#ubuntu-1410)
  2. bitcoind --version muestra v0.13 ga402396
  3. bitcoind -demonio -zmqpubhashblock=tcp://127.0.0.1:28332 -zmqpubhashtx=tcp://127.0.0.1:28332 después de la descarga, los bloques del archivo es de 89 G. y el bitcoin.conf sólo han rpcuser=xxxyyy y rpcpassword=xxx123 debe agregar servidor=1 a bitcoin.conf?
  4. git clone https://github.com/bitcoin/bitcoin
  5. cd bitcoin/contrib/zmq y pip install zmq, a continuación, hacer python zmq_sub.py y no podemos recibir nada en la larga espera. ¿Cómo podemos recibir hashtx y hashblock de bitcoind? Debo instalar libzmq3-dev? Es libzmq3-dev sólo para compilar bitcoind y no necesita en tiempo de ejecución?
+914
Varesh 03 февр. '09 в 4:24

Soy nuevo en este mercado y no sé si hay algunos límites sobre las transacciones en el copago de la cartera. Creo que el uso de esta cartera para las operaciones comerciales y personales. Alguien me puede responder si puedo recibir en la cartera varias transacciones y si hay algunos límites sobre btc puedo recibir? Tks

+894
dcunited001 10 dic. 2012 23:27:32

El costo de asegurar a través de la prueba-de-trabajo está fundamentalmente ligada al costo de la energía.

Esto te deja con las siguientes opciones:

  • Aumentar la eficiencia de los mineros, tal que el costo de la energía se convierte en irrelevante - esto sólo funciona hasta la dificultad retargets.
  • Aumentar el precio de bitcoin, tal que el costo de la energía se convierte en irrelevante - esto sólo funciona hasta la minería de la capacidad se ajusta a los cambios de precios.
  • Encontrar una nueva, cerca de la fuente ilimitada de energía. La buena suerte.
  • Considerar el uso de otros métodos de seguridad de la cadena. Usted ya lo descartó.

edit: el precio de La potencia de un minero no es conocido por el blockchain, y que no puede ser conocido en la actualidad sin la necesidad de utilizar fuera de la cadena de servicios. Por lo tanto, cualquier algorítmica intento de corregir las diferencias en el costo de la energía experimentada por los mineros requieren una solución de cadena, que es la antítesis de bitcoin en general. Si usted puede venir para arriba con un seguro, la descentralización de protocolo para determinar el verdadero costo de la energía para un determinado minero, que estaría en algún lugar. La razón por la que suena duro es porque definitivamente es! El acuerdo hecho por el comprador y la empresa de energía sería tener que ser hecho público en el blockchain en orden para este tipo de cosas que, posiblemente, el trabajo. Actualmente estamos un looooong manera de pagar por el poder a través de la blockchain.

+886
HelloToYou 31 oct. 2018 4:03:01

Digamos que compro $10,000 dólares de Bitcoin en los estados UNIDOS, que puedo transferir a mi amigo en la India. Se vende por $11.000 y mantiene que el dinero sí mismo como me han dotado de él que Bitcoin. Mis preguntas:

  1. Debo pagar el impuesto en los estados UNIDOS porque tiene a los beneficios de la Bitcoin que os he enviado?

  2. ¿Cómo funciona el IRS saber que en particular Bitcoin ha sido vendido?

  3. Incluso si saben que fue vendido, ¿cómo pueden impuesto de mí como yo no soy la persona que lo vendió?

+876
user51804 26 ene. 2013 23:52:51

Aún no puedo retirar mis bitcoins que fueron depositados antes de septiembre de 2012, de violación de la seguridad. Por lo tanto BitFloor es técnicamente insolvente.

Ellos son registrados con FinCEN como un dinero de negocios de servicio en los estados UNIDOS por Lo tanto supongo que no son inmunes a los tribunales de estados UNIDOS y de estados UNIDOS las leyes de bancarrota.

Son una sentencia, lejos de tener su banco los fondos congelados por un acreedor, probable forzando BitFloor a declararse en quiebra. Si eso sucede, sus fondos pueden ser utilizados para pagar a los costos legales, pagando por el receptor y, a continuación, lo que queda para el pago a todos los acreedores no garantizados, tales como a ti mismo, proporcional a la cantidad de la deuda (es decir, "los peniques en el dólar").

Me gusta BitFloor y yo'ld gusta verlos triunfar, pero continúa operando un intercambio, mientras que insolvente es un movimiento que es irresponsable y muestra falta de respeto a sus clientes, actuales y anteriores.

+833
AiMs Mills 11 feb. 2015 14:15:52

Es cierto, que nada incrustado en defecto bitcoind para esa tarea?

Realmente no hay ninguna manera de saber si usted tiene el más reciente de bloque, o la red se está de mala suerte. Usted, como usuario, puede hacer que algunos de discriminación, sin embargo, y es bastante fácil. Basta con mirar en la más reciente bloque que tiene, y decidir si la marca de tiempo es sano.

$ bitcoind getinfo 
{ ... "bloques" : 260984, ... }

$ bitcoind getblock 260984
{ ... "el tiempo":1380583774, ... }

Parece bastante razonable, así que puedo asumir mi bitcoind es hasta la fecha.

+830
user2716556 27 nov. 2014 4:47:53

Es un hecho que la dificultad es creciente a lo largo del tiempo, y de manera dramática. Sólo se necesita consultar un gráfico de los últimos nueve meses de la tasa de hash v. dificultad para determinar por ti mismo.

A la pregunta de si va a llegar a break-even (cero devuelve) es más difícil. La gente de todo el mundo tienen diferentes entradas para el lado de los costos de la ecuación. Por ejemplo, el costo de la energía en Hawaii es un poco más alto que el costo de la energía en el estado de Washington, y podría ser muy diferente, aún desde algún otro lugar.

Estoy seguro que has visto los calculadores alrededor. Ellos no pueden predecir el futuro, sólo pueden producir un resultado anticipado por un conjunto específico de supuestos como entradas. Si la minería es rentable depende de sus supuestos para el futuro (precio de bitcoin, aumento de la dificultad, de costos de la energía, la eficacia de la minería, la fecha cuando el minero va operativos, etc.)

La demanda para la minería de hardware es sólido y creo que la razón principal es que el costo real de las entradas varían (electricidad, etc), y las personas tienen diferentes puntos de vista sobre los otros insumos necesarios para la rentabilidad de la ecuación. Algunas personas van a estar equivocados.

Yo la mía, pero a mis 30 g/hash equipo es largo pasado, es el primer. No estoy seguro de que estoy listo para firmar para arriba para la actual carrera de armamentos.

+747
sherien 15 jul. 2016 7:49:15

En cada blockchain rama sólo puede haber un bloque en cada altura de cada bloque de referencias a su antecesor.
Si un bloque incluye una transacción que ya fue confirmado por uno de sus antepasados, el bloque no es válido. No válido los bloques rechazados por los nodos de la red. Por lo tanto, una cadena de sucursales nunca puede confirmar la misma transacción más de una vez.

Si hay dos bloques a la misma altura en el blockchain confirmación de la misma transacción, que está bien. Ya están compitiendo como sólo uno de ellos puede ser parte de la larga cadena de todos modos. El otro se convertirá en obsoleto, ya que la mayoría de la cadena se mueve hacia adelante.

+739
Majeh Kingofhell 18 abr. 2016 7:56:06

He estado usando bastante vieja versión de Multibit clásico y recientemente decidió actualizar. Traté de salir Multibit HD y Electrum y notó que tanto me han configurar una cartera con una "palabra de semillas". Es sólo una cadena de palabras al azar, que es al parecer en un algoritmo. La pregunta es, ¿qué hace exactamente? Alguien me dijo que se genera claves privadas para usted, y todo lo que necesita es que la palabra de semillas y usted será capaz de restaurar/generar todas las claves privadas. Cómo funciona esto exactamente? Qué algoritmo se utiliza en la semilla para generar las claves?

Estas palabras son al parecer muy importante, como Multibit advierte en su sitio:

Para restaurar su cartera y recuperar el bitcoin, usted debe tener su cartera palabras.

Con su cartera palabras, usted puede recuperar sus bitcoin. Usted debe mantener su cartera palabras seguro, ya que cualquiera que conozca a su cartera de palabras puede robar tus bitcoin.

La semilla palabras parecen ser un reemplazo para las claves privadas, basado en lo que Multibit dice acerca de ellos. Yo personalmente estoy muy apegado a la idea de tener mi clave privada, así que ¿por qué debo estar contento con esta palabra semilla en su lugar? Algunos al parecer creo que es lo suficientemente seguro: Es de 12 palabras de semillas frase lo suficientemente seguro?, pero es usable suficiente?

Estas preguntas: ¿una cartera que contiene múltiples direcciones, por una única clave privada? y ¿por Qué el mismo 12 de palabras producen diferentes semillas en una Electrum cartera de archivo? sugerencia sobre lo que está sucediendo aquí, pero carece de detalles. Parece que la frase es "jerárquica determinista" billeteras, de ahí el "HD", "Multibit HD".

Esta pregunta exactamente articula mis preocupaciones: Es importante tener un sin cifrar copia de seguridad de la clave privada?

+730
trezwy 26 ene. 2015 9:43:35

Buscando para almacenar .145 de bitcoin en una fuerte cartera. Debo usar Bitpay para esto? Si no, por favor, recomendar la mejor de carteras. No hay hardware carteras por favor, estoy tratando de ahorrar dinero.

+531
JMJGDDLPJM 28 feb. 2019 20:36:20

En los próximos meses, la dificultad en la cadena de causa Gpu a ser no rentable (o por lo oigo).

Así que todo lo que podemos hacer ahora es mío con ASICs - e incluso, a continuación, ver devuelve después de un AÑO?

Que va a ser la muerte de bitcoin .... Si la minería no es rentable - nadie minas - nadie minas no monedas generados y las transacciones no ?

¿Cuáles son pensamiento de la gente todavía está tratando de hacer plataformas, etc? O estoy totalmente equivocado?

+497
Screenname 14 feb. 2013 20:34:44

Realmente no entiendo lo que usted está tratando de hacer:

  • Si quieres demostrar que parte de Una (y más tarde la parte B) es dueño de algo, puede utilizar un diseño similar como el Bitcoin. Donde bitcoins se envían por transacciones en las que el "actual" titular de los signos de un mensaje diciendo que los bitcoins ahora pertenecen a "un nuevo titular".
  • Si usted tiene un smart contrato que sólo el "propietario" es permitido el uso y desea pasar la propiedad de forma más flexible. Usted puede crear otro inteligente contrato que contiene "el actual propietario" de una manera más flexible. Ver la identidad de los contratos en uPort.
  • Si Una parte quiere dar algunos datos de la parte B (pero nadie), ¿por qué usar un blockchain en todo?

Podrías especificar más claramente lo que quieres decir con:

y quiero dar la titularidad de este tipo de datos a B

En el blockchain mundo que acaba de guardar esto en el "libro de contabilidad" (o blockchain), exactamente igual a lo que bitcoin no.

+396
Johny Cage 11 dic. 2016 0:06:31

Específicamente:

  1. Se culpó a maleabilidad de transacciones para un hack, que fue claramente una mentira culpar a Bitcoin por sus propios errores.
  2. Dejaron de retiros, pero siguió permitiendo que los depósitos y el comercio. Una filtró un documento de estrategia de la muestra que este fue un intento de ocultar el tamaño de sus pérdidas desde el público, es decir, que no' venir a limpiar, cuando deberían tener . http://www.scribd.com/doc/209050732/MtGox-Situation-Crisis-Strategy-Draft#scribd
  3. Su comunicación con sus clientes, que conduce hasta el hack en general fue horrible.
+319
Jonas Sandstedt 28 abr. 2012 15:40:30

Voy a hacer un salvaje puñalada en la oscuridad, que probablemente se estará moviendo bitcoins a partir de un intercambio, porque si eres nuevo en esto probablemente no hacer multi-parte de los pagos.

La primera de las dos operaciones (verde) está mostrando varias direcciones anteriores, el pago de varios otros. Esto podría ocurrir, por ejemplo, cuando usted se retira de un intercambio, es decir, se les estará pagando muchas personas que están haciendo retiros, de las monedas que fueron depositados en muchas direcciones.

El segundo pago, voy a suponer que es una consolidación de pago. Como te dicen que solo se hizo una transacción, sólo puedo pensar que esto es un intercambio de consolidación de su depósito (porque su primera transacción fue de un cambio a otro), o de lo contrario se retiró a un monedero electrónico en el servicio que se está haciendo la misma cosa - la consolidación. (Cuidado)

Hay una tercera alternativa, y es que su máquina ha sido comprometida y que se ha perdido algunos bitcoins. Espero que no.

+316
URaoul 18 dic. 2011 17:32:10

Usted no puede.

Si todo lo que tienes es una captura del alambre de tráfico para una sola tx, usted no puede (siempre) calcular la dirección real.

En un cierto subconjunto de casos, tales como el estándar de secuencias de comandos, como P2PKH o P2SH multisig, usted podría ser capaz de asumir la secuencia de comandos de sig para corresponder a uno de ellos, si tiene los datos correctos.

El scriptsig mencionado es para un segwit dirección, y que se suele poner como canjear script para P2SH envuelto segwit direcciones.

Sin embargo, tenga en cuenta que sólo porque un script sig coincide con la esperada para una dirección no significa que la salida real corresponde a esa dirección. Por ejemplo, un P2PKH dirección de una secuencia de comandos de sig con dos pulsaciones (uno para la firma, uno para la clave pública) - Si usted fuera tan inclinado, puede crear una secuencia de comandos de salida que simplemente utiliza la parte superior de dos elementos de la pila, y crear una salida que aceptar una P2PKH script sig como válida, a pesar de tener absolutamente ninguna relación con la P2PKH dirección.

En general, si quieres saber la dirección de origen, la mirada hasta que la transacción se gasta, y utilice el bloqueo de secuencia de comandos desde que vsal.

+303
Ellashue 7 nov. 2012 10:16:02

las constantes para establecer el número de conexiones en src/net.h

static const int MAX_OUTBOUND_CONNECTIONS = 8;

en el repo en github: https://github.com/bitcoin/bitcoin/blob/3bf06e9bac57b5b5a746677b75e297a7b154bdbd/src/net.h#L59

cambio a lo que te gusta y volver a compilar

+288
Danny Acker 1 sept. 2011 19:06:08

sí, dependiendo de cuánto conocimiento y el esfuerzo que usted desea pasar. Pero es engorroso y requiere una gran curva de aprendizaje. Normalmente la clave privada debe tener 51 caracteres que comienza con "5", o 52 caracteres que comienza con "K" o "L". En raros casos, usted podría tener un valor hexadecimal de la clave privada, que es de 32 caracteres de longitud de cadena. (Nunca publicar su clave privada aquí!!!).

También es necesario verificar, si usted tiene un "xpriv clave" - que es una manera ligeramente diferente de presentar un priv clave, y tiene más uso. Esto juega un papel importante, al volver a cargar en otra cartera.

Yo no estoy familiarizado con blockchain.info y si la clave privada es de alguna manera cifrada con esta contraseña tal vez algunas investigaciones necesarias. Si está cifrado, entonces esto no es de mucha ayuda, y yo no puedo hacer nada por ti.

Así que si usted tiene uno de esos priv claves comienzan con "5" o "K" o "L", entonces usted tiene las opciones de: Usted puede obtener una cartera (como Electrum), y la carga de la priv clave. A continuación, se mostrará la dirección correspondiente, y usted puede comprobar si es correcta. A continuación, se muestran también los fondos. También se puede montar una transacción de forma manual, lo firman de forma manual, y conseguir que se retransmite a la de la red bitcoin. Pero esto requiere una buena cantidad de conocimiento sofisticado de la bitcoin red (en la línea de comandos de la capa).

+267
dendini 9 nov. 2013 16:09:58

Recibirá este mensaje de error si el valor que la firma no es la cantidad exacta de la totalidad del saldo de valor de salida.

Por ejemplo, si el saldo de su valor de salida es de 35.000, y sólo desea enviar 30.000, su valor de salida sería de 30.000, y su firma monto sería de 35.000. Si usted firma por sólo 30.000 (no el importe total del saldo de salida) recibirá este error.

Ejemplo Visual Utilizando BitcoinJS:

//añadir entrada
txb.addInput(txid, outn, null, scriptPubkey);

//añadir salida
txb.addOutput(receivingAddress, 30000); //cantidad de menos la tasa de minería de datos

//firma
txb.signo(0, par de claves, null, null, 35000); //NOTA: el volumen es el importe TOTAL del saldo de la salida, NO la cantidad que se envía
+194
Leslie S 11 feb. 2016 15:23:49

Solo los mineros y operadores de la piscina necesita una copia de la totalidad de la blockchain con el fin de verificar las nuevas transacciones en contra de la historia de las transacciones.

+170
Einar Enrique Moscoso 1 feb. 2012 9:22:38

Me voy a echar a perder mucha de la terminología aquí. Estoy tratando de comprender el Bitcoin algortihm y quería utilizar este JS minero -- https://github.com/howardchung/jsminer . Específicamente, estoy tratando de entender cómo crear los datos de que alguien intenta hash. Intenten hacer esto en el JS minero por el siguiente

 var cabecera = versión + prevhash + merkle_root + ntime + nbits + '00000000' + '000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000';
 curr_block.datos = cabecera;

Estoy siguiendo más de esto, el uso de la wiki de Bitcoin como una referencia, pero lo que no puedo entender en absoluto es lo que son estos dos últimos constantes numéricas -- '00000000' y el más grande principio con "0000008". He visto estos vienen en los otros ejemplos, pero no puedo entender por qué estos son necesarios, o si estos son los valores codificados en el JS minero que no debería estar allí en la vida real. Cualquier ayuda es muy apreciada.

+154
sucker 4 jul. 2012 15:30:37

Estoy recopilando una lista de Bitcoin / Blockchain Api. Me refiero a la web (REST) Api que permite realizar operaciones básicas de blockchain consultas a través de http(s) de llamadas a la API, tales como: conseguir el equilibrio en una dirección, obteniendo una lista de transacciones desde o hacia una dirección, obtención de la información (entradas y salidas) para una transacción, et cetera.

Estoy familiarizado con blocktrail.com, blockcypher.com, blockchain.info y blockr.io, pero yo recuerdo haber visto a otros en el pasado. Alguna más?

+58
Isaac De La Rosa 4 jun. 2018 18:09:07

Mt. Gox, obviamente, le permite enviar bitcoins a él, y al recibir a una dirección de su elección; de ahí que me pregunto si hay algún motivo no usarlo como un monedero electrónico.

A menos que me equivoco, es mucho más grande (por ahora) que cualquier otro bitcoin exchange, el banco o la correcta e-wallet, por lo que podemos razonablemente esperar ser más seguros, apoyados y seguros.

¿Por qué debo utilizar especializada en e-wallet en su lugar?

+54
Kenny Vanrusselt 2 nov. 2013 11:39:54

Por favor, ¿cómo puedo suscribirme a blockchain testnet web-zócalo para una dirección. Me parece que, para livenet, alguna ayuda?

+50
iKabutey 25 jul. 2010 12:11:50

Sé el samurai wallet para android tiene soporte para el pago de los códigos, ¿qué otras carteras de soporte de pago de los códigos?

+25
Dextro67 29 mar. 2013 7:45:27

Mostrar preguntas con etiqueta