Red de conocimiento de divisas - Cuestiones de seguridad social - ¿Qué es Ethereum? Guía de desarrollo de Ethereum.

¿Qué es Ethereum? Guía de desarrollo de Ethereum.

¿Qué es Ethereum? Guía de desarrollo de Ethereum.

Muchos estudiantes han estado ansiosos por unirse a un equipo de desarrollo de blockchain, pero sienten que no pueden comenzar. Este artículo se basará en la plataforma Ethereum e introducirá los conceptos oscuros involucrados en el desarrollo de Ethereum de una manera popular, lo que le permitirá comenzar fácilmente.

¿Qué es Ethereum?

Ethereum es una plataforma de aplicaciones descentralizada basada en tecnología blockchain. Permite a cualquiera crear y utilizar aplicaciones descentralizadas a través de la tecnología blockchain en la plataforma.

Los estudiantes que no comprendan esta oración pueden entender que Ethereum es Android en la cadena de bloques. Es una plataforma de desarrollo para que podamos escribir aplicaciones basadas en la tecnología blockchain como el marco de Android.

Antes de la aparición de Ethereum, escribir aplicaciones blockchain era así: copiar un código Bitcoin y luego cambiar el código subyacente, como el algoritmo de cifrado, el mecanismo de consenso, el protocolo de red, etc. (Este es el caso de muchas monedas falsificadas y se lanzarán nuevas monedas después de la revisión).

La plataforma Ethereum encapsula la tecnología blockchain subyacente, lo que permite a los desarrolladores de aplicaciones blockchain desarrollar directamente basándose en la plataforma Ethereum. Los desarrolladores solo necesitan centrarse en el desarrollo de la aplicación en sí, lo que reduce en gran medida la dificultad.

Actualmente, se ha formado un ecosistema de desarrollo relativamente completo alrededor de Ethereum: con el apoyo de la comunidad, hay muchos marcos de desarrollo y herramientas para elegir.

Contrato inteligente

¿Qué es un contrato inteligente?

El programa en el Taller Ethereum se llama contrato inteligente, que es una colección de código y datos (estado ).

Los contratos inteligentes pueden entenderse como contratos (transacciones especiales) que pueden ejecutarse automáticamente en la cadena de bloques (impulsados ​​por eventos) y escribirse en código.

En Bitcoin Script, mencionamos que las transacciones de Bitcoin se pueden programar, pero hay muchas limitaciones en Bitcoin Script, y los programas que se pueden escribir son limitados, mientras que Ethereum es más completo (en términos informáticos). se llama "Turing completo") y nos permite escribir programas (contratos inteligentes) que pueden hacer casi cualquier cosa como cualquier lenguaje de alto nivel.

Los contratos inteligentes son muy adecuados para escenarios de aplicaciones que requieren alta confianza, seguridad y durabilidad, como moneda digital, activos digitales, votación, seguros, aplicaciones financieras, predicciones de mercado, gestión de propiedad e Internet de Cosas, transacciones entre pares, etc.

En la actualidad, aparte de la moneda digital, no existen muchas aplicaciones reales (al igual que la plataforma móvil que acaba de salir). Creo que en 1 a 3 años irán apareciendo gradualmente varios asesinos.

Lenguaje de programación: Solidity

El lenguaje de programación predeterminado para contratos inteligentes es Solidity, con la extensión de archivo . Sol.

Solidity es un lenguaje similar a JavaScript que se utiliza para desarrollar contratos y compilarlos en código de bytes para la máquina virtual Ethereum.

También existe un lenguaje de desarrollo de contratos inteligentes que se parece a Python: Serpent, pero te recomiendo que aún uses Solidity.

Browser-Solidity es un IDE de Solidity para navegadores. Puedes hacer clic para echar un vistazo. Cubriremos la solidez del lenguaje en más artículos más adelante.

Entorno operativo: EVM

EVM (Ethereum Virtual Machine) La Ethereum Virtual Machine es el entorno operativo para contratos inteligentes en Ethereum.

La solidez es para EVM como JVM para que todos puedan entenderlo fácilmente.

La máquina virtual Ethereum es un entorno aislado y el código que se ejecuta dentro de la EVM no puede conectarse al exterior.

EVM se ejecuta en nodos Ethernet. Cuando implementamos un contrato en Ethereum, el contrato puede ejecutarse en Ethereum.

Preparación del contrato

La máquina virtual Ethereum se ejecuta en el formato de código de bytes del contrato, por lo que debemos compilar el contrato antes de la implementación. Podemos elegir Browser-Solidity Web IDE o compilador solc.

Implementación por contrato

Al desarrollar aplicaciones en Ethereum, a menudo se utilizan clientes (billeteras) de Ethereum. Normalmente no tocamos el concepto de cliente o billetera en desarrollo.

¿Qué es esto?

Cliente Ethereum (billetera)

Cliente Ethereum, de hecho, podemos entenderlo como una herramienta de desarrollo, que proporciona administración de cuentas, minería, transferencia, inteligencia, implementación y ejecución de contratos, etc. funciones.

EVM es proporcionado por el cliente Ethereum.

Geth es un cliente típico que se utiliza al desarrollar Ethereum. Está desarrollado en base al lenguaje Go. Geth proporciona una consola de comando interactiva que contiene varias funciones (API) de Ethereum. Presentaremos el uso de Geth más adelante, pero aquí presentamos primero un concepto.

La consola Geth es similar a la consola de las herramientas de desarrollo del navegador Chrome, pero se ejecuta en la terminal.

En comparación con Geth, Mist es un cliente Ethereum con una interfaz gráfica de operación.

Cómo implementar

La implementación de contratos inteligentes se refiere a publicar el código de bytes del contrato en la cadena de bloques y usar una dirección específica para marcar el contrato, que se denomina cuenta de contrato.

Existen dos tipos de cuentas en Ethereum:

Cuentas externas

Este tipo de cuenta está controlada por una clave privada (controlada por una persona) y es no asociado con ningún código asociado.

Cuenta de Contrato

Este tipo de cuenta está controlada por su código de contrato y tiene un código asociado.

A diferencia del diseño de Bitcoin que utiliza UTXO, Ethereum utiliza un concepto de cuenta más simple.

Para EVM, estas dos cuentas son iguales.

La diferencia y relación entre cuentas externas y cuentas de contrato es la siguiente: Las cuentas externas pueden crear y firmar transacciones con sus propias claves privadas para enviar mensajes a otra cuenta externa o cuenta de contrato.

Enviar un mensaje entre dos cuentas externas es un proceso de transferencia de valor. Pero un mensaje de una cuenta externa a una cuenta de contrato activará el código de la cuenta de contrato, permitiéndole realizar diversas operaciones (como transferir tokens, escribir en el almacenamiento interno, extraer nuevos tokens, realizar ciertas operaciones, crear nuevos contratos, etc.) . ).

Sólo cuando una cuenta externa emita una instrucción, la cuenta del contrato realizará la operación correspondiente.

La implementación del contrato es la implementación de un código de bytes de contrato compilado en la cadena de bloques Ethereum en forma de una transacción enviada a través de una cuenta externa (la implementación real solo tiene éxito después de ser bloqueada por un minero real).

Ejecutar

Después de implementar el contrato, cuando necesite llamar al método del contrato inteligente, solo necesita enviar un mensaje (transacción) a la cuenta del contrato y el El código del contrato inteligente estará en el EVM después de que se active el mensaje.

Gas

Al igual que la computación en la nube, ocupar recursos de blockchain (ya sea una simple transacción de transferencia o el despliegue y ejecución de un contrato) también requiere tarifas correspondientes (nada en el mundo es almuerzo gratis, ¿verdad?

El taller de Ethereum utiliza el mecanismo de Gas para la facturación, y el Gas también puede considerarse como una unidad de carga de trabajo. Cuanto más complejo sea el contrato inteligente (número y tipo de pasos de cálculo, memoria ocupada, etc.), más gas se necesitará para completar la operación.

La cantidad de Gas necesaria para ejecutar cualquier contrato en particular es fija y está determinada por la complejidad del contrato.

El precio del gas lo estipula la persona que ejecuta el contrato al enviar la solicitud para ejecutar el contrato para determinar lo que está dispuesto a pagar por esta transacción: precio del gas (en moneda tailandesa) * cantidad de gas.

El propósito de Gas es limitar la cantidad de trabajo requerido para realizar una transacción mientras se paga por la ejecución. Cuando el EVM ejecuta una transacción, el gas se consumirá gradualmente de acuerdo con ciertas reglas. No importa dónde se ejecute, una vez que se agote el gas, se activará una excepción. Todas las modificaciones de estado realizadas por el marco de llamada actual se revertirán y, si queda algo de gas después de la ejecución, el gas se devolverá a la cuenta emisora.

Sin esta restricción, alguien escribiría un contrato sin fin para bloquear la red.

Entonces, en realidad (para unir el contenido anterior), necesitamos una cuenta externa con un saldo de Ethereum para iniciar transacciones (transacciones ordinarias o implementar contratos en ejecución), y el minero cobrará las tarifas de carga de trabajo correspondientes cuando se ejecute.

Red Yitaifang

Algunos estudiantes ansiosos quisieran preguntar, ¿cómo desarrollar contratos inteligentes sin Ethereum? Puede elegir los siguientes métodos:

Seleccione la red de prueba del sitio web oficial de Ethereum, Testnet.

En la red de prueba, podemos obtener fácilmente ether gratis, pero la desventaja es que lleva mucho tiempo inicializar el nodo.

Usar una cadena privada

Crear nuestra propia red de prueba privada Ethereum, también conocida como cadena privada, que puede usarse como entorno de prueba para desarrollar, depurar y probar contratos inteligentes. .

Es fácil crear tu propia red de prueba con el Geth mencionado anteriormente, y puedes extraer tantos datos como quieras en Ethereum, lo que también elimina la necesidad de sincronizar todos los datos de blockchain de la red oficial.

Uso de la Red de Desarrolladores (Modo)

En comparación con la cadena privada, en la Red de Desarrolladores (Modo), se asignará automáticamente una cuenta de desarrollador con un saldo mayor para nuestro uso.

Utilice un entorno de simulación

Otra forma de crear una red de prueba es utilizar testrpc, un entorno Ethernet simulado por la memoria local, que es más conveniente para el desarrollo y la depuración, y más rápido. Y testrpc puede ayudarnos a crear 10 cuentas de prueba con fondos en el momento del lanzamiento.

Al desarrollar un contrato, se puede implementar en el nodo Geth después de pasar la prueba en testrpc.

Actualización: testrpc ahora se ha incorporado al marco de desarrollo de Truffle y ahora se llama Ganache CLI.

Dapp: Aplicación Descentralizada

La comunidad Ethereum se refiere a las aplicaciones basadas en contratos inteligentes como aplicaciones descentralizadas. Si entendemos blockchain como una base de datos inquebrantable y los contratos inteligentes como programas que procesan bases de datos, entonces es fácil entender Dapp. Dapp no ​​sólo tiene contratos inteligentes, sino que también necesita una interfaz de usuario amigable y otras cosas.

Truffle

Truffle es un marco de desarrollo para Dapp. Puede ayudarnos a lidiar con muchas cosas triviales, permitiéndonos comenzar rápidamente el proceso de escribir código, compilarlo, implementarlo y probarlo. DApp de embalaje.

Resumen

Ahora resumimos. Ethereum es una plataforma que nos permite desarrollar cómodamente aplicaciones descentralizadas utilizando la tecnología blockchain. En esta aplicación, utilizamos Solidity para escribir contratos inteligentes que interactúan con blockchain. Una vez escrito el contrato, debemos implementar y ejecutar el contrato utilizando la cuenta de saldo en el cliente Ethereum (el marco Truffle puede ayudarnos a hacerlo mejor). Para facilitar el desarrollo, podemos usar Geth o testrpc para construir una red de prueba.

Nota: Este artículo hace analogías con algunos conceptos para facilitar la comprensión de todos. Algunos conceptos no son estrictamente precisos, pero también creo que no es necesario que los principiantes dominen cada concepto con cuidado y precisión. El aprendizaje es un proceso gradual y profundo. Muchas veces, descubriremos que después de un período de tiempo, tendremos diferentes interpretaciones de la misma cosa.

上篇: ¿Qué funciones utilizan los contadores en Excel? 下篇: Optimizar y mejorar las políticas de control inmobiliario y brindar apoyo financiero a empresas inmobiliarias de alta calidad.
Artículos populares