DFINITY fonds ir apņēmies atjaunot brīvas un atvērtas interneta saknes, uzsākot Internet Computer, pasaulē pirmo tīmekļa ātruma blokķēdes tīklu ar neierobežotu skaitļošanas jaudu, kas paredzēts, lai uzlabotu izstrādātāju pieredzi un nodrošinātu plašāku izvēli. fokuss.
Interneta datoros tiek mitināti programmatūras konteineri — tradicionālo viedo līgumu mērogojama attīstība, kas apvieno WebAssembly baitu kodu ar atmiņas lapām, kurās darbojas kods.
Tas ļauj izstrādātājiem izveidot revolucionāras sadarbspējīgas lietojumprogrammas, sistēmas un drošus un uzticamus interneta pakalpojumus, izmantot blokķēdes iespējas, piemēram, marķieri, un izvietot programmatūru tieši internetā, nevis patentētā infrastruktūrā.
Lai atbalstītu programmatūras ainavas izaugsmi, kas tiek no jauna definēta atvērtajās platformās, kur dažādas programmas var tieši integrēties viena ar otru un pakalpojumus var viegli apvienot un paplašināt, mūsu valodu komanda izstrādāja Candid Interface Description Language (IDL).
Šī saskarne ļaus tiem, kas sadarbojas interneta datoru ekosistēmas veidošanā, pilnībā un nevainojami savienot savu kodu, pat ja tas ir rakstīts dažādās valodās, un mēs ar prieku šodien to aprakstīsim sīkāk.
Kas ir Candid?
Candid ir IDL, kas īpaši izstrādāts interneta datoram, kas nodrošina kopīgu valodu lietojumprogrammu saskarnēm, lai atvieglotu saziņu starp pakalpojumiem, kas rakstīti dažādās programmēšanas valodās.
Viena no Candid galvenajām priekšrocībām ir tā, ka tā ir valodu agnostiska, nodrošinot sadarbspēju starp pakalpojumiem un saskarnēm, kas rakstītas dažādās programmēšanas valodās, piemēram, Motoko, Rust un JavaScript. Tas ļauj izstrādātājiem droši un nemanāmi veidot pakalpojumus, kas ir atkarīgi viens no otra, neuztraucoties par saskarnes jauninājumiem ārējiem pakalpojumiem.
Izmantojot Candid, mēs cenšamies…
Saskarnes un datu aprakstu nodrošināšana: izstrādātāji, kas izmanto Candid, var aprakstīt pakalpojuma publisko saskarni, parasti programmas veidā, kas tiek izvietots kā konteiners. Kā izstrādātājs varat atsaukties uz ārējiem pakalpojumiem, kas darbojas interneta datorā, kā uz asinhrono funkciju izsaukumiem.
Principā atbalsta saskarņu evolūciju: Candid atbalsta pakalpojumu saskarņu attīstību, precīzi norādot izmaiņas, kuras var veikt, nepārkāpjot esošos klientus, piem. tas nozīmē, ka varat savam pakalpojumam droši pievienot jaunus izvēles parametrus, nezaudējot saderību ar esošajiem klientiem.
Atbalstiet interneta datora funkciju: Candid ir īpaši piemērots interneta datoru lietojumprogrammu izstrādei.
Candid ir zināmā mērā iedvesmots no līdzīgiem IDL un datu definēšanas valodām (DDL), piemēram, Protobuf, Thrift un JSON, taču Candid piedāvā unikālu funkciju kombināciju, kas nav atrodama šajās citās tehnoloģijās:
Candid ir pilnīga saskarnes apraksta valoda, nevis tikai datu apraksta valoda.
Candid implementācijas var kartēt Candid vērtības tieši uz resursdatora valodu veidiem un vērtībām.
Candid būtībā ir augsta līmeņa valoda, kas ļauj ziņojumu parametros ietvert atsauces uz citiem pakalpojumiem un metodēm.
Candid ir iebūvēts atbalsts konkrētām interneta datora funkcijām, piemēram, vaicājuma anotācijai.
Candid definē noteikumus par to, kā saprātīgā un visaptverošā veidā jaunināt pakalpojumus un to saskarnes, tostarp augsta līmeņa lietojumu.
Kā lietot Candid?
Candid galvenais mērķis ir savienot programmas, kas rakstītas kādā resursdatora valodā (piemēram, Motoko, Rust vai JavaScript), ar interneta datoru. Vairumā gadījumu jums nav jāapstrādā programmas dati kā Candid vērtības.
Tā vietā varat izmantot resursdatora valodu, piemēram, JavaScript, izmantojot pazīstamas JavaScript vērtības, un pēc tam paļauties uz Candid, lai tās pārredzami pārsūtītu uz konteineriem, kas rakstīti Rust vai Motoko. Konteiners saņem šīs vērtības un uzskata tās par primitīvām Rust vai Motoko vērtībām.
Dažos gadījumos ir lietderīgi Candid vērtību skatīt tieši cilvēkiem lasāmā formā, piemēram, reģistrējoties, veicot atkļūdošanu vai mijiedarbojoties ar pakalpojumu komandrindā. Šādos gadījumos Candid vērtībai varat izmantot teksta attēlojumu.
Candid ir stingri drukāta sistēma ar tipu kopu, kas kanoniski aptver lielāko daļu lietojumu (lai skatītu sarakstu, skatiet mūsu SDK lapu).
Šīs tipu kopas pamatojums ir tāds, ka tie ir pietiekami, lai aprakstītu datu struktūru, lai informāciju varētu kodēt, nodot un atkodēt, bet tie nemēģina aprakstīt semantiskos ierobežojumus, kas pārsniedz šo.
Neatkarīgi no tā, vai rakstāt kodu Motoko, Rust, JavaScript vai kādā citā valodā, Candid atbalsta šo tipu kopu, lai nodrošinātu datu tipu dabisku kartēšanu, pamatojoties uz saprātīgām, kanoniskām izvēlēm, kas piemērotas katrai saimniekdatora valodai.
Candid tipus var izmantot, lai aprakstītu pakalpojumus, izmantojot Candid pakalpojuma apraksta failu (.did failu), ko var rakstīt manuāli vai ģenerēt no pakalpojuma ieviešanas.
Piemēram, ja jūs rakstāt konteineru Motoko, kompilators automātiski ģenerē Candid aprakstu, kad tas apkopo jūsu programmu.
Citās valodās, piemēram, Rust, Candid interfeisa apraksts būs jāraksta manuāli. Ar tipu palīdzību mēs izstrādājām rīkus, lai automātiski ģenerētu lietotāja interfeisu un veiktu izlases veida testus, pamatojoties uz pakalpojuma apraksta failiem.
Candid ir noderīgs arī pakalpojumu jauninājumiem, jo pakalpojumi laika gaitā attīstās, iegūst jaunas metodes un esošās metodes atgriež vairāk datu vai sagaida papildu parametrus. Parasti pakalpojumu autori vēlas to darīt, netraucējot esošos klientus.
Candid palīdz pakalpojumiem droši attīstīties, definējot precīzus apakštipu veidošanas noteikumus (formalizēti Coq!), kas nosaka, kad jauns pakalpojuma veids joprojām varēs sazināties ar visām pārējām pusēm, kas aprakstītas, izmantojot iepriekšējo saskarni.
Vai vēlaties uzzināt vairāk? Šeit ir daži ar Candid saistīti materiāli, lai jūs sāktu…
Candid apmācības un resursi
Candid skaidrojuma video: raksta sākumā varat noskatīties video pamācību par Candid lietošanu.
Candid dokumentācija un apmācības: varat piekļūt Candid dokumentācijai mūsu SDK vietnē: https://sdk.dfinity.org/docs/candid-guide/candid-intro.html
Candid Crate: Candid Crate ir serializācijas/deserializācijas bibliotēka, ko var izmantot, lai Rustā izveidotu Candid pakalpojumus vai klientus: https://crates.io/crates/candid
Interneta datora starpniekservera bibliotēka JavaScript: šajā starpniekserverī ir iekļauts Candid atbalsts.
Kopienas atbalstītās Candid bibliotēkas: pašlaik ir bibliotēkas Haskell, Elm, AssemblyScript un Kotlin.
Candid UI: šis konteiners ģenerē priekšgala lietotāja saskarni jebkuram konteineram, kas darbojas interneta iekārtā, ļaujot izstrādātājiem mijiedarboties ar konteineriem tīmeklī (nevis terminālī) un nodrošinot atkļūdošanas iespējas.

IC saturs, kas jums rūp
Tehnoloģiju attīstība | Informācija par projektu | Globālās aktivitātes
Apkopojiet un sekojiet IC Binance kanālam
Atbildiet uz saviem jautājumiem jebkurā laikā

