¿Qué es la "dificultad" y cómo se relaciona con el "destino"?

No entiendo lo de "dificultad" de los medios y la forma en que realmente se refiere a "destino".

Yo entiendo que lo de "destino" es - dice el de los mineros, cómo de pequeño es el hash resultante debe ser. (Básicamente, ¿cuántos ceros hay en un principio, aunque no exactamente.)

Pero no entiendo lo de "dificultad" es, cómo se relaciona con el destino y por qué es importante. Traté de leer el artículo en la wiki https://en.bitcoin.it/wiki/Difficulty - pero no tengo ni idea de lo que está tratando de decir cualquiera.

+868
Denix 27 oct. 2016 11:15:57
29 respuestas

El máximo tamaño de la transacción es el tamaño del bloque. Fuente.

// Los límites de tamaño (esto no toma el testigo en cuenta, ya que no ha sido revisado para la maleabilidad)
si (::GetSerializeSize(tx, SER_NETWORK, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS) * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT)
 estado de retorno.DoS(100, falso, REJECT_INVALID, "mal-txns-oversize");

Las transacciones de más de 100 kilobytes (incluyendo testigo en un 75% la tasa de descuento) no son estándar. Fuente 1. Fuente 2.

static const unsigned int MAX_STANDARD_TX_WEIGHT = 400000;
...
si (sz >= MAX_STANDARD_TX_WEIGHT)
{
 LogPrint(BCLog::MEMPOOL, "haciendo caso omiso de gran huérfano tx (tamaño: %u, hash: %s)\n", sz, hash.ToString());
 return false;
}
+973
user343053 03 февр. '09 в 4:24

Sus fondos están en esta dirección? 3GiMkxLWtriRPBL1mH4R29eZvBT1vj3f4r Necesita desactivar el 2FA en electrum dinero en primer lugar.

1.Abierto hasta ElectrumCash 2.9.2 (asegúrese de tener la última versión) 2.Haga clic en Nuevo/Restaurar 3.Seleccione la cartera con la autenticación de dos factores y haga clic en Siguiente 4.Seleccione ya tengo una semilla y haga clic en "Siguiente" 5.Introduzca su Electrum cartera de semillas y haga clic en Siguiente 6.Seleccione desactivar y haga clic en siguiente 7.Introduzca la contraseña y haga clic en siguiente y compruebe si se muestra el equilibrio y tratar de pasar.

+955
ZvEzdochka 21 sept. 2011 5:39:44

Lo siento si la pregunta es off-topic pero no puede encontrar una respuesta a una pregunta simple en cualquier lugar incluyendo btctalk.

Así que vamos a decir de una red hashrate de algunas monedas utilizando el X16R algoritmo es de 40 MH/s. ¿Qué pasa si empiezo a mina con 2 8x1080 Ti las plataformas de darme unos 200-220 Mh/s?

¿Cómo puedo calcular el porcentaje del total de monedas llego en 24h?

Supongamos que el número total de monedas minadas en 24 horas es de 7 millones.

+949
Wayne Ye 17 oct. 2014 19:38:00

En primer lugar, me gustaría señalar que el hash de poder en Bitcoin, de hecho puede considerarse como el poder de voto, pero sólo sobre la parte que es absolutamente necesario. Bitcoin es generalmente un cero-sistema de confianza, lo que significa que todos los datos recibidos de la red se considera que no son de confianza y verificado. De normas tales como la tasa de introducción de la moneda, lo que no permite una moneda para ser gastado dos veces, el requisito de firmas válidas, ... nunca se votó sobre. Incluso un 51% de la minería del poder no puede cambiar estas reglas, ya que solo le meten ignorado por el resto de la red.

Una de las cosas que votar sobre el pedido de otro modo las transacciones válidas. Esto es necesario ya que la física impone el mínimo tiempo para la comunicación de todo el mundo, por lo que en caso de que haya dos intentos de pasar la misma moneda, el mundo entero no se puede esperar a estar de acuerdo acerca de qué fue primero.

Dicho esto, la opción para el uso de "una CPU por voto" fue probablemente hecho sin tener en cuenta la evolución de las GPUs, FPGAs y ASICs. Originalmente, Satoshi se imaginó cada nodo en la red para ser un minero, e incluso le pidió a evitar la carrera armamentista más eficiente de la minería de hardware como de largo como sea posible.

Aún así, creo que la asignación de votos para poder computacional (prueba de trabajo) tiene sentido. Es posible que no está a favor de la igualdad (aquellos con mejor hardware obtener más información), pero es justo (todo el mundo puede invertir en hardware y cosechar las recompensas). Excepto para los sistemas que dependen de los datos en el sistema en sí (prueba de la apuesta, la prueba de la actividad), no sé nada, que es imposible de falsificar o eludir como prueba-de-trabajo.

+927
John Likens 16 may. 2013 3:21:48

El rayo de la Red no necesariamente reducir los costos, aumenta el número de transacciones procesadas en un bloque. Así que cada tranx cuesta menos, pero el total de cuotas en el bloque de sumar debido al mayor número de tranx. A medida que aumenta la adopción, por lo que no. de tranx. A su similar de aumento de tamaño de bloque, pero mejor, porque necesita menos espacio de almacenamiento en plena nodos, por lo que más de la descentralización que el tamaño del bloque de aumento.

+925
Bitoma 6 dic. 2012 20:58:28

Primero que todo: de hecho, no es posible en este momento para ordenar una pegada de pago. El htlcs son un contrato en el que te comprometes a cumplir con un pago si el nodo de enrutamiento proporciona una preimagen dentro de una ventana de tiempo (el bloqueo temporizado). Suponga que usted está autorizado para eliminar un htlc antes de que el temporizador, esto no sólo sería un incumplimiento del contrato, pero podría fácilmente resultar en un comportamiento en el que se podría iniciar un pago, el comerciante podría reclamar el dinero, y mientras que la preimagen se propaga de nuevo a usted, usted cancelar su htlc causando el nodo de enrutamiento para perder dinero.

Obviamente como una extensión del protocolo podríamos pensar en hacer una diferente de la cebolla "solicitud de anulación de enrutamiento", que informará a todos los nodos en la ruta de acceso a abortar. Esto tendría que ser ejecutado a partir de que el destinatario de vuelta al remitente y mitigaría la mencionada forma de comportamiento abusivo.

Sin embargo, una nueva cebolla solicitud significaría que todo el mundo en la ruta de acceso es sensible a ella. Si ese fue el caso, en primer lugar, que el pago no se han pegado.

Siempre es difícil para los matemáticos (como yo) para reclamar algo que es imposible. Pero creo que en este caso la tenemos por imposible en diseño / indeseable para cancelar htlcs desde el lado del remitente. (Estoy feliz de estar equivocado y que disfrutar de una discusión sobre el rayo dev ml como se creo a partir de una interfaz de usuario / UX perspectiva de su solicitud es totalmente razonable)

También hay que tener en cuenta lo que la eliminación de un htlc en la actualidad los medios. El estado de la canal se cambia.

+875
OneWithTheSkies 6 nov. 2015 22:28:46

Porque esto parece una colección de enlaces, voy a añadir otro:

https://github.com/priiduneemre/btcd-cli4j

+871
CapNCook 5 ene. 2010 23:26:36

Usted tendrá que crear una nueva transacción a la dirección con una tasa más elevada. Es muy poco lo que puede hacer para una transacción existente en la piscina.

+854
zewlak 9 feb. 2012 22:30:14

SegWit fue (entre otras mejoras) presentó a revisión maleabilidad problemas. Eso no significa que no SegWit las transacciones son todavía maleable? Si es así, ¿qué tipos de maleabilidad todavía podría ocurrir en la práctica?

+847
rcbarnes 16 sept. 2014 20:58:12

Consiguió trabajo.

Ken blog supone un entorno Windows, en Linux de 64 bits, la cantidad de bytes son diferentes para ciertos tipos de datos así que he tenido que cambiar algunas de las "pack" formatos.

Por último, yo había estado haciendo todo en hexadecimal y la conversión a binario sólo para el envío de socket. A la hora de calcular el sha256 (dos veces) de la suma de comprobación sin embargo, esto debe ser en el BINARIO de carga.

Código de trabajo (para Linux de 64 bits, al menos):

importación struct
import socket
el tiempo de importación
importación hashlib
importación binascii

la magia = "f9beb4d9"

def makeMessage(magia,de comando,de la carga):
 checksum = hashlib.sha256(hashlib.sha256(capacidad de carga).digest()).digest()[0:4]
 el retorno de la magia.decode("hex")+struct.pack('12sI4s',comando,len(capacidad de carga),suma de comprobación)+carga
def makeVersionPayload():
 versión = 70002
 servicios = 0
 timestamp = int(tiempo.time())

 addr_you = "127.0.0.1"
 services_you = 0
 port_you = 8333

 addr_me = "127.0.0.1"
 services_me = 0
 port_me = 8333

 nonce = 0

 user_agent_bytes = 0
 start_height = 0
 relé = 1

#https://bitcoin.org/en/developer-reference#version
 carga útil = "";
 carga útil += struct.pack("me",versión)
 carga útil += struct.pack("Q",los servicios)
 carga útil += struct.pack("q",timestamp)
 carga útil += struct.pack("Q",services_you)
 carga útil += struct.pack(">16s",addr_you)
 carga útil += struct.pack (">"H", port_you)
 carga útil += struct.pack("Q",services_me)
 carga útil += struct.pack(">16s",addr_me)
 carga útil += struct.pack (">"H", port_me)
 carga útil += struct.pack("Q",nonce)
 carga útil += struct.pack("B",user_agent_bytes)
 carga útil += struct.pack("me",start_height)
 carga útil += struct.pack("B",relé)
 el retorno de la carga útil

ip = socket.gethostbyname("124.248.237.178")
puerto = 8333
calcetín = socket.zócalo(socket.AF_INET, socket.SOCK_STREAM)
print "conectado al nodo..."
calcetín.connect((ip,puerto))

msg = makeMessage(magia,"versión",makeVersionPayload())
print "el envío de la versión del paquete"
calcetín.send(msg)

mientras que 1:
 msg = calcetín.recv(2**10)
 si no de error:
 print "hecho"
exit()
otra cosa:
 imprimir msg.encode("hex")
+844
jezr74 6 abr. 2013 3:14:54

Sé que aumentar.

Estoy buscando algo más preciso que eso.

+753
pmac 11 jul. 2012 3:24:11

Soy nuevo en esto y no tengo ningún bitcoin todavía, pero me preguntaba si alguna vez llegara a conseguir nada, voy a tener el cliente que se ejecuta en el fin de recibir de ellos?

También, ¿qué pasaría si el cliente no se ejecuta en el momento en que un bitcoin es enviado a la dirección?

+752
yiru 15 sept. 2013 13:08:12

La mayoría de los intercambios solamente una lista de monedas que tienen un historial probado de cambio de volumen y precio. Si usted cree su propio token es improbable que pueda ser utilizado por otra persona, o comprados en una bolsa, por lo que es poco probable que cualquier cambio va a querer a la lista de lo que me temo.

+714
josephina a 22 oct. 2012 6:42:15

De la wiki:

"El promedio de tiempo para encontrar un bloque se puede aproximar mediante el cálculo de: tiempo = dificultad * 2**32 / hashrate"

Esto se aplica también a las acciones, el establecimiento de 1 como de la dificultad.

En 1 MH/s, usted puede esperar para encontrar un compartir cada 2^32 / 1000000 = ~4295s.

Inversamente, usted encontrará (1000000/2^32) = ~0.000233 acciones por segundo por MH/s.

+682
Yaso 2 ene. 2014 3:34:56

Generalmente hablando, como la dificultad aumenta, y se mantiene el mismo hardware, tus ganancias se van para abajo. Si se les cae por debajo del costo de la minería (incluyendo electricidad, etc), entonces sí, usted tiene una pérdida.

+661
Foxsweater 7 sept. 2012 5:33:14

La ane única razón es que todo el mundo que optan por BTC en lugar de altcoins. Y esto puede crear un bullrun para BTC pero también será el motivo por el mayor vertedero de la historia. El pro comerciantes van a obtener los beneficios de ella.

+641
nguyen 13 dic. 2012 23:12:21

NOTA: no utilice esta solución. Ya no es relevante para los clientes actuales. Ver otras respuestas para sugerencias sobre cómo utilizar incompleta blockchain representaciones.

La versión actual del cliente no ofrece mucho en el camino de la optimización de espacio, y hace algunos almacenamiento en caché que puede causar hinchazón, pero aquí están algunas ideas para el manual de maneras en que puede ayudar.

  1. Copia de la cartera.dat archivo fuera del directorio de datos, a continuación, retire el directorio de datos. Reinicie el cliente tiene que crear el directorio de datos de nuevo y descargue el bloque de la cadena. Detener el cliente reemplazar la cartera.dat archivo con la copia de seguridad. Reinicie el cliente con el rescan opción.
  2. Copia de seguridad de su directorio de datos completa y eliminarlo. Inicie el cliente de nuevo la creación de un nuevo directorio de datos, y el bloque de la cadena de descargar. Copia una de las direcciones del cliente. Cerrar el cliente de copia de seguridad, el nuevo directorio de datos como una copia de seguridad diferente. Restaurar el directorio anterior. Iniciar el cliente y la transferencia de todos sus monedas a la nueva dirección. A continuación, puede restaurar el número 2 de la copia de seguridad del directorio de datos, y desechar el viejo directorio. En este escenario, no es necesario reiniciar el cliente con el rescan opción.

Sin embargo, ser muy cuidadoso con estos pasos, y mantener todas las copias de seguridad hasta que esté seguro de que usted tenga éxito. Y recuerde que si usted está esperando los pagos en la vieja cartera.archivo dat, entonces usted no debe utilizar la opción dos, a menos que usted puede actualizar fácilmente la dirección de pago a su nueva cartera.

+479
halenloris 24 dic. 2012 1:26:15

Sí. Existe un proyecto llamado Faro que hace algo muy similar. Las transacciones de Bitcoin, ya sea totalmente a tener éxito o no por completo. Podemos utilizar esta empezando con una transacción que tiene los resultados que queremos.

--> TX -- 0.5 BTC --> Charlie

Esto no es válido, porque no tiene entradas.

Añadimos Alicia de entrada.

Alice --> 0.25 BTC --+
 +--> TX -- 0.5 BTC --> Charlie

Esto no es válido, debido a que la transacción crea más en los resultados que se lleva en las entradas. No puede ser parcialmente pasó, tampoco. Es todo o nada.

Añadimos Bob entrada.

Alice --> 0.25 BTC --+
 +--> TX -- 0.5 BTC --> Charlie
Bob --> 0.25 BTC --+

Ahora la transacción es válida, y puede ser empujado a la blockchain de Bitcoin. La modificación requerirá de Alice y Bob para volver a firmar. Si queremos Bob tener algunos Bitcoins al final, el procedimiento es el mismo, excepto comenzamos con las salidas que pagar tanto Charlie y Bob.

+448
Vladlena 18 oct. 2017 15:14:11

Como de Bitcoin Core 0.14.0, estas son las formas en que una transacción puede salir de la mempool:

  • La transacción fue incluido en un bloque.
  • La transacción o de una de sus confirmar los antepasados de los conflictos con una transacción que fue incluido en un bloque.
  • La transacción fue reemplazado por una versión más reciente (ver BIP 125).
  • La transacción se realizó en la parte inferior de la mempool (cuando ordenados por precio por tamaño), el mempool había llegado a su límite de tamaño (véase la -maxmempool opción), y una mayor cuota de transacción fue aceptada, desalojando a la parte inferior.
  • La transacción vencidos por el tiempo de espera (por defecto de los 14 días después de la entrada).

Además, las transacciones que se han dejado la mempool siempre se puede entrar en ellos de nuevo. Por ejemplo, cuando son parte de los locales de la cartera y conseguir retransmitir, o al en que se reciban de nuevo a través de la red. El desalojo no implica una transacción se cancela.

Desde el Bitcoin Core 0.14.0, el mempool se guarda en el disco, por lo que persiste a través de los reinicios. En versiones anteriores de un reinicio también se traduciría en una limpió mempool.

+364
Aydar Magafurov 9 ene. 2011 4:47:45

Sé que una clave pública puede ser comprimido. Sin embargo, una clave pública y su comprimido uno tiene la misma clave privada. Entonces, ¿por qué necesitamos dos diferentes Cartera de formatos de importación para cada comprimido y sin comprimir uno?

+341
Thierry Koblentz 6 oct. 2019 18:45:13

Actualmente estoy envío de llamadas RPC bitcoind en Python3 en serie utilizando JSON:

importación json, las solicitudes de

def pull(comando, foo):
 encabezados = {'content-type': 'application/json'}
 carga útil = json.vertederos({"método": comando, "params": [foo], "jsonrpc": "2.0"})
 respuesta = solicitudes.get(serverURL, encabezados=encabezados, data=carga útil)

return(respuesta.json()['resultado'])

Ex:

pull('getblock', BLOCKHASH)

y espero mejorar llamar a velocidades haciendo lote llamadas RPC.

Es esto posible y ¿cómo es eso?

+330
AL0909 20 nov. 2016 3:15:44

¿Sabes dónde puedo obtener una Lista de los "Bits de la Moneda de los Investigadores" o - Consultores para contratar -
para ayudar a localizar a un Poco de la Moneda de la cuenta después de que una persona ha muerto?

+285
Shurado 14 abr. 2018 10:03:17

Dada la falta de protección a la réplica cuando el SegWit2x de la horquilla se divide una cadena diferentes hay un mecanismo seguro para la emisión de un tx de modo que sólo será aceptado por el 1x o 2x cadena de nodos?

Si la respuesta es no sería una opción para ejecutar un bitcoin-core y btc1 completo nodo y enviar monedas a mí mismo en el btc1 nodo. Una vez que el tx es aceptado en el SegWit2x bloque y NO el 1x bloque me gustaría poder dividir mis monedas? Si el tx consiguió reproducir en el 1x de la cadena podría intentar de nuevo, espero que no muchas veces para evitar los cargos.

+260
michaellee 3 may. 2019 10:04:09

Junto con la historia de las transacciones entrantes y salientes, ¿cómo puedo encontrar el primer bloque que la dirección aparecido en (encontrar cuando la cartera fue creada)? Yo quiero hacer esto mediante el análisis con bitcoin abe o algo a lo largo de esas líneas. Yo no soy programador, pero necesito saber cómo contar el desarrollador lo que estoy tratando de crear.

+224
Muhammad Rizwan 9 mar. 2015 9:31:12

Debería funcionar bien. Va a ser lento al principio, te recomiendo que ejecuta los clientes en la clearnet sólo para obtener la mayoría de los blockchains, a continuación, conectarse a Tor y empezar a utilizar los clientes.

+173
Jadelyn Long 8 dic. 2018 1:23:15

Recientemente he sido asignados para asesorar a un estudiante en una tesina de licenciatura en matemáticas. Ella ha tomado álgebra lineal, introducción al análisis real, básicos de la criptografía, y el álgebra abstracta. Su interés está en la criptografía. Y ella tiene un amor de Bitcoin. El punto de una tesina es llevar al estudiante a aprender por si mismas un tema y aprender a buscar y a leer los matemáticos papeles. Obra Original que podría ser publicado iba a ser agradable, pero a menudo es insostenible.

Mi pregunta es si alguien sabe de alguna investigación que es/ha sido/se ha hecho en la criptografía relacionadas con Bitcoin. Gracias.

+125
Buable 25 jun. 2011 2:53:27

Debo estar preocupado de tal blockchain reorganizaciones a la hora de aceptar la n-confirmación de las transacciones?

Las horquillas se producen con bastante frecuencia, y si estás sólo requieren una única confirmación de la contraparte tendrá la oportunidad de doble pasar cada vez que estos huérfanos bloques de ocurrir.

Estoy en lo cierto al decir que el éxito de cualquier 6-bloque tenedor abrir el riesgo de la conducción sin el doble gasto de TODAS las transacciones no incluidas en el tenedor, no sólo los dirigidos por el pícaro minero?

Sí, un éxito 6-bloque bifurcación permitiría un doble gasto para todos los n-confirmación de las transacciones no incluidas en la horquilla, donde n ≤ 6.

La mayoría de los nodos (incluyendo el pícaro minero) más probable es que rechace el free-riding doble pasar los intentos de todos modos (incluso si sus honorarios de la transacción se encuentra el camino superior), como la primera transacción por la que el tiempo de estar plenamente difundido?

Difícil de decir. El protocolo bitcoin explícitamente no tienen una regla para n-confirmaciones (esto es sólo la aceptación de un número de confirmaciones después de que el receptor de una transacción puede ser razonablemente seguro de duplicar el gasto no va a ocurrir), así que según el protocolo, las transacciones sería válido. Dudo que haya muchos mineros con la lógica construido para lidiar con esta situación, ya que cuando se hace algo más de cerca imposible (una entidad que tiene alrededor de la mitad de la potencia de cálculo de la red), la moneda probablemente no tendrá la legitimidad de la izquierda (por lo tanto no hay ningún valor en los cuales actúan como los mineros).

+120
Matt Ray 19 oct. 2016 6:26:44

Tengo un negocio en casa en los estados unidos y estoy gastando una cantidad significativa de tiempo en Europa.Tengo tanto de estados unidos y la UE, cuenta de banco, así como una cuenta de coinbase. Me pregunto si puedo por bitcoins en DÓLARES y luego los venden de nuevo a mi la UE cuenta bancaria en Euros? Normal de mi banco cobra $35 además de que me da una tasa de cambio de un 4,5% más que el mercado. Así, por cada $1,000 puedo enviar, tengo que pagar casi $45 en las tasas de cambio de más de $35 tasa de transferencia...me pregunto si el uso de bitcoin me puede ayudar significativamente a reducir mis costos para este tipo de movimiento de dinero? alguien ha hecho esto y me puede decir de cualquier tipo de problemas o dificultades? Gracias!

+97
Marcel Seiler 11 feb. 2017 20:06:34

Tengo una fundamental duda wrt impulso de señalización utilizado en bitcoin. Tal y como yo lo entiendo de la siguiente sucede entre main.cpp y init.cpp:

  • StartNode() genera un hilo ThreadMessageHandler
  • ThreadMessageHandler emite un impulso de señal SendMessages
  • SendMessages() hace el envío de los mensajes (como PING o INV)

Es mi entendimiento correcto? ¿Por qué hemos de invocar a un impulso de señal y complicar ? Por qué no una simple llamada de función para SendMessages() en main.cpp no haría el equivalente?

Cualquier experto, por favor explique el flujo de código aquí.

Actualización

Código Snippet1 (Original De Bitcoin)

si (lockSend)
g_signals.SendMessages(pnode);

Código Snippet2 (Mi Intento):

si (lockSend)
SendMessages(pnode);
+54
arulbero 9 ago. 2015 21:20:06

Mostrar preguntas con etiqueta