¿Cómo serializar en monedas.h trabajo?

Estoy hablando específicamente acerca de esto:

/** poda versión de CTransaction: sólo conserva los metadatos y el saldo de transacciones salidas
*
 * Formato serializado:
 * - VARINT(nVersion)
 * - VARINT(por ejemplo ncode)
 * - unspentness bitvector, para uout[2] y más; el byte menos significativo primero
 * - el que no pasó CTxOuts (a través de CTxOutCompressor)
 * - VARINT(nHeight)
*
 * El por ejemplo ncode valor se compone de:
 * - bit 1: IsCoinBase()
 * - bit 2: uout[0] no se gasta
 * - bit 4: uout[1] no se gasta
 * - El mayor bits codifican N, el número de no-cero bytes en el siguiente bitvector.
 * - En caso de que ambos bits 2 bits y 4 son unset, que codifican N-1, como debe ser en
 * menos uno que no pasó de salida).
*
 * Ejemplo: 0104835800816115944e077fe7c803cfa57f29b36bf87c1d358bb85e
 * <><><--------------------------------------------><---->
 * | \ | /
 * código de la versión de uout[1] altura
*
 * - versión = 1
 * - código = 4 (uout[1] no se gasta, y 0 no-cero bytes de bitvector siga)
 * - unspentness bitvector: 0 no-cero bytes de seguir, tiene una longitud de 0
 * - uout[1]: 835800816115944e077fe7c803cfa57f29b36bf87c1d35
 * * 8358: compacto cantidad representación para 60000000000 (600 BTC)
 * * 00: especial txout tipo pay-to-pubkey-hash
 * * 816115944e077fe7c803cfa57f29b36bf87c1d35: dirección uint160
 * altura = 203998
*
*
 * Ejemplo: 0109044086ef97d5790061b01caab50f1b8e9c50a5057eb43c2d9563a4eebbd123008c988f1a4a4de2161e0f50aac7f17e7f9555caa486af3b
 * <><><--><--------------------------------------------------><----------------------------------------------><---->
 * / \ \ | | /
 * código de la versión de unspentness uout[4] uout[16] de altura
*
 * - versión = 1
 * - código = 9 (coinbase, ni uout[0] o uout[1] no se haya gastado,
 * 2 (1, +1, ya que ambos bits 2 bits y 4 son unset) distinto de cero bitvector bytes siga)
 * - unspentness bitvector: bits 2 (0x04) y 14 (0x4000) se establece, así uout[2+2] y uout[14+2] no se haya gastado
 * - uout[4]: 86ef97d5790061b01caab50f1b8e9c50a5057eb43c2d9563a4ee
 * * 86ef97d579: compacto cantidad representación para 234925952 (2.35 BTC)
 * * 00: especial txout tipo pay-to-pubkey-hash
 * * 61b01caab50f1b8e9c50a5057eb43c2d9563a4ee: dirección uint160
 * - uout[16]: bbd123008c988f1a4a4de2161e0f50aac7f17e7f9555caa4
 * * bbd123: compacto cantidad representación para 110397 (0.001 BTC)
 * * 00: especial txout tipo pay-to-pubkey-hash
 * * 8c988f1a4a4de2161e0f50aac7f17e7f9555caa4: dirección uint160
 * altura = 120891
*/

Yo realmente no entiendo cómo por ejemplo ncode obras. Veamos el segundo ejemplo:

Primer bit se establece para indicar que es un coinbase transacción. Hasta ahora por ejemplo ncode = 01. uout[0] y uout[1], se pasó, lo que significa que podemos añadir 1 porque hay al menos 1 saldo de salida. Así que la máscara de bits que se 0001 0001, que es igual a 0x11.

Así que ya tenemos un número más grande que 0x09. ¿Cómo diablos es que por ejemplo ncode = 0x09 calculada?

+484
peak indicator 28 jun. 2014 18:10:57
23 respuestas

Existe una amplia Bitcoin biblioteca para .RED llamada NBitcoin. Es posible que desee comprobar que fuera.

+937
Dondi Michael Stroma 03 февр. '09 в 4:24

Yo no he probado este particular systemd servicio de archivo, pero desde mi experiencia en Ubuntu, es necesario crear la estructura de directorios de antemano y el usuario que ejecuta bitcoind necesitaría permisos de escritura en el directorio /var/lib/bitcoind/. De lo contrario, el servicio terminará con errores y no se ejecutará.

Si usted comienza a bitcoind como usuario de bitcoin, el demonio por defecto buscará y el uso de /home/bitcoin/.bitcoin, que inherentemente tiene acceso de escritura. Para simplificar, le sugiero que elija el .conf en este directorio. También sugiero colocar el archivo pid en esta ubicación.

Yo no soy consciente de ninguna de las vulnerabilidades de seguridad de utilizar el directorio de inicio del usuario para -datadir y pid, como esos lugares deben ser escribir accesibles para el usuario de bitcoin donde quiera que ponerlas de todos modos; en realidad me gustaría ver una discusión sobre este tema. Utilizando la configuración sugerida en que systemd servicio de archivo significaría que tendría que dejar de usuario de bitcoin acceso de escritura dentro de un directorio que normalmente es modificable por el root.

En consecuencia, sugiero modificado ligeramente el servicio de systemd archivo:

[Unidad]
Descripción=Bitcoin se distribuye en moneda demonio
Después=de la red.objetivo

[Servicio]
Usuario=bitcoin
Grupo=bitcoin

Tipo=fork
ExecStart=/usr/bin/bitcoind -demonio -pid=/home/bitcoin/.bitcoin/bitcoind.pid \
-conf=/home/bitcoin/.bitcoin/bitcoin.conf -datadir=/home/bitcoin/.bitcoin -disablewallet
PIDFile=/home/bitcoin/.bitcoin/bitcoind.pid

Reinicie=siempre
PrivateTmp=true
TimeoutStopSec=60
TimeoutStartSec=2s
StartLimitInterval=120s
StartLimitBurst=5

[Instalar]
WantedBy=multi-usuario.objetivo

Tenga en cuenta que si usted coloca PIDFile= antes de ExecStart= recibirá una advertencia en el registro, pero el servicio se ejecutará de todas maneras.

Hay esta plantilla actual https://github.com/bitcoin/bitcoin/blob/master/contrib/init/bitcoind.service, tal vez usted puede tomar algunas mejoras de seguridad a partir de allí. Esta plantilla utiliza RuntimeDirectory=bitcoind para crear /ejecutar/bitcoind propiedad de bitcoin (y de los lugares de la pid archivo en el que hay). Coloca bitcoin.conf probablemente en un sólo lectura medio ambiente, y ommits -datadir, que será, en este caso por defecto /home/bitcoin/.bitcoin.

+933
Ahalya 14 ene. 2011 23:17:55

Actualmente estoy trabajando con un número de altcoins y y necesito el apoyo de los depósitos y retiros de dinero en monedas con muy gran moneda de número de la pac como Dogecoin. Me pregunto si el Bitcoin Core cliente, que es la base para tales altcoin clientes es compatible con denominación de las monedas internamente y en su API (por ejemplo, cuando se llama a getbalance puede mostrar los saldos de 10^12 monedas con una precisión de 1 satoshi?), o es que hay un límite a la precisión utilizado?

+926
Mellany 21 oct. 2012 6:06:27

Aquí están algunos relacionados estrechamente con las observaciones sobre el tema que pueden ayudar a otros novatos como yo a entender PoS. Me pasan un par de horas tratando de poner las cosas juntas y para ser honesto, procedente de la nieve de fondo era bastante difícil para realmente entender por qué PoS funciona de la manera que lo hace. Especialmente difícil de entender era cómo se hace PoS de evitar la obtención de beneficios de tener un mayor poder de CPU disponible. La respuesta a esta pregunta es bastante simple: PoS NO se benefician de tener más de hash de poder desde las entradas a las funciones hash son muy "estático" y por tanto, la salida de la función de hash, dentro de un marco de tiempo dado es siempre la misma. Para aclarar, en PoW la entrada a la función de hash incluye un nonce y también los tx de datos. Estas entradas están cambiando constantemente y por lo tanto tener más potencia de la CPU permite probar más combinaciones que se espera llevar a la generación de una válida hash del bloque. PoS ya que todas las entradas siguen siendo los mismos (sólo los cambios de marca de hora a intervalos regulares), tener más potencia de CPU no ayuda al minero debido a que el resultado de la ejecución de la función de hash con los mismos insumos generará el mismo resultado hash. La única cosa que se puede hacer para aumentar el impacto de la CPU es aumentar el número de UTXO que una cartera que posee por la división mayor UTXO denominaciones en los más pequeños. Sin embargo, esto conducirá a una mayor dificultad para generar un hash válido. Aquí están los dos diagramas que dibujé que representan la correlación entre el número de UTXO por la cartera, el balance individual de cada UTXO, el número de "minería de datos" iteraciones y, en consecuencia, los ciclos de CPU.

Diagrama 1 (Aumentando el número de UTXO lleva a un menor probabilidad de generar una válida hash del bloque):

enter image description here

Diagrama 2 (Manteniendo el número de UTXO pequeño pero con mayor denominaciones por UTXO aumenta la probabilidad de generar un válido hash del bloque):

enter image description here

Ambos diagramas representan la misma correlación entre el número de UTXO por la cartera y la probabilidad para calcular un hash válido. En la Prueba de juego la idea es utilizar el saldo de la cartera como una variable en el cálculo del bloque de dificultad. Un ejemplo de fórmula para hacer este cálculo podría ser la siguiente: enter image description here

Usando esta fórmula, las correlaciones que se presentan en los Diagramas 1 y 2 pueden interpretarse como sigue:

Si el validador (minero) intenta dividir su UTXO en las denominaciones y aumentando así el número de UTXO que la cartera tiene, la dificultad de calcular un nuevo hash aumenta. La razón de esto es que el equilibrio de cada individuo UTXO(i) será menor, por lo tanto , el equilibrio(UTXO(i)) / dificultad va a ser un muy pequeño número, y será más difícil generar un hash válido.

+925
Mmseines 14 dic. 2013 14:14:21

Entiendo que uno nunca puede estar seguro de que un alt cliente Bitcoin es totalmente en consenso, pero de qué se trata el consenso de normas que les hace tan difícil de implementar en otros clientes?

+738
Bent 10 ago. 2014 14:02:19

Creo que se puede mezclar algo. Unfortuntately, hay dos de nombre similar piezas de software, Bitcore y Bitcoin Core, que son diferentes, sin embargo.

  • Bitcore parece tener un método getBlockHashesByTimestamp que obras como la que usted describe.
  • Bitcoin Core sólo tiene un método getBlockHash que toma una blockchain altura y devuelve un hash del bloque. Yo no puede encontrar un método similar que tiene una marca de tiempo para Bitcoin Core.
+728
perepet 16 nov. 2011 2:28:18

Bitcoin utiliza una prueba de trabajo mecanismo para garantizar en contra de la doble gasto, así como proporcionar un ejemplo de la implementación opensource. Sin embargo, algunos países permiten que las patentes de software, lo que podría significar que una persona/empresa tiene la capacidad de repente evitar el uso legal de Satoshi Nakamoto del Bitcoin algoritmos.

Son estos Bitcoin algoritmos complejos suficiente para calificar para ser patentable, y si es así, ¿en qué países podría tales como las patentes se conceden? ¿Esto supone un considerable riesgo legal para los usuarios de Bitcoin?

+695
lilbukka 14 mar. 2016 17:39:28
  • kH/s significa miles de hashes por segundo.

  • MH/s significa millones de hashes por segundo.

  • GH/s significa miles de millones de hashes por segundo.

Por lo tanto, 300 kH/s son de 300.000 hashes por segundo o 0.3 MH/s.

+585
Benjamin Kircher 12 jul. 2012 14:33:06
El arbitraje es una forma de negociación donde dos operaciones se realizan en el mismo tiempo por el mismo partido por un mismo bien. El efecto neto de las dos operaciones es un beneficio para el partido que hicieron los dos oficios. El arbitraje tiene la ventaja de precio de las discrepancias, y en general en los diferentes mercados para la misma mercancía.
+584
P1as3ik 15 jul. 2011 6:55:09

NO UTILICE. Eliminado como parte de la Escarda mal Etiquetas Iniciativa de 2014.

+582
Josh McKearin 7 may. 2010 4:33:52

Tengo un bitcoin core-qt en la Cartera (en linux). Dime, ¿puedo cifrar? Por ejemplo, no es el electrum cartera! Tiene palabras para descifrar. Por ejemplo, he instalado el electrum, y la frase se ha generado. "Soy un fan de el https://bitcoin.stackexchange.com" Sabiendo que esta frase puede instalar electrum en cualquier equipo, y al entrar en esta frase que usted obtenga acceso a su saldo y btc. Pero, ¿qué acerca de bitcoin-core-qt? ya que se caracteriza por el hecho de que se debe descargar todo el historial de transacciones después de la instalación.(~200 gb). Hay una "frase mágica:" para este monedero bitcoin-qt? Esta es una opción muy útil si usted ha perdido el acceso al servidor o host donde hadthis cartera

+538
Mirana 19 oct. 2014 13:56:26

El código fuente fue originalmente alojado en un archivo rar en Bitcoin.org. No utilice ninguna Fuente de Control de Gestión. Más tarde, cuando más gente comenzó a trabajar en él, uno de los primeros desarrolladores, Sirius, se trasladó todo a SVN en Sourceforge. Que fue más tarde se trasladó a la actual repositorio de Github y pasó a usar Git.

+496
Ifeanyi Nwonye 13 jul. 2010 7:06:03

Si su máquina se conecta a internet a todos, debe ser considerado potencialmente comprometida. Considere lo que sucede si usted visita GMail, que pasa a ofrecer un anuncio comprometida con JavaScript, por ejemplo.

Almacenamiento seguro de un bitcoin wallet sólo puede ser realmente considerado como "muy seguro" de si la máquina nunca está conectado a ninguna red, y sólo se tiene acceso físico a la misma. Asegúrese de que todas las conexiones de la máquina es su movilidad, tales como USB, puertos serie, WiFi, etc.

La búsqueda "bitcoin almacenamiento en frío" si quieres ir hacia abajo el agujero del conejo.

+486
CH Matthee 31 oct. 2013 22:34:07

Decir que alguien me envía 0,5 BTC a mi escritorio de la cartera, es un archivo digital o líneas de código que me mandan, que tiene un valor monetario? Estoy muy confundidos sobre lo que efectivamente RECIBE con cryptocurrency.

+448
Siba Prasad Hota 16 dic. 2018 23:40:33

Hola a todos, necesito añadir bootstrap.dat después de la descarga empiezo bitcoind con -loadblock pero no el trabajo que tengo de error Incorrecto o falta de génesis bloque encontrado. Mal datadir para la red?

Empiezo a bitcoin con ./bitcoind -loadblock=/root/.bitcoin/bootstrap.dat y conexión de mi VPS son muy lentos de lo que es la buena solución ?

Su posible porque bootstrap.dat son muy grandes del archivo ? Y ¿cuál es la diferencia entre -reindex y tindex ?

Gracias

+408
user211220 3 sept. 2013 10:49:05

El uso de esta forma:

cuenta=123abc
bitcoin-cli-regtest setaccount $dirección $de la cuenta
bitcoin-cli-regtest getbalance $de la cuenta
10.0
+361
satyagrahi 28 ago. 2019 21:52:39

Estoy buscando para iniciar una solución de comercio electrónico y quería saber que software de comercio electrónico que se adapta mejor a aceptar bitcoin, que también tiene el mayor apoyo de la comunidad?

+341
undefinedChar 25 nov. 2016 15:47:56

Esto es realmente integrado en el sistema. Uno puede tener una tercera parte la creación de una transacción, pero antes de publicarlo en el blockchain, usted todavía tiene que firmar en orden para que sea válida. (No totalmente en el tema, pero no hay información en relación con la retransmisión de raw de las transacciones de aquí que puede ser atractivo para usted.)

Para responder a sus preguntas específicamente

  1. Sí, pero sólo si usted está ciegamente la firma de transacciones antes de enviarlos. Cualquier persona puede crear cualquier número de transacciones que utilizan el bitcoin, pero sólo los que la muestra será válida y aceptada en el blockchain.

  2. No, la fuente de los bitcoins y los destinos a los que se definen en el mismo tiempo. No hay ningún período en el que las monedas están flotando libremente alrededor de la que se puede acceder sin una clave privada.

  3. No sé de ninguno de los principales de las operaciones comerciales de hacer esto, pero usted puede crear raw sin firmar las transacciones así como firmar con brainwallet.

+337
user61208 9 ago. 2016 15:47:24

En un momento de descuido, he utilizado erróneamente uno de mi cartera el envío de direcciones como el destinatario de una transferencia de un bitcoin exchange. El intercambio confirma la transacción se ha completado, pero no se ve nada en mi final. Hay alguna manera de recuperar el dinero?

+316
Adison Ross 24 feb. 2016 23:10:42

Lo que Luca Matteis dijo casi tiene (pero ver mi comentario debajo de su respuesta). Si usted está buscando el anonimato, intercambios de Bitcoin en realidad no son el lugar para ir, al menos no directamente. Sin embargo, puede utilizar un Bitcoin mezcla de servicio (por ejemplo, bitmixer.io) antes de depositar sus monedas para el Intercambio.

Como alternativa, puede utilizar LocalBitcoins para encontrar a alguien para el intercambio de las monedas de forma anónima.

+273
user26395 27 sept. 2018 15:09:39

Bitcoin Core de forma incremental muestra las transacciones que usted recibió como procesos de bloques, así que si usted recibió las transacciones hace un tiempo que aparecerá pronto. Usted no será capaz de verificar de forma independiente de la validez de sus transacciones sin sincronizar.

Si usted sólo quiere consultar el saldo de sus direcciones podría ser suficiente para buscar las direcciones en un público block explorer. El JSON API le ofrece varios métodos para recuperar las direcciones de Bitcoin Core. Una vez que se tienen las direcciones simplemente comprobar su equilibrio con un bloque explorer.

Sin embargo, si te gustaría pasar a una cartera diferente, el backupwallet API debe darle a usted una copia de su cartera que otros cartera de software puede importar.

+126
madhat1 5 jun. 2014 14:11:01

No lo creo, porque el caso de uso de "tengo que pagar (el equivalente a cinco dólares para la compra de este cómico de la obra es más común que el caso de uso de "necesito almacenar este de 128 bits de la cadena por un período indefinido de tiempo."

Predicción: a finales de 2016, las operaciones destinadas a mantener los metadatos en lugar de enviar las monedas representan menos del 10% de la blockchain del tamaño.

+61
fjahr 5 dic. 2010 5:03:42

¿Cuál es la diferencia entre un nodo y un relámpago (red) nodo?

Si un rayo de nodo, que no es un completo nodo, se abre un canal de pagos con otro rayo nodo, ¿cómo puede la primera revista compruebe que el otro par no enviar una "maliciosa" el cierre de canales de la transacción a la blockhain?

+39
WQYeo 21 nov. 2016 7:33:32

Mostrar preguntas con etiqueta