ProHoster > Pūnaewele > Nā Administration > Ke hoʻololi nei iā FunC i FunCtional me Haskell: Pehea i lanakila ai ʻo Serokell i ka hoʻokūkū Telegram Blockchain
Ke hoʻololi nei iā FunC i FunCtional me Haskell: Pehea i lanakila ai ʻo Serokell i ka hoʻokūkū Telegram Blockchain
ʻO ka hui Serokell, me ka ʻike nui i ka hoʻomohala ʻana i nā papahana blockchain nui, ʻaʻole hiki ke kū i waho. Ua hāʻawi mākou i ʻelima mau limahana i ka hoʻokūkū, a ʻelua pule ma hope mai ua loaʻa lākou i ka wahi mua ma lalo o ka inoa inoa haʻahaʻa haʻahaʻa Sexy Chameleon. Ma kēia ʻatikala e kamaʻilio wau e pili ana i kā lākou hana ʻana. Manaʻolana mākou i loko o nā minuke he ʻumi e hiki mai ana e heluhelu ʻoe i kahi moʻolelo hoihoi, a ʻo ka hapa nui loa e loaʻa iā ʻoe kahi mea pono i loko o ia mea hiki iā ʻoe ke hoʻohana i kāu hana.
Akā, e hoʻomaka kākou me kahi pōʻaiapili liʻiliʻi.
ʻO ka hoʻokūkū a me kona mau kūlana
No laila, ʻo nā hana nui o ka poʻe i komo, ʻo ia ka hoʻokō ʻana i hoʻokahi a ʻoi aku paha o nā ʻaelike akamai i manaʻo ʻia, a me ka hana ʻana i nā manaʻo e hoʻomaikaʻi i ka kaiaola TON. Ua holo ka hoʻokūkū mai ka lā 24 o Kepakemapa a i ka lā 15 o ʻOkakopa, a ma ka lā 15 o Nowemapa wale nō i hoʻolaha ʻia ai nā hopena. He manawa lōʻihi, e noʻonoʻo ana i kēia manawa ua hiki iā Telegram ke hoʻopaʻa a hoʻolaha i nā hopena o nā hoʻokūkū ma ka hoʻolālā a me ka hoʻomohala ʻana i nā noi ma C ++ no ka hoʻāʻo ʻana a me ka loiloi i ka maikaʻi o nā kelepona VoIP ma Telegram.
Ua koho mākou i ʻelua mau ʻaelike akamai mai ka papa inoa i manaʻo ʻia e nā mea hoʻonohonoho. No kekahi o lākou, ua hoʻohana mākou i nā mea hana i puʻunaue ʻia me TON, a ua hoʻokō ʻia ka lua ma kahi ʻōlelo hou i hoʻomohala ʻia e kā mākou poʻe ʻenekinia no TON a kūkulu ʻia i Haskell.
ʻAʻole hikiwawe ke koho ʻana i kahi ʻōlelo hoʻolālā hana. I loko o kā mākou blog hui Ke kamaʻilio pinepine nei mākou e pili ana i ke kumu e manaʻo ai mākou he mea hoʻonui nui ka paʻakikī o nā ʻōlelo hana a no ke aha mākou e makemake ai iā lākou i nā mea pili. Ma ke ala, aia pū kekahi kumu o kēia ʻatikala.
No ke aha mākou i hoʻoholo ai e komo?
I ka pōkole, no ka mea, ʻo kā mākou ʻoihana kūikawā he mau papahana maʻamau a paʻakikī e koi ana i nā mākau kūikawā a he pinepine ka waiwai ʻepekema i ke kaiāulu IT. Kākoʻo ikaika mākou i ka hoʻomohala ʻana i ka open-source a ke komo nei mākou i kāna popularization, a hui pū pū me ke alakaʻi ʻana i nā kula Lūkini ma ke kula o ka ʻepekema kamepiula a me ka makemakika.
ʻO nā hana hoihoi o ka hoʻokūkū a me ke komo ʻana i kā mākou papahana Telegram aloha i loko o lākou iho he kumu hoʻoikaika maikaʻi loa, akā ua lilo ka waihona kālā i mea hoʻoikaika hou. 🙂
TON blockchain noiʻi
Ke nānā pono nei mākou i nā mea hou i ka blockchain, artificial intelligence a me ke aʻo ʻana i ka mīkini a hoʻāʻo e haʻalele i kahi hoʻokuʻu koʻikoʻi ma kēlā me kēia wahi a mākou e hana ai. No laila, i ka wā i hoʻomaka ai ka hoʻokūkū, ua kamaʻāina mua kā mākou hui i nā manaʻo mai TON pepa keʻokeʻo. Eia nō naʻe, ma mua o ka hoʻomaka ʻana i ka hana me TON, ʻaʻole mākou i kālailai i ka palapala ʻenehana a me ke kumu kumu maoli o ka paepae, no laila ua maopopo loa ka hana mua - kahi noiʻi hohonu o ka palapala mana ma kahua pūnaewele a i hale waihona papahana.
I ka wā i hoʻomaka ai ka hoʻokūkū, ua paʻi mua ʻia ke code, no laila e mālama i ka manawa, ua hoʻoholo mākou e ʻimi i kahi alakaʻi a i ʻole ka hōʻuluʻulu manaʻo i kākau ʻia e e nā mea hoʻohana. ʻO ka mea pōʻino, ʻaʻole i hāʻawi i nā hopena - ma waho o nā ʻōlelo aʻoaʻo no ka hoʻohui ʻana i ka paepae ma Ubuntu, ʻaʻole mākou i ʻike i nā mea ʻē aʻe.
Ua noiʻi maikaʻi ʻia ka palapala ponoʻī, akā paʻakikī ka heluhelu ʻana ma kekahi mau wahi. Pono mākou e hoʻi i kekahi mau wahi a hoʻololi mai nā wehewehe kiʻekiʻe o nā manaʻo abstract i nā kikoʻī hoʻokō haʻahaʻa.
E maʻalahi inā ʻaʻole i hoʻokomo ʻia ka wehewehe kikoʻī o ka hoʻokō ʻana. ʻO ka ʻike e pili ana i ke ʻano o ka mīkini virtual e hōʻike ana i kāna puʻupuʻu e hoʻohuli i nā mea hoʻomohala e hana ana i nā ʻaelike akamai no ka platform TON ma mua o ke kōkua ʻana iā lākou.
Nix: hoʻohui i ka papahana
Ma Serokel he poʻe pā nui mākou ʻO Nix. E hōʻiliʻili mākou i kā mākou papahana me ia a kau iā lākou me ka hoʻohana ʻana NixOps, a kau ʻia ma kā mākou mau kikowaena āpau Nix OS. Mahalo i kēia, hiki ke hana hou ʻia kā mākou kūkulu ʻana a hana i kekahi ʻōnaehana hana i hiki ke hoʻokomo iā Nix.
No laila hoʻomaka mākou ma ka hana ʻana Nix overlay me ka ʻōlelo no ka hui TON. Me kāna kōkua, ʻo ka hōʻuluʻulu ʻana i ka TON maʻalahi e like me ka hiki:
$ cd ~/.config/nixpkgs/overlays && git clone https://github.com/serokell/ton.nix
$ cd /path/to/ton/repo && nix-shell
[nix-shell]$ cmakeConfigurePhase && make
E hoʻomaopopo ʻaʻole pono ʻoe e hoʻokomo i nā mea hilinaʻi. E hana ʻo Nix i nā mea āpau no ʻoe, inā ʻoe e hoʻohana nei iā NixOS, Ubuntu, a i ʻole macOS.
Papahana no TON
E holo ana ke code aelike akamai ma ka TON Network ma ka TON Virtual Machine (TVM). ʻOi aku ka paʻakikī o TVM ma mua o ka nui o nā mīkini virtual ʻē aʻe, a he hana hoihoi loa, no ka laʻana, hiki ke hana pū me hoʻomau и nā loulou i ka ʻikepili.
Eia kekahi, ua hana nā kāne mai TON i ʻekolu mau ʻōlelo papahana hou:
ʻElima he ʻōlelo hoʻonohonoho hoʻopaʻa honua e like Kekahi. ʻO kāna mākaukau nui ka hiki ke launa pū me TVM.
LeʻaleʻaC he ʻōlelo hoʻolālā ʻaelike akamai e like me C a ua hōʻuluʻulu ʻia i kahi ʻōlelo ʻē aʻe - Fift Assembler.
Huina Elima — ʻElima waihona no ka hana ʻana i nā code binary executable no TVM. ʻAʻohe mea hōʻuluʻulu ʻo Fifth Assembler. ʻO kēia ʻŌlelo Kūikawā i hoʻokomo ʻia (eDSL).
Ke hana nei kā mākou hoʻokūkū
ʻO ka hope, ʻo ka manawa kēia e nānā i nā hopena o kā mākou hoʻoikaika ʻana.
Alanui uku ʻaʻohe
ʻO ke kahawai uku he ʻaelike akamai e hiki ai i nā mea hoʻohana ʻelua ke hoʻouna i nā uku ma waho o ka blockchain. ʻO ka hopena, ʻaʻole ʻoe e mālama i ke kālā wale nō (ʻaʻohe komisina), akā ʻo ka manawa pū kekahi (ʻaʻole pono ʻoe e kali no ka hana ʻana o ka poloka aʻe). Hiki ke liʻiliʻi nā uku e like me ka makemake a me ka manawa e pono ai. I kēia hihia, ʻaʻole pono nā ʻaoʻao e hilinaʻi kekahi i kekahi, no ka mea, ua hōʻoia ʻia ka pono o ka hoʻoholo hope e ka ʻaelike akamai.
Ua loaʻa iā mākou kahi hopena maʻalahi i ka pilikia. Hiki i nā ʻaoʻao ʻelua ke hoʻololi i nā memo i hoʻopaʻa ʻia, aia i kēlā me kēia me ʻelua mau helu—ʻo ka huina piha i uku ʻia e kēlā me kēia ʻaoʻao. Hana like kēia mau helu ʻelua uaki vector i nā ʻōnaehana puʻunaue kuʻuna a hoʻonohonoho i ke kauoha "hana mua" ma nā kālepa. Ke hoʻohana nei i kēia ʻikepili, hiki i ka ʻaelike ke hoʻoholo i nā paio hiki.
ʻOiaʻiʻo, lawa ka helu hoʻokahi no ka hoʻokō ʻana i kēia manaʻo, akā haʻalele mākou i nā mea ʻelua no kēia ala hiki iā mākou ke hana i kahi mea hoʻohana maʻalahi. Eia hou, ua hoʻoholo mākou e hoʻokomo i ka nui o ka uku i kēlā me kēia memo. Inā ʻaʻole ia, inā nalowale ka memo no kekahi kumu, a laila, ʻoiai e pololei nā helu āpau a me ka helu hope, ʻaʻole ʻike ka mea hoʻohana i ka nalowale.
No ka hoʻāʻo ʻana i ko mākou manaʻo, ʻimi mākou i nā hiʻohiʻona o ka hoʻohana ʻana i kahi protocol channel uku maʻalahi a pōkole. ʻO ka mea kupanaha, ʻelua wale nō i loaʻa iā mākou:
hōʻikeʻano he ala like, no ka hihia o kahi kanal unidirectional.
Aʻoaʻo, e wehewehe ana i ka manaʻo like me ko mākou, akā me ka wehewehe ʻole ʻana i nā kikoʻī koʻikoʻi he nui, e like me ka pololei maʻamau a me nā kaʻina hana hoʻoholo hakakā.
Ua maopopo he mea kūpono ke wehewehe kikoʻī i kā mākou protocol, e nānā pono i kona pololei. Ma hope o kekahi mau mea hou, ua mākaukau ka ʻōlelo kikoʻī, a hiki iā ʻoe ke hiki. e nana aku iaia.
Ua hoʻokō mākou i ka ʻaelike ma FunC, a ua kākau mākou i ka pono laina kauoha no ka launa pū ʻana me kā mākou ʻaelike ma Fift holoʻokoʻa, e like me ka ʻōlelo a nā mea hoʻonohonoho. Hiki iā mākou ke koho i kekahi ʻōlelo ʻē aʻe no kā mākou CLI, akā makemake mākou i ka hoʻāʻo ʻana iā Fit e ʻike i ke ʻano o ia hana ma ka hoʻomaʻamaʻa.
ʻO kaʻoiaʻiʻo, ma hope o ka hana ʻana me Fift, ʻaʻole mākou i ʻike i nā kumu koʻikoʻi e makemake ai i kēia ʻōlelo i nā ʻōlelo kaulana a hoʻohana ikaika ʻia me nā mea hana a me nā hale waihona puke. ʻAʻole ʻoluʻolu ka hoʻonohonoho ʻana i kahi ʻōlelo hoʻopaʻa ʻia, no ka mea, pono ʻoe e mālama mau i kou poʻo i ka mea ma ka waihona, ʻaʻole kōkua ka mea hoʻopili i kēia.
No laila, i ko mākou manaʻo, ʻo ke kumu wale nō o ke ola ʻana o Fift, ʻo ia kāna kuleana ma ke ʻano he ʻōlelo hoʻokipa no Fift Assembler. Akā ʻaʻole anei ʻoi aku ka maikaʻi o ka hoʻokomo ʻana i ka mea hui TVM i kekahi ʻōlelo e kū nei, ma mua o ka hana ʻana i kahi ʻōlelo hou no kēia kumu hoʻokahi?
TVM Haskell eDSL
ʻO ka manawa kēia e kamaʻilio e pili ana i kā mākou ʻaelike akamai lua. Ua hoʻoholo mākou e hoʻomohala i kahi ʻeke kau inoa nui, akā ʻo ke kākau ʻana i kahi ʻaelike akamai ʻē aʻe ma FunC e luhi loa. Makemake mākou e hoʻohui i kahi ʻono, a ʻo ia kā mākou ʻōlelo hui ponoʻī no TVM.
E like me Fift Assembler, ua hoʻokomo ʻia kā mākou ʻōlelo hou, akā ua koho mākou iā Haskell i mea hoʻokipa ma mua o Fift, e ʻae iā mākou e hoʻohana pono i kāna ʻano ʻano ʻano holomua. I ka hana ʻana me nā ʻaelike akamai, kahi hiki ke kiʻekiʻe loa ke kumukūʻai o kahi hewa liʻiliʻi, ʻo ka paʻi paʻa ʻana, i ko mākou manaʻo, he pōmaikaʻi nui.
No ka hōʻike ʻana i ke ʻano o ka TVM assembler i hoʻopili ʻia ma Haskell, ua hoʻokomo mākou i kahi ʻeke maʻamau ma luna. Eia kekahi mau mea e makaʻala ai:
Hoʻokahi hana kēia ʻaelike, akā hiki iā ʻoe ke hoʻohana i nā mea a pau āu e makemake ai. Ke wehewehe ʻoe i kahi hana hou ma ka ʻōlelo hoʻokipa (ʻo ia hoʻi ʻo Haskell), ʻae kā mākou eDSL iā ʻoe e koho inā makemake ʻoe e lilo ia i hana maʻamau i ka TVM a i ʻole i hoʻopaʻa ʻia ma kahi o ke kelepona.
E like me Haskell, loaʻa nā ʻano hana i nānā ʻia i ka manawa hōʻuluʻulu. Ma kā mākou eDSL, ʻo ke ʻano hoʻokomo o kahi hana ke ʻano o ka waihona i manaʻo ʻia e ka hana, a ʻo ke ʻano hopena ke ʻano o ka waihona e hana ʻia ma hope o ke kelepona.
Loaʻa i ke code nā hōʻike stacktype, e wehewehe ana i ke ʻano hoʻopaʻa i manaʻo ʻia ma ka helu kelepona. Ma ka ʻaelike putele mua he mau ʻōlelo wale nō kēia, akā i loko o kā mākou eDSL he ʻāpana maoli lākou o ke code a nānā ʻia i ka manawa hōʻuluʻulu. Hiki iā lākou ke lawelawe ma ke ʻano he palapala a i ʻole nā ʻōlelo e kōkua i ka mea hoʻomohala e ʻike i ka pilikia inā hoʻololi ke code a hoʻololi ke ʻano hoʻopaʻa. ʻO kaʻoiaʻiʻo, ʻaʻole pili ia mau hōʻike i ka hana runtime, no ka mea, ʻaʻohe code TVM i hana ʻia no lākou.
He prototype kēia i kākau ʻia i loko o ʻelua pule, no laila, nui nā hana e hana ʻia ma ka papahana. No ka la'ana, pono e hana 'akomi 'ia na mea a pau o na papa au e ike ai ma ke code malalo.
ʻO kēia ke ʻano o ka hoʻokō ʻana i kahi ʻeke multisig ma kā mākou eDSL:
Hiki ke loaʻa ke code kumu piha o kā mākou eDSL a me ka ʻaelike puʻuwai lehulehu ma keia waihona. A oi aku haʻi kikoʻī e pili ana i nā ʻōlelo i kūkulu ʻia, kā mākou hoa hana ʻo Georgy Agapov.
Nā hopena e pili ana i ka hoʻokūkū a me TON
Ma ka huina, ua lawe kā mākou hana i nā hola 380 (me ka hoʻomaʻamaʻa ʻana me nā palapala, nā hālāwai a me ka hoʻomohala maoli). ʻElima mau mea hoʻomohala i komo i ka papahana hoʻokūkū: CTO, alakaʻi hui, blockchain platform specialists a me Haskell software developers.
Ua loaʻa iā mākou nā kumuwaiwai e komo ai i ka hoʻokūkū me ka pilikia ʻole, ʻoiai ʻo ka ʻuhane o ka hackathon, pili i ka hui pū, a me ka pono e hoʻokomo koke iā mākou iho i nā ʻano o nā ʻenehana hou. ʻO kekahi mau pō hiamoe ʻole e hoʻokō i nā hopena kiʻekiʻe i nā kūlana o nā kumu waiwai i uku ʻia e ka ʻike waiwai a me nā hoʻomanaʻo maikaʻi loa. Eia kekahi, ʻo ka hana ʻana i ia mau hana he hoʻāʻo maikaʻi loa ia o nā kaʻina hana o ka ʻoihana, no ka mea paʻakikī loa ka loaʻa ʻana o nā hopena kūpono maoli me ka ʻole o ka hana maikaʻi ʻana o ka pilina kūloko.
Hoʻokaʻawale ʻia nā mele: mahalo mākou i ka nui o nā hana i kau ʻia e ka hui TON. Ua hiki iā lākou ke kūkulu i kahi ʻōnaehana paʻakikī, nani, a ʻo ka mea nui loa. Ua hōʻoia ʻo TON iā ia iho he kahua me ka mana nui. Eia naʻe, i mea e ulu ai kēia kaiaola, nui nā mea e pono ai ke hana, ma ke ʻano o kona hoʻohana ʻana i nā papahana blockchain a me ka hoʻomaikaʻi ʻana i nā mea hana hoʻomohala. Haʻaheo mākou i ke komo ʻana i kēia hana.
Inā ma hope o ka heluhelu ʻana i kēia ʻatikala he mau nīnau kāu a he manaʻo paha e pili ana i ka hoʻohana ʻana iā TON e hoʻoponopono i kou mau pilikia, e palapala mai ia makou - e hauʻoli mākou e kaʻana like i kā mākou ʻike.