Cointime

Download App
iOS & Android

Обзор контракта АО и получение исходного кода

Validated Project

Хотите узнать механизм действия контракта, применяемый на АО? Итак, давайте возьмем код контракта и выясним. Используйте апплет Python, чтобы легко получить контракт указанного процесса.

Автор: txohyeah

Проверил: outprog

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

Введение в АО

Что такое АО?

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

AO — это вычислительная функция, разработанная Arweave на основе улучшения распределенного хранилища. Она направлена ​​на достижение комплексной децентрализованной поддержки приложений и соответствует пути развития вычислений Ethereum, а затем хранения. Проще говоря, AO представляет собой смарт-контракты или вычислительную мощность на платформе Arweave и является расширением логического уровня поверх решения постоянного хранения.

АО состоит из трех подразделений: МУ/СУ/КУ.

MU: Получает сообщения, отправленные пользователями, чтобы убедиться, что они подписаны.

СУ: Ставьте временные метки и сортируйте сообщения, затем группируйте их и публикуйте в Arweave. СУ также является главным героем, которого мы будем использовать сегодня, и он сыграет важную роль при рассмотрении контракта позже.

БЧ: Обработайте сообщение и подсчитайте результат.

Какой процесс выполняется на AO?

Какой процесс выполняется на AO?

AO, по сути, представляет собой суперпараллельный компьютер, построенный на основе протокола данных, где форма существования данных является базовым элементом сообщения, определенным в AO. Далее Процесс играет важную роль в обработке Сообщения и является базовой единицей обработки сообщений на АО. Процесс выполняется на CU и может рассматриваться как виртуальная машина на CU. Таким образом, Process содержит базовую возможность получать и отправлять сообщения внутри сети. Затем разработчики создают возможности обработки сообщений для Process, добавляя в Process обработчики. Контракт, который будет обсуждаться позже, фактически развертывается путем отправки сообщения в Process и последующего использования встроенного обработчика _eval. Добавленный обработчик можно понимать как функцию обработки сообщений контракта.

Жизненный цикл процесса

Если мы хотим найти аналогию в нашем нынешнем мире, то я думаю, что контейнер (Container) в докере может стать хорошим сравнением и пониманием Process. Далее я буду использовать жизненный цикл контейнера в докере, чтобы сравнить жизненный цикл процесса.

Все мы знаем, что создание Контейнера в докере зависит от образа (Image). Например, создайте Контейнер MySQL на основе Образа MySQL, а затем вы сможете вызвать сервис MySQL на этом контейнере. То же самое относится и к процессам в АО. Создание процесса зависит от модуля, а также будут модули с разными функциями. Есть самые простые модули, модули, поддерживающие запланированные задачи, и модули, включающие sqlite. В настоящее время разработчики могут выбирать из сотен модулей для создания собственного процесса. Кроме того, вы также можете создать свой собственный модуль. Я считаю, что в ближайшем будущем также появятся модули, поддерживающие графические процессоры, и модули, поддерживающие различные возможности искусственного интеллекта.

Процесс в AO также отличается от контейнера в докере. Контейнеры в Docker поддерживают различные действия, такие как запуск, остановка и удаление. В настоящее время в Процессе АО таких операций нет. В конце концов, в мире децентрализованных приложений эти функции, контролируемые централизованными лицами, кажутся очень противоречивыми. Запуск процесса в АО полностью зависит от ценности самого процесса. Если он имеет достаточную ценность, то больше CU определенно захотят его запустить. Напротив, если процесс не имеет ценности, ни один CU не захочет его запускать. Тогда Этот Процесс исчезнет молча.

Функция оценки и развертывание контракта AO

Что такое контракт АО? Сравните смарт-контракты Ethereum. Код Lua в процессе, работающем на AO, можно приблизительно рассматривать как смарт-контракт.

Когда мы создаем Процесс, каждый загруженный Модуль будет иметь два обработчика по умолчанию (под обработчиками можно понимать функции, открытые для других Процессов), одним из которых является обработчик _eval. Основная функция этого обработчика — запуск кода Lua. Например, если вы введете 1+1 в aos, будет возвращено 2, которое обрабатывается этим обработчиком. Тогда контракт на развертывание фактически означает отправку сообщения в Процесс и добавление специального обработчика, который может обрабатывать бизнес-логику, в Процесс через обработчик _eval.

Следует отметить одну вещь: см. код ниже. Это раздел кода в файлеprocess.lua официального проекта AO с открытым исходным кодом. Обработчик _eval может быть выполнен только в том случае, если отправитель сообщения соответствует владельцу процесса (владельцем является адрес кошелька при создании контракта). То есть, если для Владельца установлено значение ноль (т. е. для Процесса установлено отсутствие Владельца), то контракт в Процессе становится контрактом, который никто не может изменить.

Кроме того, поскольку AO фактически построен на основе парадигмы консенсуса на основе хранилища (SCP, парадигма консенсуса на основе хранилища), действующий контракт должен быть найден на основе «консенсуса хранилища», то есть всех сообщений, выполняемых в процессе, включая через Код контракта, развернутый обработчиком _eval, хранится в Arweave. Таким образом, любой желающий может найти код контракта на этом «консенсусе хранилища».

Посмотреть контракт

Итак, переходя к сегодняшней теме: как найти код контракта? Ниже я представлю два метода и приведу программу на Python для захвата контракта.

Arweave

Первый метод — это, конечно, запрос непосредственно в Arweave (вы можете использоватьgraphql https://arweave.net/graphql). Этот подход требует, чтобы данные были упакованы в Arweave, чтобы быть полезными.

СУ – Браузер

Второй метод – это метод, который в основном применяется сегодня. Поскольку все данные будут загружаться через SU, их также можно запросить через SU. Лично я считаю, что у каждого SU будет локальный кэш загружаемых данных, поэтому соответствующий код контракта можно узнать, запросив SU. Во-первых, вы можете сделать запрос напрямую, введя адрес в браузере. Однако недостатки этого метода также очевидны: 1. Некоторые процессы отправляют и получают огромные объемы сообщений, поэтому объем загружаемых в цепочку данных также огромен. Однако данные, которые браузер может загрузить, ограничены, и часто происходят сбои браузера. 2. Трудно отфильтровать нужные данные контракта из огромного количества данных.

На рисунке ниже показаны все сообщения процесса (процесса токена АО) с идентификатором процесса m3PaWzK4PTG9lAaqYQPaPdOcXdO8hYqi5Fe9NWqXd0w в пределах двух временных меток.

СУ-СДК

Здесь я написал небольшую программу, используя ao sdk, написанный лидером отрасли на основе Python, для фильтрации сообщений, действием которых является Eval. (Сообщения, действие которых — Eval, — это все сообщения, обработанные обработчиком _eval, включая загруженный код контракта.) На следующем рисунке показано сообщение, которое я получил от SU, в котором содержимое поля данных представляет собой экранированный код контракта. Конечно, захваченные сообщения также будут содержать содержимое кода контракта, не связанное с развертыванием, например выполнение 1 + 1 и т. д. Однако количество сообщений после фильтрации уже невелико, и код контракта можно выбрать вручную.

Программа с открытым исходным кодом, вот адрес github: https://github.com/txohyeah/ao-sc

Контракт токена АО

Итак, давайте взглянем на код контракта токена ao. (Захваченный код контракта также будет размещен в хранилище открытого исходного кода)

Во-первых, при инициализации состояния TotalSupply = «21000000000000000000» определяется как соответствующее выпуску биткойнов.

Деноминация = Деноминация или 12 также определяет десятичную точку как 12 цифр.

Определено, что если функция передачи выполняется до того, как будут сгенерированы 100 000 блоков, «Передача заблокирована» будет возвращена напрямую.

Поскольку блок генерируется каждые пять минут, то 100 000 блоков будут примерно в феврале следующего года.

Есть более актуальная информация, поэтому не буду вдаваться в подробности. Каждый может с удовольствием просмотреть этот классический контракт АО.

Инструкции по программе

Есть более актуальная информация, поэтому не буду вдаваться в подробности. Каждый может с удовольствием просмотреть этот классический контракт АО.

Инструкции по программе

Я представил захваченный код контракта выше. Далее я кратко представлю эту программу. Это очень просто, я верю, что люди, не знающие кода, смогут легко им воспользоваться.

Первым шагом является установка версии Python 3.12. Программа написана на питоне, установка питона необходима.

Второй шаг — установка необходимых пакетов. Эта программа опирается на SDK лидеров отрасли и Everpay.

Третий шаг — изменить start_time/end_time/process в fetch_sc_record.py. И выполните fetch_sc_record.py.

start_time и end_time — это периоды времени, которые вам нужно зафиксировать. процесс — это идентификатор процесса, который вам нужен для захвата контракта.

На четвертом шаге соответствующее сообщение Eval появится в файле msg_eval.json. Просмотрите сообщения и вы сможете найти нужный вам код контракта!

PS: Это также должно быть так же, как запуск aos. Установите HTTPS_PROXY.

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

Отказ от ответственности: эта статья не отражает точку зрения или позицию PermaDAO. PermaDAO не предоставляет инвестиционных консультаций и не поддерживает какие-либо проекты. Читателей просят соблюдать законы страны, в которой они находятся, и вести деятельность в Web3 в соответствии с ними.

🔗 О PermaDAO: Веб-сайт | Telegram | Discord |

Комментарий

Все комментарии

Рекомендуем к прочтению

  • Индия не планирует регулировать продажу и покупку криптовалют

    Правительство Индии еще не раскрыло свои ближайшие планы по регулированию продажи и покупки криптовалют, продолжая при этом ужесточать правила отмывания денег, связанных с криптовалютами, и финансирования терроризма. Во время парламентской сессии 5 августа государственный министр финансов Индии Панкадж Чаудхари ответил на несколько вопросов, подробно описывающих текущую позицию страны в отношении регулирования криптовалют. Чаудхари сказал, что Индия не проводила никаких исследований или опросов, чтобы понять уровень принятия криптовалют среди своих граждан. Он ответил: «Криптовалютные активы или виртуальные цифровые активы (VDA) не регулируются в Индии, и правительство не собирает данные об этих активах. Хотя Индия официально ввела режим передачи криптовалюты и налогообложения прибыли 1 апреля 2022 года, но Правительство не планирует регулировать покупку и продажу криптовалют. Согласно законам Индии о криптовалютах, граждане обязаны платить 30% налога на нереализованную прибыль от криптовалюты и платить 1% налога, удерживаемого у источника (TDS).

  • Виталик: Нижняя точка полезности криптовалюты пройдена

    Виталик Бутерин написал в Твиттере, что нижняя точка полезности криптовалюты пройдена. С технологической точки зрения самым большим достижением за последние пять лет стало, прежде всего, предстоящее решение проблем масштабируемости блокчейна. Виталик особо упомянул рынок прогнозов Polymarket, заявив, что после интервью этой весной он очень доволен своим присутствием на Ethereum.

  • ФБР: остерегайтесь мошенников, выдающих себя за сотрудников криптовалютной биржи с целью незаконной кражи средств

    1 августа ФБР выпустило предупреждение о том, что мошенники выдают себя за сотрудников криптовалютных бирж и крадут средства с помощью нежелательных сообщений или телефонных звонков. Эти мошенники создают чрезвычайные ситуации и заявляют, что существует проблема с учетной записью, чтобы обманом заставить жертв предоставить сообщения для входа. нажимайте на ссылки или делитесь идентифицирующей информацией.

  • В июле предложение стабильной валюты выросло до 144,3 млрд долларов США, а доля рынка USDT достигла 78,9%.

    По данным TheBlockPro, скорректированный объем транзакций стейблкоинов в сети увеличился в июле на 18,8%, достигнув 997,4 млрд долларов США, а предложение стейблкоинов увеличилось на 1,2% до 144,3 млрд долларов США, из которых доля рынка принадлежала USDT и USDC. 78,9% и 17,1%. Кроме того, общий скорректированный объем внутрисетевых транзакций Биткойн и Ethereum в целом увеличился на 31,8%, достигнув 445 миллиардов долларов США. 27,7%.

  • Коммерческий банк Дубая, ОАЭ открывает специальный счет для поставщика услуг виртуальных активов

    Коммерческий банк Дубая (CBD) в Объединенных Арабских Эмиратах (ОАЭ) запустил специальный счет поставщика услуг виртуальных активов (VASP) для управления средствами клиентов и соблюдения нормативных пруденциальных требований. CBD запускает специальный счет для соответствия требованиям Центрального банка. Правила ОАЭ и Агентства по регулированию виртуальных активов Дубая (VARA). Генеральный директор Бернд ван Линдер заявил, что этот шаг соответствует основным банковским услугам Dubai Commercial Bank и поддерживает планы банка по содействию развитию цифровой экономики.

  • Протокол кредитования блокчейна Morpho завершает финансирование на сумму 50 миллионов долларов США под руководством Ribbit Capital

    Компания DeFi Morpho привлекла финансирование в размере 18 миллионов долларов, когда генеральный директор Пол Фрамбот еще учился на первом курсе колледжа. На этот раз Morpho привлекла $50 млн посредством частной продажи токенов, но не раскрыла оценку. Раунд стратегического финансирования возглавил Ribbit Capital, один из первых инвесторов в компании, занимающиеся финансовыми технологиями, включая Robinhood, Revolut и Coinbase.

  • Конференция в Нэшвилле привела к тому, что BTC достиг отметки в 70 000 долларов. Как будет вести себя рынок в будущем? |Исследовательский институт TrendX

    Конференция в Нэшвилле привела к тому, что BTC достиг отметки в 70 000 долларов. Как будет вести себя рынок в будущем?

  • Троянский конь криптовалют: стейблкоины

    Хотя в прошлом эта точка зрения, возможно, вызывала споры, сегодня криптовалютная индустрия больше не является единственной группой, придерживающейся этой точки зрения. Соучредитель и генеральный директор BlackRock Ларри Финк теперь часто говорит о неизбежности токенизации и ее преимуществах для мировой финансовой системы. Будучи крупнейшим в мире управляющим активами, BlackRock управляет стоимостью, в четыре раза превышающей стоимость всего рынка криптоактивов (2,5 триллиона долларов США) (10,5 триллиона долларов США). Другими словами, учреждение, чей капитал под управлением превышает общую стоимость всей криптоиндустрии, сообщает миру, что глобальная финансовая система и все ее активы будут существовать в токенизированной форме на рельсах криптоактивов, и это то, что игнорировать сигнал нельзя.

  • Насколько безопасен USDT на ARB Вопросы и ответы |

    Ответы на последние вопросы читателей. Если у вас есть вопросы, вы можете оставить сообщение. После того, как мы разберемся, в следующий раз мы вместе ответим на них.

  • Курс Uweb для известных учителей № 82. Макрорынок и анализ тенденций Web3

    Передовые занятия известных преподавателей Uweb начинаются вовремя каждый вторник и четверг в 20:30. Этот выпуск — 82-й. Приглашенный ведущий — директор Uweb Юй Цзянин. Приглашенный гость — босс Цю, который интерпретирует последние макроэкономические тенденции рынка. и важное событие.