Ir al contenido

Diferencia entre revisiones de «Bifurcación (desarrollo de software)»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
DarthRoison (discusión · contribs.)
Redacción y ejemplos en diferentes contextos (bifurcaciones de software, de sistemas operativos, criptomonedas, etc).
DarthRoison (discusión · contribs.)
Redacción y estructura. Desarrollo de sección "Tecnología blockchain" para posterior fusión de "Bifurcación (blockchain)" con "Bifurcación (desarrollo de software)" –dado que las bifurcaciones blockchain son un subconjunto de las bifurcaciones en el mundo de la ingeniería de software–.
Línea 8: Línea 8:
Ejemplos de bifurcaciones de software son la [[Enciclopedia Libre Universal en Español|Enciclopedia Libre]] (escindida de la [[Wikipedia]] en español), los sistemas operativos [[Android]], [[Debian]] y [[Ubuntu]] (derivados de [[GNU/Linux|GNU Linux]]), las suites de [[ofimática]] de [[código abierto]] [[LibreOffice]] y [[AndrOpen Office]] (basadas en [[OpenOffice]]) y las [[Criptomoneda|criptomonedas]] [[Bitcoin Cash]] (bifurcada de la red [[Bitcoin]]) y [[Litecoin]] (inspirada en el código fuente de Bitcoin).
Ejemplos de bifurcaciones de software son la [[Enciclopedia Libre Universal en Español|Enciclopedia Libre]] (escindida de la [[Wikipedia]] en español), los sistemas operativos [[Android]], [[Debian]] y [[Ubuntu]] (derivados de [[GNU/Linux|GNU Linux]]), las suites de [[ofimática]] de [[código abierto]] [[LibreOffice]] y [[AndrOpen Office]] (basadas en [[OpenOffice]]) y las [[Criptomoneda|criptomonedas]] [[Bitcoin Cash]] (bifurcada de la red [[Bitcoin]]) y [[Litecoin]] (inspirada en el código fuente de Bitcoin).


== Contextos y acepciones ==
== Contextos ==


=== Software libre ===
=== Software libre ===
Línea 16: Línea 16:
En proyectos de [[Software propietario|''software'' privativo]] las bifurcaciones usualmente se llevan a cabo para crear versiones de un mismo programa que funcionen en diversos sistemas operativos, aumentando así la cuota de mercado. Pero suelen retener las mismas características, facilitando así a los usuarios el uso del mismo programa en diferentes sistemas operativos.
En proyectos de [[Software propietario|''software'' privativo]] las bifurcaciones usualmente se llevan a cabo para crear versiones de un mismo programa que funcionen en diversos sistemas operativos, aumentando así la cuota de mercado. Pero suelen retener las mismas características, facilitando así a los usuarios el uso del mismo programa en diferentes sistemas operativos.


== Tecnología blockchain ==
=== Criptomonedas ===
{{AP|Bifurcación (blockchain)}}
{{AP|Bifurcación (blockchain)}}
Puede referir tanto a [[Bifurcación (blockchain)|bifurcaciones de una cadena de bloques]] (blockchain forks), [[División (blockchain)|divisiones de una cadena de bloques]] (chain splits) o [[Criptomoneda|criptomonedas]] creadas mediante bifurcación. <ref>{{Cita web|url=https://blog.bitmex.com/bitcoins-consensus-forks/|título=A complete history of Bitcoin’s consensus forks – BitMEX Blog|fechaacceso=4 de mayo de 2019|idioma=en-US}}</ref><ref>{{cita web|apellidos1=GARCíA QUESADA|nombre1=Jesús|título=ANáLISIS DE BIFURCACIONES ´ EN MODELOS DE CALIDAD|url=http://www.dma.ulpgc.es/profesores/personal/jmpc/TESISsuso.pdf|editorial=UNIVERSIDAD DE LAS PALMAS DE GRAN CANARIA|idioma=Español|fecha=2005|fechaacceso=28 de junio de 2019|urlarchivo=https://web.archive.org/web/20151010082829/http://www.dma.ulpgc.es/profesores/personal/jmpc/TESISsuso.pdf|fechaarchivo=10 de octubre de 2015}}</ref>
En el contexto de las [[Criptomoneda|criptomonedas]] el término bifurcación puede significar varias cosas, aunque por lo general, refiere a eventos que implican ajustes de las reglas de consenso de la red [[peer-to-peer]] de una [[cadena de bloques]], en los cuales es posible que se produzcan [[División (blockchain)|divisiones]] de dichas redes. Estos eventos pueden ser usados como medios para ejecutar actualizaciones de protocolo y/o crear nuevas criptomonedas a partir de otras, aunque también pueden ocurrir como consecuencia de errores de código. <ref>{{Cita web|url=https://blog.bitmex.com/bitcoins-consensus-forks/|título=A complete history of Bitcoin’s consensus forks – BitMEX Blog|títulotrad=Una historia completa de las bifurcaciones de Bitcoin|fechaacceso=4 de mayo de 2019|idioma=en-US}}</ref> También se suele usar, aunque en una menor medida, el término ''bifurcación de software'' para denotar el desarrollo de un programa o proyecto que copia parte del código fuente de uno preexistente, o al lanzamiento de una criptomoneda cuyo código está basado en el de otra. <ref name=":1">{{Cita web|url=https://www.criptonoticias.com/criptopedia/que-es-bifurcacion-fork-soft-hard-blockchain|título=Qué es una bifurcación (fork) de blockchain|fechaacceso=3 de mayo de 2019|fecha=9 de enero de 2018|sitioweb=CriptoNoticias - Bitcoin, blockchains y criptomonedas|idioma=es}}</ref>

=== Tipos de bifurcaciones de una cadena de bloques ===

* '''[[Bifurcación blanda]]''' (en inglés '''''soft fork'''''): no implican cambios radicales de las reglas de consenso y mantienen la [[retrocompatibilidad]] entre los nodos actualizados y los nodos que ejecutan software antiguo. <ref name=":1" /> Pueden ser usadas para agregar nuevas funciones sin la necesidad de que todos los participantes actualicen el software de sus nodos, siendo necesario el nuevo software solo para quienes quieren gozar de las nuevas características. <ref name=":0">{{Cita noticia|título=Tipos de forks o bifucaciones de Bitcoin (hard fork vs. soft fork) - OroyFinanzas.com|url=https://www.oroyfinanzas.com/2016/01/tipos-forks-bifucaciones-bitcoin-hard-fork-soft-fork/|fecha=29 de enero de 2016|fechaacceso=9 de marzo de 2018|periódico=OroyFinanzas.com|idioma=es-ES}}</ref>

* [[Bifurcación dura|'''Bifurcación dura''']] (en inglés '''''hard fork'''''): implican cambios radicales de las reglas de consenso <ref>{{Cita web|url=https://www.investopedia.com/terms/h/hard-fork.asp|título=Hard Fork|fechaacceso=3 de mayo de 2019|apellido=Frankenfield|nombre=Jake|sitioweb=Investopedia|idioma=en}}</ref> que hacen incompatibles a los [[Nodo (informática)|nodos]] no actualizados con los nodos actualizados <ref name=":1" /> de forma que hace técnicamente imposible a los primeros validar bloques producidos por los segundos. <ref>{{Cita web|url=https://bitcoin.org/en/glossary/hard-fork|título=Hard Fork, Hard-Forking Change - Bitcoin Glossary|fechaacceso=3 de mayo de 2019|sitioweb=bitcoin.org|idioma=en}}</ref> Pueden ser usadospara arreglar fallas o agregar, mejorar e incluso eliminar características. <ref>{{Cita web|url=https://en.bitcoin.it/wiki/Hardfork|título=Hardfork - Bitcoin Wiki|fechaacceso=3 de mayo de 2019|sitioweb=en.bitcoin.it}}</ref><ref name=":0" /><ref name=":1" />

=== Eventos relacionados ===

* '''Actualizaciones''' (en inglés '''''network upgrade'''''): activación de un nuevo conjunto de reglas de consenso de forma programada. <ref name=":2">{{Cita web|url=https://blog.bitmex.com/wp-content/uploads/2017/12/2017.12.28-A-complete-history-of-Bitcoins-consensus-forks-.pdf|título=A complete history of Bitcoin’s consensus forks|títulotrad=Una historia completa de las bifurcaciones de Bitcoin|autor=BitMEX Research|fecha=8 de diciembre de 2017}}</ref><ref>{{Cita web|url=https://www.criptonoticias.com/colecciones/bifurcaciones-suaves-y-fuertes-conceptos-diferencias-y-algunos-ejemplos/|título=Bifurcaciones suaves y fuertes: conceptos, diferencias y algunos ejemplos|fechaacceso=4 de mayo de 2019|fecha=19 de noviembre de 2018|sitioweb=CriptoNoticias - Bitcoin, blockchains y criptomonedas|idioma=es}}</ref>

* [[División (blockchain)|'''Divisiones''']] (en inglés '''''network split''''' o '''''chain split'''''): separación de los nodos que conforman una red blockchain en redes peer-to-peer diferentes (sea de forma coordinada o accidental) <ref>{{Cita web|url=https://bitcoin.org/en/glossary/fork|título=Fork, Accidental Fork - Bitcoin Glossary|fechaacceso=9 de marzo de 2018|sitioweb=bitcoin.org|idioma=en}}</ref> las cuales pueden tener un carácter temporal o permanente. Pueden producirse por errores, incompatibilidad entre el código de distintas implementaciones de software para nodos y bifurcaciones contenciosas. <ref name=":24">{{Cita web|url=https://blog.bitmex.com/wp-content/uploads/2017/12/2017.12.28-A-complete-history-of-Bitcoins-consensus-forks-.pdf|título=A complete history of Bitcoin’s consensus forks|títulotrad=Una historia completa de las bifurcaciones de Bitcoin|autor=BitMEX Research|fecha=8 de diciembre de 2017}}</ref>

* [[Guerra de hash|'''Guerras de hash''']] (en inglés '''''hash war'''''): división y competencia del poder de minado de una criptomoneda en apoyo a consensos diferentes sobre el protocolo.


== Véase también ==
== Véase también ==

Revisión del 04:31 19 dic 2019

Línea de tiempo de las bifurcaciones de las distribuciones Linux.

En ingeniería de software se considera bifurcación (en inglés fork) al desarrollo de un proyecto informático tomando como base un código fuente que ya existe o a la ramificación de un proyecto madre en varios proyectos que son independientes entre sí y que cuentan con objetivos y/o desarrolladores diferentes. Como resultado de una bifurcación se pueden derivar varios proyectos de uno preexistente, los cuales pueden intentar cubrir necesidades distintas aunque similares y/o implementar diferentes soluciones con el fin de abordar los mismos problemas pudiendo llegar a competir entre ellos.

Ejemplos de bifurcaciones de software son la Enciclopedia Libre (escindida de la Wikipedia en español), los sistemas operativos Android, Debian y Ubuntu (derivados de GNU Linux), las suites de ofimática de código abierto LibreOffice y AndrOpen Office (basadas en OpenOffice) y las criptomonedas Bitcoin Cash (bifurcada de la red Bitcoin) y Litecoin (inspirada en el código fuente de Bitcoin).

Contextos

Software libre

Las bifurcaciones de proyectos de software libre pueden surgir de un cisma en los objetivos o un choque de personalidades. En una bifurcación, ambos lados asumen derechos de autor idénticos pero típicamente solo el grupo de mayor tamaño, o el que contiene al arquitecto original, retendrá el nombre original completo. Al tratarse de software con licencia libre, cada miembro de la comunidad de usuarios asociada puede elegir mantenerse en el proyecto original, o cambiarse a la versión bifurcada y actualizada mediante una forma de gestión diferente. Además, gracias a la licencia libre está permitido trasladar las mejoras creadas en una versión a la otra cuando sea deseable. El resultado puede ser tener dos proyectos que evolucionan en paralelo, cada uno especializado en adaptarse a unas condiciones distintas al otro.

Software privativo

En proyectos de software privativo las bifurcaciones usualmente se llevan a cabo para crear versiones de un mismo programa que funcionen en diversos sistemas operativos, aumentando así la cuota de mercado. Pero suelen retener las mismas características, facilitando así a los usuarios el uso del mismo programa en diferentes sistemas operativos.

Tecnología blockchain

En el contexto de las criptomonedas el término bifurcación puede significar varias cosas, aunque por lo general, refiere a eventos que implican ajustes de las reglas de consenso de la red peer-to-peer de una cadena de bloques, en los cuales es posible que se produzcan divisiones de dichas redes. Estos eventos pueden ser usados como medios para ejecutar actualizaciones de protocolo y/o crear nuevas criptomonedas a partir de otras, aunque también pueden ocurrir como consecuencia de errores de código. [1]​ También se suele usar, aunque en una menor medida, el término bifurcación de software para denotar el desarrollo de un programa o proyecto que copia parte del código fuente de uno preexistente, o al lanzamiento de una criptomoneda cuyo código está basado en el de otra. [2]

Tipos de bifurcaciones de una cadena de bloques

  • Bifurcación blanda (en inglés soft fork): no implican cambios radicales de las reglas de consenso y mantienen la retrocompatibilidad entre los nodos actualizados y los nodos que ejecutan software antiguo. [2]​ Pueden ser usadas para agregar nuevas funciones sin la necesidad de que todos los participantes actualicen el software de sus nodos, siendo necesario el nuevo software solo para quienes quieren gozar de las nuevas características. [3]
  • Bifurcación dura (en inglés hard fork): implican cambios radicales de las reglas de consenso [4]​ que hacen incompatibles a los nodos no actualizados con los nodos actualizados [2]​ de forma que hace técnicamente imposible a los primeros validar bloques producidos por los segundos. [5]​ Pueden ser usadospara arreglar fallas o agregar, mejorar e incluso eliminar características. [6][3][2]

Eventos relacionados

  • Actualizaciones (en inglés network upgrade): activación de un nuevo conjunto de reglas de consenso de forma programada. [7][8]
  • Divisiones (en inglés network split o chain split): separación de los nodos que conforman una red blockchain en redes peer-to-peer diferentes (sea de forma coordinada o accidental) [9]​ las cuales pueden tener un carácter temporal o permanente. Pueden producirse por errores, incompatibilidad entre el código de distintas implementaciones de software para nodos y bifurcaciones contenciosas. [10]
  • Guerras de hash (en inglés hash war): división y competencia del poder de minado de una criptomoneda en apoyo a consensos diferentes sobre el protocolo.

Véase también

  • Manual de Usuario del Identificador

Gráfico de Bifurcaciones http://www.engr.iupui.edu/~tovara/edrl/igb/Manual%20de%20Usuario%20del%20IGB.pdf

Referencias

  1. «A complete history of Bitcoin’s consensus forks – BitMEX Blog» [Una historia completa de las bifurcaciones de Bitcoin] (en inglés estadounidense). Consultado el 4 de mayo de 2019. 
  2. a b c d «Qué es una bifurcación (fork) de blockchain». CriptoNoticias - Bitcoin, blockchains y criptomonedas. 9 de enero de 2018. Consultado el 3 de mayo de 2019. 
  3. a b «Tipos de forks o bifucaciones de Bitcoin (hard fork vs. soft fork) - OroyFinanzas.com». OroyFinanzas.com. 29 de enero de 2016. Consultado el 9 de marzo de 2018. 
  4. Frankenfield, Jake. «Hard Fork». Investopedia (en inglés). Consultado el 3 de mayo de 2019. 
  5. «Hard Fork, Hard-Forking Change - Bitcoin Glossary». bitcoin.org (en inglés). Consultado el 3 de mayo de 2019. 
  6. «Hardfork - Bitcoin Wiki». en.bitcoin.it. Consultado el 3 de mayo de 2019. 
  7. BitMEX Research (8 de diciembre de 2017). «A complete history of Bitcoin’s consensus forks» [Una historia completa de las bifurcaciones de Bitcoin]. 
  8. «Bifurcaciones suaves y fuertes: conceptos, diferencias y algunos ejemplos». CriptoNoticias - Bitcoin, blockchains y criptomonedas. 19 de noviembre de 2018. Consultado el 4 de mayo de 2019. 
  9. «Fork, Accidental Fork - Bitcoin Glossary». bitcoin.org (en inglés). Consultado el 9 de marzo de 2018. 
  10. BitMEX Research (8 de diciembre de 2017). «A complete history of Bitcoin’s consensus forks» [Una historia completa de las bifurcaciones de Bitcoin].