Hay un ligero blockchain biblioteca de analizador/servidor?

Estoy usando bitcoin-qt y tener una copia local de la blockchain, en el que me estoy quedando algunos análisis con el JSON-RPC API utilizando la mayoría de getblock y getrawtransaction. No tengo la necesidad de escribir o enviar las transacciones en este caso de uso. Que es una exageración correr un nodo sólo para leer el blockchain, y me duele mi análisis de rendimiento, también.

Hay un (preferiblemente probado) de la biblioteca para analizar el blockchain y devolver objetos, JSON o no? El idioma no importa mucho. Si no, hay un nodo de implementación que permiten la desactivación de la red y características de la cartera?

+844
Aspen Hollyer 27 jun. 2010 0:31:55
21 respuestas

Estoy de topografía antigua de Bitcoin DoS vectores y se topó con el CVE-2013-4267, por lo que no parece ser poca información pública disponible. Este hilo debería arrojar algo de luz sobre este CVE.

Hay una descripción en esta entrada del blog:

Las transacciones son también de primera deserializa con el fin de ser analizada, sino que se almacenan "tal como es" en una caché temporal llamado MapRelay, y remitido sin ser serializada de nuevo. Yo realmente no sé por qué se hace esto. Pero el punto es que el almacenamiento de los mensajes que se reciben conduce a la posibilidad de que un atacante crea mensajes mucho más grande que el real objeto de transacción contenida, que, cuando se almacenan en MapRelay de memoria, puede ser utilizado para el escape de la memoria de un nodo.

También hay este hilo correspondiente que aparece para decir que la red estaba bajo ataque el uso de este vector.

Basado en la transacción de serialización y deserialización de código en ~v0.8.2, parece que el ataque pudo haber sido: añadir gran cantidad de datos aleatorios en el extremo de una válida serializada de la transacción. El deserializer encuentra lo que busca (el blob válidos prefijo), pero parece ignorar lo que viene después. Si serializado de transacciones con datos aleatorios en la final de la transacción se envía a la víctima nodo, se deserializarse, pasa a la mem-piscina y luego se coloca en mapRelay en su tamaño completo (y posiblemente de reenvía más, lo que parece bastante potente vector de ataque).

Así: fue el ataque descrito por CVE-2013-4267 basada en el aporte de datos aleatorios en el extremo (válida) de serializar los datos de la transacción?

+989
user27815 03 февр. '09 в 4:24

Como usted tiene ya di cuenta de que el Bitcoin mempool es actualmente (desde los últimos 7 días) total de la alta tasa de pago de las transacciones.

Por desgracia, NO se espera que el número de transacciones de pagar altas tarifas a caer de forma significativa durante los siguientes días o semanas. Pero, finalmente, con un poco de suerte cuando no tantos nuevos de alta tasa de pago de las transacciones, se transmite la transacción puede ser confirmado.

MultiBit no admite reemplazar por cuota (RBF) por lo que yo sé. Por lo tanto, usted no puede hacer mucho más que sentarse y esperar. Si la transacción no está confirmado dentro de alrededor de 1-2 semanas, entonces la red se caerá si desde el mempool y puede emitir una nueva transacción con un cargo más alto.

+883
saschwarz 27 oct. 2013 3:44:53

Cada vez que trato de abrir Bitcoin QT se cierra de forma inesperada, sin embargo si que cierre sesión e inicie sesión con otra cuenta en el mismo Mac, funciona bien. ¿Puedo usar la otra cuenta (en mi Bitcoin QT abre multa) para la transferencia de bitcoins de MtGox como es todavía el mismo equipo o no se tiene que solucionar este problema de que dejar de fumar todo el tiempo?

+864
User123456789 26 ene. 2012 8:38:00

Mientras que yo no he estado en la recepción del final de persona-a-negocio bitcoin compras, he tenido muchos roces con bitpay.com. https://bitpay.com/tour La mejor parte es, en mi opinión, entiendo que su modelo de negocio, el uso de ellos a aceptar bitcoin requiere poco o ningún conocimiento o en la interacción con bitcoin. En su lugar, la integración con su sitio web o PoS y ellos se encargan de las transacciones y enviar moneda fiat.

Su página web incluye imágenes de las principales empresas/aplicaciones que se estén utilizando en alguna capacidad. En el momento de este escrito, que es: Microsoft, Neteller, Virgen Inalámbrica, Shopify, Zynga, Newegg.

+743
Snayker 4 abr. 2012 21:51:17

Ese error ocurre cuando la transacción intenta enviar más Satoshis de lo que gasta. Usted podría tener sus unidades mixtas (utilizando Satoshis en lugar de BTC, o viceversa).

El código que produce el error puede ser sheen aquí: https://github.com/bitcoin/bitcoin/blob/v0.10.2/src/main.cpp#L1462-L1465

+704
Blishki Dasova 4 feb. 2017 15:39:04

Aquí está el algoritmo sin el código:

  1. createrawtransaction con la cantidad que desea enviar suponiendo que las tasas son 0

  2. fundrawtransaction dejar que su bitcoind construir final de la transacción, puesto que su cambio de dirección (en donde conseguir el cambio de saldo de transacción - ¡muy importante!) Y a caclulate honorarios que serán tomadas de su cuenta para esta transacción.

  3. Restar caclulated tasas de inicial cantidad

  4. Repita los pasos 1 y 2 con la nueva bajada cantidad.

  5. De lucro.

Y aquí está el código PHP.

Vamos a necesitar la función de crear y financiar nuevas transacciones

función prepareRawTransaction($amountToSend, $addressToSendTo) {

 $bitcoin = new Bitcoin('bitcoinrpc', 'xxx');

 $collectedAmount = 0;
 $sendToArray = [];
 $sendToArray[$addressToSendTo] = $amountToSend;

 $unspentTransactions = $bitcoin->listunspent(); //en Primer lugar nos encontramos todos nuestros saldo de las transacciones, desde donde se puede retirar
 $collectedTransactions = [];

 foreach ($unspentTransactions como $unspentTransaction) {

 if ($collectedAmount < $amountToSend) {
 $collectedTransactions[] = [
 'txid' => $unspentTransaction['txid'],
 'vsal' => $unspentTransaction['vsal'],
];

 $collectedAmount += $unspentTransaction['cantidad'];
 } else {

break;
}
}

 //Ahora vamos a crear bruto transacciones
 $rawTransaction = $bitcoin->createrawtransaction($collectedTransactions, $sendToArray);

 //Y fondo de
 $newTransaction = $bitcoin->fundrawtransaction($rawTransaction);
 return $newTransaction;
}

Ahora podemos usar esa función para ir en algoritmo

$bitcoin = new Bitcoin('bitcoinrpc', 'xxx');

$amountToSend = 0.09999556; //Esa es la cantidad exacta que queremos enviar a la comisión
$addressToSendTo = '2N8hwP1WmJrFF5QWABn38y63uYLhnJYJytf';

//createrawtransaction con la cantidad que desea enviar suponiendo que las tasas son 0
$transactionWithoutCommission = prepareRawTransaction($amountToSend, $addressToSendTo);

$decodificado = $bitcoin->decoderawtransaction($transactionWithoutCommission['hex']);
print_r($decodificado); //Se puede ver que las tasas ya

//Restar caclulated tarifas a partir de la cantidad inicial
$amountToSend = $amountToSend - $transactionWithoutCommission['cuota'];

//Repita los pasos 1 y 2 con la nueva bajada cantidad
$transactionWithCommission = prepareRawTransaction($amountToSend, $addressToSendTo);

$decodificado = $bitcoin->decoderawtransaction($transactionWithCommission['hex']);
print_r($decodificado); //Aquí se puede ver que la cantidad total + comisión igual cantidad necesaria

$firmada = $bitcoin->signrawtransaction($transactionWithCommission['hex']);
print_r($firmada); //debe decir completa:1 si todo fue correctamente puesta

$publicó = $bitcoin->sendrawtransaction($firmado['hex']);
print_r($publicada); //salida será de usted tx id

Y ganancias: se han enviado exactamente la cantidad que quería, INCLUYENDO la comisión

enter image description here

+685
resorte 21 jul. 2014 22:58:57

Es seguro enviar algunos BTC sin necesidad de descargar todo el blockchain. Su envío de cartera se sabe acerca de la transacción inmediatamente. Su recepción se puede saber acerca de la transacción, una vez que es recibido por difusión (supongo que de Electrum puede notificar de esto?) y será confirmada una vez que la transacción se extrae en un bloque.

Si usted está usando una versión muy antigua de Bitcoin Core, puede ser vale la pena actualizar a la más reciente lanzamiento oficial de la versión de bitcoin.org en primer lugar. Para ello, de forma segura de salir de la existente Bitcoin Core software, hacer una buena copia de seguridad segura de su cartera de archivo una vez que se ha detenido y, a continuación, realizar una actualización de instalar. La próxima vez que abra Bitcoin Core es la actualización de los archivos de datos. No es necesario que termine la descarga de la blockchain primera.

+613
1989 7 oct. 2019 15:13:42

No, No hay ninguna forma de recuperar una clave privada utilizando sólo los datos generados a partir de ella. Si no fueron, Bitcoin y otras cryptocurrencies al instante colapso.

Si usted tiene una semilla frase (AKA la cartera de recuperación de la frase), puede volver a generar la clave privada a partir de esa frase.


Relacionado con:

+576
NRaf 11 ene. 2017 1:31:20

Yo había leído en alguna parte que usted puede conectar su nodo para cada nodo en el Bitcoin red. Es eso posible? ¿Cómo funciona?

+541
alexjj 29 oct. 2013 23:35:17

Te sugiero que lea este post de blog sobre el uso de la cruda protocolo Bitcoin: http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html

Para responder a su pregunta, específicamente, debe leer la sección "Cómo encontrar a los compañeros de la" sección de este artículo. Específicamente esta parte:

Hay un huevo y la gallina problema, sin embargo, de cómo encontrar la primera de pares. Bitcoin a los clientes a resolver este problema con varios métodos. Varios fiable compañeros que se encuentran registrados en el DNS con el nombre de bitseed.xf2.org. Por hacer un nslookup, un cliente obtiene las direcciones IP de estos pares, y esperemos que uno de ellos va a trabajar. Si eso no funciona, una lista de semillas de los compañeros es codificado en el cliente.

y

El codificado de los pares de la lista en el cliente Bitcoin es en chainparams.cppen la matriz pnseed. Para obtener más información sobre la búsqueda de Bitcoin compañeros, ver Cómo Bitcoin a los clientes a encontrar unos a otros o Satoshi nodo cliente de descubrimiento.

+506
user78561 10 abr. 2012 11:23:59

Voy a tener que crear una transacción con 100 diferentes fuentes (el 100 direcciones diferentes) y una sola de destino?

Sí.

Será este el costo de transacción más que una simple fuente de un destino de la transacción (por ejemplo, porque es más grande)?

Sí.

Sin embargo, esto no tiene nada que ver con el uso de múltiples addressses o no. Cada vez que usted recibe el dinero en 100 transacciones, crea 100 el saldo de transacciones salidas (monedas). Si usted desea pasar de ellos, usted necesita para redimir a todos los 100 monedas. Si todos son enviados a la misma dirección o no es completamente irrelevante.

Así:

Hay un costo para tener muchas direcciones diferentes?

No.

+444
supportbeam 6 mar. 2015 6:02:42

Como la respuesta anterior mencionado - si eres de minería de datos con una GPU va a ganar casi nada debido a ASIC proliferación (hardware especializado que hace que la GPU/CPU de la minería de bitcoin [algoritmo sha256] obsoleto). Usted puede ser mejor de minería de una moneda utilizando un algoritmo diseñado para ser anti-ASIC. Varios altcoins se han hecho en el intento de hacer de la GPU de la minería y viable para ser resistentes a la ASIC toma de posesión. Scrypt base de monedas, por ejemplo, puede todavía estar al menos cerca de rentable, con un GPU de minería de datos. Pero hay muchas otras como X11 (darkcoin), Quark (ex: quarkcoin), Scrypt-Jane (ex: yacoin), Scrypt-N (ex: vertcoin) - cada uno algo tiene toneladas de horquilla/clonado monedas.

Casi todos estos altcoins puede ser extraído con una GPU/CPU y cambiado por BTC en cualquiera de las crypto intercambios por ahí. Usted puede incluso encontrar piscinas que usted conecte su miner a y la piscina cambiará automáticamente su miner a ser la minería, el más rentable de la moneda (algunos de esos grupos, incluso automático de cambio de BTC así). Y como la respuesta anterior mencionado, para el real de la minería de software que desea utilizar:

  • SGMiner para AMD/ATI tarjetas (CGMiner v3.7.2 la última versión con scrypt apoyo para que la gente hizo SGMiner a reemplazar)
    • Los archivos binarios compilados: sgminerwindows.com
  • CUDAminer para NVIDIAtarjetas
    • Los archivos binarios compilados: bitcointalk.org/index.php?topic=167229.0
  • CPUMiner para la CPU de minería de datos. Algún oscuro algoritmos se requieren versiones modificadas de los mineros, pero las descripciones de esas monedas se apuntan en la dirección correcta.
    • Los archivos binarios compilados: bitcointalk.org/index.php?topic=55038.0
    • Fuente: github.com/pooler/cpuminer (stackexchange no me deja publicar más de dos enlace ahora mismo jajaja.. si/cuando llegue la rep umbral voy a editar este post para hacerlos enlaces..)
+428
Nachmen 28 nov. 2019 6:18:01

Con la inminente adopción de segregadas testigo, los usuarios que dependen de la bitcoin-cli API requieren para reconstruir nuevos métodos para volver a producir más eficientes las transacciones. ¿Hay alguna guía por ahí para aprender a producir un p2wsh de transacción basado en una convencional p2sh transacción?

+416
StaX 24 mar. 2019 14:31:56

Estoy leyendo Franco del libro "la Comprensión de Bitcoin", y en gran medida a disfrutar de ella. Simultáneamente estoy persiguiendo a un nodo del archivo de registro. Me doy cuenta de la gran cantidad de "no estándar de la transacción: no final"s. Franco dice que estos son generalmente escritos por los mineros en la medida nodo de bases de código. ¿Cuáles son los propósitos principales de este tipo de transacciones?

+415
alexjason 5 mar. 2014 21:51:03

La copia de la misma cartera.dat a dos equipos diferentes inicialmente parece que funciona, pero si usted continúa usando bitcoin-qt para enviar bitcoin, las dos copias de salir de la sincronización.

La razón de esto es el uso automático de "cambio" de direcciones. Cada vez que envíe una cantidad menor que la que originalmente recibió, no es "el cambio" que deben ser devueltos a usted. Los desarrolladores de bitcoin-qt considera que se trata de una debilidad de privacidad, ya que haría más fácil para saber con certeza cuánto se pagó, y a quién. Para hacerlo más privado, que generan un nuevo random "cambio de dirección" en su cartera y enviar de vuelta a su cambio a la nueva dirección. A un tercero mirando el bloque de la cadena, es difícil saber quién tiene el cambio de dirección o de quien era el destinatario real de la transacción.

La realidad es que el uso de cambio de domicilio hace poco para mejorar la privacidad, sino que establece los nuevos usuarios para que una "gran sorpresa" la primera vez que le envían una pequeña cantidad y consulte a su wallet balance pasar temporalmente a cero antes de la confirmación del cambio. También hace que sea inseguro para copiar el mismo monedero para varios equipos.

Hay otras carteras que le dan al usuario el control sobre el uso de cambio de dirección y que también hacen el cambio de direcciones visibles y por lo tanto más comprensible.

Otra área donde otras carteras puede ayudar es en la generación de nuevas direcciones. El original de bitcoin-qt cartera genera nuevas direcciones al azar. Trata de mantener un grupo de pre-generados direcciones, por lo que si usted copia de una cartera se parece a generar el mismo nuevas direcciones como la original, pero finalmente el grupo de teclas se usan y después de que las dos copias de la cartera se empiezan a tener un contenido diferente. El Electrum chicos resuelto por lo que toda la cartera de "determinista". Esto significa que todas las claves de futuro se determina por completo la "semilla" y no son realmente aleatorios. Debido a esto, usted puede restaurar la misma cartera en múltiples máquinas y todas las copias permanecerán por siempre en sincronía.

Hay planes para agregar este tipo de funcionalidad a los principales bitcoin-qt cartera, pero hasta que se hace, la alternativa de carteras son necesarios si desea compartir entre equipos. Electrum no es la única cartera que ofrece todas estas características, pero es el que estoy más familiarizado. Ver electrum.org.

+405
Khen Son 7 jun. 2011 18:34:34

Estoy realizando una investigación sobre Egoísta de la Minería de Bitcoin. Aquí está el artículo http://hackingdistributed.com/2013/11/04/bitcoin-is-broken/ Yo quería saber es que hay una manera de identificar minining piscinas? Yo quería saber cómo podemos saber que cuando alguien se encuentra una prueba de que el trabajo es realizado por un individuo o de una minería de la piscina?

Gracias

+353
LeraWinter 11 sept. 2014 4:07:22

Sé que esto suena como una pregunta tonta, pero ¿hay algún lugar para descargar todos los 137.4 gigabytes de hashes para la Satoshi bloque o algún otro bloque?

Nope.

De lo contrario, ¿cuál es la mejor manera de generar en ellos?

He aquí un programa que hace lo que le pide. Es una modificación de Ken Shirrif del ejemplo de minería de datos del programa. Minas de la génesis de bloque.

Produce los hash a 2 MB/s en mi portátil.

Puedo recoger un viejo ASIC miner y tener que escribir cada uno de hash a un disco duro?

Tal vez, pero realmente no sería más rápido que hacerlo con la CPU.

+311
sanuj sharma 2 ene. 2013 1:39:59

Blockchain tiene una gran documentación de PHP, pero nada realmente para el nodo!

¿Alguien aquí tiene los proyectos,donde se utilizan las blockchain.info Recibir los Pagos de la API, en su nodo de las aplicaciones, para recibir dinero / de verificación para la confirmación?

Aprendo mucho mejor ver y recrear código de ejemplo para que usted me ayudara a salir de toneladas!

+192
Mares 30 ago. 2015 22:38:28

Estoy un poco confundido en cuanto a si el copago de la cartera acepta múltiples pagos a una dirección única, basada en la frase "billetera genera nuevas direcciones de forma automática una vez que usted use una dirección bitcoin una vez"...si el seguimiento no es un problema, supongo que la misma dirección puede ser enviado a varios destinatarios a la derecha?

+150
Rahamathulla busha syed 25 feb. 2012 2:04:15

¿Cómo puedo recuperar el comentario de campo de una transacción de pago que he realizado desde mi QT cartera?

Puedo ver el comentario cuando hago clic en "Mostrar detalles de la transacción" en mi QT pero no puedo encontrar una manera de hacer esto de la RPC de la consola.

Alguna idea?

+54
donm 30 jun. 2011 20:42:40

Con blockchains, básicamente, puede hacer cualquier cosa con un tenedor. En el caso de los privados blockchains, usted tendrá un tiempo mucho más fácil llegar a un consenso para duro de la horquilla, tal vez tan fácil como la autoridad que ejecuta el blockchain dicta que todo el mundo debe aceptar una actualización.

La génesis bloque está codificada en el software. Para volver a asignar un bloque posterior a ser el nuevo génesis bloque, sería necesario codificar ese bloque en una versión más reciente del software. Esto sólo será reconocido como válido por los nodos que ejecutan la versión más reciente del software. Suponiendo que el consenso no es un problema, esto es posible.

Otra cosa que se trata de bloque de altura, y todos los cálculos se basan en él. Es fácil modificar el cliente para empezar a contar a N+1, pero esto también puede ser necesario tomar en consideración cuando se realizan los cálculos. Esto tendrá efecto en cosas tales como la dificultad de los objetivos y halvings. Si usted modificar todo el código pertinente tomar en cuenta esto, usted debería ser capaz de mantener las cosas funcionando correctamente.

+54
Dave in Oz 23 jun. 2013 3:52:16

Mostrar preguntas con etiqueta