Contratos inteligentes de Solana | Serpent Academy | Skillshare

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introducción

      1:40

    • 2.

      Introducción a contratos inteligentes

      2:32

    • 3.

      Ciclo de vida inteligente de Solana

      6:18

    • 4.

      Crear y ejecutar un primer contrato inteligente

      9:41

    • 5.

      Llame a un contrato con solana

      10:17

    • 6.

      Crea contratos inteligentes, envía datos a contratos inteligentes

      23:48

    • 7.

      Cómo serializar y deserializar, guardar datos en cuenta con el programa de Solana

      60:51

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

79

Estudiantes

--

Proyecto

Acerca de esta clase

Aprende cómo contratos inteligentes en Solana Cómo escribir tu primer programa de Solana y enviar datos serializados para que puedas comunicarse almacenando datos en la cadena y siendo capaz de leerlos con cualquier tipo de cliente: un videojuego y una aplicación, un navegador web.

Para esta clase te recomendamos que conozcas un poco de óxido.

Código para la clase:

https://github.com/serpentacademy/Basic-Template-Solana-Smart-Contract

https://github.com/serpentacademy/Send-Data-to-Solana-Smart-Contract

Conoce a tu profesor(a)

Teacher Profile Image

Serpent Academy

Passion for teaching and learning

Profesor(a)

Hello, I love coding, science, art, creativity. We are in a great era a Renascence of knowledge is happening right now.

I also love sports and reading, when i was in high school I read poetry a lot, and for sports I was all about basketball and soccer. 

I will love to teach programming and art tutorials, have more than 10 years programming and in robotics.

Let's share this journey together!

 

Ver perfil completo

Level: Intermediate

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Introducción: Bienvenido a esto son sin tierra contrato maorí causa ¿por qué importa esto? Contrato como mi contrato es MPS programa se almacena en la blockchain. No se necesita nueva carrera mental y hacer incluso el empuje a ambos cuerpos. Empoderando a Fairplay. Lemma de Yslow. Fácilmente hacer opción. La transacción cuesta menos de un centavo. Más rápido que, que Visa. Y como definitivamente es más rápido aunque 500 mil TPS, arcos reales, descentralizadores y startups. Boca. Jefe, era Bay Company fue debilidad del usuario contextos cardíacos en tiempo real, vas a hacer tu ecosistema, estás hablando, no importa si estás construyendo un videojuego, un banco de aplicaciones descentralizadas. Así empresa lambda o solución a largo plazo para crear y asignar. ¿ Qué estamos aprendiendo en este curso? Entonces lambda es diapositiva más complicada. Pero voy a crear nuestro primer contrato en Solana, datos inéditos para el contacto asmático y almacenar esos datos en cadena y fuera de la cadena. Vamos a aprender a serializar y desserializar datos, tanto fuera de la cadena como de lado. Vamos a aprender a transferir alma con un contrato inteligente. Bienvenido a este curso. Estoy muy contenta de tenerte aquí. 2. Intro a contratos inteligentes en solana: Se programa en Solana, ¿son equivalentes para contratos inteligentes en otras blockchains? Y están alimentando DeFI y juegos. Dow. Muchas cosas más. Programas, programas de procesamiento de instrucciones. Los programas son apátridas. Programas. Apoyado en cuentas marcadas como ejecutables. Los programas son. Se recomienda el cargador Bpf para escribir programas en pose bruta. Puedes usar C plus plus y puedes usar ver lo que Ross es más fácil y seguro. Los programas de salud tienen una sola instrucción de punto de entrada. Entonces cuando se quiere invocar un programa, los argumentos básicos son la idea del programa. Desea invocar la matriz de cuentas, los datos de instrucción. Programas de redacción. Angkor es una poderosa solución construida sobre Ruby on Rails para escribir programas con contratos inteligentes. Centrándose en la seguridad se construye sobre Salama. ¿ Cómo escribes programas? El primer paso es escribir los programas en recomendación de asado y probarlos en host local. Entonces puedes ir a definirlo o probarlo. Y por último, puedes ir livianos a los programas de mantenimiento. La invocación de programación se realiza haciendo conexión RPC con la API del clúster actual. El clúster puede ser mantenimiento, ¿no? Anfitrión definido y local para testlet y definido, se puede solicitar así lambda porque programas deja en cuentas y cuentas paga renta unidades Alana. Al principio puedes probar en anfitrión local. Puedes pedir algunas monedas a alguna Solana y puedes probar en la red de desarrolladores y la red de pruebas. Y por último, cuando tengas tu programa listo para salir a vivir, puedes hacer algo de Solana y pagar la renta. Porque vamos a ver las próximas cuentas. ¿ Cómo juegan un programa? Una vez que establezcas tu nuevo entorno de clúster, tú en la terminal o en la línea de comandos, escribes Solana pronoun deploy con el protón BIPAP. Puedes incluir a tu gestor de paquetes de carga si estás en filas. 3. Solana Smart Contracts Life Cycle: Lambda es mi ciclo de vida de contrato. La comunicación entre la Tierra y la propia Cadena. Programa puede comunicarse con la red de cilindros. Hay tres vías por el proyecto y un programa. Por ejemplo, en la red asada Solana, donde el programa vivirá para siempre. Mantenlo lejos. Con un cliente. Podemos enviar una sección de pulso pasando instrucciones para especificar para qué programa en esta red de alarma nos estamos ejecutando, podemos bastante alguna sección de información y consulta utiliza la API de JSON RPC Upsilon con los métodos que Solana aprobó, por ejemplo, conseguir el conteo para. Un cliente. Puede comunicarse, puede ser cualquier cosa, puede ser la línea de comando, puede ser un sin reducir hasta cómo Unreal Engine unidad de juego, el objetivo, o cualquier robot de terceros puede ser cualquier cosa que el cliente, pero necesita para seguir las instrucciones. Para enviar API RPC, ¿correcto? Formatee el JSON con la señal válida a algunas cuentas. Para que podamos tener nuestra respuesta. Transacciones. Las transacciones están compuestas por firmas. mensaje del mensaje contiene, dirección de la cuenta de Heather. La cuenta se dirige fuera de las entidades que interactúan. Por ejemplo, puede ser tu cuenta. Ahora que cuentas de tus amigos o de nuestra red de la aplicación descentralizada. Tendrás que pasar matrices y bloquear las instrucciones. Una sola instrucción solo puede llamar a un programa. Los bytes de datos se pasan en patrones pasados. Las instrucciones solo pueden apuntar a un contrato o programa inteligente. Pase. El programa puede utilizar estos datos para realizar una acción. Las instrucciones están compuestas por cuentas de AD del programa en beta. El ID del producto es un contrato inteligente al que estás llamando. La cuenta es el subconjunto de cuentas de transacción o debemos pasar? ¿ Esto? Prueba de historia utiliza estos cuatro. El momento, la ejecución de los programas. No hay colisiones. El dato es una matriz de bytes de los datos para realizar acciones. Aquí tenemos un ejemplo del programa Solana Hello World es un carbón claro y limpio. En TypeScript, tenemos una instrucción. Tenemos aquí los datos que enviamos a un sólido mis clústeres a la API, a la blockchain. Tenemos que decir que el programa deserializará la información. Y luego dijimos un menos otra vez a la respuesta. Tenemos una espera enviar transacción no confirmada. Aquí estamos pasando una llave pública. firmante es falso, ¿verdad? W es cierto porque estamos cambiando el contador del helloworld, el número de veces que el protón ha sido llamado a la cadena Solana contener llamado. Aquí tenemos el asado es mi contrato que recibe el parámetro entrada 0 implementación, implementación punto de entrada del programa que tiene una clave pública. El programa que se carga a la cuenta para decir hola mundo a. Los parámetros serán tomados del ejemplo solar Nick Hello World en GitHub. Programas, como dijimos, pueden estar escribiendo en Ross y C plus plus y C asado recomendado para seguridad, rendimiento. Multithreading. Las apps. El apps está en próxima generación de apps. Y en lugar de interactuar con la base de datos centralizada en un servidor, interactúas con la blockchain y cualquiera puede llamar a los programas ambos. Si saben usar los contratos inteligentes ambos. En ocasiones se necesita algún firmante. Sólo el downer puede ser necesario el fichaje del cúbito. El programa puede ser ejecutado. Si despliega un programa Selena. Hermosa vive para siempre en la blockchain. La coca puede usar contratos o programas inteligentes. Cualquiera sabe comunicarse con los programas mediante la presentación transacciones con las instrucciones, necesita tener las firmas. La fundación necesita saber usar la negación RPC API para comunicarse con la blockchain y también aprender a crear los contratos inteligentes. Ambos son importantes. Por último, veamos un ejemplo. Tienes un videojuego y tu backend. Envía la solicitud usando una señal al cliente que está pagando un poco de una estación base o en un PC, hay una llamada a la acción y puede firmar con el back-end para recibir un NFT. Se necesita una firma del honor, ese indicador del videojuego el cliente está pagando en el PC. Por último, si el cliente acepta pagar esa cuota por el NFT, ahora puede comunicar al cliente directamente a la API de RPC. Y las dos firmas. El usuario puede recibir el NFT que tiene mucho valor. Un ejemplo de una implementación. 4. Crea y aplica el primer contrato inteligente: Vamos a crear un protón básico de Solana, pero solo es el registro de consola. Y vamos a invocar este programa con ese CLI en TypeScript. Puedes usar un navegador web si haces aplicación de video. El primer paso, hablamos carga, nueva biblioteca, principal, básica. Abrimos el Visual Studio. Te recomiendo instalar la extensión para. Se puede ir a los programas. Puedes buscar preferencias de níquel. Extensión. Puedes buscarnos. Será muy útil para la competencia fría. A fuente. Creo que este código de calderas. Pasemos la primera categoría para conseguir las dependencias. Necesitaremos aprender un programa. Gran biblioteca tipo. Nosotros categoría dominancia. Esperamos hasta la categoría. Quieren avanzar rápidamente. Terminan las habilidades. Ahora vamos a nuestro programa. De acuerdo, así que vamos a escribir el programa que vamos a usar desde el programa Salina. Eso es un gran, Queremos usar un conteo para. Vamos a utilizar el punto de entrada para estos son requisitos para Rodin. El punto de entrada. Ahí es donde escribimos el programa. También el mensaje, o podemos causar un bajo en el entorno en el clúster. La clave pública para conocer. Ahora vamos a crear una instrucción de procesamiento de punto de entrada. Desatendemos la función no procesando la instrucción. Pasamos primer parámetro del programa. Referencia a la cuenta pública. ¿ Eso es un consejero de día completo de matriz? Correcto. Podemos a lo mejor algunas cuentas podemos decir consola de fin de semana de los Balcanes. Golpear el conteo para pasamos en la cuenta es correcto todo el fin de semana si lo vendiste para leer. Por último, el buffer de instrucciones . Por último, escribimos el programa. Déjame ver. ¿ Dónde está mi contrato? Bronce. Por ejemplo, podemos, finalmente al final decimos el programa, vamos a programar. Ivy, número de cuentas. Pero estamos pasando datos de distorsión. Primero obtenemos número de protones de cuentas. Cuentas enlazan porque Santa forma de cuentas. Por último, datos. Ahora, vamos a crear un cilindro. Podemos desplegar con un nuevo medio. Escribimos lambda nu. Con la fuerza. Entramos un poco 39, passphrase. Ver tenemos la capital para conseguir la llave. Llegamos ahí en base a qué copia privada obtengamos. Así que déjame. De acuerdo, así que aquí está nuestro guardián al que estamos llegando a la terminal. Copiamos, replicamos. Ahora podemos equilibrar este lemma. Y 0 de nuestro cuidador de cálculos biliares pidió r. obtenemos algún sobre y luego podemos ver las mitocondrias. Podemos desplegar a las redes de cama. Podemos ver nuestro determinante que nuestra URN actual RPC. Definitivamente. Si queríamos cambiar, necesitamos escribir lambda config set con la pasta de URL plana. Podemos cambiar de dominio ella. Si estás dispuesto por ambos. Estamos utilizando DevNet. Entonces así es como estableces la URL en el programa BPF. Opuesto al avance rápido. Impresionante, Tenemos nuestro contrato y reconstruimos a grupo blanco. Podemos desplegar. Tenemos que copiar estas líneas. Ser desplegado el programa. Bien, genial, así que el programa está empleado. Contamos con ID de Programa. Así que ahora construyamos el cliente. Podemos interactuar con el contrato inteligente invocando están contando al programa. 5. Llama un contrato inteligente de Solana de un cliente: De acuerdo, tan genial, podemos desplegar nuestro programa. Ahora veámoslo de nuevo para que podamos conseguir, vale, así que ahora vamos a crear el cliente. Trabaja cualquier cosa lo hice tres CLI moviéndose a la izquierda, tres MPA minuto. El gestor de paquetes, para que podamos dar estilo al aprendiz de viaje web. Ponemos todo como predeterminado. Nosotros MPM. Al instalar protuberancias. Y voy a avanzar rápido. Nos trasladamos a la carpeta CLI y creamos el nuevo archivo que va a invocar el programa. Ya peinamos MPM estilo para que podamos acomodarse con una terminal, podemos florecer en archivo absoluto. Voy a avanzar rápido. Perfecto. Ahora empecemos a trabajar el programa. Primero importamos todo desde. Entonces creamos una conexión con una constante es igual a nueva API de clúster. Estamos en la cama. Puede cambiar a la función principalmente Beta. Vamos a llamar al programa, conseguiría primero una constante. Por la clave privada. Desde aquí pones clave privada para que podamos conseguirla por serie lambda. Este emprendimiento con cualquiera porque próximo caso, bueno a continuación vamos a crear la asignación. Fui a firmar la transacción. El alma, el protón se puede llamar firmante. Mantén su llave secreta. Con la llave. El programa. Eso es consciente. Programa va a llamara llamar nuestro permanentemente. Perfecto. Ahora vamos a limpiarlo. Y I sección, sección es igual a nueva acción de clase. Ahora, podemos usarlo para agregar métodos instruccionales. Sección puede tener múltiples instrucciones. Entonces, por ejemplo, aquí, tenemos un nuevo árbol. En la instrucción de sección, pasamos llaves. ¿ Qué cuentas estamos pasando? ¿Una matriz vacía? Sin cuentas. También pasamos campos de doctrina. Programador, también estás pasando datos. Estamos pasando buffer de datos vacíos. Estamos ubicados 0. Aquí. Podemos esperar. Perfecto. Por último, estamos a la espera de la confirmación. Vale, entonces tenemos tres sección confirmada de conexión transexual. Podría ser múltiples firmantes. Entonces la señal en auge al nuestra registro de nuestra consola. Por último, estamos llamando a la función principal. Ahora. Podemos correr con índice MDX. También. Quieres crear algunos registros. Se puede hacer eso mediante el uso de estos Solana. Tomamos la URL, definitiva. Estamos abriendo un WebSocket. Estamos esperando. Tenemos una señal. Volvamos a correr. Se puede ver ese taller y abrir hasta tarde. Se puede ver que se trata de una transacción 44 de gestión. Los periodos del parámetro. Lo pasamos 0 cuentas o regalos. Y la instrucción es una matriz vacía. Verás que 44 sigma2, 44. Perfecto. Has creado tu primero como contrato inteligente. Tienes con un cliente fuera de la cadena. Ahora pasemos. Algunos datos. Vive para siempre en la blockchain y podemos ver las luces y este año, gracias crear poderosos, es contextos de materia. 6. Envía datos a un contrato inteligente en Solana: De acuerdo, así que bienvenidos. Estamos construyendo como cliente y ese contrato que recibe datos de un cliente. Vamos a crear biblioteca ML. Vamos a crear proyecto mecánico. Enviemos programa de la OTAN. Ahora. Vamos a abrir. Sí, me doy cuenta. Ahora necesitamos instalar las dependencias que estamos utilizando el programa lambda. También sigue la biblioteca. Gran biblioteca tipo. Perfecto. Ahora podemos construir terminal. Perfecto, Así que la construcción se hizo con éxito. Ahora vamos a la carpeta fuente. Vaya a ejecutar un programa llamado Les, elimine este código de calderas. A menos que empieces usando esta biblioteca del programa Helena o genial. Estamos utilizando la contabilidad para objeto para las cuentas que estamos pasando. En este caso, estamos pasando una matriz vacía porque solo queremos pasar algunos datos, algún número. También estamos utilizando punto de entrada. También para punto de entrada donde usar el progreso haría escribir todo el código que realiza las operaciones en el contrato inteligente. También estamos usando el mensaje para el registro de la consola, usando la clave pública para realmente pasar el ID del producto. Eso es lo único que estamos usando en este programa. Cerramos. Ahora definamos el punto de entrada. Estamos llamando a la estructura de procesamiento de funciones. Pero en realidad procesamos las instrucciones. Convierta los datos de datos decodificados por bytes. Definimos la instrucción de procesamiento de funciones. Pasamos como argumentos programa AD. Existe un objeto de clave pública, referencia a la clave pública. Después pasamos la cuenta como una matriz de objetos de información de cuenta. Por último, los datos de mi institución van a ser nuestra referencia a una matriz en el año de ocho bits. Después escribimos el resultado del programa. Ese es todo el código que realizará el contrato. Cierre de soportes angulares. Primero lo declaramos. También estamos encontrando una ventaja con la llave, la remanente. Asa. Puerta Trasera. Estos dos datos queremos dividir. Primero. Vamos a jugar también en. Entonces para obtener el valor que estamos pasando, estamos declarando un valor variable de tipo al firmar 64-bits. Usamos el remanente. Remanente. Estamos consiguiendo de 0 a no-inclusivos los ocho elementos de la matriz. Entonces estamos realizando una rebanada. hay luz en En realidad mapear estos datos, mapearlos a un número entero 64 de Little Endian. Estamos levantados, o si estaban arriba, fue exitoso. Establecemos el valor predeterminado. Perfecto. Mensaje de lista sustantiva. Estos son registro de consola. El valor. Desafortunadamente. Perfecto Hemos llegado con, estoy terminando la convocatoria para el contrato inteligente. Hemos pasado algunos datos y tenemos el codificado de Little Indians. Utilice el entero de 64 bits. Ahora es el momento de desplegar el programa y crear el cliente que pueda invocar. Este es mi contrato. Por lo que obtenemos el directorio para el CLI para el cliente cambiaría al directorio cliente. Y nosotros npm, necesitamos el gestor de paquetes. Lo configuramos todo como predeterminado. Vamos, npm instalamos las dependencias. Estamos usando lambda trabajo tres AS esperamos hasta que uno de nosotros adelante. Perfecto. Ahora, instalemos también. Para d no hay guión. No. Perfecto. Ahora vamos a instalar npm el gran número. Hay biblioteca de scripts para codificación y decodificación. Cep ser numerado OJS. Ahora vamos a crear nuestro índice dot ds, nuestro archivo TypeScript que comunicará una invocación, la cuadrícula del programa, la conexión al clúster. En realidad estoy a granel y envío algunos datos. Perfecto. Ahora primero, vamos a importar nuestra biblioteca Solana. Próxima lección. Requerir constante, el gran número Biblioteca. Requerir. Siguiente. Vamos a crear la conexión como una constante usando la clase de conexión. Cepillado de la URL de la API de Cluster. Definitivo, pero también puedes usar minuta si estás en código de producción. Genial. No creemos la función de la máquina. Principal. Quiero escribir todo el código. En primer lugar, definamos la clave. Mono está haciendo un caret. Crear la ONU, iterar desde nuestra clave privada es una matriz de enteros. ¿ Cómo obtenemos nuestra clave privada? Lambda nu? Podemos crear un nuevo, un nuevo par de claves. Tenemos que forzar. Esta es una forma en que puedes conseguir un guardián. Se ingresa a un fósforo. Obtienes la raíz para tu par de llaves. En este caso, ya creamos uno anterioridad y ya está en el comfy get. Git config, config, get. Podemos conseguir todos los impagos. Conseguimos nuestro más profundo y obtenemos una copia para obtener la matriz real de enteros. Esta es área de enteros. Lo copiamos y pegamos en la tasa de claves de ocho enteros de bits. Asignador, jugamos a través de un truco web más profundo. Trabajé tres, guardarla de llave secreta. Pasamos. A continuación, estamos definiendo la película. Entonces para obtener los parámetros, necesitamos realmente desplegar programa. Tenemos que volver. Vamos a definir estos parámetros como Web tres puntos clave pública. Clave pública-. Pasamos una cadena, string como constructor, hash it protón desde la corriente. Entonces tenemos que volver. Comprobamos nuestro saldo. Tenemos unos tan lemme epsilon que los solicita más tarde. El soga con Nana, el número de Solana que quieres tu indefinido. Conocemos WACC y vamos a BPF. Ahora tenemos la cadena de identificación del problema. Ahora. Contamos con la clave pública para el parámetro. Ahora vamos a crear los datos que vamos a enviar. Con un dato constante. Utiliza un búfer de tipo. Ofrecemos desde. Utilizamos la uint8. Fuera gran número. Vamos a hacer una pausa por ejemplo, en el número tres, estamos usando a los indios. Perfecto. Ahora vamos a crear una transacción. Transacción. El nuevo apartado. Entonces, ¿qué sección tiene múltiples instrucciones? Sólo estamos pasando qué instrucción a estas transacciones. Eso es invocar al programa enviando los datos. Tenemos la instrucción de transacción. La instrucción solo contiene las cuentas. Estamos pasando las cuentas que pueden ser de crédito o debitadas. En este caso, sólo estamos enviando una matriz vacía del objeto de transacción, requerimos el nombre de cuenta de claves y pasamos una matriz vacía, entonces necesitamos la programabilidad. Por último, los datos como buffer. Estamos pasando, estamos pasando estos ocho arreglos. Por último, vamos a crear una espera porque puede más de 1 segundo, un par de segundos. Utilizamos una Web tres enviando transacción confirmada. Aquí es cuando pedimos la billetera. O en este caso ya tenemos la asignación porque solo en TypeScript sin navegador. Ahora reaccionamos. Aquí, tenemos que pasarlo conexión la transacción y la matriz de firmantes puede ser más de un firmante. Por lo que se puede adeudar a más de un firmante o clave privada y par de claves públicas punto de pie. Entonces vamos a la consola de registro de la señal para obtener esta función de flecha. Nosotros decimos que son todos función queremos consola log. Perfecto. Ahora llamemos a la función principal. Ahora en el terminal web socket para que podamos ver los registros de los programas. Por lo que necesitamos el ID del problema. Lana registra programáticamente. Con una bandera URL. Definitivo. Obtenemos nuestro socket para que podamos leer todo el registro de la consola de los contratos inteligentes de asado desplegados en cadena. Ahora llamamos al cliente con MPI X d es nulo, y nuestro archivo. Aquí tenemos dos terminales. El WebSocket que imprimirá todo el contrato inteligente en la terminal principal. Estoy en el código de abuso terminal. Estamos imprimiendo la sigma dos. Como se puede ver. Puede tardar unos segundos porque Q hemos visto una herramienta y tenemos el valor número tres partes, siempre es genial. Esto también aparecerá en el, como ves si veo también su terminal local. Genial. Ahora volvamos a correr. Websocket puede cerrarse porque solo se abre por menos de un minuto. Puedes volver a correr, hubo un poco como puedes ver, recibimos el número tres en la transacción. Corriendo. Nuevamente. Como se puede ver, tenemos el valor 321 y escribimos el código, y también tenemos la herramienta de firma 44, y también en nuestra hoja nueva 44 permanente local. Entonces todo es perfecto. 7. Serializa y Serialize guarda datos en cuenta con el programa Solana: En este tutorial, queríamos aprender a serializar y desserializar los datos. Entonces CUTLAS significa crear un flujo de bytes. Podemos enviarlo. Después recibimos el flujo de bytes, deserializamos y procesamos, hacemos cambios en el objeto. Y luego volvemos a utilizar para guardar esa información en un programa Solana. Estamos utilizando tablero de abedul nos permite, por ejemplo, tenemos un objeto JSON y podemos ver a los aliados que en el cliente JavaScript luego emergen en nuestro contrato inteligente. Podemos deserializar en una estructura. Podemos usar todos los datos, hacer los cambios. Entonces podemos volver a ver y guardarlo en el contrato inteligente. Usando tablero de abedul significa representación de objetos binarios, licencia CDL para hashing usted mismo en proyectos críticos de seguridad que 30 casos, consistencia, seguridad y velocidad. Por lo que sin duda gran aliado de Solana porque se centra en la seguridad y la velocidad. Y como decimos, seguridad y consistencia. ¿ Qué es serializar y deserializar? La civilización es un mecanismo para convertir un objeto en una corriente de bytes. Para ello, utilizamos nuestro buffer. Tenemos un objeto convertido en, por ejemplo, una matriz. En los oídos de ocho bits. personalización es un proceso de conversión del flujo de bytes en un objeto regulado que no era un unido por el flujo de bytes. Empecemos. De acuerdo, entonces el primer paso, queremos crear la categoría, la categoría con la biblioteca plana. Después abrimos un estudio. Abre la carpeta. El primer paso será instalar dependencias. En primer lugar, la categoría, las dependencias de reglas. Y también estamos creando el directorio de clientes terminal CLA. En el Gadigal. Estamos utilizando para estos morados, este programa, lo racional, se puede conseguir el último. Ahora estamos usando 1.11.2. Entonces también estamos usando indicaciones Bosch. 0.91. Para biblioteca, biblioteca. Nosotros lo guardamos. Ejecutamos categoría. Estas son las dependencias que necesitamos para crear el contrato inteligente. Insulina. Voy a avanzar rápido porque tomará un tiempo. Bien, perfecto. Por lo que creamos una carpeta para que el cliente entrara a un CLI. Para el recrear, nosotros npm, necesitamos crear el paquete JSON, todo como predeterminado. Quieres entrar. Aquí como se puede ver, paquete Jason. Necesitamos crear dependencias que estamos utilizando para este proyecto. Este? Sí. Esto es para comunicarse con la API asiática o PCA. Podemos enviar transacciones, podemos consultar esos datos en una cuenta. También necesitamos a Ferroni. Estamos creando un TypeScript. La versión cuatro va a ser entonces están reduciendo tipos, null. Mañana corriendo TypeScript. Reducir la longitud es uno. Considerando que el amortiguador de lavado. Por estos seis. También estamos utilizando esto. Aprenderemos ese diseño de búfer. Con esto, vamos a ayudar en el lado del cliente a crear el buffer y los datos serializados. Veraz el fin de semana, manda un código sub byte. Para ello solución 3. De igual manera, mientras que usando más, utilicemos la más reciente. También para mí TypeScript, estamos usando. El último a bordo es para serializar y deserializar datos. Estos tableros en el lado del cliente, en el TypeScript, se puede utilizar aplicación directa. Cualquiera, cualquier aplicación que utilice TypeScript puede ser un navegador web, puede ser sólo un servidor. Por último, necesitamos construir estos paquetes npm, por lo que ejecutamos npm install. Estos se van a parar o las dependencias de clientes más antiguas para TypeScript. Voy a avanzar rápido porque tomará un tiempo. Comenzamos importando dependencias que estamos usando. Estamos usando el tablero. Y la junta. ¿ Qué más? Estamos usando el programa de lamina. Estamos utilizando la información de la cuenta. Estamos utilizando la siguiente cuenta, información de cuenta. Utilizando también desde el programa Solana, el punto de entrada. Desde el punto de entrada. Protón. También estamos utilizando el mensaje para el registro de consola en el salón de cadena larga un clúster. Y estamos usando el programa. tanto que el uso del programa, estás viendo coma. Y estas son las dependencias que estamos utilizando. Ahora, el siguiente paso, puerta este, define el tipo de historia de Estate cuando cuentas. Vamos a escribir la notación. Esto se conoce como rasgos. Por lo que podemos heredar parte de la funcionalidad. Verás al final de este objetivo que vamos a utilizar, esta área miente. En este caso, tenemos razón. Estamos creando como públicos. Estamos llamando a nueva cuenta. Sólo estamos teniendo un miembro. Cuenta son de tipo 32. Perfecto. Ahora vamos a crear el punto de entrada para la función de instrucción de procesamiento del programa. Ahora vamos a crear procesamiento de funciones públicas parámetros de instrucción deprocesamiento de funciones públicas. Estamos utilizando aquí. Referencia al tipo. Estamos pasando las cuentas MLF, referencia a otra matriz de información de cuenta. Por último, estamos pasando datos de producción. Pero es una referencia a una matriz de enteros de 8 bits. Perfecto. Nosotros lo guardamos. Al final. Necesitamos crear la raíz de los programas. Escribimos todo nuestro código, y al final usamos fotón. ¿ De acuerdo? Vamos a escribir aquí. El primer paso es conseguir la cuenta. Por lo que podemos leer la tasa de la cuenta iniciada. Recuerde, las cuentas pueden mantener el saldo. Bumpkins y Beta. La violencia se conoce como equilibrio Solana o puedes sostener un token, un NFT por ejemplo. Vamos a escribir el traje de parámetros. El primer paso es crear un éter. Neto. Cuentas iguala referencia, referencia a las cuentas, pero sí consigues la primera cuenta. Tu cuenta. Entonces es igual a contar cuenta. Nosotros ahorramos. Tenemos que devolver una promesa. Si quieres conseguir la segunda cuenta. Si vienes, estás pasando múltiples cuentas, puedes tener un recuento para escribirlas ambas. Momento, sólo tenemos una cuenta. Pasando. El siguiente paso, tenemos la cuenta. Ahora, empecemos a decodificar la instrucción que hemos pasado. Primero trabajamos. Se puede ver aquí en estos dos, tenemos trabajando con esto con cuentas. Ahora vamos a procesar los datos de la institución. Podemos consola de registro el código. Empecemos a llamar. El primer paso. Podemos crear una variable, podemos llamarla datos, recibirla. Que estamos recibiendo una codificación, un CDL. Dije datos de cliente mayor. Necesitamos primero elevación DCD. Hemos recibido con estimación de cuenta las líneas CDR. Al ejecutar estos metales a partir de los datos de instrucción. Nosotros mapa. Esto es para evitar los datos, y manejamos el error. Escribimos el mensaje si hay un estrecho, ancho, por ejemplo, solamente. En realidad. Por último, escribimos el programa instrucción inválida y datos. Ahora, usamos bromo. Ahora bien, si esto no lee a través de mi estrecho, podemos consola log objeto que no es. Aquí todo está bien. Ahora, hagamos un cheque de seguridad. Ya hemos trabajado con los datos. Y con las cuentas. Obtenemos la cuenta. Al final del programa, lo vamos a utilizar. Y ahora trabajemos con el protón. Tal vez. Hagamos una comprobación de seguridad porque descargas de la cuenta. La mayoría también en el ID del producto. Por lo que sólo usted puede modificar los datos. Imagina que pones esto públicamente y cualquiera puede modificar los datos. No será seguro para tu proyecto. Corriendo aquí, comprobación de seguridad. Antes de escribir algo, necesitamos escribir los cheques de seguridad. Si el propietario de la cuenta, Él no es igual al programa. Vamos a devolver el programa, terminado. Mi contrato. No nos estrechamos. Se aprobará sobre tipo metal en forma cuadrática. Ok. Perfecto. Si todo está bien. Si eres el propietario, mandas la cuenta y la cuenta que Cal este contrato inteligente también es el propietario del contrato. Ahora vamos a aumentar este número total de veces. Al sumar el primer CELAC, los datos de la cuenta. Por lo general tenemos la licencia CDL, los datos, la recibimos. Pues ahora necesitamos deserializar con estos mismos métodos, tanto los datos de la cuenta. Hagamos eso. Vamos a dar cuenta brevemente. También usamos estos metales que yo, campesinos esclavos. Utilizamos el conteo, la referencia a la cuenta. interrogación. Todo es perfecto. Perfecto. Tenemos que aumentar el contador aquí hemos deserializado los datos. Ahora, usamos esta cuenta. Vamos a tirar del valor equivalente que el hogar receptor. Queremos cambiar el mostrador. El contador. Vamos a sumar el receptor. Contar estamos agregando. Por último, necesitamos ver retrasos. Decimos, necesitamos cambiar estos dos mutables. Podemos cambiar. Por último, necesitamos ver sus vidas. Nuevamente, debate que escribimos aquí. Retrasos en la cuenta. Podemos usar esto, te das cuenta, porque estamos usando placas como ves aquí, estamos usando la cuenta circulante. Ambos estaban utilizando la herencia de estos rasgos de la servidumbre. Porque como saben, gross no es una programación orientada a objetos, sino que utiliza rasgos para hacer este tipo de cosas con anotaciones. Guión, esto recordará protocolos. Por ejemplo, vemos los piojos y usamos este objetivo, la cuenta. Moral. Perfecto. Por último, podemos tal registro de consola. Podemos escribir esos. Pasamos la cuenta escrita. Genial. Por lo que podrían contratar para TBL AC y BC TLA en datos. Ahora listos, necesitamos desplegar este contrato. Por lo que vamos a la terminal. Tenemos un tema con ellos, hito Gloucester con el DevNet. Estamos desplegando a la red de pruebas que está operativa ahora porque mucha gente está llamando en Solana con grande. Hay muchos desarrolladores. Muñoz. Volvemos a nuestra terminal y necesitamos cambiarlos. Para cambiar, creces Solana, entra en conflicto con la URL de la bandera, y estableces la prueba. Ahora estás comunicándote con el RPC, ¿no? Te revisas así que Lana, equilibrio, intestinal, puedes pedir algunos tenemos alguna Solana, puedes solana soltar uno por ejemplo. Tenemos uno. Por último, ejecutamos la vista de categoría BPF para compilar el programa. Podemos subirlo a ellos. Desplegado a la Gloucester. Gloucester. Perfecto. Entonces para desplegar copias, queremos conseguir voy a querer conseguir un producto. Vamos a revisar el parámetro V en un explorador de bloques ella. Por último, copias tu parámetro. Explorarás un dócil y ese explorador de bloques azules. Necesitas cambiarlos. ¿ No es así? ¿ No es así? Un poco lento porque hay mucha gente haciendo programas en este momento en Solana y en todo el mundo. Puedes ver que escribiste aquí lemme, lemme. Se puede ver que hay mucha gente también terminó alguien en estos parámetros basados en socket web. Aquí puedes ver la dirección del programa. El violencia es ejecutable. El peso de esta hermosa hay cuenta también el dueño de la cuenta que tienen para sole. Va a ver 4.1. Ahora que hemos desplegado nuestro programa, queremos trabajar del lado del cliente. Nos trasladamos a la carpeta cliente. Ahora vamos a crear el cliente. Por lo que creamos la carpeta para la CLI para el cliente. Fuimos a crear aquí un nuevo archivo, grupo de tuberías de libro índice. Tenemos el expediente. Queremos copiar. Lo primero es importar las dependencias. Estamos usando tablero. También estamos importando web tres desde Solana. Considerando que importar capa de búfer términos dilema. También somos 14 tampón. Mejor efecto. Ahora, definamos su cuenta de clave pública donde vamos vamos a ser una web. Punto con fugas. Perfecto. Ahora vamos a crear una clase que almacenará el estado de la cuenta DayGreeting. Creamos el vaso, renombralo. Contar. Lo que vamos a cubrir contar ahí, eso va a ser inicializarlo como 0. Constructor con los campos AS contador. El número es igual a dos. Los campos son campos. Entonces ponemos estos contador. Perfecto. Ahora definamos el esquema que lo usa para serialización y deserialización. Entonces pongamos aquí, escribimos como quimio. Quimio es igual a nuevo, localizándolos. Aquí. Cuenta de lectura plus. Usando el tipo es que estamos usando con el contador de campos. Firma 32. Cerramos esto. Perfecto. Ahora vamos a conseguir el tamaño del saludo. Donde se ven las CLAS. Clas hace compatibles. Estos objetos, tanto en JavaScript como en engrossed, en este caso con TypeScript. Por lo que usamos, queremos conseguir el tamaño de estas CLAS, un mapa de objetos porque queremos mandar algún Solana. No compramos, no pagamos renta, y nos quedamos para siempre en el clúster de destino. Escribimos const es igual a c retrasos. Esquema Daysaludos. Creamos un nuevo plus una nueva instancia de la clase de superación cuenta Perfecta coma. Entonces obtenemos la longitud. Con estas programaciones. Con esta utilización, podemos obtener tamaño negativo de cosa. Podemos llegar más tarde, pasamos el tamaño para que podamos calcular el número de Lamport's que necesitamos para estar exentos de renta. Lo siguiente es crear una conexión. Entonces vamos a crear una conexión. Como digo, estamos usando, ahí, ¿no? Debido a la evidencia no está funcionando en este momento. Se ha ido. Conexión, una nueva conexión. Cluster de libros. El test no porque las divinidades no funcionan en este momento. Mucha gente son parámetros siempre grandes. Tom se. La próxima semana podemos asumir función. Vamos a crear una función asíncrona main. Aquí. Vamos a crear eso igual a desde. Y necesitamos aquí, estamos consiguiendo la llave. Entonces necesitamos nuestra matriz de entero de ocho bits. Entonces para conseguir ese d mu, es necesario escribir la bandera de fuerza. Trabaja para Lana. Con el plan de fuerza. Ya tengo uno, así que voy a hacer Solana. Aquí tengo mi par de claves, ese es Apache CLI. Cli. Se puede conseguir que me consiga conseguir estos números, estos copia. Entonces el siguiente paso es crear un buffer. Entonces vamos a usar ese diseño de búfer. Todo esto es una dependencia de app, escapadas alumna para que podamos interactuar y podemos usar JavaScript para crear un buffered, crear el código byte y enviarnos ese bytecode a todos y contrato asma. Y podemos desserializar datos y luego realizar las operaciones y DTLS de nuevo para guardarlos. Entonces estamos creando un diseño igual a qué diseño de búfer. El tipo, struct. Más lleno. Asignación 32. Son perfectos. Así que ahora vamos a dejar los datos. Buffer. Estamos, con el tampón. Estamos asignando el diseño. Perfecto. Por último, retrasaremos los retrasos. O en frío, se cuentan. Podemos decir, por ejemplo, un valor tres. Datos. Perfecto. Ahora tenemos nuestro tampón. Ahora vamos a crear el cedente porque necesitamos una cuenta, estas claves necesitan para crear un firmante que sea un guardián. Podemos pagar el costo de transacción por el precio de invocar el programa y crear la cuenta para almacenar los datos. Seamos diseñador. Entonces escribimos, llamémoslo firmante. Desde el punto tipo tres, mantente desnudo. Desnudo. Ahora, estamos obteniendo de clave secreta, clave pública. Ahora tenemos el centro. Ahora vamos a crear un poliquetete con un permanentemente tenemos el parámetro en la parte superior. Aquí. Ese programa constante. El tipo, Web three dot, crea una nueva clave. El programa tal vez. Perfecto. Por lo que ahora tenemos una clave pública. El permanentemente. Ahora, la primera vez que llamamos al programa, necesitamos crear un salvado. Para crear lo primero que les creamos cuenta que estamos creando. Para que puedas poner cualquier cosa. Lo que debe ser único. Por el desvío de élite de seguridad del salón. Tema de almacenamiento en caché. Creamos la cuenta con la semilla. Pasamos la clave pública firmante, esta IV, que puede ser cualquier texto. Textos en el programa con el siguiente paso es declarar, dejar que esto sea igual a 0, luego conseguir el farola para obtener la excepción de renta. ¿ Verdad? Tabla de terrones es igual a esperar. Utilizamos una conexión. Excepción de saldo mínimo. Pasamos tamaño rey griego. Perfecto. Perfecto. A continuación, vamos a crear la transacción. Estamos pasando dos instrucciones. La primera instrucción para crear estas cuentas y transferir los puertos Lamp, por lo que vive para siempre en la segunda transacción, usaremos para invocar el programa. Así que vamos a conseguir calificación la primera, la primera transacción. Entonces primero definamos la transacción. Entonces vamos a crear una sección. Llamémoslo transacción. Para este proyecto, estamos creando una nueva web de tres puntos. Perfecto. Acordamos esa transacción. Ahora menos consumo. Estamos utilizando un programa de sistema web. Porque el problema del sistema es quien creó la cuenta. Crea la cuenta con barato. Pasar un objeto de clave deficiente es la asignación. Para base totalmente clave. La clave pública. Entonces este IEP reuniones. Perfecto. Entonces nueva clave de cuenta. Entonces los puertos de la Lámpara para ser tamaño de espacio de muestra aleatoria. Por último, el programa tal vez más una coma se cierra. **** aquí. Cerramos aquí. Primera transacción, el programa del sistema está creando una cuenta, enviando algunos puertos Lamp a la cuenta. El cuenta es renta XM y puede vivir para siempre en la blockchain. Ahora necesitamos crear otra transacción. De acuerdo, así que ahora agreguemos una segunda instrucción a una transacción. A una sección más simple. El apartado puede tener múltiples instrucciones. Si una instrucción falla, toda la transacción fallará y volverá al estado anterior. Así que vamos a transeccionar la aplicación dot llamada Nuevo con tres estructura de transacciones doc. Ahora pausemos las primeras cuatro teclas. Aquí pasamos la cuenta. En este caso estamos pasando. Para clave pública. Tenemos que pasar un objeto. Por el bien público. Estamos más allá de la cuenta. Clave, firmante. Esta cuenta no es firmante y facilitan el trabajo justo a través porque estamos ahorrando eso. Perfecto. De acuerdo, entonces el siguiente en el objeto e es el producto. Tal vez. El último debate. Perfecto. Llamamos a nuestra segunda instrucción. Estamos diciendo que estos compinches de datos, estos tampón con un contador. Estamos diciendo el número tres en el mostrador. Entonces todo lo que ejecutamos esto, llamamos a esta función va a contrarrestar en el cúmulo del cuello onchange, hinchado. Por último, vamos, despertemos y confirme la transacción. Con más allá de esa conexión. La transacción, la matriz de firmantes, firmantes pueden ser múltiples firmantes. En este caso sólo uno. Entonces punto. Después pasamos la señal para provocar una mirada. Razonable. Por último, trabajemos aquí una nueva función. Denunciar los saludos. Casa1, una función sinc. Primero usamos una constante, obtenemos la contabilidad para. Por lo que estamos solicitando desde la blockchain la cuenta. Estamos leyendo el número de Saludos, el número en el contrato inteligente en la cuenta que esto podría contraer derechos sobre los datos, esperamos nuestra conexión. Utilizándolo la contabilidad de estas listas de cuentas específicas. Usando su esquema de saludo, cuenta, cuenta, los datos de la cuenta. Por último, estamos registrando la consola. Coma, coma. Usamos un número, saludo, contador, coma, coma. Cierre este reporte. Entonces ejecutamos este código. Vamos a correr mpm. T es índice. Ahora también podemos lemma de masa huesada. Necesitamos el cromosoma. Contamos con chocolates preliminares. Vamos a llamarlo así. Tenemos que manejar esta bijección. Para poner aquí si la información de la cuenta es igual a gamma. Genial tener algunos errores para que podamos depurar y puedas aprender. Porque necesitamos no error, pero necesitamos ejecutar la función principal. Al final, ejecutamos la función principal. Vamos a abrir este abierto, lo haré tan bueno, porque tú estás aquí. Estamos abriendo un socket web a aquí, a los troncos de la cadena. Tenemos el número tres, ¿verdad? A lo mejor abro el WebSocket tarde. Entonces si quieres volver a ejecutar este código, recomendado, puedes cambiar. Nos vemos que cuentan cuál es la mejor manera de comentar esto porque no estamos creando una cuenta ya llamada la cuenta. También tenemos aquí donde cuenta en lugar de BB King y conseguir con barato. Recomienda estas líneas. Y creamos esta clave mal equivale a tres nuevos. Totalmente clave. Pasamos aquí. Por ejemplo, enumerar cuatro en lugar de tres. Por lo que ahora quiero tener siete. También aquí. Conectémonos a un socket de servidor. Curación Visual Studio o los registros fuera de la cadena aquí del cliente. Y en la terminal, estamos creando aquí un socket para desbloquea el Unchained en el clúster. Por lo que tienen troncos diferentes. Dijimos que la depuración de doble cara es genial. Debemos tener ahorrando siete veces grid porque estamos sumando el número que pasamos se suma a las siete veces anteriores. A lo mejor el taller, no funciona. Vamos a intentarlo de nuevo. Comprueba si estamos en la corriente. De acuerdo, así que ahora empecemos por ejemplo, de siete a 14. Ok, finalmente, hay un truco. Si no consigues los logs, Los sin marcar, puedes aquí a todos los logs, entonces puedes copiar los viejos, los textos antiguos y puedes revisar, por ejemplo, podemos empezar a escribir eso. Escribes solo Solana mira URL y pasas esto. Ejecutamos el programa. Necesitas copiar todos los, todos los, todos estos porque a veces no sé por qué no lo hace aquí a un producto específico. Pero aquí lo verás. Funcionará donde estamos copiando todo el texto, buscando nuestro programa. Esperamos hasta que sea a las 2121, por lo que copiamos todo común. Cuando copiamos, podemos abrir un nuevo pegado todo el texto para Controlar un Control T o Comando un visor en mi hoja de control. Pega todos los troncos. Hay una gran cantidad de troncos. Por eso no está funcionando. Usted busca su para su producto, tal vez los registros. Porque hay mucha gente, sé que hay mucha pintura de bootcamp en el mundo. Aquí están los registros eliminando el contador siete. Tal y como lo ves. Esto es genial. Tenemos derecho al contrato definitivo, mismos datos serializando y deserializando y curando para los registros, tanto en línea como fuera de la cadena. Tan maravilloso. Estás un paso más cerca de tu objetivo.