Primeros pasos con Solidity: mi primer contrato inteligente

Ethereum es una nueva plataforma financiera y de aplicaciones global, descentralizada. En Ethereum, podemos controlar los activos a través de un código de contrato inteligente y crear aplicaciones a las que se puede acceder desde cualquier parte del mundo. Hoy escribiremos un código de contrato inteligente simple por nosotros mismos y exploraremos los misterios de los contratos inteligentes.

【Contrato inteligente】

Un contrato inteligente (inglés: Smart contract) es un protocolo informático diseñado para comunicar, verificar o hacer cumplir contratos de manera informativa . Los contratos inteligentes permiten transacciones confiables sin terceros, que son rastreables e irreversibles.

El propósito de los contratos inteligentes es proporcionar un método de seguridad superior a los contratos tradicionales y reducir otros costos de transacción asociados con los contratos .

[máquina virtual EVM]

La máquina virtual Ethereum es el ejecutor del código de contrato inteligente. Una vez que el contrato inteligente se compila en un archivo binario, se implementa en la cadena de bloques. El usuario activa la ejecución del contrato inteligente llamando a la interfaz del contrato inteligente. EVM ejecuta el código del contrato inteligente y modifica los datos (estado) en la cadena de bloques actual.

En otras palabras, el ejecutor utilizado para ejecutar contratos inteligentes en Ethereum puede ejecutar contratos inteligentes con él.

[Lenguaje de solidez]

Solidity es el lenguaje para los contratos inteligentes de Ethereum Virtual Machine (EVM). Creo que Solidity es una habilidad necesaria para jugar proyectos de blockchain: la mayoría de los proyectos de blockchain son de código abierto, si puede comprender el código, puede ayudarlo a evitar muchos proyectos que pierden dinero.

Remix es una herramienta de desarrollo de contratos inteligentes recomendada oficialmente por Ethereum. Es adecuada para principiantes. Puede implementar y probar contratos inteligentes rápidamente en el navegador. No necesita instalar ningún programa localmente.

URL: remix.ethereum.org

【Crear mi primer contrato inteligente】

Al ingresar a remix, podemos ver que hay tres botones en el menú más a la izquierda, que corresponden a archivo (donde escribir el código), compilar (para ejecutar el código) e implementar (para implementar en la cadena). Hacemos clic en el botón Crear nuevo archivo para crear un contrato de solidez en blanco.

 Después de hacer clic en "Nuevo", complete un código de contrato inteligente en la ventana de edición a la derecha

solidez de pragma ^0.4.17;

grifo de contrato {

    function retirar (cantidad uint) public {

        require(cantidad <= 1000000000000000000);

        msg.sender.transfer(cantidad);

    }

    función () público pagadero{}

}

Este es un contrato inteligente que simula el trabajo de un grifo. Es decir, el proceso de los usuarios que reciben monedas de prueba a través del faucet en la red de prueba de Ethereum. Vamos a explicar cada línea de este contrato en detalle:

primera fila

solidez de pragma ^0.4.17;

Todo el código fuente de Solidity debe estar marcado con una "versión pragma", que indica la versión del compilador de Solidity, para evitar futuros compiladores nuevos que puedan romper su código.

La versión actual es Solidez 0.4.17

segunda linea

grifo de contrato { }

contrato contrato

Nombre del contrato del grifo (personalizable)

El contenido contenido en { } es el módulo básico de un contrato.

El código de Solidity está envuelto en el contrato. Un contrato es el módulo básico de la aplicación Ethereum. Todas las variables y funciones pertenecen a un contrato, que es el punto de partida de todas sus aplicaciones.

la tercera fila

function retirar (cantidad uint) public {

función función

retirar (cantidad uint) define un nombre de función llamado retirar, y el parámetro es la cantidad de la unidad (tipo entero sin signo)

public Esta función es visible públicamente y se puede llamar desde fuera

{ } es el contenido de la función

cuarta linea

require(cantidad <= 1000000000000000000);

Requiere declaración de juicio condicional, si la declaración es verdadera (Verdadero), se ejecutará, si la declaración es falsa (Falso), no se ejecutará.

cantidad <= 1000000000000000000 La cantidad aquí representa la cantidad de moneda ether, y la unidad es wei. Al igual que Bitcoin, Ether no es infinitamente divisible y la unidad más pequeña de Ether es Wei.

la quinta línea

msg.sender.transfer(cantidad);

msg.sender indica la dirección de la llamada de contrato actual

transfer(amount) indica el monto de la transferencia

sexta línea

función () público pagadero{}

Esta es una función de respaldo (Función de respaldo)

Un contrato puede tener una función anónima. Esta función no puede tener parámetros y no puede devolver ningún valor. Se realizará una llamada de contrato si ninguna otra función coincide con el identificador de función dado, o si no se proporciona ningún dato.

Además, cada vez que un contrato recibe Ether simple sin datos, se ejecuta una función de respaldo. Además, la función de reserva debe marcarse como pagadera para recibir Ether. Sin tal función, los contratos no pueden recibir Ether a través de transacciones regulares.

En términos sencillos, no necesitamos transferir ETH para implementar este contrato faucet, solo necesitamos gastar gasolina. Sin una función alternativa, los contratos no pueden recibir Ether a través de transacciones regulares.

【Compilar e implementar código】

Haga clic en la página compilada, seleccione la versión y haga clic en Compilar. O en la página de edición de código, presione ctrl+S para compilar el código.

 Después de compilar, haga clic en el botón "Implementar" en el menú de la izquierda para ingresar a la página de implementación. De forma predeterminada, Remix utilizará la máquina virtual JS para simular la cadena Ethereum y ejecutar contratos inteligentes, de forma similar a ejecutar una cadena de prueba en un navegador. Y remix le asignará varias cuentas de prueba, cada una con 100 ETH (tokens de prueba). Haga clic en Implementar (botón amarillo) para implementar el contrato escrito.

Después de que la implementación sea exitosa, verá un contrato llamado faucet a continuación, y en el cuadro rojo en la parte inferior está la dirección del contrato implementado. Una vez que el contrato inteligente se implementa con éxito en la cadena, no se puede manipular. Si modifica y vuelve a implementar, es otro contrato.

Esta es una simple pieza de código de contrato inteligente, ¿no es interesante? Espero que este artículo sea útil para usted y nos permita desbloquear más tecnologías de contrato inteligente juntos.

Autor: Solo Clover

Twitter: https://twitter.com/ZhiyuanQi

referencias:

@0xAA_Science  "Introducción a la solidez minimalista" GitHub - AmazingAng/WTFSolidity: estoy volviendo a aprender la solidez recientemente, para consolidar los detalles, y también escribo una "Introducción a la solidez minimalista" para que la usen los principiantes (los programadores pueden encontrar otro tutorial), 1 -3 conferencias se actualizan cada semana.

Supongo que te gusta

Origin blog.csdn.net/weixin_48088680/article/details/125219055
Recomendado
Clasificación