Implementar un contador basado en AO que incluya front-end y back-end.
Autor: Li Dagou
Revisado por: outprog
Fuente: Content Guild - Noticias
Contador AO | Inicio rápido de AO (1)
Este artículo implementa el primer caso sobre AO, un contador basado en AO. Cada vez que se hace clic en un botón, el contador es +1 y la dirección de la persona que hace clic se registra en la lista del proceso AO.
Referencia de:
https://github.com/iamgamelover/ao-twitter
Repositorio:
https://github.com/rootMUD/ao-counter
Versión Vercel:
https://ao-counter.vercel.app/
Versión de tejido:
https://arweave.net/bleZF-gxe_vv0RYMNhHABsvq6wvhvmBBnQ5lfzwJJKQ
Procesar en
ao.enlace
:
https://www.ao.link/#/entity/Rijbx6FduUMdCZM0tJ4PPxXljUNy1m0u_kmMIFGFM5c
0x01 ¿Qué es AO?
💡Referencias——
AO: Construyendo un Erlang descentralizado: https://permadao.com/permadao/AO-Erlang-ae1c8ab020b24e379457d92014e3d09e
Detalles técnicos de la computadora hiperparalela:
https://permadao.com/permadao/ao-9e58170a1c9c41628b1732eb13098209
Cuando hablamos de programas, podemos resumirlos en dos cosas: "cómputo" y "almacenamiento".
Ethereum comienza con la computación distribuida, primero se enfoca en contratos inteligentes y luego avanza hacia el almacenamiento, para que podamos ver
ETH
Almacenamiento
。
Arweave comenzó desde el almacenamiento distribuido, primero completó la capa de almacenamiento y luego pasó a la informática, para que podamos ver
HACIA
。
AO hereda de la filosofía Erlang.
Entonces Erlang está profundamente entrelazado con AO y todo lo que construimos, y no es solo arquitectura, es una fusión filosófica y casi estética. Aunque ya no hacemos esas llamadas telefónicas de los años ochenta, todavía está bastante cerca. E incluso diseñamos un logotipo llamado Super Beam.
——AO: Construyendo un Erlang descentralizado
El núcleo de la filosofía de Erlang son los principios de diseño de procesos livianos y el mecanismo de paso de mensajes entre procesos:
Por lo tanto, podemos entender AO como una Red de Procesos Descentralizados Perma construida por innumerables Procesos. El punto clave es que los Procesos están aislados entre sí y los diferentes Procesos no comparten el grupo de memoria.
Este es un modelo muy abstracto y, cuando se implemente en escenarios de aplicación, habrá muchas posibilidades fascinantes.
Por ejemplo, para construir
Red autónoma de agentes de IA
:
Referencia: https://bodhi.wtf/space/5/15063
Para obtener más información sobre la filosofía de Erlang, consulte:
Construyendo sistemas distribuidos confiables frente a errores de software:
https://bodhi.wtf/space/5/15083
0x02 Implementación y despliegue del Proceso Lua
Primero implementamos un proceso ligero a través de Lua.
2.1 Guía de funcionamiento de CLI minimalista
Cómo instalar el cliente, consulte:
https://cookbook_ao.arweave.dev/tutorials/begin/preparations.html
Iniciamos una CLI de aos a través de aos:
$ en
aprobar
ao.id
Podemos ver la identificación del proceso actual:
ao> ao.id
existir
ao.enlace
Arriba podemos ver información relacionada con este proceso:
https://www.ao.link/#/entity/Rijbx6FduUMdCZM0tJ4PPxXljUNy1m0u_kmMIFGFM5c
Luego pasamos:
ao> .cargar contador.lua
Puedes cargar el código en
proceso
adentro.
2.2 Análisis del código central del proceso
Al principio definimos una lista
Jugadores
y un contador de números enteros:
Controlador central ——
"AddNew" es el nombre del controlador,
Handlers.utils.hasMatchingTag("Acción", "Agregar nuevo"
)
El operador que representa el mensaje es "AddNew", que activa este controlador.
Una función anónima se ejecuta cuando se activa. La función anónima realiza dos operaciones:
Insertar un nuevo elemento en la lista
artículo
, el valor es msg.Data.
actualizar contador a
Jugadores
La longitud de la lista.
Handlers.utils.reply ("bizz buzz") (mensaje)
: El valor de retorno de la función es un zumbido.
La función principal del segundo controlador es utilizar otros códigos fuente como valores de retorno, de modo que podamos lograr el código fuente abierto de una manera complicada :).
existir
ao.enlace
Haga clic en Obtener * para ver información:
2.3 Más operaciones con CLI
Después de cargar
.dos
Después de crear el archivo, podemos practicar más operaciones en la CLI.
Jugadores
Ingrese la variable para ver el valor.
💡También puedes ejecutar el código lua directamente.
Enviar ({ Destino = ao.id, Datos = "0x0", Acción = "Agregar nuevo" })
Enviar información a Proceso.
0x03 Implementación y despliegue del front-end de React
Lua Process es equivalente al back-end de un programa tradicional. Después de implementar Lua Process, podemos desarrollar el front-end e implementar la llamada a Lua Process para completar nuestro programa.
3.1 Código central de front-end
Ver:
https://github.com/rootMUD/ao_counter/tree/main/dapp
3.1.1 Variables ambientales
existir
dapp/src/app/util/consts.ts
Configure el ID Único del Proceso, en este caso AO_COUNTER:
3.1.2 Llamada a variable de proceso
dapp/src/app/pages/SitePage.tsx :
encapsulado llamando
obtener datos de AO
Método para obtener las variables en Proceso.
3.1.3 Llamada a función de proceso
existir
botón
Cuando se hace clic, se llama a la función handleClick y luego se llama al método messageToAO para pasar información al proceso.
3.1.4 Módulo de conexión de billetera
transferir
ArConnect
Wallet, obtenga la dirección de Wallet.
3.2 Implementar en Vercel
estamos en
dapp
El complemento de Vercel está instalado, por lo que se puede implementar en la plataforma de alojamiento de Vercel con un comando de una línea:
Una vez completada la implementación, podemos acceder a ella:
https://ao-counter.vercel.app/
3.3 Programa imparable: implementado en Arweave
También podemos optar por alojar el programa front-end para
tejer
para lograr una descentralización completa.
💡Vídeo guía:
https://www.youtube.com/watch?v=Va5B4SE8Zu8
Tome ArDrive como ejemplo:
1/ pase
construcción de hilo
Generar páginas estáticas
2/ Sube la carpeta a ArDrive
3/ Generar para sitio web
manifiesto
4/ copia
manifiesto
identificación para acceder:
aprobar:
https://arweave.net/{ID de transacción de datos}
¡Ahora puede acceder a sus aplicaciones implementadas!
5/ Configurar el nombre de dominio tradicional
Cree un nuevo almacén utilizando este almacén como plantilla:
https://github.com/NonceGeek/scaffold-wabi-sabi
Modificar index.html:
Modifique la URL del escritorio y la URL móvil:
Importe la página de salto en vercel:
Configure el nombre de dominio (no se detalla aquí):
¡Entonces podrás acceder a él a través de un nombre de dominio personalizado!
https://ao-counter.rootmud.xyz/
🏆 Hay premios por "detectar errores": si encuentra errores tipográficos, oraciones incorrectas o descripciones incorrectas en este artículo, haga clic en mí para informarlo y obtendrá incentivos.
Descargo de responsabilidad: el contenido de este artículo es solo de referencia y no constituye ningún consejo de inversión.
🔗 关于 PermaDAO: Sitio web | Gorjeo | Telegrama | Discordia | Medio | YouTube