Внедрите счетчик на основе 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