Bitcoin es una innovadora red de pagos y una nueva clase de dinero.
Bitcoin usa tecnología peer-to-peer o entre pares para operar sin una autoridad central o bancos; la gestión de las transacciones y la emisión de bitcoins es llevada a cabo de forma colectiva por la red. Bitcoin es de código abierto; su diseño es público, nadie es dueño o controla Bitcoin y todo el mundo puede participar. Por medio de sus muchas propiedades únicas, Bitcoin permite usos interesantes no contemplados por ningún sistema de pagos anterior.
Que novedades incluye la versión 23.0 See changelog
Released
Cambios en el P2P y en la red
Un nodo bitcoind ya no cotilleará direcciones a los compañeros entrantes por defecto. Serán elegibles para el cotilleo de direcciones después de enviar un mensaje ADDR, ADDRV2 o GETADDR. (#21528)
Antes de esta versión, Bitcoin Core tenía una fuerte preferencia para intentar conectarse sólo a los pares que escuchan en el puerto 8333. Como resultado de esto, los nodos Bitcoin que escuchan en puertos no estándar probablemente no conseguirían que ningún peer de Bitcoin Core se conectara a ellos. Esta preferencia ha sido eliminada. (#23542)
Se ha añadido soporte completo para la red CJDNS. Ver la nueva opción -cjdnsreachable y doc/cjdns.md (#23077)
Cambios en la estimación de tarifas
La estimación de las tasas ahora tiene en cuenta el feerate de las transacciones de sustitución (RBF). (#22539)
Se ha eliminado el parámetro de inicio -rescan
Se ha eliminado el parámetro de inicio -rescaneo. Los monederos que requieran ser reescaneados debido a la corrupción seguirán siendo reescaneados al inicio. De lo contrario, por favor, utilice el RPC rescanblockchain para desencadenar un re-escaneo. (#23123)
Tracepoints y espacio de usuario, soporte de rastreo definido estáticamente
Los binarios de la versión de Bitcoin Core para Linux ahora incluyen tracepoints experimentales que actúan como una interfaz para eventos internos del proceso. Estos pueden ser usados para revisión, depuración, monitoreo y más. La API de los tracepoints es semiestable. Aunque la API está probada, los procesos internos pueden cambiar entre versiones, lo que requiere cambios en los tracepoints. La información sobre los tracepoints existentes se puede encontrar en doc/tracing.md y los ejemplos de uso se proporcionan en contrib/tracing/.
RPCs actualizados
El RPC validateaddress devuelve ahora una matriz error_locations para las direcciones no válidas, con los índices de las ubicaciones de los caracteres no válidos en la dirección (si se conocen). Por ejemplo, esto intentará localizar hasta dos errores Bech32, y devolverá sus ubicaciones si tiene éxito. El éxito y la corrección sólo se garantizan si se han producido menos de dos errores de sustitución. El mensaje de error devuelto en el campo de error ahora también devuelve errores más específicos cuando la decodificación falla. (#16807)
Se ha eliminado la opción de configuración -deprecatedrpc=addresses. Los RPCs gettxout, getrawtransaction, decoderawtransaction, decodescript, gettransaction verbose=true y los endpoints REST /rest/tx, /rest/getutxos, /rest/block ya no devuelven los campos addresses y reqSigs, que anteriormente estaban obsoletos en 22.0. (#22650)
El comando RPC getblock admite ahora el nivel de verbosidad 3 que contiene la información prevout de las entradas de transacción. El punto final /rest/block/ REST existente se modifica para contener también esta información. Cada campo vin contendrá un subcampo prevout adicional que describe la salida gastada. prevout contiene las siguientes claves
generated - true si las monedas gastadas fueron un coinbase.
altura
valor
scriptPubKey
Los campos de tarifa de nivel superior fee, modifiedfee, ancestorfees y descendantfees devueltos por los RPC getmempoolentry,getrawmempool(verbose=true), getmempoolancestors(verbose=true) y getmempooldescendants(verbose=true) están obsoletos y se eliminarán en la próxima versión principal (utilice -deprecated=fees si lo necesita en esta versión). Se puede acceder a los mismos campos de tasas a través del objeto de tasas en el resultado. ADVERTENCIA: los campos obsoletos ancestorfees y descendantfees se denominan en sats, mientras que todos los campos del objeto fees se denominan en BTC. (#22689)
Tanto createmultisig como addmultisigaddress incluyen ahora un campo de advertencias, que mostrará una advertencia si se solicita un tipo de dirección no legado cuando se utilizan claves públicas sin comprimir. (#23113)
Los cambios en los RPCs relacionados con el monedero se pueden encontrar en la sección del monedero más abajo.
Nuevos RPCs
La información sobre el estado de la bifurcación suave se ha trasladado de getblockchaininfo al nuevo RPC getdeploymentinfo que permite consultar el estado de la bifurcación suave en cualquier bloque, en lugar de sólo en la punta de la cadena. La inclusión del estado de la bifurcación suave en getblockchaininfo puede restaurarse actualmente utilizando la configuración -deprecatedrpc=softforks, pero se eliminará en una futura versión. Tenga en cuenta que, en cualquier caso, el campo de estado refleja ahora el estado del bloque actual en lugar del siguiente. (#23508)
Archivos
Al iniciar, la lista de hosts y redes prohibidas (vía setban RPC) en banlist.dat es ignorada y sólo se considera banlist.json. La versión 22.x de Bitcoin Core es la única que puede leer banlist.dat y también escribirlo en banlist.json. Si banlist.json ya existe, la versión 22.x no intentará traducir el banlist.dat a json. Después de una actualización, listbanned puede utilizarse para comprobar las entradas analizadas. (#22570)
Ajustes actualizados
En versiones anteriores, el significado de la opción de línea de comandos -persistmempool (sin un valor proporcionado) desactivaba incorrectamente la persistencia de mempool. Ahora, -persistmempool se trata como otras opciones booleanas y significa -persistmempool=1. Pasar -persistmempool=0, -persistmempool=1 y -nopersistmempool no se ve afectado. (#23061)
-maxuploadtarget permite ahora unidades de bytes legibles por humanos [k|K|m|M|g|t|T]. Por ejemplo, -maxuploadtarget=500g. No se permiten espacios en blanco, +- o fracciones. Por defecto es M si no se proporciona ningún sufijo. (#23249)
Si se da -proxy= junto con -noonion entonces el proxy proporcionado no se establecerá como proxy para alcanzar la red Tor. Así que no será posible abrir conexiones manuales a la red Tor, por ejemplo con el RPC addnode. Para imitar el comportamiento antiguo utilice -proxy= junto con -onlynet= listando todas las redes relevantes excepto onion. (#22834)
Herramientas y utilidades
Actualizar -getinfo para que devuelva los datos en un formato fácil de usar que además reduzca el espacio vertical. (#21832)
CLI -addrinfo ahora devuelve un único campo para el número de direcciones onion conocidas por el nodo en lugar de campos torv2 y torv3 separados, ya que el soporte para direcciones Tor V2 fue eliminado de Bitcoin Core en 22.0. (#22544)
Cartera
Los monederos con descriptores son ahora el tipo de monedero por defecto. Los nuevos monederos creados utilizarán descriptores a menos que se establezca descriptors=false durante createwallet, o que se desmarque la casilla de monedero con descriptores en la GUI.
Tenga en cuenta que los comandos RPC de los monederos, como importmulti y dumpprivkey, no pueden utilizarse con los monederos con descriptor, por lo que si su código de cliente depende de estos comandos sin especificar descriptores=false durante la creación del monedero, tendrá que actualizar su código.
Las carteras descriptoras recién creadas contendrán un descriptor tr() generado automáticamente que permite crear direcciones receptoras de Taproot de clave única.
upgradewallet ahora vaciará automáticamente el depósito de claves si se actualiza de una cartera no HD a una cartera HD, para empezar a utilizar inmediatamente las claves HD recién generadas. (#23093)
se ha añadido un nuevo RPC newkeypool, que vaciará (limpiará y rellenará completamente) el depósito de claves. (#23093)
listunspent ahora incluye ancestorcount, ancestorsize, y ancestorfees para cada salida de transacción que todavía está en el mempool. (#12677)
lockunspent ahora toma opcionalmente un tercer parámetro, persistent, que hace que el bloqueo se escriba de forma persistente en la base de datos del monedero. Esto permite que los UTXOs permanezcan bloqueados incluso después de que el nodo se reinicie o se caiga. (#23065)
Los RPCs recibidos ahora incluyen las transacciones de coinbase. Anteriormente, los siguientes RPCs del monedero excluían las transacciones de coinbase: getreceivedbyaddress, getreceivedbylabel, listreceivedbyaddress, listreceivedbylabel. Esta versión cambia este comportamiento y devuelve los resultados que dan cuenta de las monedas recibidas de las salidas de coinbase. El comportamiento anterior puede ser restaurado usando la configuración -deprecatedrpc=exclude_coinbase, pero puede ser eliminado en una futura versión. (#14707)
Una nueva opción en los mismos RPCs recibidos, include_immature_coinbase (default=false), determina si se tienen en cuenta las transacciones inmaduras de coinbase. Las transacciones coinbase inmaduras son transacciones coinbase que tienen 100 o menos confirmaciones, y no son gastables. (#14707)
Cambios en la interfaz gráfica de usuario
Los UTXOs que se bloquean a través de la GUI ahora se almacenan de forma persistente en la base de datos del monedero, por lo que no se pierden al apagar el nodo o al caer. (#23065)
La casilla de verificación Bech32 ha sido reemplazada por un desplegable para todos los tipos de direcciones, incluyendo el nuevo estándar Bech32m (BIP-350) para los monederos habilitados para Taproot.
Cambios de bajo nivel
RPC
getblockchaininfo ahora devuelve un nuevo campo de tiempo, que proporciona el tiempo de punta de la cadena. (#22407)
Pruebas
En la red de pruebas, las alturas de activación de varias horquillas blandas se fijaron en la altura de bloque 1. Pueden cambiarse mediante la configuración en tiempo de ejecución -testactivationheight=nombre@altura. (#22818)