Gulu la Serokell, lodziwa zambiri pakupanga ma projekiti akuluakulu a blockchain, silinathe kuyimilira. Tinapatsa antchito asanu ku mpikisanowo, ndipo masabata awiri pambuyo pake adatenga malo oyamba pansi pa (mu)dzina lodziwika bwino la Sexy Chameleon. M’nkhaniyi ndifotokoza mmene anachitira. Tikukhulupirira kuti mphindi khumi zikubwerazi mudzawerenga nkhani yosangalatsa, ndipo koposa zonse mupezamo kanthu kena kothandiza komwe mungagwiritse ntchito pantchito yanu.
Koma tiyeni tiyambe ndi nkhani yaing'ono.
Mpikisano ndi mikhalidwe yake
Chifukwa chake, ntchito yayikulu ya omwe adatenga nawo gawo inali kukhazikitsa imodzi kapena zingapo mwamapangano anzeru omwe akufunsidwa, komanso kupanga malingaliro opititsa patsogolo chilengedwe cha TON. Mpikisano udayamba pa Seputembara 24 mpaka Okutobala 15, ndipo zotsatira zake zidalengezedwa pa Novembara 15. Kwa nthawi yayitali, poganizira kuti panthawiyi Telegalamu idakwanitsa kugwira ndikulengeza zotsatira za mipikisano pakupanga ndi kukonza mapulogalamu mu C++ poyesa ndikuwunika ma foni a VoIP mu Telegraph.
Tinasankha makontrakitala awiri anzeru kuchokera pamndandanda womwe okonza amakonza. Kwa mmodzi wa iwo, tidagwiritsa ntchito zida zogawidwa ndi TON, ndipo yachiwiri idakhazikitsidwa muchilankhulo chatsopano chopangidwa ndi mainjiniya athu makamaka ku TON ndikumangidwira ku Haskell.
Kusankha chinenero chogwiritsira ntchito mapulogalamu sikunangochitika mwangozi. Mu wathu blog yamakampani Nthawi zambiri timalankhula za chifukwa chomwe timaganiza kuti zovuta za zilankhulo zogwira ntchito ndizokokomeza kwambiri komanso chifukwa chake timawakonda kusiyana ndi omwe amatsutsa. Mwa njira, ilinso choyambirira cha nkhaniyi.
Nanga n’cifukwa ciani tinaganiza zocita nawo?
Mwachidule, chifukwa ukadaulo wathu ndi ntchito zosakhazikika komanso zovuta zomwe zimafuna luso lapadera ndipo nthawi zambiri zimakhala zasayansi kwa gulu la IT. Timathandizira kwambiri chitukuko chotseguka ndipo tikuchita nawo kutchuka kwake, komanso timagwirizana ndi mayunivesite otsogola aku Russia pankhani ya sayansi yamakompyuta ndi masamu.
Ntchito zosangalatsa za mpikisano komanso kutenga nawo gawo mu polojekiti yathu yokondedwa ya Telegalamu mwazokha zinali zolimbikitsa kwambiri, koma thumba la mphotho lidakhala chilimbikitso chowonjezera. 🙂
TON blockchain kafukufuku
Timayang'anitsitsa zomwe zikuchitika mu blockchain, luntha lochita kupanga komanso kuphunzira pamakina ndikuyesera kuti tisaphonye kumasulidwa kumodzi m'gawo lililonse lomwe timagwira ntchito. Chifukwa chake, pomwe mpikisano udayamba, gulu lathu linali litadziwa kale malingaliro ochokera TON pepala loyera. Komabe, tisanayambe kugwira ntchito ndi TON, sitinafufuze zolemba zamakono ndi ndondomeko yeniyeni ya nsanja, kotero sitepe yoyamba inali yoonekeratu - kufufuza mozama za zolemba zovomerezeka pa. malo ndi nkhokwe za polojekiti.
Zingakhale zosavuta ngati ndondomekoyi sinaphatikizepo tsatanetsatane wa kukhazikitsidwa konse. Zambiri zokhudzana ndi momwe makina owonera amayimira kuchuluka kwake zitha kusokoneza opanga ma contract anzeru papulatifomu ya TON kuposa kuwathandiza.
Khodi yanzeru ya contract mu TON Network imayendera pa TON Virtual Machine (TVM). TVM ndi yovuta kwambiri kuposa makina ena ambiri, ndipo imakhala ndi ntchito zosangalatsa kwambiri, mwachitsanzo, imatha kugwira nawo ntchito kupitiriza и maulalo ku data.
Komanso, anyamata ochokera ku TON adapanga zilankhulo zitatu zatsopano:
Chasanu ndi chilankhulo chapadziko lonse lapansi chopanga mapulogalamu chomwe chimafanana Wa. Kuthekera kwake kwakukulu ndikutha kulumikizana ndi TVM.
FunC ndi anzeru mgwirizano mapulogalamu chinenero chofanana ndi C ndipo amapangidwa m'chinenero china - Fift Assembler.
Tidakhazikitsa mgwirizano mu FunC, ndipo tidalemba njira yolumikizirana ndi mgwirizano wathu kwathunthu mu Fift, monga momwe okonzera adalimbikitsa. Tikadasankha chilankhulo china chilichonse cha CLI yathu, koma tinali ndi chidwi choyesa Fit kuti tiwone momwe imagwirira ntchito.
Kunena zowona, titagwira ntchito ndi Fift, sitinawone zifukwa zomveka zokondera chilankhulochi kuposa zilankhulo zodziwika komanso zogwiritsidwa ntchito mwachangu ndi zida ndi malaibulale opangidwa. Kukonzekera m'chinenero chokhazikitsidwa ndi stack sikusangalatsa, chifukwa muyenera kusunga m'mutu mwanu zomwe zili pa stack, ndipo wolembayo sakuthandizani pa izi.
Chifukwa chake, m'malingaliro athu, kulungamitsidwa kokha kwa kukhalapo kwa Fift ndi gawo lake ngati chilankhulo cholandirira Fift Assembler. Koma sizingakhale bwino kuyika chophatikizira cha TVM m'zilankhulo zomwe zilipo kale, m'malo mopanga china chatsopano pazolinga izi zokha?
TVM Haskell eDSL
Tsopano ndi nthawi yoti tikambirane za mgwirizano wathu wachiwiri wanzeru. Tinaganiza zopanga chikwama cha siginecha zingapo, koma kulemba mgwirizano wina wanzeru mu FunC kungakhale kotopetsa kwambiri. Tinkafuna kuwonjezera kukoma, ndipo chimenecho chinali chilankhulo chathu chapa TVM.
Monga Fift Assembler, chilankhulo chathu chatsopano chimaphatikizidwa, koma tidasankha Haskell kukhala wolandila m'malo mwa Fift, kutilola kuti tigwiritse ntchito bwino makina ake apamwamba. Pogwira ntchito ndi makontrakitala anzeru, pomwe mtengo wa zolakwika zazing'ono ukhoza kukhala wokwera kwambiri, kuyimira static, m'malingaliro athu, ndi mwayi waukulu.
Kuti tiwonetse zomwe TVM assembler imawoneka ngati yophatikizidwa ku Haskell, tidayika chikwama chokhazikika pamenepo. Nazi zinthu zingapo zofunika kuziganizira:
Mgwirizanowu umakhala ndi ntchito imodzi, koma mutha kugwiritsa ntchito momwe mukufunira. Mukatanthauzira ntchito yatsopano m'chinenero cha alendo (ie Haskell), eDSL yathu imakulolani kuti musankhe ngati mukufuna kuti ikhale chizolowezi chosiyana mu TVM kapena kungoyimba pamzere poyimba.
Monga Haskell, ntchito zili ndi mitundu yomwe imawunikidwa panthawi yophatikiza. Mu eDSL yathu, mtundu wolowetsa wa ntchito ndi mtundu wa stack yomwe ntchitoyo ikuyembekezera, ndipo mtundu wotsatira ndi mtundu wa stack yomwe idzapangidwe pambuyo pa kuyitana.
Code ili ndi zofotokozera stacktype, kufotokoza mtundu wa stack womwe ukuyembekezeka pa malo oyimbira foni. Mu mgwirizano woyambirira wa chikwama awa anali ndemanga chabe, koma mu eDSL yathu kwenikweni ndi gawo la code ndipo amafufuzidwa panthawi yosonkhanitsa. Atha kukhala ngati zolemba kapena mawu omwe amathandiza wopanga mapulogalamu kuti apeze vuto ngati kachidindo ikasintha ndipo mtundu wa stack ukusintha. Zoonadi, zofotokozera zotere sizimakhudza nthawi yothamanga, chifukwa palibe TVM code yomwe imapangidwira.
Ichi chikadali chitsanzo cholembedwa m'milungu iwiri, kotero pali ntchito yambiri yoti ichitidwe pa ntchitoyi. Mwachitsanzo, magawo onse a makalasi omwe mukuwona mu code pansipa ayenera kupangidwa zokha.
Izi ndi zomwe kukhazikitsidwa kwa chikwama cha multisig kumawoneka pa eDSL yathu:
Khodi yathunthu ya eDSL yathu ndi mgwirizano wa chikwama chamitundu yambiri imapezeka pa chosungira ichi. Ndipo zambiri adanena mwatsatanetsatane za zilankhulo zomangidwa, mnzathu Georgy Agapov.
Zotsatira za mpikisano ndi TON
Pazonse, ntchito yathu inatenga maola a 380 (kuphatikizapo kudziŵa zolemba, misonkhano ndi chitukuko chenicheni). Madivelopa asanu adatenga nawo gawo pantchito yampikisano: CTO, mtsogoleri wamagulu, akatswiri papulatifomu ya blockchain ndi opanga mapulogalamu a Haskell.