Puedo obligar a json_encode en PHP para la salida de 8 dígitos después del punto de RPC?


después de leer la wiki de bitcoin "Adecuado manejo de dinero" supongo que no debería haber problemas de precisión.

Sin embargo, el envío o en movimiento, por ejemplo 16999999.99999999 envía/mueve 17000000. Me di cuenta de dónde está el problema:
- PHP almacena valor de tipo float con la suficiente precisión. Puedo printf con 8 correcto de dígitos después del punto.
- json-rpc biblioteca de php copias que flotan en "parámetros" de la matriz, y de nuevo, la precisión es buena.
- Por desgracia, cadena producida por json_encode() utilizado en json-rpc biblioteca contiene "redondeado" valor", por lo que hay un problema.


Así, se puede forzar json_encode() a la salida de 8 dígitos (o más)? O tengo que escribir mi propio, que no es muy complicado, pero será bastante más lento que el estándar de la función.

Tenga en cuenta los temas acerca de los problemas con flotadores en PHP y Python en bitcointalk, por lo que no es mi culpa. Uno de los resultados de este problema es genjix rama de bitcoin, que envía cantidades como cadenas.

Los mejores deseos

+398
Quinn Abrams 14 ago. 2017 19:04:24
18 respuestas

Sólo Físico Bitcoins pueden ser Falsificados en la actualidad . Sería extremadamente caro para la falsificación de moneda Virtual .

+768
Thomas Sidwell 03 февр. '09 в 4:24

Tengo el mismo problema con crear una doble sha256 de las transacciones y los bloques con C++.

El hash del bloque es creado con la concatenación de estos datos,

versión + previusBlock + merkleRoot + timeStamp + poco + nonce

En el hash del bloque no es necesario incluir todos los datos raw de transacción debido a que se incluyen en el merkleRoot, ¿verdad?

Para crear el hash de la transacción es crear con la concatenación de estos datos, versionRawTransaction + salida de la transacción de entrada + scriptSing + secuencias de transacciones de entrada + cAmmount transacción de salida + publicKeyScript + lockTime raw transacción

O se incluyen los datos para el almacenamiento de la variable de estructura? en este método

numberRawTransactions + versionRawTransaction + numbarTransactionInput + salida de la transacción de entrada + scriptLenght + scriptSing + secuencias de transacciones de entrada + numbarTransactionOutput + cAmmount transacción de salida + publicKeyScriptLenght + publicKeyScript + lockTime raw transacción

Ahora he intentado aplicar esta teoría en mi programa de C++, pero no puede conseguir el deseado de hash. Me pueden ayudar?

Este es mi código de prueba

 De PRUEBA(hash_test, first_test_double_sha_bit_genesi_block_bitcoin_crypolibrary)
{
 //Init registrador de
 FLAGS_minloglevel = 0;
 FLAGS_logtostderr = true;
 google::SetLogDestination(google::GLOG_WARNING, "/home/vincenzo/Github/SpyCblock/test/log/first_test_sha_not_on_bitcoin_protocolo.de registro");

 versión de la cadena = "01000000";
 cadena de previusBlock = "0000000000000000000000000000000000000000000000000000000000000000";
 cadena de merkleRoot = "3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a";
 string timeStamp = "29ab5f49";
 cadena de bits = "ffff001d";
 cadena de valor nonce = "1dac2b7c";

 stringstream corriente;

 secuencia de << la versión << previusBlock << merkleRoot << timeStamp << bit << nonce;


 Bytes bytes = asciiBytes(stream.str().c_str());
 Sha256Hash shaHash = Sha256::getDoubleHash(bytes.de datos(), byte.size());

 LOG(INFO) << "El hash de genesi bloque de conversión con doble sha256:" << shaHash.ToString();
 ASSERT_EQ(shaHash.ToString(), "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f");


}

pero me da este resultado 46f4d3f53251d05ab58a3f8925ce7023f2115dc38468ec78521c7d0e1dc7bd19

Ya sé prácticamente nada de la criptografía en la práctica, que se basó en esta biblioteca donde puedo utilizar este tipo de datos aquí que hace el doble sha256 Encontrar aquí

Lo siento por mi inglés terrible, pero estoy aprendiendo

+768
Adam Lear 15 ago. 2019 4:14:47

Desde el tiempo que toma el proceso de solicitud será mayor que cero milisegundos, llegará un punto donde lo suficientemente solicitudes será el resultado de la CPU para llegar al 100% de utilización, o usted podría golpear de e/S de red o los límites de la primera, pero en cualquier caso a la hora de encontrar un cuello de botella lo que usted necesita hacer es dividir la carga de trabajo entre varios equipos utilizando algún tipo de esquema del equilibrio de carga.

+730
rakete 19 sept. 2018 7:12:26

http://www.proofofexistence.com/about -- "Utilizar nuestro servicio de forma anónima y almacenar de forma segura en línea distribuidos de la prueba de la existencia de cualquier tipo de documento."

El documento está certificada a través de la incrustación de su SHA256 digerir en el blockchain de bitcoin. Esto se hace mediante la generación de un especial bitcoin transacción que codifica/contiene el hash a través de un OP_RETURN secuencia de comandos. Este es un bitcoin de secuencias de comandos de código de operación que marca la transacción de salida como seguramente unspendable y permite que una pequeña cantidad de datos que se inserta, que en nuestro caso es el hash del documento, además de un marcador para identificar todas nuestras transacciones.

Ingenua pregunta tal vez, pero si los bitcoins se han perdido para siempre, que esto parece un poco amigable el uso del protocolo bitcoin y el blockchain, y en versiones futuras del protocolo puede prevenir este tipo de transacción de ser aceptado en el blockchain?

+715
lllwchiwplll4 16 jun. 2012 7:49:36

Es allí una manera de crear coinbase transacciones con una RPC de comandos?

+585
Dig Bick 26 dic. 2012 13:55:55

La descripción general ha sido dado antes de mí.Aquí están los detalles técnicos sobre el vector de ataque.

Suponiendo los siguientes:

  • El atacante recibió un certificado de que el cliente aceptará, a través de buenos validación de certificado o por otros medios.
  • El atacante conoce la dirección IP del servidor, y se encuentra en una posición en la red para hacer cosas como ARP spoofing.

Ettercap incluye módulos para la ARP, DNS y DHCP "intervenciones", y es compatible con direct SSL MITM

+443
Liberti058 7 may. 2013 19:18:10

A partir de lo que hemos notado en LBTC Rejilla, fuera refiere a la conexión a la moneda de la red y el P2Pool de la red. En referencia a los mineros que se conecta a su servidor.

+330
MontanaRuss 8 dic. 2010 7:20:52

Usted tiene que rastrear las transacciones,que le dará Vsal direcciones i.e dirección del receptor

y para saber la dirección del remitente necesita Rastrear Vin txid y coincide con el Vsal dirección con "vsal"y "n" parámetro de crudo de la transacción que va a ser la dirección del remitente. Puede comprobar el enlace que te mostrará cómo este está hecho en python 2.7

+324
Emilia 20 jun. 2013 21:19:12

Como yo lo veo, monedas Casascius no se supone que es un producto de clase superior, resistente a la manipulación e imposible de falsificar. Como Casascius escribió:

Yo haciendo física bitcoins es sólo para decir "hola mundo, supongo que lo que, tangibles bitcoins son posibles, que no son sólo imaginarias". Voy a simplemente han sido pionero en la física bitcoin (con todo el respeto debido a BitBills). Alguien hará un más ágil, más dinámico, mejor, más barato, más físico seguro bitcoin

Estas monedas son ensambladas a mano por casascius sí mismo y sólo unos pocos miles de monedas fueron hechas. Usted debe buscar en ellos más como un símbolo de token, en lugar de como un oficial de la física bitcoin.
Obviamente, esto no invalida el problema de confianza, pero Casascius es un conocido miembro de la comunidad (si desea buscar en él, aquí está un vídeo de youtube). Si se decidió a hacer el proyecto de desaparecer, él podría ser acusado legalmente por su crimen, como se dice en el FAQ.

En última instancia, depende de usted para decidir si se debe confiar en él o no. Sólo recuerde que usted no debe comprar miles de estas monedas (además, no hay muchos).

+264
maccartm 22 jun. 2015 11:30:25

Que mobile me deja escanear un código QR de una clave privada (como la creada por BitAddress) y, a continuación, pasar los fondos de la moneda?

Por favor, especifique Android, iPhone (iOS), etc.

+167
James Wells 25 sept. 2011 22:29:37

Para ejecutar un rayo nodo podemos utilizar 3 diferentes demonios : - c-rayo - eclair - LND

Es allí una manera de entender que el demonio es un específico de pares de correr?

+162
Julie McDonald 17 dic. 2012 18:02:53

Ambos P2PK y P2PKH fueron parte de la primera bitcoin 0.1 lanzamiento, de manera que el segundo punto no es cierto.

P2PKH, en teoría, es más seguro porque el pubKeyScript sólo revela el hash de la clave pública en lugar de la clave pública (que sólo importa en el caso de que la curva elíptica crypto involucrados se rompe). Así como usted no la reutilización de la dirección, nadie conoce la clave pública antes de que el dinero que se gasta.

Todas las direcciones bitcoin codificar la clave pública de hashes tan sólo P2PKH puede ser utilizado con una dirección, como la clave pública no es conocido. P2PK fueron diseñados principalmente para IP a IP de pagos, que ya no es posible en Bitcoin Core desde la versión 0.8.0

+146
Nastena3482 19 oct. 2010 10:46:10

He oído a gente decir que usted debe transferir tus Bitcoins de Gdax a Binance. Compré mis Bitcoins en Coinbase. Es allí una manera de transferir su cryptocurrency a Gdax sin tener que pagar esa abrumadora cuota?

+106
MrDigital 26 sept. 2013 9:45:37

No gire el volante porque hay una curva en la carretera de 10 kilómetros por delante. Si la carretera es clara y se mueve en la dirección correcta, usted conduzca en línea recta. Cuando y si estas amenazas se materialicen, Bitcoin va a adaptar para cumplir con ellos. Tal vez la solución va a ser sofisticado, descentralizada, off-blockchain sistemas para la transferencia de Bitcoins. Tal vez no.

Si tu punto es justo que Bitcoin podría enfrentar problemas en el futuro que no puede ser resuelto, seguro, es posible. O la gente podría resolverlos. Pero usted realmente no puede resolver un problema hasta que realmente la cara-no hay manera de saber con qué recursos vas a tener que resolver, que el interés será, y así sucesivamente.

+65
Tax crime Investigation 9 jun. 2011 22:09:38
  1. El Bitcoin se genera de acuerdo con el protocolo de la Prueba de Trabajo que proporcionan a la red. La recompensa está compuesto de un bloque de recompensa y los honorarios de la transacción de bitcoin transacciones incluidas en el bloque.
  2. No. Extrae las monedas son nuevos en la circulación y no de otra persona. Las tarifas de transacción no son robados. El remitente de cada transacción decide cuánto de un cargo de transacción para pagar el minero. Tarifas más altas tienen más probabilidades de resultar en un rápido tiempo de confirmación.
  3. No miedo de ser robado al realizar las transacciones. En su lugar el miedo a ser robado por aquellos en los que confía para mantener bitcoin en su nombre. Aprender cómo proteger su propia bitcoin y mantener su clave privada y segura.
  4. Bitcoin es un público de contabilidad registra en una blockchain. Cada dirección es controlada por una clave privada. Al enviar Bitcoin desde una dirección a otra, la única persona que puede pasar es que el propietario de la clave privada de la dirección en la que se envío el bitcoin a. El minero no puede interceptar su bitcoin y se la roban. Sólo verificar la transacción se llevó a cabo, registro en la parte superior de la blockchain para que el mundo vea.
  5. La legalidad de Bitcoin minería de datos puede variar según la jurisdicción, pero está ocurriendo en todo el mundo. Hasta el momento no parecen ser una más de las leyes destinadas a la regulación de los intercambios de los mineros.

Aquí hay un par de sencillos y más referencias técnicas como usted lo solicitó:

https://www.youtube.com/watch?v=GmOzih6I1zs

https://www.youtube.com/watch?v=l9jOJk30eQs

https://bitcoin.org/en/developer-guide#term-proof-of-work

https://en.bitcoin.it/wiki/Controlled_supply

+56
yamaha r5 3 oct. 2012 19:04:30

A veces uno quiere copia de seguridad de algunos .archivos dat de Bitcoin, pero uno no puede cerrar el cliente para hacerlo (por ejemplo, si está ejecutando una piscina). Que .dat archivos son seguros para ser copiado siempre y cuando el cliente se está ejecutando, y que sólo se actualizan cuando se apaga el cliente?

+41
andrzej szablowicz 27 mar. 2017 20:43:07

Si el bloque se libera por la minería de la piscina o minero, cada uno de los pares de correr bitcoin wallet, como bitcoin-qt o bitcoind verificará las operaciones en el bloque antes de la retransmisión del bloque.

Los pasos son los siguientes:

  1. Compruebe SHA256 hash del bloque, que se encuentra estructurado a partir de la versión, pref_block,merkle_root,marca de tiempo, bits, nonce y estándar SHA256 relleno. Cuando el hash del bloque no es válido o mínimo nivel de dificultad es rechazado.

Las piscinas o los mineros se supone que la liberación de los bloques de acuerdo a estas reglas de protocolo

Uno de ellos:

Para cada entrada, busque en la rama principal y la transacción de la piscina para encontrar la referencia de transacción de salida. Si la transacción de salida es la que falta para cualquier entrada, este va a ser un huérfano de la transacción. Añadir a los huérfanos de las transacciones, si se encuentra una coincidencia de la transacción no está ahí ya.

Así que hay varias reglas que se deben seguir para un bloque para ser aceptado y que luego se transmite.

+32
Jubba Smail 10 dic. 2011 7:47:36

Hay un ajuste para la testnet cuando un bloque se tarda 20 minutos o más a la mía, va a ajustar la dificultad a 1. Esto fue causado presumiblemente debido a la diferencia entre blocktimes de 1356765 y 1356766 porque el bloque 1356767 fue restablecido a 1.

Cada 2016 bloques, la dificultad está ajustada, sino que sólo puede ser aumentado por un factor de 4 en cada momento.

pow.cpp a partir de la versión 0.16.2

// Especial dificultad regla para testnet:
// Si el nuevo bloque de la marca de tiempo es de más de 2* 10 minutos
// a continuación, permitir la extracción de un min-dificultad de bloque.
si (pblock->GetBlockTime() > pindexLast->GetBlockTime() + params.nPowTargetSpacing*2)
 volver nProofOfWorkLimit;
+28
Soya Bjorlie 23 may. 2019 6:38:52

Mostrar preguntas con etiqueta