Definīcija
ABI kodēšana ir mehānisms, kas cilvēkiem lasāmas funkciju signatūras un strukturētus datus pārveido zema līmeņa binārā attēlojumā, ko nosaka Application Binary Interface. Tā precīzi nosaka, kā argumenti, atgrieztās vērtības un sarežģīti datu tipi tiek izkārtoti baitos, lai viedie līgumi un ārējie izsaucēji tos interpretētu vienādi. Ievērojot ABI noteikumus, dažādi rīki, maki (wallet) un lietotnes var viennozīmīgi mijiedarboties ar vienu un to pašu līgumu, bez neskaidrībām par datu formātu.
Šī kodēšana ir centrāla līgumu izsaukumos, notikumu žurnālos un datu glabāšanas formātos daudzās viedo līgumu platformās. Tā nodrošina, ka, izsaucot funkciju, līgums saņem parametrus paredzamā secībā un izmērā, un ka atgrieztās vērtības tiek pareizi atkodētas. Bez ABI kodēšanas komponentēm uz ķēdes un ārpus tās trūktu kopīgas “valodas”, lai apmainītos ar strukturētiem datiem ar viedajiem līgumiem.
Konteksts un pielietojums
ABI kodēšana parasti tiek definēta kopā ar ABI specifikāciju, kas uzskaita funkcijas, notikumus un datu tipus, kurus viedais līgums padara pieejamus. Kad transakcija ir vērsta uz kādu līguma funkciju, izsaukuma datu lauks tiek veidots, izmantojot ABI kodēšanu, lai līgums varētu identificēt funkciju un nolasīt tās ievades parametrus. Tie paši noteikumi tiek piemēroti, atkodējot notikumu žurnālus vai interpretējot datus, kas atgriezti pēc līguma izpildes.
Praksē ABI kodēšana darbojas kā tilts starp augsta līmeņa programmēšanas valodām un zema līmeņa virtuālo mašīnu, kas izpilda viedos līgumus. Tā ļauj loģikai uz ķēdes un lietotnēm ārpus ķēdes izmantot kopīgu, determinētā datu formātu, samazinot kļūdas, ko izraisa neatbilstoši tipi vai nepareiza secība. Šis termins ir cieši saistīts ar pašu ABI, kas definē shēmu, kurai kodēšanas mehānismam ir jāseko.