¿Hay algún tipo de algoritmo para calcular la velocidad de la transacción?

Me pregunto si hay una manera en que puedo calcular cuánto tiempo tomará para que una transacción de x BTC pagado una y costo para obtener z confirmaciones basa en la dificultad actual

+799
user210016 21 oct. 2015 17:19:28
26 respuestas

bitcoin selecciona 8 nodos para las conexiones salientes. la selección de estos nodos son de naturaleza aleatoria. -seednode comando ayuda a conectar a un nodo de su elección. el azar la selección de nodo impide el descubrimiento de la red y también protege contra los ataques como particionamiento y eclipse ataques.

+934
kripa 03 февр. '09 в 4:24

ACTUALIZACIÓN: El código en esta pregunta, funciona para todos los casos de prueba (¡Hurra!) sin embargo no me gusta cómo GetCompact utiliza las Matemáticas.Abs de la función y no creo que sea fiel a la OpenSSL aplicación.

La fijación de este problema, probablemente hará que esta aplicación "perfecto"

El núcleo del problema (creo) es cuando .NET hace un poco de cambio de un número negativo, se amplía el número negativo y porque es almacenado en Dos cumplido, el desplazamiento a la izquierda en bytes adicionales son todos unos.

C++ es probable que algo diferente cuando la izquierda desplazamiento de un BigInteger, porque de acuerdo a la de C++ spec, a la izquierda desplazamiento de los números negativos es indefinido.

La solución es utilizar la correspondiente multiplicación o división en lugar de un cambio. ... No estoy seguro de cómo hacerlo, por lo que su ayuda será muy apreciada.


Yo estoy trabajando en el siguiente código de C#, y trató de hacer que sea fiel a la original fuente de C++. Y estoy tratando de conseguir este código para que coincida con la unidad de pruebas que se describen aquí.

Mi objetivo es no sólo una .NET representación de la QT estructuras de datos, pero también para leer y parsear JSON-RPC código.

C# Exámenes

 BigInteger bb = BitcoinQT.SetCompact(numToCompact);


 bb = BitcoinQT.SetCompact(0x00123456);
/*
 00000000000100100011010001010110 SetCompact:
 00000000011111111111111111111111 Máscara de bits & (extracto de 0..23)
 00000000000100100011010001010110 resultado
 00000000000000000000000000000000 Leer bytes 25..32 (>> 24)
 000100100011010001010110 preshifted 24
 00000000 postshifted 24
 00000000100000000000000000000000 ... bit de comprobación es neg
 00000000000000000000000000000000 Resultado ... 

 00000000000000000000000000001100 DE ERROR DEBE SER EL RESULTADO DE ESTE 
*/

Código de C#

 clase BlockTargetBits
{

 static bool debug = false;

 interna de la cadena estática GetCompact(BigInteger originalBigNumber)
{
 // 
 // 
 // Obtener Compacto
 BigInteger num = originalBigNumber;
 byte[] numAsBytes = num.ToByteArray();
 uint compactBitsRepresentation = 0;
 uint size2;// BN_num_bytes(num);
 size2 = (uint)originalBigNumber.NumberOfBytes();
 si (size2 <= 3)
{
 uint amountToShift2 = 8 * (3 - size2);
 if (debug) de la Consola.WriteLine(GetBits(num) + "se desplazan" + amountToShift2);
 compactBitsRepresentation = (uint)(int)(BigInteger.Abs(num) << (int)amountToShift2); // HACK: -- ABS NO PUEDE SER LA COSA CORRECTA DE USO AQUÍ
 if (debug) de la Consola.WriteLine(GetBits(compactBitsRepresentation) + "se desplaza" + amountToShift2);
}
otra cosa
{
 BigInteger bn = num;
 uint amountToShift2 = 8 * (size2 - 3);
 if (debug) de la Consola.WriteLine(GetBits(bn) + "se desplazan" + amountToShift2);
 var bnShifted = BigInteger.Abs(bn) >> (int)amountToShift2; // HACK: -- ABS NO PUEDE SER LA COSA CORRECTA DE USO AQUÍ
 compactBitsRepresentation = (uint)bnShifted;
}

 // El 0x00800000 bits indica el signo.
 // Por lo tanto, si ya está configurado, dividir la mantisa por 256 y aumentar el exponente.
La consola.WriteLine(compactBitsRepresentation.ToString("x"));
 si ((compactBitsRepresentation & 0x00800000) != 0)
{
 compactBitsRepresentation >>= 8;
size2++;
}
 if (debug) de la Consola.WriteLine(GetBits(size2) + " tamaño ");

 var tmp = size2 << 24;
 if (debug) de la Consola.WriteLine(GetBits(tmp) + " tamaño (desplazado a la correcta posición)");
 compactBitsRepresentation |= size2 << 24;
 if (debug) de la Consola.WriteLine("21 987654321 987654321 987654321");
 if (debug) de la Consola.WriteLine(GetBits(compactBitsRepresentation) + "tamaño # a continuación, compacto");

 compactBitsRepresentation |= (num.Signo < 0 ? (uint)0x00800000 : 0);

 si (compactBitsRepresentation == 0)
 volver "0";
 return "0x" + compactBitsRepresentation.ToString("x8");
}


 interna estática del Sistema.Numéricos.BigInteger SetCompact(uint numToCompact)
{
 if (debug) de la Consola.WriteLine(GetBits(numToCompact) + " Este número será compactado ");

//
 // SetCompact
 // Extracto de el número de bits 0..23
 if (debug) de la Consola.WriteLine(GetBits(0x007fffff) + " Máscara de bits & (extracto de 0..23) ");

 uint nWord = numToCompact & 0x007fffff;
 if (debug) de la Consola.WriteLine(GetBits(nWord) + " resultado ");


 BigInteger ret = new BigInteger(nWord);

 // Agregar ceros a la izquierda según los bits de 25 32..
 var ttt = ret.ToByteArray();

 uint size = numToCompact >> 24;
 if (debug) de la Consola.WriteLine(GetBits(tamaño) + " bytes de Lectura 25..32 (>> 24) ");


 uint amountToShift = 0;
 si (tamaño <= 3)
{
 amountToShift = 8 * (3 - tamaño);
 if (debug) de la Consola.WriteLine(GetBits(ret) + "preshifted" + amountToShift);

 ret = ret >> (int)amountToShift;
 if (debug) de la Consola.WriteLine( GetBits(ret)+ "postshifted" + amountToShift );
}
otra cosa
{
 amountToShift = 8 * (tamaño - 3);
 if (debug) de la Consola.WriteLine(GetBits(ret) + "preshifted" + amountToShift);

 ret = ret << (int)amountToShift;

 if (debug) de la Consola.WriteLine(GetBits(ret) + "desplazado" + amountToShift);
}

 // Establecer el valor negativo si es requerido por 24 bits
 if (debug) de la Consola.WriteLine(GetBits(0x00800000) + "... bit de comprobación se neg");

 UInt32 isNegative = 0x00800000 & numToCompact;

 if (debug) de la Consola.WriteLine(GetBits(isNegative) + "... Resultado");

 si (isNegative != 0)
 ret = ret * -1; 

 var test = ret.ToByteArray();
 if (debug) de la Consola.WriteLine(ret + "volver");
 if (debug) de la Consola.WriteLine();
 return ret;
}

 interna de la cadena estática GetHex(BigInteger bb)
{
 si (bb == 0)
 volver "0";
 otra cosa 
 retorno de bb.ToSignedHexString().TrimStart("0".ToCharArray());
}

 public static string GetBits(BigInteger num)
{
 volver GetBits(num.ToByteArray());

}
 public static string GetBits(int num)
{
 volver GetBits(BitConverter.GetBytes(num));
}
 public static string GetBits(uint num)
{
 volver GetBits(BitConverter.GetBytes(num));
}
 public static string GetBits(byte[] bytes)
{
 StringBuilder sb = new StringBuilder();


 int bitPos = (8 * bytes.De longitud) -1;
 mientras (bitPos > -1)
{
 int byteIndex = bitPos / 8;
 int offset = bitPos % 8;
 bool isSet = (bytes[byteIndex] & (1 << offset)) != 0;

 // isSet = [True] si el bit en bitPos se establece, false de lo contrario
 if (isSet)
sb.Append("1");
otra cosa
sb.Append("0");
bitPos--;
}


 volver sb.ToString();
}

}
+929
raymondbaah 14 nov. 2012 6:13:27

He estado tratando de configurar mi propio bolsillo, pero estoy teniendo dificultades. La semana pasada comencé la instalación de la norma cliente Bitcoin. Cuando lo he intentado me dieron para el proceso de descarga de la blockchain. Mi equipo corrió durante aproximadamente 36 horas hasta que el proceso ha fallado. Yo pregunté en los tablones de mensajes y dijeron que puede haber habido algunos datos dañados. He intentado volver a descargar el blockchain, pero cuando puedo volver a instalar Bitcoin, me da un error al inicializar el mensaje. He eliminado los archivos originales (a excepción de la cartera de archivo) y aún así obtener un mensaje de error cuando Bitcoin empieza. Es bastante frustrante. He enviado 1 bitcoin a la primera dirección que he creado (aunque aún no es y nunca lo hizo terminar la descarga el bloque de la cadena). Sería la eliminación de la cartera me permite empezar de nuevo?

+860
macavalon 15 abr. 2014 22:27:34

El castigo de la transacción requiere la construcción de una inmutable compromiso de la transacción. Transacción maleabilidad fue un problema en ese sentido, ya que permite más de una versión válida de la misma transacción.*

Antes de la operación de financiación se ha comprometido a la blockchain, los dos socios de canal son el intercambio de compromiso de las transacciones que permiten a cada una de las partes unilateralmente reclamar su porción de los fondos. Cada vez que un pago se realiza en el canal, los socios de canal de intercambio de versiones actualizadas del compromiso de las transacciones. Para invalidar anticuado estados, cada una de las partes proporciona una violación remedio para su contraparte, el cual permite a la entidad a reclamar todos los fondos en el canal si el estado anterior es de difusión. El incumplimiento recurso es la segunda operación que se pasa la salida de la entidad de contrapartida el compromiso de la transacción. Por lo tanto, el incumplimiento remedio construcción requiere el compromiso de la transacción a ser inmutables.

Además, segwit resuelve otro problema. Para no segwit transacciones, el id de transacción (txid) sólo puede ser calculado después de una transacción que se firmó. Por lo tanto, un compromiso de la transacción, que permite la recuperación de fondo sólo podría ser construido después de la operación de financiación que ya está plenamente comprometido. Desde que el testigo no contribuir a la txid de segwit las transacciones, la financiación de un canal de segwit fondos simplifica el intercambio de información, para la construcción de compromiso de las transacciones.

+715
2danplayer 27 abr. 2016 4:11:10

son todos los nodos de validar cada una de las transacciones que se añadió en un nuevo bloque?

Sí, cada nodo comprueba cada transacción y el bloque para asegurarse de que son válidos de acuerdo con las reglas de red.

+715
DethZarr 14 jul. 2012 16:45:43

Mi empleador puede escribir fuera de los gastos de la empresa (mi sueldo) si él me paga a través de transferencia bancaria, PayPal, Payoneer y algunos otros sistemas de pago internacionales. Hay un deducible de impuestos método para él para comprar Bitcoin y enviarlo a mi billetera (o a mi cuenta de donde puedo retirar a mi cartera)?

Yo no soy buena en términos legales, así que siéntete libre de editar la pregunta si usted entiende lo que estoy hablando.

+677
Eagle Wounded 21 jul. 2012 17:20:37

Usted puede comprar y vender canciones y álbumes en Bitcoin en Libertad a la Tienda de Música.

Es 100% legal y orientado hacia los artistas independientes.

+655
user37865 26 jul. 2010 10:45:50

Depende de los padres el apoyo de la coinbasetxn capacidad. Cuando su (getwork o getblocktemplate) solicitud incluye la coinbasetxn bandera, la respuesta puede (debe) contener una dirección para el pago a ir. Algunos blockchain implementaciones soportan este indicador y otros no. Un número de mineros que permiten especificar la dirección manualmente. Algunos no. La mayoría de la piscina de software utiliza el nombre de usuario en lugar de la coinbasetxn retorno como el coinbase dirección.

Usted puede ver este conjunto de cambios aquí eran locales de minería de datos se ha añadido soporte para lbrycrd. (Descargo de responsabilidad: yo trabajo para ellos). https://github.com/lbryio/lbrycrd/commit/24269e177f002eb6975abe077bd727992381a95d

+634
Mike Lloyd 20 ene. 2018 18:49:53

Para operar, el Bitcoin Core necesita:

  1. hacer las consultas DNS a un número de dominios públicos con el fin de encontrar compañeros para conectarse a una lista completa de estos es en chainparams.cpp
  2. hacer arbitraria de las conexiones de salida en el puerto TCP 8333 en IPv4, IPv6, o ambos
  3. opcionalmente aceptar las conexiones entrantes en el puerto TCP 8333
+597
Syed M Zulqarnain 8 nov. 2017 23:34:26

La razón por la que a menudo se afirma es que usted tendría que volver a calcular todas las cabeceras con todos los valores hash de toda la cadena, que es prácticamente la onu-factible.

No es el mero cálculo de los nuevos encabezados: los mineros en la actualidad crear alrededor de 8×10^19 bloque de candidatos a cada segundo. Sin embargo, en los actuales niveles de dificultad, se tarda alrededor de 4,8×10^22 bloque de candidatos hasta un válido se encuentra el bloqueo. E. g. para cambiar la historia de cinco cuadras, usted tiene que encontrar seis bloques (aproximadamente 2,9×10^23 bloque de candidatos) antes de que el conjunto de la red juntos encuentra una cuadra más.

+592
Christine Jeanne Aquino 3 jun. 2018 6:35:26

De Satoshi del papel (el énfasis es mío):

Por convención, la primera transacción en un bloque es un especial transacción que se inicia una nueva moneda de propiedad por el creador de la cuadra. Esto añade un incentivo para que los nodos de la red, y proporciona una manera de distribuir inicialmente en circulación de las monedas, ya que no hay ninguna autoridad central para la emisión de los mismos. La constante adición de una constante de la cantidad de nuevas monedas es análogo a los mineros de oro a gastar recursos para añadir oro a la circulación. En nuestro caso, es el tiempo de la CPU y la electricidad que se gasta.

No sé de ningún otro de los ejemplos donde la palabra ha sido usada en una manera similar.

+588
user3661569 2 feb. 2011 17:10:47

Suponiendo que te refieres a la cartera.archivo dat, sí, usted puede hacer eso. No hay ningún Sistema Operativo restricciones en la cartera.archivos dat (o cualquier otro archivo en el Bitcoin Core directorio de datos).

+551
spiropun 23 sept. 2012 4:02:11

A mi conocimiento, no hay actualmente ninguna forma de hacerlo, así que me escribió uno de ellos.

Los detalles de la decodificación de los compañeros.dat se describen en mi blog Desmitificación de Bitcoin de sus compañeros.dat.

El resultado de ello es una herramienta de código abierto escrito en el que puede leer todos los pares info de sus compañeros.dat. Como siempre, uno debe revisar el código antes de ejecutar esto en cualquier máquina que mantener una cartera. La herramienta debe ser capaz de trabajar con cualquier Bitcoin basado en altcoin así. Yo lo he probado en contra de Bitcoin, Litecoin y Dogecoin compañeros.dats.

La instalación de bitpeers es bastante simple, siempre y cuando usted tiene que ir instalado, y su GOPATH configurar. Si no, vaya tiene una práctica guía de introducción que se puede utilizar para corregir eso.

Una vez que el go es configurar, basta con ejecutar

go get-u github.com/RaghavSood/bitpeers/cmd/bitpeers

Si su entorno está configurado correctamente, usted debe ahora tener un bitpeers de comandos disponibles. Si no, trate de encontrar su GOBIN (GOPATH/bin) y agregarlo a su CAMINO.

bitpeers fácilmente volcado de los compañeros.dat direcciones como sea legible plaintext o JSON. Acepta tres banderas:

El uso de bitpeers:
 --addressonly sólo las salidas direcciones si se especifica
 --string filepath el camino a sus compañeros.dat
 --cadena de formato el formato de salida {json|texto} (predeterminado "json")

Ejecución de bitpeers --ruta /mnt/doge/.dogecoin/compañeros.dat --addressonly producirá un JSON array de todos los IPs y los puertos en los compañeros.dat. También se puede pasar el --formato de texto opción para producir una lista de todas las IPs y puertos, IP:puerto por línea.

La ejecución sin el --addressonly opción de producir todo el JSON/salida de texto, que contiene los siguientes:

$ bitpeers --ruta de archivo ./compañeros.dat --formato de texto
SerializationVersion: 34fc0100
Tiempo: 1526192792
ServiceFlags: 0x000000000000000d
IP: 42.5.143.180:8333
Fuente: 8.8.8.8
LastSuccess: 1526746622
Intentos: 0

Si por casualidad usted encuentra alguna inconsistencia o problemas con el analizador o de salida, por favor abre un tema en el repo de GitHub.

+535
user272387 30 jun. 2010 4:15:28

novato pregunta aquí. Estoy tratando de aprender a interactuar con el blockchain de Bitcoin y quiero usar el nativo lenguaje de secuencia de COMANDOS.

Ya he descargado todo el nodo y se sincronizan en una de AWS Linux Ubuntu pero me hizo uso de Bitcore.io. Puedo ver es el uso de Node.js y yo no veo ninguna opción de usar el bitcoin CLI. Los mejores tutoriales que hay en para Bitcoin, la lengua nativa.

¿Tengo que volver a descargar toda la cadena de bitcoin.org para los nativos de la línea de comandos?

Quiero utilizar todas las características, no sólo una " luz " opción como BitcoinJ.

Cualquier sugerencia se agradece.

+356
kompot 2 jun. 2018 7:25:51

Tengo más de 10.000 acciones aceptadas. ¿Cómo traducir a bitcoin? Cuánto bitcoin es de 10.000 acciones? Se dice que se va a transferir a mi billetera cuando me .01 bitcoin. Pero hasta ahora, nada en mi cartera.

+328
Emmani Danny 24 ago. 2013 5:25:26

Sé que hay muchos duplicados de esto, pero tengo la esperanza de que la forma en la que esta palabra se explica y ayuda no solo a mí, sino a otros también.

En cualquiera de las monedas del monedero bitcoin y el alt monedas, cuando yo ejecute una copia de seguridad veo una cartera.archivo dat que está siendo creado.

  1. ¿Esta cartera contiene toda la información necesaria como claves privadas, etc... en fin que decir cifrar el archivo y almacenarlo en un google drive , dropbox, etc.. ?
  2. Si mi disco duro no funciona, etc.. , puedo simplemente tomar esa cartera.archivo dat , y en otro equipo descifrar y recuperar mi información basada en mi moneda moneda?
  3. Si hago el cifrado dentro de la cartera, es la billetera.dat llama de otra forma?

Entiendo el intercambio , la compra, el comercio , la venta, minería de datos... simplemente no estoy versado en la copia de seguridad con la información de mi... claves privadas etc... gracias de antemano.

+235
GaysKingdom 29 jun. 2018 8:57:35

La tarifa de transacción especificado por la diferencia de la suma de los insumos y la suma de las salidas, es decir,

tarifa de transacción = Σ(entradas) - Σ(salidas)de

En otras palabras, se establece una tarifa de transacción mediante el envío de más de asignar al destinatario.

+232
user103092 3 abr. 2010 8:34:18

Si usted mira la multibit.org página de ayuda no es una página de apoyo específicamente para 'perdido carteras'.

Se indica el directorio donde, por defecto, la cartera se almacena. (Este es específica del sistema operativo)

+232
Sandri Lewar 15 jul. 2018 17:24:13

Hola a todos soy nuevo en la minería y acaba de entrar en ella. He hecho un montón de investigación y no he encontrado la respuesta a mi pregunta. He visto un Avalon 6 se ejecuta a través de una raspberry pi y me gusta mucho la idea de hacer esto. Habiendo dicho esto, no he visto la posibilidad de hacer esto con un Antminer S# de la serie, y estoy seguro de por qué. Entiendo que tiene su propio controlador y es más de un plug and play. Me gustaría correr esta a través de la raspberry pi, aunque como es más móvil y, en general, ocupa menos espacio. A continuación el vídeo del Avalon 6 siendo integrado: Avalon 6 w/ raspberry pi

Gracias por la ayuda!

+213
Minherc 25 ene. 2017 23:37:54

No estoy seguro de hacerlo bien y me los pensamientos, en teoría, no es posible. Pero me encontré con que la transacción d5d27987d2a3dfc724e359870c6644b40e497bdc0589a033220fe15429d88599 y, de hecho, https://blockchain.info/tx/d5d27987d2a3dfc724e359870c6644b40e497bdc0589a033220fe15429d88599 dos bloques diferentes que incluyen la transacción.

Puede alguien explicar por qué y cómo sucede?

Gracias

+188
Sebastian Rutkowski 22 sept. 2016 18:23:33
La etiqueta está siendo reemplazado. POR FAVOR, NO USE ESTA ETIQUETA MÁS. La minería es el proceso de asegurar las transacciones y comprometiéndolos en el Bitcoin público de la cadena.
+183
Binaya Shrestha 9 ago. 2010 3:26:52

Como por muchos descripciones hash del bloque se calcula sobre la base de que los encabezados y nonce campo. El último da una oportunidad para obtener el valor que está a menos de un objetivo por el incremento de la misma. Si es una lotería por qué es necesario que un atacante para tener más potencia de cálculo, a continuación, el resto de la red? Puede tener una oportunidad para salir adelante de los principales blockchain generación si es sólo suerte? I. e. nonce del que usa para sus propios bloques de generación será siempre dándole el bloque deseado hash demasiado pronto? O es sólo que la probabilidad es tan baja que podemos asumir con seguridad que esto nunca sucederá?

+123
user1717828 16 ago. 2011 22:20:06

Yo estaba conectado a mi minero después de regresar de la formación. cuando por primera vez me conecté todos 3 cadenas eran visibles pero luego me mudé el minero más a una ubicación permanente y se conecta de nuevo. ahora sólo una cadena que está apareciendo. pensé que podría haber sido un problema con los 110 puntos de venta, así que zafé un hash de la junta por lo que sólo una placa que se conecta a mi PS (yo uso 2, uno por uno de la junta y el minero, y la otra para 2 tablas). Incluso después de hacer esto sólo una cadena que está apareciendo.

enter image description here

+121
Cwa 25 abr. 2014 8:54:52

Las últimas estadísticas de Bitpay publicado en diciembre de 2014, por lo que puede ser un poco fuera de fecha. Se dice que un 10% de los comerciantes mantener resolver completamente en Bitcoin, el 41% de los comerciantes mantener una parte de su asentamiento en Bitcoin, y el resto asiente completamente en la fiat.

Dicho esto, hay un montón de casos donde BitPay comerciantes a instalarme en Bitcoin, y, a continuación, utilizar un local de intercambio de fiat. Esto es en los casos donde, por ejemplo, BitPay no admite fiat pagos en ese país, o BitPay fiat tasa es inferior a los locales de intercambio. Creo que es seguro decir que el porcentaje real es mucho menor que 10%.

Del 41% que en parte se asientan en Bitcoin es difícil saber cuál es el promedio de porcentaje de split parece, y BitPay no hacer que la información disponible.

+68
JohnCoin 28 ago. 2016 0:43:57

Dependerá de lo que las leyes de bancarrota en Japón y si el cambio tiene cualquier tipo de bienes o Bitcoins a la izquierda.

Entonces depende de la cantidad de los honorarios de abogados, es para encontrar y convertir a todos estos en dinero en efectivo.

Usted debe asegurarse de que están incluidos en la lista de acreedores o de que usted no tendrá la oportunidad de una recuperación de nada. Y si se recuperan, por lo general serán los peniques en el dólar.

+48
cornflakes24 2 feb. 2011 6:03:31

No. El punto entero de un hash es que es una forma de la función. Usted no puede "decodificar" cualquiera de los datos de cabecera de el hash del bloque.

Por otra parte, la altura de bloque ni siquiera figura en el encabezado de bloque. Se supone que se debe calcular la altura de bloque mirando el hash del bloque anterior en la cabecera, que esperemos que se refiere a un bloque cuya altura ya sabes; si no, conseguir que el bloque y recurse. (Por lo suficientemente reciente bloques, el bloque de altura está contenida en las secuencias de comandos de la coinbase transacción, pero que no es parte de la cabecera.)

+34
AD95 19 sept. 2010 22:49:19

Mostrar preguntas con etiqueta