Bitcoin Forum
June 08, 2024, 09:54:33 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 ... 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 [219] 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ... 276 »
4361  Local / Español (Spanish) / Re: Me sale esto en blockchain ReferenceError: precisionFromBTC is not defined on: June 12, 2013, 08:12:22 PM
Eso explica el por qué no se me reflejan los pagos en bitcoin a traves de dailybitcoin.com (por poner un ejemplo) no se me refleja en el saldo de blockchain ¿Alguna otra alternativa a blockchain que me permita recibir ese tipo de pagos?

Eso podría explicar el por qué no los recibes, que es independiente del wallet que uses. Es decir, que en lugar de cambiar de wallet, lo que tienes que hacer es cambiar de micropagador.
4362  Local / Español (Spanish) / Re: Como obtener un número aleatorio on: June 12, 2013, 05:32:31 PM
si, pero aunque tome la semilla del último bloque del día anterior, la secuencia de números va a ser siempre la misma, con lo que podría saber todos los números del día.

Cada semilla da una secuencia diferente, nunca te vas a encontrar eso de que la secuencia sea la misma. Si ocurre, el generador de números aleatorios es para tirar a la basura.


De todas formas no me parece mala tu idea de tomar último bloque del día anterior, pero debería meterle algo que haga único el sorteo, como el total de jugadores + el total de apuestas.

Ahí ya puede ser lo que tú quieras, pregenerado y sin necesidad de probar nada, ya que el hecho de que lo combinas con un block hash que es impredecible, ya implica que no has podido hacer trampa. Y quien dice block hash dice números de la bonoloto o lo que sea. Así que la semilla de mañana puede ser "hellokitty" concatenado con el hash del último bloque de hoy y la semilla de pasadomañana puede ser "horariodecajasolode0815a1100" combinado con el hash del último bloque de mañana.
4363  Local / Español (Spanish) / Re: Ganar bitcoins on: June 12, 2013, 12:47:54 PM
Aquí no te dan bitcoins, pero si te dan 25€ y no hace falta ingresar nada y puedes operar con bitcoins plus500

https://bitcointalk.org/index.php?topic=199152
4364  Local / Mercadillo / Re: Os interesan dominios .bit? on: June 12, 2013, 12:33:55 PM
Te falta sex.bit, ¿es que algún otro okupa se te ha adelantado?
4365  Local / Español (Spanish) / Re: Como obtener un número aleatorio on: June 12, 2013, 12:30:19 PM
Lo que comentas de los usuarios, no lo veo bien, pq se generaría un número cada 30 sg así que obligar a todos los usuarios a meter un datos, como que me mandan a freir esparragos.

Aaaamigo, es que eso no lo dijiste al principio Smiley.


Creo que lo mejor es la primera idea, enviar una cantidad fija de la dirección A a la B, conocidas por todos, y en la propia descripcción de la transacción incluir el id del juego etc, tomar el hash de la transacción y usarlo como semilla. La pega es las comisiones de los minero que sería bastante.

Eso es spam, por supuesto que te van a freír a comisiones.

Lo que puedes hacer es pasarle a un generador de números aleatorios cualquiera (por ejemplo en FlipSide yo uso uno llamado ISAAC) una semilla escogida de antemano. Así, la secuencia generada es reproducible y verificable por cualquiera. Puedes por ejemplo usar una semilla diferente cada día y publicar su hash. Al día siguiente publicas la semilla y los números derivados de la misma, y todos podrán mirar que los números generados coinciden con la lista.

Si necesitas probar que la secuencia de números aleatorios no te favorece (por ejemplo, podrían acusarte de escoger semillas cuya secuencia resultante consiste en números más bajos que el promedio esperado, lo que podría beneficiarte), entonces puedes condimentar la semilla con el hash del último bloque del día anterior, o algo así.
4366  Local / Español (Spanish) / Re: Duda sobre funcionamiento de la Cartera on: June 11, 2013, 07:41:41 PM
¿Alguno sabría decirme como decide la wallet de donde se baja la cadena de bloques? No consigo encontrar esa información y me parece bastante interesante.

La coge de otros nodos de la red y la valida por su cuenta.
4367  Local / España / Re: Compro BTC, pago con USD en metalico. Madrid on: June 11, 2013, 05:29:25 PM
Hemos operado hoy, finalmente en euros. Todo ok!
4368  Local / Español (Spanish) / Re: Como obtener un número aleatorio on: June 11, 2013, 05:23:07 PM
Hola, gracias, pero no serviría pq hay más de un usuario

Precisamente!

Usuario 1 escoge la palabra "cakita".
Usuario 2 escoge la palabra "4coins".
Usuario 3 escoge la palabra "yasolofaltan2dias!!".

Y después de que todas las apuestas estén hechas, el servidor hace por ejemplo un sha384 de "cakita4coinsyasolofaltan2dias!!" y toma los últimos 32 bits como el número aleatorio buscado. Al acabar el juego, publicas las palabras que ha escogido cada uno, el hash del conjunto y el número resultante.

¿Con random.org puedes probar que no has generado el número por tu cuenta?
4369  Local / Español (Spanish) / Re: BitPay ¿puede perjudicar al bitcoin? on: June 11, 2013, 05:15:28 PM
lo que más me gustaría a mi, es que el comercio con bitcoins fuese más:

[…]

Y no tanto de:

1º Minas bitcoins (o cambias De fiat A bitcoin) -> 2º los usas en comprar un producto o servicio -> 3º la persona que los recibe los cambia automáticamente a fiat -> 4º usan el fiat para pagar  cosas con fiat (ya que si quisiera bitcoins no los habría vendido).

Los negocios empezarán a adoptar bitcoin poco a poco ante nuestra presión/demanda y más tarde por razones de competencia, pero el siguiente eslabón de la cadena, los distribuidores, no empezarán a hacerlo mientras no se vean ante la misma presión/demanda que la que tienen los negocios finales hoy día. Por tanto, el cambio a fiat de momento es inevitable pero en algún momento bitcoin empezará a penetrar más en el sistema, para el pánico de algunos. Llevará un tiempo, pero por otro lado no tenemos ninguna prisa…
4370  Local / Hardware y Minería / Re: Mi jalapeño ya ha sido "delivered" o eso dicen... on: June 11, 2013, 11:20:14 AM
—Coñe, un cacharro de estos de bfl!! enchufa enchufa!!
4371  Local / Español (Spanish) / Re: Como obtener un número aleatorio on: June 11, 2013, 11:18:23 AM
Estoy haciendo una aplicación para bitcoin y necesito generar un número aleatorio cada X segundos, pero claro debe ser un método transparente y que no haya posibilidad alguna de tongo, y que de ninguna forma se pueda conocer de antemano

Se suele hacer a partir de un algo (un número, o una palabra…) secreto que sólo conoce el servidor y otro algo que sólo conoce el usuario. Así, ninguno de los dos tiene control sobre el resultado final. En FlipSide lo que hago es mostrar al usuario el hash del primer valor y le permito escoger el segundo; cuando ya tengo los dos, genero las cartas aleatoriamente y al final publico los datos de cómo se han generado para que pueda comprobarse que no ha habido trampa.

En tu caso, durante la ronda de apuestas, cada jugador podría proponer su propio secreto y luego tú combinas lo de todos los jugadores para crear el número aleatorio (si no me equivoco no sería necesario que tú también tuvieras tu propio secreto en este caso).
4372  Local / Primeros pasos y ayuda / Re: En Zacatrus aceptamos Bitcoins on: June 10, 2013, 05:24:47 PM
Mooola, una tienda de juguetes para nuestros hijos, pero con los que realmente jugamos los padres  Grin Grin

No hay nada de Hello Kitty para mayores Cry.
4373  Local / Español (Spanish) / Re: Periodistas influyentes on: June 10, 2013, 05:11:19 PM
Bueno, no tengo cuenta en twitter, pero solo por esto merecerá la pena...

Mira el OP, no hace falta tener twitter (yo tampoco tengo).

Venga, pos pal viernes echamos unos centimillos al primero de la lista. Conste que a mí de todos esos nombres sólo me suena uno y porque salía en la tele hace años, pero todo sea por la causa Tongue.
4374  Local / Español (Spanish) / Re: Al cambiar bitcoins por dólares ¿a donde pido que me lo depositen? on: June 10, 2013, 04:25:27 PM
Necesito que me asesoren un poco sobre el intercambio de bitcoins y dólares. (Si, ya se,  ya estoy fastidiando bastante) y es que al cambiarlos en Mt. Gox por dolares comunes y corrientes […]

¿Y por qué no los cambias a euros? Así, los puedes sacar con una transfe SEPA normal y corriente.
4375  Local / Hardware y Minería / Re: Avalon DIY on: June 10, 2013, 02:26:37 PM
Los casi 69.000 BTC que AVALON han sacado de la venta de sus chips están aquí cogiendo polvo: http://blockchain.info/fb/1fgaftz no han vendido ni uno. No sé a qué se debe la caída de la cotización pero no parece ser cosa de ellos.

Pero Avalon tiene más bitcoins aparte de los que ha coleccionado por los chips.
4376  Local / Trading y especulación / Re: Boletín de Análisis Técnico on: June 09, 2013, 02:14:45 PM
Estamos cerca de soporte, buen sitio para hacer unas compras especulativas a corto.

Con compras especulativas a corto te refieres a comprar esperando la resistencia  110 y vender?   No lo ves bajando a 80 ahora, despues de subir a 94?

Me refiero a comprar esperando rebote, puesto que la cercanía del soporte en $80 debería frenar nuevos impulsos bajistas, y además RSI y estocástico, fiables en un escenario lateral como el actual, marcan sobreventa. De hecho según escribo esto se me están cruzando ya parte de las ventas.

La vela de hoy ha traspasado el $100 con volumen, lo que podría indicar nuevos movimientos a la baja durante las próxmas semanas. Perder el $80 confirmaría esta hipótesis.
4377  Local / Trading y especulación / Re: Boletín de Análisis Técnico on: June 09, 2013, 10:53:02 AM
Estamos cerca de soporte, buen sitio para hacer unas compras especulativas a corto.
4378  Bitcoin / Bitcoin Discussion / Re: What's the largest number of transactions that have been in a block so far? on: June 08, 2013, 01:47:00 PM
Absolutely, but I haven't figured out a good way to deal with variable length integers in perl yet.  I was able to write this script in 10 minutes and get an answer within a few hours.  That's much sooner than I would have gotten a full blockchain parser written.

Look at sub read_var_int in my quick n dirty parser:

Code:
#!/usr/bin/perl

use warnings;
use strict;
use List::MoreUtils qw/natatime/;
use Data::Dumper;

my $MAGIC = 3652501241;
my $BLOCKS_DIR = '/home/btc/.bitcoin/blocks';

## xxd-like output
sub print_dump {
    my ($data) = @_;

    my $offset = 0;
    open my $fd, '<', \$data or die "open: $!";
    while (1) {
        my $read = read $fd, my $bytes, 16;
        last unless $read;
        my @bytes = split '', $bytes;
        my $rawchars = $bytes; $rawchars =~ s/[^ -~]/./g;
        my @hexpairs;
        my $iter = natatime 2, @bytes;
        while (my @vals = $iter->()) {
            push @hexpairs, join '', map { sprintf '%02x', ord } @vals;
        }
        printf "%08x: %-39s  %s\n", $offset, (join ' ', @hexpairs), $rawchars;
        $offset += $read;
    }
    close $fd;
}

sub read_var_int {
    my ($fd, $rem) = @_;
    my $val;

    my $read = read $fd, $val, 1; $$rem -= 1;
    if (!$read) { return undef; }
    $val = unpack 'C', $val;
    if ($val == 0xfd) {
        $read = read $fd, $val, 2; $$rem -= 2;
        $val = unpack 'S', $val;
    } elsif ($val == 0xfe) {
        $read = read $fd, $val, 4; $$rem -= 4;
        $val = unpack 'L', $val;
    } elsif ($val == 0xff) {
        $read = read $fd, $val, 8; $$rem -= 8;
        $val = unpack 'Q', $val;
    }

    return $val;
}

sub read_inputs {
    my ($fd, $count, $rem) = @_;
    my $read;  ## should be used to check ret vals from read/sysread
    my $inputs;

    for my $input (1 .. $count) {
        my ($prev_txid, $prev_idx, $sig_script, $seq);

        $read = read $fd, $prev_txid, 32; $$rem -= 32;
        $prev_txid = unpack 'H64', $prev_txid;
        #print "    prev_txid ($prev_txid)\n";

        $read = read $fd, $prev_idx, 4; $$rem -= 4;
        $prev_idx = unpack 'L', $prev_idx;
        #print "    prev_idx ($prev_idx)\n";

        my $sig_script_len = read_var_int $fd, $rem;
        if (!defined $sig_script_len) { print 'sig_script_len undef'; die; }

        $read = read $fd, $sig_script, $sig_script_len; $$rem -= $sig_script_len;
        #printf "    sig_script: %d bytes\n", length $sig_script;

        $read = read $fd, $seq, 4; $$rem -= 4;
        $seq = unpack 'L', $seq;
        #print "    seq ($seq)\n";

        push @$inputs, {
            prev_txid  => $prev_txid,
            prev_idx   => $prev_idx,
            sig_script => $sig_script,
            seq        => $seq,
        }
    }

    return $inputs;
}

sub read_outputs {
    my ($fd, $count, $rem) = @_;
    my $read;  ## should be used to check ret vals from read/sysread
    my $outputs;

    for my $output (1 .. $count) {
        my ($val, $pubkey_script_len, $pubkey_script);

        $read = read $fd, $val, 8; $$rem -= 8;
        $val = unpack 'Q', $val;

        $pubkey_script_len = read_var_int $fd, $rem;
        if (!defined $pubkey_script_len) { print 'pubkey_script_len undef'; die; }

        $read = read $fd, $pubkey_script, $pubkey_script_len; $$rem -= $pubkey_script_len;
        #printf "    pubkey_script: %d bytes\n", length $pubkey_script;

        push @$outputs, {
            val           => $val,
            pubkey_script => $pubkey_script,
        };
    }

    return $outputs;
}

sub parse_txs {
    my ($txn_data, $len) = @_;
    my $read;  ## should be used to check ret vals from read/sysread
    my $txs;

    my $remaining = $len;
    open my $txn_fd, '<', \$txn_data or die "open: $!";

    my $txn_count = read_var_int $txn_fd, \$remaining;
    if (!defined $txn_count) { print 'txn_count undef'; die; }
    #print "  txn_count ($txn_count)\n";

    #print_dump $txn_data;

    my ($tx_ver, $input_count, $inputs, $output_count, $outputs, $lock_time);
    for my $tx_idx (1 .. $txn_count) {
        $read = read $txn_fd, $tx_ver, 4; $remaining -= 4;
        $tx_ver = unpack 'L', $tx_ver;
        #print "    tx_ver ($tx_ver)\n";

        $input_count = read_var_int $txn_fd, \$remaining;
        if (!defined $input_count) { print 'input_count undef'; die; }
        #print "    input_count ($input_count)\n";

        $inputs = read_inputs $txn_fd, $input_count, \$remaining;
        #print Data::Dumper->Dump ([$inputs],['inputs']);

        $output_count = read_var_int $txn_fd, \$remaining;
        if (!defined $output_count) { print 'output_count undef'; die; }
        #print "    output_count ($output_count)\n";

        $outputs = read_outputs $txn_fd, $output_count, \$remaining;
        #print Data::Dumper->Dump ([$outputs],['outputs']);

        $read = read $txn_fd, $lock_time, 4; $remaining -= 4;
        $lock_time = unpack 'L', $lock_time;
        #print "    lock_time ($lock_time)\n";

        push @$txs, {
            version   => $tx_ver,
            inputs    => $inputs,
            outputs   => $outputs,
            lock_time => $lock_time,
        };
    }

    return $txs;
}

sub parse_block {
    my ($height, $block_data, $len) = @_;
    my $read;  ## should be used to check ret vals from read/sysread

    my $remaining = $len;
    open my $block_fd, '<', \$block_data or die "open: $!";

    my $block_header;
    $read = read $block_fd, $block_header, 80; $remaining -= 80;

    my ($ver, $prev_block, $mrkl, $ts, $bits, $nonce) = unpack 'L H64 H64 L H8 L', $block_header;
    $prev_block = reverse $prev_block=~/../g;
    $mrkl = reverse $mrkl=~/../g;

    my $txn_data;
    $read = read $block_fd, $txn_data, $remaining;

    close $block_fd;

    #my $tx = parse_txs $txn_data, $remaining;  ## commented out for faster parsing

    return {
        version     => $ver,
        height      => $height,
        prev_block  => $prev_block,
        merkle_tree => $mrkl,
        timestamp   => $ts,
        bits        => $bits,
        nonce       => $nonce,
        #tx          => $tx,
    };
}

my $blk_file_num = -1;
my $fd;
sub open_next_blk_file {
    close $fd if defined $fd;
    $blk_file_num++;
    my $blkfile = sprintf "$BLOCKS_DIR/blk%05d.dat", $blk_file_num;
    sysopen $fd, $blkfile, 0 or die "sysopen: $!";
    binmode $fd;
}

#################################################################################################

open_next_blk_file;

my $height = 0;
my %prev_blocks_seen;
while (1) {
    my $read;  ## should be used to check ret vals from read/sysread
    my $data;
    my ($magic, $len, $remaining);

    $read = sysread $fd, $data, 8;
    if (!defined $read) { die "sysread: $!"; }
    if (!$read) {
        warn "sysread: null, going to next file";
        open_next_blk_file;
        redo;
    }
    if ($read < 8) {
        warn "sysread: short read, going to next file";
        open_next_blk_file;
        redo;
    }
    ($magic, $len) = unpack 'L L', $data;
    $remaining = $len;
    next unless $magic;    ## magic == 0, probably near end of file
    if ($MAGIC != $magic) { die "got magic ($magic) instead of ($MAGIC) at block $height\n"; }
    ## read whole block
    $read = sysread $fd, $data, $len;
    if ($len != $read) { $read or last; die "sysread: $!"; }

    #print_dump $block_data;
    my $block = parse_block $height, $data, $len;
    ## orphan detection, untested on orphan chains larger than one single block
    if ($height and exists $prev_blocks_seen{ $block->{'prev_block'} }) {
        my $to_downgrade = ($height-1) - $prev_blocks_seen{ $block->{'prev_block'} };
        warn "orphan, height ($block->{'height'}) pb ($block->{'prev_block'}) ts ($block->{'timestamp'}) to_downgrade ($to_downgrade)\n";
        $height -= ($height-1) - $prev_blocks_seen{ $block->{'prev_block'} };
        next;
    }
    print "$height,$len\n";
#    if (128352 == $block->{'height'}) {
#        use bignum;
#        my $bits = join '', reverse $block->{'bits'} =~ /../g;
#        my ($b1, $b2) = map { hex $_ } $bits =~ /^(..)(.*)$/;
#        my $diff = (0xffff << 208) / ($b2 * 2 ** (8 * ($b1-3)));
#        $block->{'difficulty'} = "$diff";
#
#        print Data::Dumper->Dump ([$block],['block']);
#    }

    $prev_blocks_seen{ $block->{'prev_block'} } = $height;
    $height++;
}
close $fd;


Sent!

Thank you!
4379  Local / Español (Spanish) / Re: Periodistas influyentes on: June 08, 2013, 12:31:13 PM
edicion mod: imagen no apta para insertar en el foro

¿Según lo establecido en…?  (pregunta honesta)
4380  Local / Hardware y Minería / Re: Mi jalapeño ya ha sido "delivered" o eso dicen... on: June 08, 2013, 07:22:49 AM
Por cierto, todos los productos de BFL tienen garantia de por vida, asi que si se quema, solo lo tienen que mandar de vuelta.

Preferiblemente antes de 2014 y tal…

Creo que no he entendido el tono y lo que has querido decir, lo siento.
SigmaAlt, creo que lo que dserrano5 ha entendido con tu frase de "asi que si se quema, solo lo tienen que mandar de vuelta."
es que les mandas a BFL el ASIC y ellos te mandan uno nuevo a ti, por eso ha respondido "Preferiblemente antes de 2014 y tal...",
refiriéndose a que prefiere que no tarden otro año en procesar el ASIC quemado.

Exactamente. Si te tienen meses esperando para que luego resulte que te mandan algo que no funciona y tienes que volver a esperar otros tantos meses para pillar otro, ejem…





Wow, estoy a punto de creérmelo, ¿no te habrán pagado estos de BFL para que publiques una captura de pantalla falsa, verdad? xD.
Pages: « 1 ... 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 [219] 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ... 276 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!