Vai vēlaties uzzināt līguma darbības mehānismu, kas tiek piemērots AO? Tāpēc paķersim līguma kodu un uzzināsim. Izmantojiet python sīklietotni, lai viegli iegūtu norādītā procesa līgumu.

Autors: txohyeah

Atsauksmi iesniedza: outprog

Avots: Satura ģilde – Ziņas

Ievads AO

Kas ir AO?

Ir pagājis mazāk nekā pusgads kopš AO testneta izlaišanas, un ir daudz satura par AO. Šī raksta saturs galvenokārt ir vērsts uz procesu un viedajiem līgumiem, tostarp par to, kas ir AO, kas ir process un dzīve. procesa cikls. Visbeidzot, mēs pievērsīsimies tam, kā skatīt procesa līguma kodu.

AO ir skaitļošanas funkcija, ko tālāk izstrādāja Arweave, kuras pamatā ir izkliedētās krātuves uzlabošana. Tās mērķis ir panākt visaptverošu decentralizētu lietojumprogrammu atbalstu, kas vispirms atbilst Ethereum aprēķinu izstrādei un vēlākai uzglabāšanai. Vienkārši sakot, AO pārstāv viedos līgumus vai skaitļošanas jaudu Arweave platformā un ir loģisks slāņa paplašinājums tā pastāvīgās krātuves risinājumam.

AO sastāv no trim vienībām, MU/SU/CU

MU: saņem lietotāju nosūtītos ziņojumus, lai pārliecinātos, ka tie ir parakstīti.

SU: Ziņojumu laikspiedols un kārtošana, pēc tam grupējiet un publicējiet pakalpojumā Arweave. SU ir arī galvenais varonis, kuru izmantosim šodien, un tam būs svarīga loma, vēlāk pārskatot līgumu.

CU: apstrādājiet ziņojumu un aprēķiniet rezultātu.

Kas ir process, kas darbojas AO?

AO būtībā ir superparalēlais dators, kas izveidots, pamatojoties uz datu protokolu, kur dati pastāv AO definētā pamata elementa Ziņojuma veidā. Tad procesam ir svarīga loma ziņojumu apstrādē, un tā ir AO ziņojumu apstrādes pamatvienība. Process darbojas CU, un to var uzskatīt par virtuālo mašīnu CU. Tāpēc Process ietver pamata iespēju saņemt un nosūtīt ziņojumus tīklā. Pēc tam izstrādātāji izveido procesa ziņojumu apstrādes iespējas, pievienojot procesam apstrādātājus. Līgums, kas tiks apspriests vēlāk, faktiski tiek izvietots, nosūtot ziņojumu uz Process un pēc tam izmantojot iebūvēto apdarinātāju _eval. Pievienoto apstrādātāju var saprast kā līguma ziņojumu apstrādes funkciju.

Procesa dzīves cikls

Ja mēs vēlamies atrast analoģiju mūsu pašreizējā pasaulē, tad es domāju, ka konteiners (konteiners) dockerā var būt labs procesa salīdzinājums un izpratne. Tālāk es izmantošu Container dzīves cikla analoģiju docker, lai salīdzinātu procesa dzīves ciklu.

Mēs visi zinām, ka konteinera izveide dockerā ir atkarīga no attēla (attēla), piemēram, izveidojiet MySQL konteineru, pamatojoties uz MySQL attēlu, un pēc tam šajā konteinerā varat izsaukt MySQL pakalpojumu. Tas pats attiecas uz procesu AO. Procesa izveide ir atkarīga no moduļa, un būs arī vienkāršākie moduļi, moduļi, kas atbalsta plānotos uzdevumus, un moduļi, kas ietver sqlite. Pašlaik izstrādātājiem ir pieejami simtiem moduļu, no kuriem izvēlēties, lai izveidotu savu procesu. Turklāt jūs varat arī izveidot savu pielāgoto moduli. Es uzskatu, ka tuvākajā nākotnē būs arī moduļi, kas atbalsta GPU, un moduļi, kas atbalsta dažādas AI iespējas.

Process AO atšķiras arī no konteinera dockerā. Docker konteineri atbalsta dažādas darbības, piemēram, palaišanu, apturēšanu un dzēšanu. Pašlaik AO procesā šādu darbību nav. Galu galā decentralizēto lietojumprogrammu pasaulē šīs centralizēto personu kontrolētās funkcijas ir ļoti nekonsekventas. Procesa darbība AO pilnībā ir atkarīga no paša procesa vērtības tad Šis process pazudīs klusi.

Eval funkcija un AO līguma izvietošana

Kas ir AO līgums? Salīdziniet Ethereum viedos līgumus. Lua kodu procesā, kas darbojas AO, var aptuveni uzskatīt par viedo līgumu.

Kad mēs izveidojam procesu, katram ielādētajam modulim būs divi noklusējuma apdarinātāji (apdarinātājus var saprast kā funkcijas, kas ir atvērtas citiem procesiem), no kuriem viens ir _eval apdarinātājs. Šī apdarinātāja galvenā funkcija ir palaist Lua kodu. Piemēram, ja ievadāt 1+1 laukā AOS, tiks atgriezts 2, ko apstrādā šis apstrādātājs. Tad līguma izvietošana faktiski nozīmē ziņojuma nosūtīšanu procesam un pielāgota apdarinātāja pievienošanu, kas var apstrādāt biznesa loģiku procesam, izmantojot apdarinātāju _eval.

Ir jāņem vērā viena lieta, lūdzu, skatiet tālāk norādīto kodu. Šī ir koda sadaļa vietnē process.lua oficiālajā atvērtā pirmkoda AO projektā. Apdarinātāju _eval var izpildīt tikai tad, ja ziņojuma sūtītājs atbilst procesa īpašniekam (īpašnieks ir maka adrese, kad tika izveidots līgums). Citiem vārdiem sakot, ja Īpašnieks ir iestatīts uz nulli (tas ir, procesam ir iestatīts, ka tam nav īpašnieka), līgums šajā procesā kļūst par līgumu, kuru neviens nevar mainīt.

Turklāt, tā kā AO faktiski ir izveidots, pamatojoties uz uz krātuvi balstītu konsensa paradigmu (SCP, uz krātuvi balstīta konsensusa paradigma), esošais līgums ir jāatrod uz "glabāšanas vienprātības", tas ir, visi ziņojumi, kas darbojas procesā, tostarp caur Līguma kods, ko izvietojis _eval apstrādātājs, tiek glabāts vietnē Arweave. Tāpēc ikviens var atrast līguma kodu šajā "uzglabāšanas vienprātībā".

Skatīt līgumu

Tātad, pārejot pie šodienas tēmas, kā atrast līguma kodu? Zemāk es iepazīstināšu ar abām metodēm un sniegšu Python programmu līguma uztveršanai.

Arweave

Pirmā metode, protams, ir vaicājums tieši vietnē Arweave (varat izmantot graphql https://arweave.net/graphql). Lai šī pieeja būtu noderīga, dati ir jāiepako Arweave.

SU — pārlūkprogramma

Otrā metode ir mūsdienās galvenokārt ieviestā metode. Tā kā visi dati tiks augšupielādēti, izmantojot SU, tos var arī jautāt SU. Es personīgi domāju, ka katram SU būs lokālā kešatmiņa paša augšupielādētajiem datiem, tāpēc atbilstošo līguma kodu var atrast, vaicājot SU. Pirmkārt, varat veikt vaicājumu tieši, pārlūkprogrammā ievadot adresi. Taču arī šīs metodes trūkumi ir acīmredzami: 1. Daži procesi sūta un saņem milzīgus ziņojumu apjomus, tāpēc arī ķēdē augšupielādēto datu apjoms ir milzīgs. Tomēr dati, ko pārlūkprogramma var ielādēt, ir ierobežoti, un bieži notiek pārlūkprogrammas avārijas. 2. Ir grūti no masveida datiem izfiltrēt vēlamos līguma datus.

Tālāk esošajā attēlā ir parādīti visi procesa ziņojumi (AO marķiera process) ar procesa ID m3PaWzK4PTG9lAaqYQPaPdOcXdO8hYqi5Fe9NWqXd0w divu laikspiedolu ietvaros.

SU — sdk

Šeit es uzrakstīju nelielu programmu, izmantojot ao sdk, ko uzrakstījis nozares līderis, pamatojoties uz python, lai filtrētu ziņojumus, kuru darbība ir Eval. (Ziņojumi, kuru darbība ir Eval, ir visi ziņojumi, ko apstrādā _eval apdarinātājs, ieskaitot ielādēto līguma kodu.) Nākamais attēls ir ziņojums, kuru es satvēru no SU, kurā datu lauka saturs ir līguma kods. Protams, tvertajos ziņojumos būs arī neizvietošanas līguma koda saturs, piemēram, izpilde 1 + 1 utt. Taču ziņojumu skaits pēc filtrēšanas vairs nav liels, un līguma kodu var izvēlēties manuāli.

Programma ir bijusi atvērtā koda, šeit ir github adrese: https://github.com/txohyeah/ao-sc

AO marķiera līgums

Tāpēc satrauksimies un apskatīsim ao marķiera līguma kodu. (Uzņemtais līguma kods tiks ievietots arī atvērtā pirmkoda noliktavā)

Pirmkārt, inicializējot stāvokli, TotalSupply = "21000000000000000000" tiek definēts tā, lai tas atbilstu Bitcoin emisijai.

Denominācija = Denominācija vai 12 arī nosaka, ka decimālzīme ir 12 cipari.

Ir definēts, ka, ja pārsūtīšanas funkcija tiek izpildīta pirms 100 000 bloku ģenerēšanas, "Pārsūtīšana ir bloķēta" tiks atgriezta tieši.

Tā kā bloks tiek ģenerēts ik pēc piecām minūtēm, 100 000 bloku būs aptuveni nākamā gada februārī.

Ir daudz atbilstošāka informācija, tāpēc es neiedziļināšos. Ikviens var laimīgi pārlūkot šo klasisko AO līgumu.

Programmas instrukcijas

Iepriekš es iepazīstināju ar uzņemto līguma kodu. Tālāk es īsi iepazīstināšu ar šo programmu. Tas ir ļoti vienkārši, es uzskatu, ka cilvēki, kas nezina kodu, var to viegli izmantot.

Pirmais solis ir instalēt python 3.12 versiju. Programma ir uzrakstīta python valodā, un ir nepieciešama python instalēšana.

Otrais solis ir nepieciešamo pakotņu instalēšana. Šī programma balstās uz nozares līderu un everpay SDK.

Trešais solis ir modificēt start_time / end_time / process failā fetch_sc_record.py. un izpildiet fetch_sc_record.py.

sākuma_laiks un beigu_laiks ir laika periodi, kas ir jāuztver. process ir tā procesa ID, kas nepieciešams līguma tveršanai.

Ceturtajā darbībā atbilstošais Eval ziņojums tiks parādīts failā msg_eval.json. Pārlūkojiet ziņas un varat atrast sev nepieciešamo līguma kodu!

PS: tai ir jābūt tādai pašai kā AOS palaišanai. Iestatiet HTTPS_PROXY.

🏆 Balvas par kļūdu pieķeršanu: ja šajā rakstā atrodat drukas kļūdas, nepareizus teikumus vai nepareizus aprakstus, noklikšķiniet uz manis, lai ziņotu par to, un jūs saņemsiet stimulus.

Atruna: šis raksts neatspoguļo PermaDAO uzskatus vai nostāju. PermaDAO nesniedz ieguldījumu konsultācijas un neatbalsta nevienu projektu. Lasītāji tiek aicināti ievērot tās valsts tiesību aktus, kurā viņi atrodas, un atbilstoši veikt Web3 darbības.

🔗 关于 PermaDAO:Tīmekļa vietne | Twitter | Telegram | Nesaskaņas | Vidēja | YouTube