Pasar Varias direcciones en canjear p2sh script
Tengo el siguiente código
const script = este.app.env.bitcoin.secuencia de comandos.compilar([
hashOpcode,
Búfer.a partir de(secretHash, "hex"),
este.app.env.bitcoin.códigos de operación.OP_EQUALVERIFY,
Búfer.a partir de(recipientPublicKey, "hex"),
este.app.env.bitcoin.códigos de operación.OP_EQUAL,
este.app.env.bitcoin.códigos de operación.OP_IF,
Búfer.a partir de(recipientPublicKey, "hex"),
este.app.env.bitcoin.códigos de operación.OP_CHECKSIG
])
Pero quiero pasar a uno más de la dirección. Como este:
Búfer.a partir de(recipientPublicKey, "hex"),
este.app.env.bitcoin.códigos de operación.OP_EQUAL,
este.app.env.bitcoin.códigos de operación.OP_AND,
Búfer.a partir de(exchangePublicKey, "hex"),
este.app.env.bitcoin.códigos de operación.OP_EQUAL,
este.app.env.bitcoin.códigos de operación.OP_IF,
Búfer.a partir de(recipientPublicKey, "hex"),
este.app.env.bitcoin.códigos de operación.OP_CHECKMULTISIG,
este.app.env.bitcoin.códigos de operación.OP_AND,
Búfer.a partir de(exchangePublicKey, "hex"),
este.app.env.bitcoin.códigos de operación.OP_CHECKMULTISIG,
este.app.env.bitcoin.códigos de operación.OP_ELSE,
Pero no su trabajo y yo estoy solo en 1 en txout. cuál es la forma correcta de agregar otro multisig dirección ?
Sólo quiero seguir este patrón:
canjear guión: 2 <pubKey1> <pubKey2> <pubKey3> 3 OP_CHECKMULTISIG
que depende de la locktime que está configurado para sus canales. tomado de c relámpago
(c.f.: https://github.com/ElementsProject/lightning/blob/97118c558e84e0b3a12a8cbe60528ad5cfcb2fd6/doc/lightningd-config.5.txt )
watchtime-bloques='BLOQUES':: Cuánto tiempo necesitaremos para detectar una anticuada cerca de intento: la apertura de un canal de les decimos a nuestros compañeros que este es el tiempo que vas a tener que esperar si se realizan unilateral cerrar.
max-locktime-bloques='BLOQUES':: El más largo de nuestros fondos pueden retrasarse (es decir. el más largo watchtime-bloques nuestros compañeros pueden pedir, y también el más largo HTLC tiempo de espera vamos a aceptar). Si nuestros pares pide más tiempo, vamos a rechazar la creación de un canal, y si un HTLC pide más tiempo, vamos a rechazar.
Creo que la norma debería ser 144 bloques que estadísticamente debe ser de 24 horas. por supuesto, usted debería considerar la posibilidad de una ventana de seguridad para ser capaz de obtener su incumplimiento remedio tx extraído en caso de una unilateral de cerrar.
Tengo un BigInteger
que representa una clave privada. Cómo puedo obtener la clave privada como un base58 cadena codificada? El siguiente pseudo código no funciona correctamente:
base58.codificar(bigInt.toByteArray)
// se obtiene un string que difiere de la dada bigInt de la clave privada
ACTUALIZACIÓN
def fullDoubleSha(bytes: ArrayOfByte) = {
val digestSha = MessageDigest getInstance "SHA-256"
digestSha digerir digestSha.digest(bytes)
}
def getPrivBytes(clave: BigInteger) = clave.toByteArray partido { case keyBytes =>
val res = si (keyBytes.cabeza == 0) keyBytes caída de 1 más keyBytes
new Array(32 - res.de longitud) ++ res
}
def privBytesToWif(vs: ArrayOfByte) = {
val rawPrivKey = Array(0x80.toByte) ++ vs
rawPrivKey ++ fullDoubleSha(rawPrivKey).tomar(4)
}
Preguntas relacionadas
Preguntas relacionadas
Estoy construyendo un bitcoin rayo de la red utilizando la lnd en un equipo independiente
este equipo tiene menos de 200G disponible y el real blockchain es más de 220 G, así que voy a necesitar usar encorsetado mod y comenzó la descarga de la cadena a partir de marzo de 2018 como recquired por lnd,
mi cuestión es que el cliente bitcoin es capaz de hacer eso y cómo configurarlo para este procedimiento ?
Se parece a mí como cada entrada a una transacción bitcoin tiene un índice que especifica sólo una salida desde la entrada de su gasto. Es allí una manera de especificar más de un índice de salida, o usted tiene que crear una segunda línea de entrada que contiene el mismo ID de entrada con un índice diferente? Parece que la segunda forma es un desperdicio de blockchain espacio - yo hubiera pensado que habría una manera de simplemente especificar varios índices. Es allí una manera de hacer eso?
3-4 días, me transferir bitcoins de Virwox a mi Electrum la billetera, pero este bitcoins no llegó, ¿qué puedo hacer?
1JPSVx7hjcu7rR2Vr6nyz7z8mok3yryGz
He seguido el tutorial proporcionado en esta respuesta:
Pero no hay instrucciones sobre cómo obtener y ejecutar bitcoind primero como Abe requiere la génesis de los bloques.
Además, recibo el siguiente mensaje de error al intentar sincronizar:
$ python -m Abe.abe --config=abe-sqlite.conf --commit-bytes 100000 --no-servir
no se pudo cargar /home/bitcoin/.bitcoin/bitcoin.conf: [Errno 2] No existe el fichero o directorio: u'/home/bitcoin/.bitcoin/bitcoin.conf'
catch_up_rpc: abortar
He bitcoind instalado en mi servidor ubuntu:
$ sudo apt-get update
$ sudo apt-get install bitcoind
$ bitcoind
¿Qué debo poner en mi archivo de configuración? ¿Qué otra cosa Abe requieren de bitcoind?
Este es el encabezado de bloque #300000
02 00 00 00 7E F0 55 E1 │ 67 4D 2E 65 51 DB A4 1C
D2 14 DE BB EE 34 AE B5 │ 44 C7 CE 67 00 00 00 00
00 00 00 00 D3 99 89 63 │ F8 0C 5B AB 43 FE 8C 26
22 8E 98 D0 30 ED F4 CC │ 48 A6 66 F5 C3 9E 2D
7A 88 5C 91 02 C8 6D 53 │ 6C 89 00 19 59 3A 47 0D
Número de versión 2 (el primer dígito), pero se han codificado a 1
header_hex = ("01000000" +
En el punto de la horquilla, las dos cadenas son idénticas, y por lo tanto todos los UTXOs son idénticos. Todo pasa de esas salidas son totalmente públicos como siempre, en el blockchain. Así que a tu pregunta, en realidad, se reduce a si se puede ocultar que UTXOs vas a pasar en una transacción dada, con o sin la horquilla. La única manera que sé cómo hacerlo es a través de la mezcla. Si usted envía sus transacciones en cada cadena a una mezcla de servicio, usted terminará para arriba con diferentes salidas en cada cadena. El untraceability de la mezcla es entonces dependiente de cosas como cuántas otras transacciones están siendo mezcladas en el mismo momento (en una nueva bifurcación, puede haber menos gente envío de monedas), o si el valor de la salida está gastando es de identificación personal que entra y sale de la mezcla.
Me gustaría saber donde puedo publicar Lo que pienso y tener una discusión sobre Bitcoin problemas en lugar de preguntar/contestar preguntas, o es sólo una pregunta y la respuesta?
No. Y eso sería aún más confuso. Usted tendría que sincronizar la división, y para precios históricos, necesita saber si eran viejos BTC o BTC después de la primera división, segunda división, etc... Solo uso mBTC, uBTC, satoshi, o incluso fracciones de la unidad más pequeña en caso de necesidad.
Una blockchain no puede ser fraudulento. El blockchain que es "el blockchain" es la cadena con más trabajo. Si hay una cadena que incluye una transacción que fue el doble de gastos de la transacción, pero no el original, y que la cadena había más trabajo que una cadena diferentes, luego de que la cadena es "el blockchain" y es la correcta.
Si una blockchain contiene dos transacciones que entre en conflicto el uno con el otro (es decir, el original y el doble gasto, tanto en la cadena), luego de que blockcahin es completamente válido y nadie aceptaría a menos que específicamente modificado su software para aceptarlo.
Si un usuario es defraudado porque alguien ha realizado este tipo de ataque (emisión de un doble gasto de transacción y el doble pasar confirmado), el usuario no tiene manera de decirle a la red ni a la atención de la red si tal ataque se produjo. Lo que sucedió fue completamente válido para la red siempre y cuando sólo uno de los dos transacciones (ya sea el original o el doble gasto) está incluido en el blockchain. Este riesgo es por eso que se recomienda que espere que la transacción sea confirmada y tienen múltiples confirmaciones antes de aceptar un pago. La cadena que contiene el doble de pasar no es fraudulento.
Un minero, que sin duda puede hacer eso, y algunos mineros hacer (bien de minería de piscinas en realidad). Algunos de minería de piscinas como ViaBTC y BTC.com ofrecemos servicios donde se dará prioridad a una transacción de pago (pagado fuera de banda). También ha habido muchos casos donde un minero va a realizar una transacción, el pago de una 0 cuota, y la mina de la transacción en sí.
Así que puede que el programa de instalación como de 6 o más máquinas de minería
El número de máquinas de minería o de los nodos no tiene nada que ver con esto. Usted puede hacer esto con una sola máquina y un nodo. Sin embargo, en orden a la realidad de manera rentable de la mina y tener una oportunidad de encontrar un bloque, se necesita un gran número de mineros ASIC, mucho más que sólo 6 de las máquinas, más como algo que en los cientos o incluso miles de mineros ASIC.
Usted pagó alrededor de $15 USD para las cuotas, la corriente promedio de la tarifa de transacción de hoy es de 41 USD. La transacción se llevara bastante tiempo o se necesita una tasa más elevada.
En primer lugar, blockchain el espacio es una prima, ya que cada nodo tiene para almacenar toda la cosa para siempre. Así que en general es mejor no almacenar información redundante en el bloque de la cadena, y dejar que cada nodo de cómputo en su lugar.
Segundo, el "equilibrio" en una dirección puede ser afectada por múltiples transacciones que no son necesariamente ordenado con respecto a la otra. Supongamos que la dirección de 123abc inicialmente no tiene transacciones entrantes, por lo que su saldo es 0. Ahora supongamos que Alice decide enviar 1 BTC a la dirección. Por su lógica, su transacción debe mostrar el "balance final" de la dirección de 1 BTC. Simultáneamente, y sin conocimiento de lo que Alice está haciendo, Bob envía 2 BTC a la dirección, y así, naturalmente, su transacción se muestra el balance final como 2 BTC. Pero el "verdadero" final de equilibrio es de 3 BTC, por lo tanto de sus declaraciones en cuanto a la final de equilibrio están equivocados. Así que cualquiera que quiera conocer el verdadero final de equilibrio para calcular ellos mismos de todos modos, y no se puede confiar en los números de la transacción.
Para hacer este trabajo a todos, necesitaría algún tipo de regla que usted no puede enviar más monedas a una dirección hasta que la transacción anterior tiene algún número de confirmaciones. Esto sería totalmente inviable para las direcciones que se supone que reciben gran cantidad de transacciones entrantes (creo que de una donación de dirección en un popular sitio web). También significaría que un atacante que conozca su dirección podría impedir que usted reciba una importante transacción mediante el envío de un montón de pequeñas transacciones a las que habría que confirmar uno por uno.
Además de Bolton respuesta: las Transacciones en un bloque puede estar en cualquier orden, dado que si una transacción pasa otro de salida, el padre de la transacción debe venir antes de que el niño tx y el coinbase de la transacción (la recogida de la manzana recompensa) viene primero.
Si puedo transferir dinero a mi cuenta de Blockchain después de recibir mi Json cartera de copia de seguridad por correo electrónico, sería restaurar añadido recientemente fondos?
El Finney ataque es una variación de un doble pasar ataque. El atacante crea dos de las transacciones de un abono a la víctima y un abono a sí mismos. Mantienen la primera transacción por ahora y proceder a tratar de minería de la segunda en un bloque. Cuando tienen éxito (esto puede tardar un rato), rápidamente se hace una compra con la primera transacción, obtener los bienes que compraron, y, a continuación, suelte el pre-minadas bloque. De esta manera la primera transacción será invalidado, incluso si se propaga a través de toda la red.
Esta variante de la doble pasar ataque es más difícil de ejecutar (minería de datos de un bloque por uno mismo no ha sido fácil para un largo tiempo), pero es indetectable hasta que haya sido completamente ejecutado. La única forma de protegerse contra este tipo de ataque es para exigir al menos una confirmación de la transacción antes de dar bienes adquiridos, y que requieren de más confirmaciones de transacciones por un valor de más.
Mostrar preguntas con etiqueta packets