Procedimiento para la obtención de Direcciones de Pago

Estoy tratando de comprender el HD cartera de pago procedimiento de derivación, por lo que se supone:

  • La propiedad de un Bitcoin HD Cartera en un externo dispositivo inteligente
  • Exportado a nivel de cuenta extendido de clave pública (xpub....) a partir de la primera cuenta.
  • Derivación de Ruta "m/44'/0'/0'/0/0"

¿Cuál es el paso a paso el procedimiento que se podría utilizar para derivar una válida bitcoin dirección de pago, que puede ser confirmado con el exterior cartera?

El proceso, de acuerdo a BIP32 - Niño tecla de derivación (ERC) funciones, parece sencillo y suficiente que debe ser capaz de ser escrito como una sola función en cualquier lenguaje de programación con dos procesos: Base58 y HMAC-SHA512, que son funciones estándar que no creo que es necesario instalar una plataforma de la herramienta y una hinchada espaguetis a la biblioteca de código para realizar la derivación.

ACTUALIZACIÓN 20190718:

He aquí lo que he sido capaz de improvisar a partir de diversas fuentes. El código PHP y fuente de referencia para el proceso de derivación:

<?php

 // https://iancoleman.io/bip39/ - Descargar y utilizar sin conexión.
 // Bip39 Prueba Mnemónico: abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar acerca de

 $Bar = "xpub6BosfCnifzxcFwrSzQiqu2DBVTshkcxacvnswgyjvvhhawa7d4r5wswgfnbi8aw6zrc1brxmywmzg3dssssoekkudhud9ylb6qx39t9nmdj";

 $Index = "00000000";

 $ExtPubKey = bin2hex(base58_decode($Bar));

 $Tipo = substr($ExtPubKey,0,8);

 $Profundidad = substr($ExtPubKey,8,2);

 $Fingerprint = substr($ExtPubKey,10,8);

 $Cuenta = substr($ExtPubKey,18,8);

 $ParentChainCode = substr($ExtPubKey,26,64);

 $ParentPublicKey = substr($ExtPubKey,90,66);

 $PubChecksum = substr($ExtPubKey,-8);

 $Clavepublica = hash_hmac('sha512',$ParentChainCode,$ParentPublicKey.$Index);

 $Clavepublica = "04".$Clavepublica;

 $PublicKeyHash = hash('ripemd160',hash('sha256',$Clavepublica,False));

 $Dirección base = "00".$PublicKeyHash;

 $PreChecksum = hash('sha256',hash('sha256',$dirección base));

 $Checksum = substr($PreChecksum,0,8);

 $Address = $Dirección Base.$Suma de comprobación;

 $PaymentAddress = base58_encode(hex2bin($Direccion));

 echo "Dirección de Pago: $PaymentAddress\n";

?>

Estoy usando xpub para demostrar que el procedimiento funciona. En última instancia gustaría ser capaz de derivar para ypub y zpub.

Parece que me estoy perdiendo algo importante, como ser la variable de escribir, tal vez binario algo...estoy en una pérdida.

Me han dicho por Andreas que hay algo acerca de la adición de dos números juntos, pero no estoy encontrando la referencia a él.

Una fuente de referencia algo acerca de curva elíptica y una mística de la variable "G", pero sin ninguna explicación.

De acuerdo a BIP32, este proceso se supone que para ser realmente fácil.

Cualquier ayuda sería apreciada. TIA.

+630
Rufus Masters 24 ago. 2010 13:37:16
23 respuestas

Cuando se une al bitcoin de la red, usted solicita una lista de los compañeros que tiene un nodo de modo que usted es capaz de conectarse a los compañeros, si quería, a fin de estar mejor conectados. Hay alguna forma de que cuando se solicita a los compañeros de la lista de un nodo, el nodo podría proporcionar un falso compañeros lista con un número de 'mala' nodos?

+905
imPK 03 февр. '09 в 4:24

Convencional, las monedas son generalmente respaldado por el oro que determina su valor, pero bitcoin es diferente. No tiene ningún valor intrínseco, como el papel de un dólar que está hecho, su valor depende de cuánta gente está dispuesta a pagar para llegar a ellos y cuánto comerciantes valoran como de pago. La inflación es causada generalmente por poner demasiado dinero en el mercado y por lo tanto la reducción de su precio. Bitcoins se ponen en el mercado regulado de forma y tener un límite de 21 millones, por lo que la única manera de que a causa de la inflación es una caída en la demanda de bitcoins.

+864
Sweet72 16 ene. 2012 20:44:07

Tanto en "enviar" y "recibir" las transacciones, el comando gettransaction me da el nombre de cuenta y la dirección de recepción, ignorando el envío de dirección. ¿Por qué debo preocuparme por la recepción de dirección en un "recibir" transacción? Quiero saber el envío de dirección, por supuesto...

  • "recibir" --> enviar dirección, recibir la cuenta
  • "enviar" --> enviar cuenta, recibir de la dirección de

¿Por qué no funcionan de esta manera, lo que me estoy perdiendo, y ¿cómo puedo obtener el envío de dirección en un recibir de la transacción?

edit: me gustaría hacer hincapié en la pregunta sobre por qué se comporta de esta manera? como en este comentario "no entiendo es: si puedo entrar en el txid en blockchain.info me dice que la dirección del remitente, ya que, obviamente, está presente en el blockchain... así que es sólo una elección de bitcoind no me diga?"

edit: enviar cualquier cosa a la dirección se encuentra totalmente fuera del alcance de la pregunta, por lo que es irrelevante si no desea recibir nada allí.

+854
Lane Zimmerman 2 feb. 2014 16:35:54

Las transacciones en la testnet son ahora casi siempre el doble de la pasé con una nueva txid (posible debido a tx maleabilidad). Esto es en realidad bastante bueno para propósitos de prueba.

Por eso me pregunto - cuando hice un pago y txId 'XXX' esta forma de pago, que a veces se confirmó con un nuevo txId 'YYY' que no conozco. ¿Cómo puedo (utilizando bitcoind json-rpc) de saber que mi pago con txId 'XXX' tengo confirmado?

+824
engine8470 25 mar. 2011 19:20:54

Cada vez que trato de abrir mi billetera este error viene. He apagar el equipo un par de veces y sacó el monedero y volver a cargar un par de veces y el error sigue ocurriendo.

Bitcoin - Error: Failed to connect to best block

Si usted no puede ver la imagen, es un mensaje de error que dice "error al conectarse con el mejor bloque" y hace que la cartera no se abre.

+805
S M Arif 28 mar. 2012 14:43:05

No tengo suficiente reputación para comentar, pero sólo para hacerle saber, el ejemplo de cabecera de bloque termina con "f8f1753dbdf441b00000000", pero que en realidad debería ser "b8f1753dbdf441b00000000" o totalmente:

020000000413cf7d02794eb094cd66404e46aa816679e12f6fdf9ee11f0e97337702b6e00b1edc1ccf82d3214423fc68234f4946119e39df2cc2137e31ebc186191d54229b8f1753dbdf441b00000000

Captamos a la escritura de una unidad de prueba.

+800
Heiko 21 jun. 2010 18:27:04

Mírelo de esta manera:

  • Todo el mundo tratando de resolver un Bitcoin bloque está compitiendo en contra de todos los demás (yo gano tú pierdes.)
  • Piscinas en general son esencialmente un pack de mineros que, en conjunto, acuerdan no competir el uno con el otro, pero de acuerdo colectivamente competir contra todos los demás que no está en la piscina. Piscinas creció en popularidad como la dificultad en la que creció y en teoría tiene algunas ventajas.
  • p2pool, por supuesto, sigue este mismo modelo, excepto ahora que la dificultad de la obtención de un p2pool compartir es tan difícil, pequeña hash tasas se han convertido en obsoletas en el p2pool modelo
  • El p2pool modelo es una gran idea y es todavía viable para cualquier persona con al menos 1 ths, pero el modelo necesita una actualización: La cuota de las cadenas se hace más grande, la proporción de la tasa de necesidades para aumentar haciendo que la dificultad vaya hacia abajo. Esto permitirá que incluso los pequeños mineros chip. Todos los hash cuenta.
+768
Helmy aamer 28 nov. 2010 16:19:02

Este es el anuncio de Bitcoin:

http://www.metzdowd.com/pipermail/cryptography/2009-January/014994.html

Total de circulación será 21,000,000 monedas. Va a ser distribuido a los nodos de la red cuando se hacen los bloques, con la cantidad de corte en la mitad de cada 4 años.

primeros 4 años: 10.500.000 euros monedas
próximos 4 años: 5,250,000 monedas
próximos 4 años: 2,625,000 monedas
próximos 4 años: 1,312,500 monedas etc...


Era parte de él desde el comienzo, y definitivamente no era secreto.

+757
Lambert Heller 6 jul. 2014 7:03:30

En primer lugar, no se recomienda almacenar la enorme cantidad de dinero en la billetera en línea.

Recomiendo altamente GDAX.com(son parte de Coinbase) para ese propósito, incluso si usted se ve afectado por un límite de retiro de ahí, usted puede todavía comercio fiat/monedas <-> monedas/fiat libremente. También tienen super bajos costos en las operaciones.

Lo que los comerciantes suelen hacer es depositar fiat a Coinbase, a continuación, mueva fiat gratis para GDAX, y ejecutar tradings allí sin ningún costo/tarifa baja. Para el almacenamiento, es mejor usar un frío cartera.

+725
Nyxels 15 feb. 2013 19:49:18

El límite de transacciones bajo segwit se deriva exclusivamente de la transacción de peso y el bloque límite de peso de 4.000.000 de unidades de peso.

Virtual del tamaño de la transacción no fue utilizado para el límite de cálculo porque es fraccionario cuando calculada con precisión. Bitcoin Core sólo utiliza los números enteros en el consenso de código y por lo tanto la transición a la transacción de peso.

Virtual del tamaño de la transacción se proporciona simplemente como una manera conveniente de comparar segwit efectivo del tamaño de la transacción a transacción actual tamaños.


La adición de una cita de la sección para aclarar: BIP141 especifica los siguientes términos en relación con el tamaño de la transacción:

Transacción de peso
se define como Base el tamaño de la transacción * 3 + Total el tamaño de la transacción (es decir. el mismo método de cálculo de Bloque de peso de Tamaño de Base y el tamaño Total).

Virtual del tamaño de la transacción
se define como la Transacción de peso / 4 (redondeado hasta el siguiente número entero).

La Base del tamaño de la transacción
es el tamaño de la transacción serializado con el testimonio de los datos eliminados.

Total tamaño de la transacción
es el tamaño de la transacción en bytes serializado como se describe en BIP144, incluyendo la base de datos y los datos de testigo.

+640
John Buzinkai 21 jul. 2019 8:21:46

Este es mi comprensión conceptual, que esperamos sea útil aquí, pero estoy seguro de que hay técnicas sutilezas que no soy incluso, que algunos de los más experimentados con las cadenas laterales proyecto sería capaz de dar una visión más clara.

En primer lugar, necesitamos tener una definición clara de un SPV de la prueba. Voy a utilizar SPV prueba de significar: Una secuencia de bits que indica que una transacción tiene una cantidad sustancial de trabajo de ejecutarlo. Es deseable que esta prueba sea tan pequeño como sea posible.

Esencialmente, se inicia mediante el envío de algunas monedas en la cadena principal a una salida que tiene una scriptPubKey que dice

OP_SPVPROOFVERIFY

A continuación, espere hasta que tenga suficientes confirmaciones (1-días que vale la pena, creo), y de la toma de esta UTXO, representado por el par (txid, n), y a una cadena lateral de hacer una transacción en la que se utiliza SPV prueba de la salida, en la confirmó blockchain para la emisión de nuevas monedas. Esto es esencialmente similar a la de mover las monedas de uno blockchain a otro.

Luego, cuando termines de usarlas en el lado de la cadena, se debe hacer una nueva salida con el mismo número de monedas, tal vez de enviarlos a OP_RETURN. Por lo tanto, usted ha renunciado a su coins en el lado de la cadena, lo que les permite volver a reivindicarse en la cadena principal. Antes de que pueda volver a reclamar a ellos, sin embargo, usted tiene que esperar durante 1 días la pena de confirmaciones en la cadena lateral, y luego construir un SPV prueba de que las monedas han sido destruidos en la cadena lateral. Este SPV prueba es lo que le permite desbloquear sus monedas de la OP_SPVPROOFVERIFY de salida que fueron encerrados en antes.

Para obtener más información sobre compacta SPV pruebas, consulte:

+637
Pommes 26 mar. 2017 9:07:35

Quiero analizar bruto transacciones en JSON, a continuación, cambiar algunos valores y codificar de nuevo a hexadecimal. JSON como este:

{
"direcciones": [
"346vcZZ6QV4nr68fybMEuA7qxxQeyKWops"
], 
"block_height": -1, 
"block_index": -1, 
"confirmaciones": 0, 
"double_spend": false, 
"honorarios": 0, 
"hash": "e09c37cca11208a8c372a1e397dcff0382b4d78cdde157ce8824d028dc185a80", 
"inputs": [
{
 "edad": 0, 
 "output_index": 1, 
 "prev_hash": "c15bb773cdd5bb63a65766f5680684ce991c126698db0aa020e3058081742874", 
 "script_type": "vacía", 
 "secuencia": 4294967295
}
], 
"salidas": [
{
 "direcciones": [
"346vcZZ6QV4nr68fybMEuA7qxxQeyKWops"
 ], 
 "script": "a9141a75cd53e9740caadbf83cbefdd087cdceb978a487", 
 "script_type": "pay-to-script-hash", 
 "valor": 14000000
}
], 
"la preferencia": "baja", 
"recibido": "2018-08-21T08:05:02.841875145 Z", 
"relayed_by": "54.160.159.32", 
el "tamaño" de: 83, 
"total": 14000000, 
"ver": 2, 
"vin_sz": 1, 
"vout_sz": 1
}

He intentado utilizar bitcoinj pero se vuelve muy simple objeto sin una gran cantidad de campos.

+601
Aleko Gharibashvili 3 ene. 2013 6:30:38

Estoy pregunto cuántos nonce puede resolver bloque en dificultad actual? Cómo puede ser que el número de cuenta?

+494
david barg 19 jul. 2013 6:41:53

En resumen: no.

El hardware de la página de comparación en el (en su mayoría obsoletos) wiki de Bitcoin no tiene información sobre el Titan XP tarjeta, pero las listas de alrededor de 200 Mhash/s para la GTX 590. Una GTX 590 tiene 1024 CUDA cores, mientras que el Titan XP tiene 3840. La extrapolación de esta manera se puede calcular el rendimiento en alrededor de 750 Mhash/s.

En la actual dificultad, la cantidad de hashrate te permitirá mina de un bloque en promedio una vez por 135000 años. Si utiliza agrupado de minería de datos, usted puede conseguir incremental pagos por acciones (parcial prueba de trabajo). Usted puede ganar 1 BTC alrededor de una vez por 10000 años, mientras que el pago de alrededor de $2000000 en los costos de la electricidad durante ese tiempo (a 10c/kWh).

Así que no. La GPU de la minería ha sido sustituida por la FPGA y ASIC de minería de datos, ya que alrededor de 2013.

+469
kotmp3 17 jul. 2010 3:23:22

Como señala la página de configuración, puede establecer

red: testnet

En su bcoin.conf archivo.

+458
Brian Martin 5 abr. 2017 22:30:51

Son todos la minería de piscinas compitiendo para desbloquear cada nuevo bloque, o cada grupo le asigna un bloque individual para desbloquear?

+450
Liu Siyuan 28 dic. 2010 15:37:56

En la actualidad, en el año de 2015, en el mes de julio, y la piscina de GHash.io, (que actualmente es la minera más grande de la piscina en el mundo) el número de acciones monto a ~25 mil MILLONES de dólares. Nosotros, con la velocidad de ~6.40 PHashs/s, hacer toda una manzana en lugar de un par de horas, hasta varios días, dependiendo de la dificultad.

No estoy seguro de si esta es la respuesta que está buscando, pero esto puede ayudarle a poner las cosas en perspectiva.

La más sincera de las suertes a usted, buen hombre.

+342
jamsboyz 25 jul. 2017 23:49:41

Si usted proporciona una cadena vacía se devolverá a la cuenta predeterminada cada vez. Nota getaccountaddress está obsoleta, véase el https://bitcoincore.org/en/doc/0.16.2/rpc/wallet/getaccountaddress/.

getaccountaddress "cuenta"

OBSOLETO. Devuelve la dirección Bitcoin para la recepción de los pagos a cuenta de esto.

Argumentos:
1. la "cuenta" (de la cadena, es necesario) El nombre de la cuenta por la dirección. También puede 
se establece en la cadena vacía "" para representar a la cuenta predeterminada. La cuenta no
necesidad que existe, será creado y una nueva dirección creada si no hay ninguna cuenta
por el nombre dado.
+271
Abdul Nouzil 18 sept. 2019 10:38:34
  1. Instalar git

    pacman-S git

  2. Instalar bitcoind dependencias como se ve aquí: https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.txt

    pacman-S boost boost-libs miniupnpc openssl db

  3. Instalar arch-linux el desarrollo de la base de paquetes, así que usted puede utilizar

    pacman -S base-devel

  4. Descargar e instalar bitcoind de la fuente de github

    su daemonuser

    cd /home/daemonuser

    git clone https://github.com/bitcoin/bitcoin.git

    cd /home/daemonuser/bitcoin/src/

    make-f makefile.unix USE_UPNP=- USE_IPV6=0

    bitcoind -daemon

+240
plantondi 12 nov. 2014 0:10:41

Mi ancho de banda de internet es de alrededor de 10 - 20 KB/s. Si yo pudiera sincronizar con él para la primera vez, entonces no hay problema. Si debo necesidad de sincronizar cada vez que cuando se abre, entonces es realmente un gran problema para mí.

+72
eipxen 10 dic. 2012 15:13:29

OK, me las arreglé para hacerlo con la excelente bitcoin-herramienta por matja https://github.com/matja/bitcoin-tool

git clone https://github.com/matja/bitcoin-tool.git

cd bitcoin-herramienta

hacer la prueba

./bitcoin-herramienta --entrada-tipo de la clave privada-wif --entrada-formato de base58check --output-tipo de la clave privada --output-formato hexadecimal --red bitcoin --input "KzRVLwCuCi2tH2PpSNZnwUqPwg6gaqXAm2lwobuurzasndc5jese"

lo que me dio 5f92519eef7ec4e37cbcd25f9ba4a82e5acf9a8cd274d4d3aa3aa727fd7b6969

como resultado.

+46
Tomasz Emeren 30 jul. 2017 22:36:16

Usted probablemente tendrá la mejor de las suertes en Bitcoin OTC. Es un servicio que permite el comercio de persona a persona, así que usted puede utilizar cualquiera de los medios que a alguien más le parece aceptable.

+26
burito 7 feb. 2018 12:15:52

Actualmente estoy desarrollando una prueba de altcoin en los fines educativos, y no puede, por alguna razón generar primer prisionero de guerra de los bloques después de la generación de génesis bloque. Par de años me realizaron con éxito viable tenedor de la horquilla de guión (o algo similar con terriblemente anticuado codebase), pero soy totalmente incapaz de reproducir con modernos codebase.

Así, para el punto. He utilizado PIVX repo, cambiado chainparams.cpp en consecuencia:

  • eliminó el antiguo puestos de control;
  • genera nuevas claves;
  • actualizado puertos de todo el código fuente;
  • cambiado pchMessageStart números;
  • actualizado unixtime;
  • cambiado el nombre de la moneda en todo el codebase;
  • generado génesis (y es correcto, lo he comprobado muchas veces);
  • compilado;
  • lanzó coind;
  • lanzó cpuminer, y no con la siguiente en el registro:

    2019-02-28 16:55:09 de ERROR: CheckProofOfWork() : hash no coincide con nBits
    2019-02-28 16:55:09 de ERROR: CheckBlockHeader() : prueba de trabajo fallado
    2019-02-28 16:55:09 de ERROR: CheckBlock() : CheckBlockHeader error
    2019-02-28 16:55:09 CreateNewBlock() : TestBlockValidity error


Me re-generado génesis con el código de chainparams.cpp - fue el mismo que con la génesis del generador. Traté de gn=1 y setgenerate verdadera, y otra vez recibido el mismo error, y hashespersec=0 en getmininginfo.

Empecé a buscar en la web, y encontré un montón de preguntas sin respuesta. Por ejemplo, esto se ve absolutamente mismo - No el mío Génesis / Primer Bloque (PIVX Horquilla / Clon)

He probado el tipo de solución a este tema - https://bitcointalk.org/index.php?topic=2152157.0;prev_next=siguiente - , pero sin demasiado éxito.

Supuse que tal vez me estoy perdiendo algo, y trató de hacer lo mismo con algunos otros PIVX horquillas. La primera fue esta - https://github.com/IchibaCoin/ICHIBA - con el mismo error. La segunda fue esta - https://github.com/cruxcoinsource/CruxCoin - con el mismo error también. Entonces me rasqué la cabeza, el pensamiento profundamente, y ejecutar diff para todos los archivos en /src/ carpeta de ambas monedas con mi testcoin. Los archivos eran totalmente iguales y difieren sólo en donde fueron diferentes entre esencia y ichiba.

He intentado todas las combinaciones posibles de bools en esta parte de chainparams.cpp:

fMiningRequiresPeers = true;
fAllowMinDifficultyBlocks = false;
fDefaultConsistencyChecks = false;
fRequireStandard = true;
fMineBlocksOnDemand = false;
fSkipProofOfWorkCheck = false;
fTestnetToBeDeprecatedFieldRPC = false;
fHeadersFirstSyncingActive = false;

Y cuando fMineBlocksOnDemand se establece en true, el comando setgenerate verdadero devuelve la billetera keypool está vacía, y keypoolrefill comando no tuvo ningún efecto.

¿Qué estoy haciendo mal?..)))

+14
Ehtesh Choudhury 26 ene. 2012 11:56:51

Mostrar preguntas con etiqueta