Entonces, con esas tres, o dos, supongo, funciones, entendemos cómo funciona este contrato. Básicamente, lo desplegamos con un valor inicial, podemos leer el valor y luego podemos actualizar el valor. Entonces, cuando piensas en CRUD, crear, leer, actualizar, eliminar, realmente no puedes eliminar en blockchain, porque cada interacción se guarda para siempre. Pero podemos actualizar y podemos crear y podemos leer. Bien, ahora que entendemos lo que está pasando allí, vamos a cerrar esto. Y volveremos a nuestro tutorial aquí. Y podemos continuar.
Entonces, lo que queremos hacer a continuación es compilar nuestro contrato inteligente en la ABI o la interfaz binaria de la aplicación. Y para hacer eso, podemos usar hard hat de nuevo. Y todo lo que necesitamos hacer es ejecutar NPX hard hat compile. Este comando va a mirar en nuestra configuración de hard hat y buscar la carpeta real donde queremos crear estos artefactos. Y establecimos esa carpeta de artefactos para ser SRC / artefactos. Así que después de ejecutar este programa, deberíamos ver una nueva carpeta allí. Entonces, si vuelvo a mi terminal, y ejecuto NPX hard hat compile desde la raíz del proyecto. Ahora mira dentro de mi directorio de origen, ahora debería ver esta nueva carpeta llamada artefactos. Y de hecho, vemos eso allí. Y, y los contratos, vamos a ver básicamente, estos dos archivos, realmente no necesitamos jugar con ellos ni nada. Pero estos son los ABI's. En realidad, este es el ABI. Es básicamente algo de JSON que describe lo que está pasando. Y básicamente podemos importar eso, nunca realmente necesitamos abrir eso y mirarlo, solo quiero mostrarte lo que está allí. Entonces, ahora que hemos compilado nuestro contrato, ahora podemos considerar empezar a interactuar con él. Así que necesitamos pensar en las interacciones con una blockchain de manera muy diferente a como podrías pensar en las interacciones con una database típica. Porque cuando escribes data en una database, normalmente vas a estar usando algún tipo de aplicación que se aloja en AWS, o algo así. Ya sabes, cualquier base súper y la persona que desplegó ese programa está pagando por ese servicio de alojamiento. Creo que la principal diferencia fundamental es que, en su mayor parte, cuando estás ejecutando, o estás interactuando con una red de blockchain, las operaciones que ocurren en la cadena tienen que ser pagadas en el momento de que esa operación ocurra. Ahora, a veces ves esto implementado en el servidor en algún lugar donde básicamente tienen una clave privada, y puedes llamar básicamente a un back end, y lo están haciendo de esa manera. Pero la mayoría de las veces, en realidad vas a estar interactuando con él y pagando por esta transacción tú mismo. Ahora, estas transacciones pueden costar desde una fracción de un centavo, como cuando estamos interactuando con Solana, o are we've, o vas a estar trabajando con algo como aetherium, donde es bastante caro ahora mismo. Y creo que la razón por la que estás viendo un tipo limitado de aplicación que se está construyendo en aetherium es debido a lo limitado que estás ahora mismo, para esos tipos de pagos. Entonces, si vas a hacer algún tipo de cosas de finanzas descentralizadas, donde estás transaccionando, ya sabes, cientos de dólares, podría tener sentido pagar unos pocos dólares por una transacción. Pero digamos que solo quieres hacer algo realmente básico. Cualquier cosa por encima de un par de dólares no tiene mucho sentido. Así que creo que es por eso que estás viendo, ya sabes, todo tipo de nuevos protocolos de blockchain que son más escalables, y quizás menos costosos y cosas así para diferentes otros tipos de casos de uso. Y también, necesitas entender tal vez que la forma en que construyes una de estas aplicaciones va a ser muy diferente. Es posible que solo almacenes información muy importante en la cadena. Y luego podrías usar algún otro tipo de almacenamiento descentralizado que sea gratis para otros tipos de cosas. Así que eso es solo fundamental, como cosas en las que pensar mientras estamos haciendo esto. Pero básicamente, lo que queremos hacer ahora es desplegar nuestro contrato en una red local. Así que podemos desplegar en la red principal de aetherium, o también podemos desplegar en una de estas redes de prueba que están ahí. Pero para hacer eso, necesitamos encontrar aetherium de prueba, ya sabes, prueba aetherium y enviarlo a nuestra cartera. Y es un poco, ya sabes, un montón de pasos, aunque la mayoría de las veces, ya sabes, la mejor manera es desplegarlo en una red local. Y la mejor manera diría para las pruebas locales y el desarrollo es usar una red local. Y en realidad podemos crear una red local simplemente ejecutando NPX hard hat node. Así que puedo copiar esto, y voy a dividir mi terminal en un par de nuevas ventanas, porque vamos a necesitar ejecutar varias ventanas. Y solo voy a borrar esto. Y lo primero que quiero hacer es crear una red local, ejecutar un nodo local de aetherium. Y puedo hacer eso ejecutando NPX hard hat node. Y esto irá y comenzará una red de prueba local, un nodo local de aetherium, y me dará 19 cuentas de prueba. Y cada una de estas cuentas puedo importarlas en mi cartera metamask. Y estoy comenzando con 10,000, en el 10,000 ETH, lo que significa que tengo algo de dinero para probar mi programa. Porque cuando escribo una transacción, voy a necesitar pagar algo de ETH para escribir en la red de bloques. Y ahora tengo 10,000 ETH repartidos o multiplicados por 20 en 20 cuentas diferentes que puedo usar. Bien, entonces lo que vamos a hacer a continuación es volver a nuestro tutorial. Y vamos a desplegar nuestro programa en esa red de prueba. Entonces, para hacer eso, tenemos un script ubicado en scripts / sample script.js. Así que vamos a echar un vistazo a eso. Y voy a eliminar todos los comentarios y cosas para hacer esto un poco más fácil de leer. Bien, entonces no pasa mucho aquí. Realmente solo hay cuatro líneas de code, o realmente tres líneas de code que necesitamos para desplegar esto. En primer lugar, estamos obteniendo una referencia al contrato diciendo ethers dot get contract factory y pegando la cadena para el nombre del contrato. Ahora podemos hacer esto porque en nuestra configuración de hard hat, básicamente estamos estableciendo la ruta para los artefactos. Y luego esto va a mirar en esa ruta y va a encontrar el artefacto para el greeter. Y esto es esencialmente obtener el ABI y hacerlo disponible aquí en esta línea de code. La siguiente función que vamos a llamar es greeter dot deploy. Y esto básicamente ahora que tenemos una referencia a este contrato, podemos llamar a deploy y luego podemos pasar el argumento del constructor. En nuestro caso, queremos establecer ese valor inicial para el saludo. Así que esto podría ser lo que sea. Así que podría decir react. Londres o algo así. Y este será el valor inicial de nuestro programa.
Comments