¿Alguien puede explicar cuál es la diferencia entre mist/geth/parity en términos simples?

¿Cuál es la diferencia entre geth/mist/parity?

Respuestas (1)

El protocolo Ethereum define cómo funciona la red Ethereum, cómo deben operar los clientes en general y las reglas que todos deben seguir para ser una parte válida de la red.

Este protocolo generalmente está escrito de manera que cualquiera pueda ir e implementar su propia versión del protocolo en un cliente Ethereum personalizado.

Go-Ethereum (GETH, escrito en GO), Parity-Ethereum (escrito en Rust) y EthereumJ (escrito en Java) son solo algunos ejemplos de diferentes equipos de desarrollo que construyen un cliente de Ethereum funcional en un lenguaje de su elección.

Más que simplemente cambiar el lenguaje utilizado para el desarrollo, estos equipos pueden optar por agregar funciones más allá de lo especificado en el protocolo Ethereum. Un ejemplo de esto es cómo los diferentes clientes han desarrollado métodos para disminuir el tiempo que lleva sincronizar un nodo completo. GETH tiene "Fast Sync" y Parity-Ethereum tiene "Warp Sync". Dado que esta función no se especificó en el protocolo Ethereum, depende del equipo de desarrollo decidir cómo quieren implementar esta función y otras funciones más allá de la especificación principal.

También es bueno para la red cuando existen múltiples implementaciones de clientes, ya que los humanos no son perfectos y los desarrolladores pueden cometer errores que conducen a errores. Dado que hay múltiples clientes diferentes que componen la red, un error en un cliente no tendrá un efecto tan drástico, ya que los otros clientes en funcionamiento deben ignorar los errores en la red.

Mist es diferente a GETH y Parity-Ethereum ya que es un navegador dApp, no un cliente Ethereum. Mist interactúa con un cliente Ethereum en ejecución (GETH) y actúa como una interfaz de usuario para acceder más fácilmente a las API expuestas por JSON-RPC. La niebla por sí sola no puede hacer nada tan útil, pero cuando se combina con un cliente en ejecución, puede actuar como una puerta de enlace simple para que los usuarios interactúen con la cadena de bloques de Ethereum: transferir fondos, crear contratos, usar contratos, etc.