Внедрите счетчик на основе AO, включая интерфейсную и серверную части.

Автор: Ли Дагоу

Проверил: outprog

Источник: Гильдия контента – Новости

АО-счетчик | Быстрый старт АО (1)

В этой статье реализован первый случай AO — счетчика на основе AO. При каждом нажатии кнопки счетчик получает +1, а адрес кликера записывается в список в процессе AO.

Ссылка из:

https://github.com/iamgamelover/ao-twitter

Репо:

https://github.com/rootMUD/ao-counter

Версельская версия:

https://ao-counter.vercel.app/

Версия Arweave:

https://arweave.net/bleZF-gxe_vv0RYMNhHABsvq6wvhvmBBnQ5lfzwJJKQ

Процесс включен

ao.link

:

https://www.ao.link/#/entity/Rijbx6FduUMdCZM0tJ4PPxXljUNy1m0u_kmMIFGFM5c

0x01 Что такое АО?

💡Рекомендации——

АО: Создание децентрализованного Erlang: https://permadao.com/permadao/AO-Erlang-ae1c8ab020b24e379457d92014e3d09e

Технические подробности гиперпараллельного компьютера:

https://permadao.com/permadao/ao-9e58170a1c9c41628b1732eb13098209

Когда мы говорим о программах, мы можем разделить их на две вещи — «вычисление» и «хранение».

Ethereum начинается с распределенных вычислений, сначала фокусируется на смарт-контрактах, а затем переходит к хранению, так что мы можем видеть

ЭТХ

Хранилище

Arweave начал с распределенного хранилища, сначала завершил уровень хранения, а затем перешел к вычислениям, так что мы можем видеть

К

AO наследует философию Эрланга.

Итак, Эрланг глубоко переплетен с АО и всем, что мы строим, и это не просто архитектура, это философский и почти эстетический синтез. Несмотря на то, что мы больше не занимаемся телефонными звонками из восьмидесятых, это все равно довольно близко. И мы даже разработали для него логотип под названием Super Beam.

——AO: Создание децентрализованного Erlang

Ядром философии Erlang являются принципы проектирования облегченных Процессов и механизм передачи сообщений между Процессами:

Следовательно, мы можем понимать AO как постоянную децентрализованную сеть процессов, построенную из бесчисленного количества процессов. Ключевым моментом является то, что процессы изолированы друг от друга, и разные процессы не используют общий пул памяти.

Это очень абстрактная модель, и ее реализация в сценариях приложений откроет множество интересных возможностей.

Например, для строительства

Автономная агентская сеть искусственного интеллекта

:

Ссылка: https://bodhi.wtf/space/5/15063.

Для получения дополнительной информации о философии Erlang посетите:

Построение надежных распределенных систем в условиях ошибок программного обеспечения —

https://bodhi.wtf/space/5/15083

0x02 Реализация и развертывание процесса Lua

Сначала мы реализуем облегченный процесс через Lua.

2.1 Руководство по работе с минималистичным интерфейсом командной строки

Как установить клиент, смотрите:

https://cookbook_ao.arweave.dev/tutorials/begin/preparations.html

Запускаем aos CLI через aos:

$ в

проходить

ao.id

Мы можем просмотреть идентификатор текущего процесса:

ао> ао.id

существовать

ao.link

Выше мы можем увидеть информацию, связанную с этим процессом:

https://www.ao.link/#/entity/Rijbx6FduUMdCZM0tJ4PPxXljUNy1m0u_kmMIFGFM5c

Затем проходим:

ao> .load counter.lua

Вы можете загрузить код в

процесс

внутри.

2.2 Анализ основного кода процесса

Вначале мы определили список

Игроки

и целочисленный счетчик:

Основной обработчик ——

«AddNew» — это имя обработчика,

Handlers.utils.hasMatchingTag("Действие", "Добавитьновый"

)

Оператор, представляющий сообщение, — «AddNew», который запускает этот обработчик.

Анонимная функция выполняется при срабатывании. Анонимная функция выполняет две операции:

Вставить новый элемент в список

элемент

, значение — msg.Data.

обновить счетчик на

Игроки

Длина списка.

Handlers.utils.reply("жужжание")(msg)

: Возвращаемое значение функции — ошеломляющее.

Основная функция второго Handler — использовать другие исходные коды в качестве возвращаемых значений, так что мы хитрым способом добиваемся открытого исходного кода :).

существовать

ao.link

Нажмите «Извлечь *», чтобы просмотреть информацию:

2.3 Дополнительные операции с CLI

После загрузки

.два

После создания файла мы можем попрактиковаться в дополнительных операциях в CLI.

  • Игроки

Введите переменную, чтобы просмотреть значение.

💡Вы также можете запустить код Lua напрямую.

  • Отправить({ Target = ao.id, Data = "0x0", Action = "AddNew" })

Отправьте информацию в Process.

0x03 Внедрение и развертывание интерфейса React

Lua Process эквивалентен серверной части традиционной программы. После реализации Lua Process мы можем разработать интерфейс и реализовать вызов Lua Process для завершения нашей программы.

3.1 Основной код внешнего интерфейса

Видеть:

https://github.com/rootMUD/ao_counter/tree/main/dapp

3.1.1 Переменные среды

существовать

dapp/src/app/util/consts.ts

Настройте уникальный идентификатор процесса, в данном случае AO_COUNTER:

3.1.2 Вызов переменной процесса

dapp/src/app/pages/SitePage.tsx:

инкапсулируется путем вызова

getDataFromAO

Метод для получения переменных в Process.

3.1.3 Вызов функции процесса

существовать

кнопка

При нажатии вызывается функция handleClick, а затем вызывается метод messageToAO для передачи информации в процесс.

3.1.4 Модуль подключения кошелька

передача

АрКоннект

Кошелек, получите адрес кошелька.

3.2 Развертывание в Vercel

мы в

децентрализованное приложение

Плагин Vercel установлен, поэтому его можно развернуть на хостинговой платформе Vercel с помощью однострочной команды:

После завершения развертывания мы можем получить к нему доступ:

https://ao-counter.vercel.app/

3.3 Неудержимая программа — развернута в Arweave

Мы также можем разместить интерфейсную программу для

Arweave

добиться полной децентрализации.

💡Видео-руководство:

https://www.youtube.com/watch?v=Va5B4SE8Zu8

Возьмем ArDrive в качестве примера:

1/ проход

сборка пряжи

Генерировать статические страницы

2/ Загрузите папку на ArDrive.

3/ Создать для веб-сайта

манифестировать

4/ копия

манифестировать

идентификатор для доступа:

проходить:

https://arweave.net/{идентификатор транзакции данных}

Теперь вы можете получить доступ к развернутому приложению!

5/ Настройте традиционное доменное имя.

  • Создайте новый склад, используя этот склад в качестве шаблона:

https://github.com/NonceGeek/scaffold-wabi-sabi

  • Измените index.html:

  • Измените DesktopURL и mobileURL:

  • Импортируйте страницу перехода на Vercel:

  • Настройте доменное имя (здесь не подробно):

Тогда вы сможете получить к нему доступ через собственное доменное имя!

https://ao-counter.rootmud.xyz/

🏆 За «поимку ошибок» предусмотрены призы: если вы обнаружите в этой статье опечатки, неправильные предложения или неправильные описания, нажмите «Мне», чтобы сообщить об этом, и вы получите поощрения.

Отказ от ответственности: Содержание этой статьи предназначено только для справки и не представляет собой каких-либо инвестиционных советов.

🔗 关于 PermaDAO:Веб-сайт | Твиттер | Телеграмма | Раздор | Средний | YouTube