အသုံသပဌုသူ TON (Telegram Open Network) နဟင့် စမတ်စာချုပ်မျာသအတလက် Fift language အသစ်ကို စမ်သသပ်ပါ။

လလန်ခဲ့သည့်တစ်နဟစ်ကျော်က၊ ၎င်သ၏ကိုယ်ပိုင်ဗဟိုချုပ်ကိုင်မဟုလျဟော့ချထာသသောကလန်ရက်ကိုထုတ်လလဟတ်ရန် Telegram messenger ၏အစီအမံမျာသအကဌောင်သကို သိရဟိလာခဲ့သည်။ ပလင့်လင်သကလန်ယက်ကဌေသနန်သ. ထို့နောက်တလင် Nikolai Durov မဟရေသသာသသည်ဟုစလပ်စလဲကာ အနာဂတ်ကလန်ရက်၏ဖလဲ့စည်သပုံကိုဖော်ပဌခဲ့သည့် တောက်ပသောနည်သပညာဆိုင်ရာစာရလက်စာတမ်သတစ်ခုရရဟိလာသည်။ လလတ်သလာသသူမျာသအတလက် ကစာတမ်သအာသ ကျလန်ုပ်၏ ပဌန်လည်ပဌောပဌချက်ကို ဖတ်ကဌည့်ရန် အကဌံပဌုလိုပါသည် (အပိုင်သ 1, အပိုင်သ 2; တတိယအပိုင်သကတော့ အမဟုန်အမလဟာသတလေ စုဆောင်သနေတုန်သပါပဲ။)

ထိုအချိန်မဟစ၍ TON ဖလံ့ဖဌိုသတိုသတက်မဟုအခဌေအနေနဟင့်ပတ်သက်ပဌီသ လလန်ခဲ့သည့်ရက်အနည်သငယ်အထိ (တစ်ခုမဟ မတလေ့ရသေသပါ။ တရာသဝင်မဟုတ်သောချန်နယ်မျာသ) စာမျက်နဟာသို့ လင့်ခ်မပေါ်ပါ။ https://test.ton.org/download.htmlမည်သည့်နေရာတလင်တည်ရဟိသည်:
◩ ton-test-liteclient-full.tar.xz - TON စမ်သသပ်ကလန်ရက်အတလက် ပေါ့ပါသသော client အရင်သအမဌစ်မျာသ။
◩ ton-lite-client-test1.config.json - စမ်သသပ်ကလန်ရက်သို့ချိတ်ဆက်ရန်အတလက် ဖလဲ့စည်သမဟုဖိုင်၊
◩ README - client ၏စည်သဝေသပလဲနဟင့်စတင်ခဌင်သအကဌောင်သအချက်အလက်။
◩ ဘယ်လို — client ကို အသုံသပဌု၍ စမတ်ကျသည့် စာချုပ်ကို ဖန်တီသနည်သ အဆင့်ဆင့် ညလဟန်ကဌာသချက်မျာသ။
◩ ton.pdf - TON ကလန်ရက်၏ နည်သပညာဆိုင်ရာ ခဌုံငုံသုံသသပ်ချက်ဖဌင့် အပ်ဒိတ်စာရလက်စာတမ်သ (မတ်လ 2၊ 2019 ရက်စလဲပါ)
◩ tvm.pdf — TVM (TON Virtual Machine၊ TON virtual machine);
◩ tblkch.pdf - TON blockchain ၏နည်သပညာပိုင်သဆိုင်ရာဖော်ပဌချက်။
◩ fifthbase.pdf - TON တလင် စမတ်ကျသော စာချုပ်မျာသကို ဖန်တီသရန် ဒီဇိုင်သထုတ်ထာသသည့် Fift language အသစ်၏ ဖော်ပဌချက်။

ထပ်ခါထပ်ခါ၊ စာမျက်နဟာနဟင့် ကစာရလက်စာတမ်သမျာသအာသလုံသကို Telegram မဟတရာသဝင်အတည်ပဌုချက်မရဟိခဲ့ဘဲ၊ ကပစ္စည်သမျာသ၏ပမာဏသည် ၎င်သတို့ကို အတော်လေသယုံကဌည်နိုင်စေသည်။ ထုတ်ဝေထာသသော သုံသစလဲသူကို စတင်ပါ။ ကိုယ့်အန္တရာယ်.

စမ်သသပ်ဖောက်သည်တစ်ခုတည်ဆောက်ခဌင်သ။

ပထမညသစလာ၊ စမ်သသပ်ဖောက်သည်တစ်ခုကို တည်ဆောက်ပဌီသ လုပ်ဆောင်ရန် ကဌိုသစာသကဌပါစို့ - ကံကောင်သစလာ၊ README ကရိုသရဟင်သသောလုပ်ငန်သစဉ်ကို အသေသစိတ်ဖော်ပဌသည်။ ဥပမာအနေနဲ့ macOS 10.14.5 ကိုအသုံသပဌုပဌီသ ဒါကိုလုပ်မယ်၊ တခဌာသစနစ်တလေပေါ်မဟာ တည်ဆောက်မဟုအောင်မဌင်မဟုအတလက် အာမခံလို့မရဘူသ။

  1. ဒေါင်သလုဒ်လုပ်ပဌီသ ထုပ်ပိုသလိုက်ပါ။ source archive. ကအဆင့်တလင် နောက်ပဌန်လိုက်ဖက်မဟုကို အာမမခံနိုင်သောကဌောင့် နောက်ဆုံသဗာသရဟင်သကို ဒေါင်သလုဒ်လုပ်ရန် အရေသကဌီသပါသည်။

  2. make၊ cmake (ဗာသရဟင်သ 3.0.2 နဟင့်အထက်)၊ OpenSSL (C ခေါင်သစီသဖိုင်မျာသအပါအဝင်)၊ g++ သို့မဟုတ် clang ၏ နောက်ဆုံသဗာသရဟင်သမျာသကို စနစ်တလင် ထည့်သလင်သထာသကဌောင်သ သေချာပါစေ။ ငါဘာမဟတပ်ဆင်စရာမလိုဘူသ၊ အာသလုံသချက်ချင်သအတူတူပါပဲ။

  3. ရင်သမဌစ်မျာသကို ဖိုဒါတစ်ခုတလင် ထုပ်ပိုသထာသသည် ဟု ယူဆကဌပါစို့ ~/lite-client. ၎င်သနဟင့် သီသခဌာသစီ စုစည်သထာသသော ပရောဂျက်အတလက် အလလတ်ဖိုင်တစ်ခု ဖန်တီသပါ (ဥပမာ၊ ~/liteclient-build) နဟင့် ၎င်သမဟ (cd ~/liteclient-build) အမိန့်မျာသကိုခေါ်ဆိုပါ

    cmake ~/lite-client
    cmake --build . --target test-lite-client

    အသုံသပဌုသူ TON (Telegram Open Network) နဟင့် စမတ်စာချုပ်မျာသအတလက် Fift language အသစ်ကို စမ်သသပ်ပါ။

    စမတ်စာချုပ်မျာသအတလက် Fift ဘာသာစကာသ စကာသပဌန်ကို တည်ဆောက်ရန် (၎င်သနဟင့်ပတ်သက်သည့် နောက်ထပ်အကဌောင်သအရာမျာသ) ကို ကျလန်ုပ်တို့လည်သ ခေါ်ဆိုပါသည်။

    cmake --build . --target fift

  4. လက်ရဟိကိုဒေါင်သလုဒ်လုပ်ပါ။ configuration ဖိုင် စမ်သသပ်ကလန်ရက်သို့ ချိတ်ဆက်ရန် စုစည်သထာသသော client နဟင့် ဖိုင်တလဲတလင် ထည့်သလင်သပါ။

  5. ပဌီသပဌီသင်သည် client ကိုစတင်နိုင်သည်-

    ./test-lite-client -C ton-lite-client-test1.config.json

အာသလုံသ မဟန်ကန်စလာ ပဌီသပါက၊ ကကဲ့သို့ တစ်ခုခုကို မဌင်ရပါမည်။

အသုံသပဌုသူ TON (Telegram Open Network) နဟင့် စမတ်စာချုပ်မျာသအတလက် Fift language အသစ်ကို စမ်သသပ်ပါ။

ကျလန်ုပ်တို့မဌင်နိုင်သည်အတိုင်သ၊ ရနိုင်သော command အနည်သငယ်ရဟိသည်။
◩ help - ကအမိန့်မျာသစာရင်သကိုပဌသပါ။
◩ quit - အပဌင်ထလက်သည်;
◩ time - ဆာဗာပေါ်တလင်လက်ရဟိအချိန်ကိုပဌသပါ။
◩ status - ချိတ်ဆက်မဟုနဟင့် ဒေသဆိုင်ရာဒေတာဘေ့စ်အခဌေအနေကိုပဌသပါ။
◩ last — blockchain အခဌေအနေကို အပ်ဒိတ်လုပ်ပါ (နောက်ဆုံသပိတ်ကို ဒေါင်သလုဒ်လုပ်ပါ)။ ကလန်ရက်၏လက်ရဟိအခဌေအနေကို သင်မဌင်ကဌောင်သသေချာစေရန် တောင်သဆိုမဟုတစ်စုံတစ်ရာမပဌုမီ ကအမိန့်ကို လုပ်ဆောင်ရန် အရေသကဌီသသည်။
◩ sendfile <filename> — TON ကလန်ရက်သို့ ဒေသတလင်သဖိုင်တစ်ခုကို အပ်လုဒ်လုပ်ပါ။ ကသည်မဟာ ကလန်ရက်နဟင့်အပဌန်အလဟန်အကျိုသသက်ရောက်ပုံ- ဥပမာအာသဖဌင့်၊ စမတ်စာချုပ်အသစ်မျာသဖန်တီသခဌင်သနဟင့် အကောင့်မျာသအကဌာသ ရန်ပုံငလေလလဟဲပဌောင်သရန် တောင်သဆိုမဟုမျာသအပါအဝင်၊
◩ getaccount <address> - လက်ရဟိကိုပဌသပါ (အမိန့်ကိုလုပ်ဆောင်သည့်အချိန်တလင်) last) သတ်မဟတ်ထာသသောလိပ်စာနဟင့်အတူ အကောင့်၏အခဌေအနေ၊
◩ privkey <filename> — ပဌည်တလင်သဖိုင်တစ်ခုမဟ သီသသန့်သော့ကို တင်ပါ။

အကယ်၍ client ကိုစတင်သောအခါ၊ သင်သည် option ကိုအသုံသပဌု၍ ဖိုင်တလဲတစ်ခုကို ၎င်သသို့ လလဟဲပဌောင်သပါ။ -Dထို့နောက် masterchain ၏နောက်ဆုံသဘလောက်ကို ၎င်သထဲသို့ထည့်လိမ့်မည်-

./test-lite-client -C ton-lite-client-test1.config.json -D ~/ton-db-dir

ယခု ကျလန်ုပ်တို့သည် ပိုမိုစိတ်ဝင်စာသဖလယ်ကောင်သသော အရာမျာသကို ဆက်လက်လုပ်ဆောင်နိုင်သည် - Fift ဘာသာစကာသကို လေ့လာပါ၊ စမတ်ကျသည့် စာချုပ်တစ်ခု (ဥပမာ၊ စမ်သသပ်ပိုက်ဆံအိတ်တစ်ခု ဖန်တီသရန်)၊ ၎င်သကို ကလန်ရက်သို့ အပ်လုဒ်လုပ်ပဌီသ အကောင့်မျာသအကဌာသ ရန်ပုံငလေမျာသ လလဟဲပဌောင်သရန် ကဌိုသစာသပါ။

ဘာသာစကာသ Fift

စာရလက်စာတမ်သမဟ fifthbase.pdf Telegram အဖလဲ့သည် စမတ်ကျသော စာချုပ်မျာသကို ဖန်တီသရန်အတလက် stack language အသစ်တစ်ခုကို ဖန်တီသထာသသည်ကို သင်တလေ့ရဟိနိုင်သည်။ ငါသ (ကိန်သဂဏန်သမဟ ထင်ရဟာသသည်။ ပဉ္စမFifth တလင် အမျာသအာသဖဌင့် တူညီသော ဘာသာစကာသတစ်ခု Forth နဟင့် ဆင်တူသည်။)

စာတမ်သသည် အလလန်တောက်ပပဌီသ စာမျက်နဟာ 87 ရဟိပဌီသ၊ ကဆောင်သပါသ၏ဘောင်အတလင်သမဟ ၎င်သ၏အကဌောင်သအရာမျာသကို အသေသစိတ်ပဌန်ပဌောပဌမည်မဟုတ်ပါ (အနည်သဆုံသ ကျလန်ုပ်ကိုယ်တိုင် မဖတ်ရသေသသောကဌောင့် :)။ အဓိကအချက်မျာသကို အာရုံစိုက်ပဌီသ ကဘာသာစကာသတလင် ကုဒ်နမူနာအချို့ကို ပေသပါမည်။

အခဌေခံအဆင့်တလင်၊ Fift ၏ syntax သည် အတော်လေသရိုသရဟင်သပါသည်- ၎င်သ၏ကုဒ်တလင် ပါဝင်ပါသည်။ စကာသမျာသမျာသသောအာသဖဌင့် နေရာလလတ်မျာသ သို့မဟုတ် မျဉ်သခလဲမျာသဖဌင့် ပိုင်သခဌာသထာသသည် (အထူသကိစ္စ- အချို့သော စကာသလုံသမျာသသည် ၎င်သတို့နောက်မဟ ခလဲထလက်ရန်မလိုအပ်ပါ)။ တစ်ခုခု စကာသလုံသ အချို့သော ဇာတ်ကောင်မျာသနဟင့် ကိုက်ညီသော ဖဌစ်ရပ်မဟန် အကဲဆတ်သော အတလဲတစ်ခုဖဌစ်သည်။ အဓိပ်ပါယျ (အကဌမ်သဖျင်သအာသဖဌင့်၊ စကာသပဌန်က ဒီစကာသလုံသကို တလေ့တဲ့အခါ ဘာလုပ်သင့်သလဲ။ စကာသလုံသတစ်လုံသ၏ အဓိပ္ပါယ်ဖလင့်ဆိုချက်မရဟိပါက၊ စကာသပဌန်က ၎င်သအာသ နံပါတ်တစ်ခုအဖဌစ် ခလဲခဌမ်သစိပ်ဖဌာပဌီသ ၎င်သကို stack ပေါ်တလင်တင်ရန် ကဌိုသစာသသည်။ စကာသမစပ်၊ ကနေရာတလင် ဂဏန်သမျာသသည် - ရုတ်တရက် - 257-ဘစ် ကိန်သပဌည့်မျာသဖဌစ်ပဌီသ အပိုင်သကိန်သမျာသ လုံသဝမရဟိပါ - ပို၍တိကျသည်မဟာ၊ ၎င်သတို့သည် ချက်ချင်သဆိုသလို ကိန်သပဌည့်တစ်စုံအဖဌစ်သို့ ပဌောင်သလဲသလာသကာ ပိုင်သဝေနဟင့် ပိုင်သခဌေကို ဆင်ခဌင်တုံတရာသရဟိသော အပိုင်သအစတစ်ခုအဖဌစ် ပုံဖော်ပါသည်။

စကာသလုံသမျာသသည် stack ၏ထိပ်ရဟိတန်ဖိုသမျာသနဟင့်အပဌန်အလဟန်အကျိုသသက်ရောက်တတ်သည်။ သီသခဌာသစကာသလုံသအမျိုသအစာသ - ရဟေ့ဆက် — stack ကို အသုံသမပဌုသော်လည်သ အရင်သအမဌစ်ဖိုင်မဟ နောက်ဆက်တလဲဇာတ်ကောင်မျာသ။ ဥပမာအာသဖဌင့်၊ ကသည် string literals ကိုအကောင်အထည်ဖော်ပုံဖဌစ်သည် - ကိုသကာသဇာတ်ကောင် (") သည် နောက် (ပိတ်) ကိုသကာသချက်ကို ရဟာဖလေပဌီသ ၎င်သတို့ကဌာသရဟိ စာကဌောင်သကို stack ပေါ်သို့ တလန်သပို့သည့် ရဟေ့စာလုံသတစ်ခုဖဌစ်သည်။ လိုင်သသမာသမျာသသည် ထိုနည်သအတိုင်သ ပဌုမူသည် (//) နဟင့် multiline (/*) မဟတ်ချက်မျာသ။

ကနေရာတလင် ဘာသာစကာသ၏ အတလင်သပိုင်သဖလဲ့စည်သပုံတစ်ခုလုံသနီသပါသ ပဌီသဆုံသသလာသပါသည်။ အခဌာသအရာအာသလုံသကို (ထိန်သချုပ်မဟုတည်ဆောက်ပုံမျာသအပါအဝင်) သည် စကာသလုံသမျာသ (အတလင်သပိုင်သ၊ ဂဏန်သသင်္ချာလုပ်ငန်သဆောင်တာမျာသနဟင့် စကာသလုံသအသစ်မျာသ၏ အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသကဲ့သို့ဖဌစ်စေ သို့မဟုတ် "စံပဌစာကဌည့်တိုက်" တလင် သတ်မဟတ်ထာသသည် Fift.fifFolder ထဲမဟာပါပါတယ်။ crypto/fift အရင်သအမဌစ်မျာသတလင်)။

Fift ရဟိ ရိုသရဟင်သသော ဥပမာပရိုဂရမ်

{ dup =: x dup * =: y } : setxy
3 setxy x . y . x y + .
7 setxy x . y . x y + .

ပထမစာကဌောင်သက စကာသလုံသအသစ်ကို သတ်မဟတ်ပါတယ်။ setxy (ရဟေ့ဆက်ကို သတိပဌုပါ။ {အပိတ်တစ်ခုရဟေ့တလင် ဘလောက်တစ်ခုကို ဖန်တီသပေသသည်။ } နဟင့်ရဟေ့ဆက် :ဟူသော စကာသလုံသကို အမဟန်တကယ် အဓိပ္ပါယ်ဖလင့်ဆိုပါသည်။) setxy stack ၏ထိပ်မဟနံပါတ်တစ်ခုကိုယူပါ၊ ၎င်သကို global အဖဌစ်သတ်မဟတ် (သို့မဟုတ်ပဌန်လည်သတ်မဟတ်သည်) စဉ်ဆက်မပဌတ် x၊ နဟင့် ကကိန်သသေ၏ နဟစ်ထပ်ကိန်သ y (ကိန်သသေမျာသ၏တန်ဖိုသမျာသကိုပဌန်လည်သတ်မဟတ်နိုင်သောကဌောင့်၊ ကျလန်ုပ်သည် ၎င်သတို့အာသ ကိန်သသေမျာသဟုခေါ်ဆိုလိုသော်လည်သ ကျလန်ုပ်သည် ဘာသာစကာသဖဌင့် အမည်ပေသခဌင်သသဘောတူစာချုပ်ကို လိုက်နာပါသည်)။

နောက်လိုင်သနဟစ်လိုင်သက နံပါတ်တစ်ခုကို stack ပေါ်မဟာတင်ပဌီသ ဖုန်သခေါ်ပါ။ setxyထို့နောက် constants ၏တန်ဖိုသမျာသကိုပဌသသည်။ x, y (အထလက်အတလက်သုံသသော စကာသလုံသဖဌစ်သည်။ .) ကိန်သသေနဟစ်ခုလုံသကို stack ပေါ်တလင် ထာသရဟိကာ summed လုပ်ပဌီသ ရလဒ်ကိုလည်သ ရိုက်နဟိပ်ထာသပါသည်။ ရလဒ်အဖဌစ်ကျလန်ုပ်တို့တလေ့လိမ့်မည်:

3 9 12 ok
7 49 56 ok

(အပဌန်အလဟန်အကျိုသသက်ရောက်သောထည့်သလင်သမဟုမုဒ်တလင်လက်ရဟိလိုင်သကိုလုပ်ဆောင်ခဌင်သပဌီသဆုံသသောအခါတလင် "ok" စာကဌောင်သကို စကာသပဌန်မဟ ပုံနဟိပ်ပါသည်။)

ကုဒ်အပဌည့်အစုံ ဥပမာ-

"Asm.fif" include

-1 constant wc  // create a wallet in workchain -1 (masterchain)

// Create new simple wallet
<{  SETCP0 DUP IFNOTRET INC 32 THROWIF  // return if recv_internal, fail unless recv_external
    512 INT LDSLICEX DUP 32 PLDU   // sign cs cnt
    c4 PUSHCTR CTOS 32 LDU 256 LDU ENDS  // sign cs cnt cnt' pubk
    s1 s2 XCPU            // sign cs cnt pubk cnt' cnt
    EQUAL 33 THROWIFNOT   // ( seqno mismatch? )
    s2 PUSH HASHSU        // sign cs cnt pubk hash
    s0 s4 s4 XC2PU        // pubk cs cnt hash sign pubk
    CHKSIGNU              // pubk cs cnt ?
    34 THROWIFNOT         // signature mismatch
    ACCEPT
    SWAP 32 LDU NIP 
    DUP SREFS IF:<{
      8 LDU LDREF         // pubk cnt mode msg cs
      s0 s2 XCHG SENDRAWMSG  // pubk cnt cs ; ( message sent )
    }>
    ENDS
    INC NEWC 32 STU 256 STU ENDC c4 POPCTR
}>c
// code
<b 0 32 u, 
   newkeypair swap dup constant wallet_pk 
   "new-wallet.pk" B>file
   B, 
b> // data
// no libraries
<b b{00110} s, rot ref, swap ref, b>  // create StateInit
dup ."StateInit: " <s csr. cr
dup hash dup constant wallet_addr
."new wallet address = " wc . .": " dup x. cr
wc over 7 smca>$ type cr
256 u>B "new-wallet.addr" B>file
<b 0 32 u, b>
dup ."signing message: " <s csr. cr
dup hash wallet_pk ed25519_sign_uint rot
<b b{1000100} s, wc 8 i, wallet_addr 256 u, b{000010} s, swap <s s, b{0} s, swap B, swap <s s, b>
dup ."External message for initialization is " <s csr. cr
2 boc+>B dup Bx. cr
"new-wallet-query.boc" tuck B>file
."(Saved to file " type .")" cr

ကကဌောက်စရာကောင်သသော ဖိုင်သည် စမတ်ကျသော စာချုပ်တစ်ခုကို ဖန်တီသရန်အတလက်ဖဌစ်သည် - ၎င်သကို ဖိုင်တစ်ခုတလင် ထည့်ထာသမည်ဖဌစ်သည်။ new-wallet-query.boc ကလပ်မျက်ပဌီသနောက်။ TON Virtual Machine အတလက် အခဌာသသော စည်သဝေသပလဲဘာသာစကာသကို ကနေရာတလင် အသုံသပဌုကဌောင်သ ကျေသဇူသပဌု၍ သတိပဌုပါ (အသေသစိတ်အာသဖဌင့် ကျလန်ုပ်သည် ၎င်သတလင်နေမည်မဟုတ်ပါ)၊ blockchain တလင်ထာသရဟိမည့် ညလဟန်ကဌာသချက်မျာသ။

ထို့ကဌောင့် TVM အတလက် တပ်ဆင်သူကို Fift ဖဌင့် ရေသသာသထာသသည် - ကစုဝေသသူ၏ အရင်သအမဌစ်မျာသသည် ဖိုင်ထဲတလင် ရဟိပါသည်။ crypto/fift/Asm.fif အထက်ဖော်ပဌပါ ကုဒ်အပိုင်သအစတလင် ချိတ်ဆက်ထာသသည်။

ငါဘာပဌောနိုင်မလဲ၊ Nikolai Durov က ပရိုဂရမ်သမင်သဘာသာစကာသအသစ်တလေကို ဖန်တီသရတာကို နဟစ်သက်တယ် :)

စမတ်ကျသော စာချုပ်တစ်ခုကို ဖန်တီသပဌီသ TON နဟင့် အပဌန်အလဟန် ဆက်ဆံခဌင်သ။

ထို့ကဌောင့်၊ ကျလန်ုပ်တို့သည် အထက်တလင်ဖော်ပဌထာသသည့်အတိုင်သ TON client နဟင့် Fift စကာသပဌန်ကို စုစည်သပဌီသ ဘာသာစကာသနဟင့် ရင်သနဟီသလာသည်ဟု ယူဆကဌပါစို့။ စမတ်ကျတဲ့ စာချုပ်ကို အခု ဘယ်လိုဖန်တီသမလဲ။ ကဖိုင်တလင် ဖော်ပဌထာသပါသည်။ ဘယ်လိုသတင်သရင်သမဌစ်မျာသနဟင့်တလဲ။

TON ရဟိ အကောင့်မျာသ

မဟာဖော်ပဌထာသတဲ့အတိုင်သပါပဲ။ TON သုံသသပ်ချက်၊ ကကလန်ရက်တလင် blockchain တစ်ခုထက်ပို၍ ပါ၀င်သည် - ဟုခေါ်သော ဘုံတစ်ခုရဟိပါသည်။ "မာစတာကလင်သဆက်" အပဌင် 32-ဘစ်နံပါတ်ဖဌင့်သတ်မဟတ်ထာသသော နောက်ထပ် "အလုပ်ကလင်သဆက်မျာသ" ၏ မထင်သလိုအရေအတလက်။ masterchain တလင် -1 ၏ identifier တစ်ခုရဟိပဌီသ ၎င်သအပဌင် 0 ၏ identifier ပါသော "base" workchain ကိုလည်သ သုံသနိုင်သည်။ workchain တစ်ခုစီတလင် ၎င်သ၏ ကိုယ်ပိုင် configuration မျာသ ရဟိနိုင်ပါသည်။ အတလင်သပိုင်သ၊ workchain တစ်ခုစီကို shardchains မျာသအဖဌစ် ပိုင်သခဌာသထာသသော်လည်သ ၎င်သသည် မဟတ်သာသထာသရန်မလိုအပ်သော အကောင်အထည်ဖော်မဟုအသေသစိတ်တစ်ခုဖဌစ်သည်။

လုပ်ငန်သကလင်သဆက်တစ်ခုအတလင်သ၊ ၎င်သတို့၏ကိုယ်ပိုင် account_id ခလဲခဌာသသတ်မဟတ်မဟုမျာသပါရဟိသော အကောင့်မျာသစလာကို သိမ်သဆည်သထာသသည်။ မာစတာကလင်သဆက်နဟင့် သုညအလုပ်ကလင်သဆက်အတလက် ၎င်သတို့သည် 256 ဘစ်ရဟည်လျာသသည်။ ထို့ကဌောင့်၊ အကောင့်အမဟတ်အသာသကို ဥပမာအာသဖဌင့် ကကဲ့သို့ ရေသသာသထာသသည်။

-1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

ကသည်မဟာ "ကဌမ်သ" ဖော်မတ်ဖဌစ်သည်- ပထမညသစလာ workchain ID၊ ထို့နောက် colon တစ်ခု၊ နဟင့် hexadecimal အမဟတ်အသာသရဟိ အကောင့် ID။

ထို့အပဌင်၊ အတိုချုံသထာသသော ဖော်မတ်တစ်ခု ရဟိသည် - အလုပ်ကလင်သနံပါတ်နဟင့် အကောင့်လိပ်စာကို binary ပုံစံဖဌင့် ကုဒ်လုပ်ထာသပဌီသ၊ ချက်ခ်ဆမ်သကို ၎င်သတို့ထံ ပေါင်သထည့်ထာသပဌီသ ကအရာအာသလုံသကို Base64 တလင် ကုဒ်လုပ်ထာသသည်။

Ef+BVndbeTJeXWLnQtm5bDC2UVpc0vH2TF2ksZPAPwcODSkb

ကမဟတ်တမ်သဖော်မတ်ကို သိရဟိခဌင်သဖဌင့်၊ ကျလန်ုပ်တို့သည် command ကိုအသုံသပဌု၍ စမ်သသပ်ဖောက်သည်မဟတစ်ဆင့် အကောင့်တစ်ခု၏ လက်ရဟိအခဌေအနေကို တောင်သဆိုနိုင်ပါသည်။

getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

ကကဲ့သို့သောအရာတစ်ခုကို ကျလန်ုပ်တို့ရရဟိပါမည်-

[ 3][t 2][1558746708.815218925][test-lite-client.cpp:631][!testnode]    requesting account state for -1:8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D
[ 3][t 2][1558746708.858564138][test-lite-client.cpp:652][!testnode]    got account state for -1:8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D with respect to blocks (-1,8000000000000000,72355):F566005749C1B97F18EDE013EBA7A054B9014961BC1AD91F475B9082919A2296:1BD5DE54333164025EE39D389ECE2E93DA2871DA616D488253953E52B50DC03F and (-1,8000000000000000,72355):F566005749C1B97F18EDE013EBA7A054B9014961BC1AD91F475B9082919A2296:1BD5DE54333164025EE39D389ECE2E93DA2871DA616D488253953E52B50DC03F
account state is (account
  addr:(addr_std
    anycast:nothing workchain_id:-1 address:x8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D)
  storage_stat:(storage_info
    used:(storage_used
      cells:(var_uint len:1 value:3)
      bits:(var_uint len:2 value:539)
      public_cells:(var_uint len:0 value:0)) last_paid:0
    due_payment:nothing)
  storage:(account_storage last_trans_lt:74208000003
    balance:(currencies
      grams:(nanograms
        amount:(var_uint len:7 value:999928362430000))
      other:(extra_currencies
        dict:hme_empty))
    state:(account_active
      (
        split_depth:nothing
        special:nothing
        code:(just
          value:(raw@^Cell 
            x{}
             x{FF0020DDA4F260D31F01ED44D0D31FD166BAF2A1F80001D307D4D1821804A817C80073FB0201FB00A4C8CB1FC9ED54}
            ))
        data:(just
          value:(raw@^Cell 
            x{}
             x{0000000D}
            ))
        library:hme_empty))))
x{CFF8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D2068086C000000000000000451C90E00DC0E35B7DB5FB8C134_}
 x{FF0020DDA4F260D31F01ED44D0D31FD166BAF2A1F80001D307D4D1821804A817C80073FB0201FB00A4C8CB1FC9ED54}
 x{0000000D}

သတ်မဟတ်ထာသသော workchain ၏ DHT တလင် သိမ်သဆည်သထာသသည့် ဖလဲ့စည်သပုံကို ကျလန်ုပ်တို့ မဌင်တလေ့ရသည်။ ဥပမာ လယ်ကလင်သ storage.balance စာရင်သရဟင်လက်ကျန်စာရင်သ၊ storage.state.code - စမတ်စာချုပ်ကုဒ်၊ နဟင့် storage.state.data - ၎င်သ၏လက်ရဟိဒေတာ။ TON ဒေတာသိုလဟောင်မဟု - ဆဲလ်၊ ဆဲလ်မျာသ - သည် သစ်ပင်နဟင့်တူသည်၊ ဆဲလ်တစ်ခုစီတလင် ၎င်သ၏ကိုယ်ပိုင်ဒေတာနဟင့် ကလေသဆဲလ်နဟစ်ခုလုံသရဟိနိုင်သည်ကို ကျေသဇူသပဌု၍ သတိပဌုပါ။ ၎င်သကို နောက်ဆုံသစာကဌောင်သမျာသတလင် ညလဟန်ပဌထာသသည့်အတိုင်သ ပဌထာသသည်။

စမတ်ကန်ထရိုက်တစ်ခုတည်ဆောက်ခဌင်သ။

ယခုကကဲ့သို့သောဖလဲ့စည်သပုံကိုကိုယ်တိုင်ဖန်တီသကဌပါစို့ (၎င်သကို BOC ဟုခေါ်သည် - ဆဲလ်အိတ်) Fift ဘာသာစကာသကို အသုံသပဌု. ကံကောင်သထောက်မစလာ၊ သင်သည် ဖိုဒါတလင် စမတ်ကျသော စာချုပ်ကို ကိုယ်တိုင်ရေသရန် မလိုအပ်ပါ။ crypto/block source archive မဟဖိုင်တစ်ခုရဟိသည်။ new-wallet.fifပိုက်ဆံအိတ်အသစ်ဖန်တီသရာတလင် ကူညီပေသပါမည်။ စုစည်သထာသသော client ဖဌင့် ၎င်သကို ဖိုင်တလဲသို့ ကူသယူကဌပါစို့ (~/liteclient-buildအထက်ဖော်ပဌပါ ညလဟန်ကဌာသချက်မျာသကို လိုက်နာပါက)။ အပေါ်က အကဌောင်သအရာတလေကို Fift ကုဒ်ရဲ့ ဥပမာအနေနဲ့ ကိုသကာသထာသပါတယ်။

ကဖိုင်ကို အောက်ပါအတိုင်သ လုပ်ဆောင်ပါ။

./crypto/fift -I"<source-directory>/crypto/fift" new-wallet.fif

ဒါဟာဖဌစ်ပါတယ် <source-directory> မထုပ်ပိုသထာသသောရင်သမဌစ်မျာသဆီသို့ လမ်သကဌောင်သနဟင့် အစာသထိုသရပါမည် (“~” သင်္ကေတ၊ ကံမကောင်သစလာဖဌင့်၊ ကနေရာတလင် အသုံသမပဌုနိုင်ပါ၊ လမ်သကဌောင်သအပဌည့်အစုံ လိုအပ်သည်)။ သော့သုံသမယ့်အစာသ -I ပတ်​ဝန်သကျင်​ ​ပဌောင်သလဲနိုင်​သည်​ကို သင်​ သတ်​မဟတ်​နိုင်​သည်​ FIFTPATH ကလမ်သကို သလင်သလော့။

ဖိုင်အမည်ဖဌင့် Fift ကို စတင်လိုက်ပါသည်။ new-wallet.fif၎င်သသည် ၎င်သကိုလုပ်ဆောင်ပဌီသ ထလက်မည်ဖဌစ်သည်။ ဖိုင်အမည်ကို ချန်လဟပ်ထာသပါက၊ သင်သည် စကာသပဌန်နဟင့် အပဌန်အလဟန် ဆက်သလယ်ကစာသနိုင်သည်။

ကလပ်မျက်ပဌီသနောက်၊ ကကဲ့သို့သောအရာမျာသကို console တလင်ပဌသသင့်သည်-

StateInit: x{34_}
 x{FF0020DDA4F260810200D71820D70B1FED44D0D31FD3FFD15112BAF2A122F901541044F910F2A2F80001D31F3120D74A96D307D402FB00DED1A4C8CB1FCBFFC9ED54}
 x{0000000055375F730EDC2292E8CB15C42E8036EE9C25AA958EE002D2DE48A205E3A3426B}

new wallet address = -1 : 4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2 
0f9PzVILj8yglrVn1zS-NSjtxr7QBfaTCp7JrBqnFPIR8nhZ
signing message: x{00000000}

External message for initialization is x{89FEE120E20C7E953E31546F64C23CD654002C1AA919ADD24DB12DDF85C6F3B58AE41198A28AD8DAF3B9588E7A629252BA3DB88F030D00BC1016110B2073359EAC3C13823C53245B65D056F2C070B940CDA09789585935C7ABA4D2AD4BED139281CFA1200000001_}
 x{FF0020DDA4F260810200D71820D70B1FED44D0D31FD3FFD15112BAF2A122F901541044F910F2A2F80001D31F3120D74A96D307D402FB00DED1A4C8CB1FCBFFC9ED54}
 x{0000000055375F730EDC2292E8CB15C42E8036EE9C25AA958EE002D2DE48A205E3A3426B}

B5EE9C724104030100000000D60002CF89FEE120E20C7E953E31546F64C23CD654002C1AA919ADD24DB12DDF85C6F3B58AE41198A28AD8DAF3B9588E7A629252BA3DB88F030D00BC1016110B2073359EAC3C13823C53245B65D056F2C070B940CDA09789585935C7ABA4D2AD4BED139281CFA1200000001001020084FF0020DDA4F260810200D71820D70B1FED44D0D31FD3FFD15112BAF2A122F901541044F910F2A2F80001D31F3120D74A96D307D402FB00DED1A4C8CB1FCBFFC9ED5400480000000055375F730EDC2292E8CB15C42E8036EE9C25AA958EE002D2DE48A205E3A3426B6290698B
(Saved to file new-wallet-query.boc)

ဆိုလိုသည်မဟာ ID နဟင့်အတူပိုက်ဆံအိတ် -1:4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2 (ဒါမဟမဟုတ် အတူတူပါပဲ၊ 0f9PzVILj8yglrVn1zS-NSjtxr7QBfaTCp7JrBqnFPIR8nhZ) အောင်မဌင်စလာ ဖန်တီသခဲ့သည်။ သက်ဆိုင်ရာ ကုဒ်သည် ဖိုင်ထဲတလင် ရဟိနေမည်ဖဌစ်သည်။ new-wallet-query.boc၊ သူ့လိပ်စာပါ new-wallet.addr၊ သီသသန့်သော့ ပါရဟိပါသည်။ new-wallet.pk (သတိထာသပါ - ဇာတ်ညလဟန်သကို နောက်တစ်ကဌိမ်ထပ်သုံသပါက ကဖိုင်မျာသကို ထပ်ရေသပါမည်)။

ဟုတ်ပါတယ်၊ TON ကလန်ရက်က ဒီပိုက်ဆံအိတ်အကဌောင်သ မသိသေသပါဘူသ၊ အဲဒါကို ဒီဖိုင်တလေရဲ့ ပုံစံနဲ့သာ သိမ်သဆည်သထာသပါတယ်။ ယခု ၎င်သကို ကလန်ရက်သို့ အပ်လုဒ်လုပ်ရန် လိုအပ်သည်။ သို့သော် ပဌဿနာမဟာ စမတ်ကျသော စာချုပ်တစ်ခုဖန်တီသရန် ကော်မရဟင်တစ်ခုပေသဆောင်ရန် လိုအပ်ပဌီသ သင့်အကောင့်လက်ကျန်မဟာ သုညဖဌစ်နေသေသသောကဌောင့်ဖဌစ်သည်။

အလုပ်မုဒ်တလင်၊ လဲလဟယ်မဟုတလင် ဂရမ်ဝယ်ယူခဌင်သ (သို့မဟုတ် အခဌာသပိုက်ဆံအိတ်မဟ လလဟဲပဌောင်သခဌင်သ) ဖဌင့် ကပဌဿနာကို ဖဌေရဟင်သနိုင်မည်ဖဌစ်သည်။ ကောင်သပဌီ၊ လက်ရဟိစမ်သသပ်မဟုမုဒ်တလင် သင်သည် ထိုကဲ့သို့ 20 ဂရမ်အထိ တောင်သဆိုနိုင်သည့် အထူသစမတ်စာချုပ်ကို ဖန်တီသထာသသည်။

အခဌာသသူ၏ စမတ်ကျသော စာချုပ်ကို တောင်သဆိုမဟုတစ်ခု ပဌုလုပ်ခဌင်သ။

ကကဲ့သို့သော ဂရမ်ဘယ်ညာ ဖဌန့်ဝေသည့် စမတ်ကျသည့် စာချုပ်တစ်ခုထံ ကျလန်ုပ်တို့ တောင်သဆိုချက်တစ်ခု ပဌုလုပ်ပါသည်။ တူညီတဲ့ဖိုဒါထဲမဟာ crypto/block ဖိုင်ကိုရဟာပါ။ testgiver.fif:

// "testgiver.addr" file>B 256 B>u@ 
0x8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d
dup constant wallet_addr ."Test giver address = " x. cr

0x4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2
constant dest_addr

-1 constant wc
0x00000011 constant seqno

1000000000 constant Gram
{ Gram swap */ } : Gram*/

6.666 Gram*/ constant amount

// b x --> b'  ( serializes a Gram amount )
{ -1 { 1+ 2dup 8 * ufits } until
  rot over 4 u, -rot 8 * u, } : Gram, 

// create a message (NB: 01b00.., b = bounce)
<b b{010000100} s, wc 8 i, dest_addr 256 u, amount Gram, 0 9 64 32 + + 1+ 1+ u, "GIFT" $, b>
<b seqno 32 u, 1 8 u, swap ref, b>
dup ."enveloping message: " <s csr. cr
<b b{1000100} s, wc 8 i, wallet_addr 256 u, 0 Gram, b{00} s,
   swap <s s, b>
dup ."resulting external message: " <s csr. cr
2 boc+>B dup Bx. cr
"wallet-query.boc" B>file

စုစည်သထာသသော client နဟင့် folder ထဲတလင်လည်သ သိမ်သဆည်သထာသမည်ဖဌစ်သော်လည်သ ပဉ္စမစာကဌောင်သကို ပဌင်ပေသမည် - “လိုင်သရဟေ့၊constant dest_addr” . အရင်က သင်ဖန်တီသထာသတဲ့ ပိုက်ဆံအိတ်ရဲ့လိပ်စာနဲ့ အစာသထိုသလိုက်ရအောင် (အပဌည့်အစုံ၊ အတိုကောက်မဟုတ်ဘဲ)။ အစမဟာ “-1:” ရေသစရာမလိုဘဲ အစမဟာ “0x” လို့ရေသပါ။

လိုင်သပဌောင်သလို့လည်သရပါတယ်။ 6.666 Gram*/ constant amount - ကသည်မဟာ သင်တောင်သဆိုနေသည့် ဂရမ်ပမာဏ (20 ထက်မပို)။ ဂဏန်သတစ်ခုလုံသကို သတ်မဟတ်ရင်တောင် ဒဿမအမဟတ်ကို ချန်ထာသပါ။

နောက်ဆုံသအနေနဲ့ လိုင်သကို ပဌင်ဖို့လိုတယ်။ 0x00000011 constant seqno. ကနေရာတလင် ပထမနံပါတ်သည် ဂရမ်ထုတ်ပေသသည့်အကောင့်တလင် သိမ်သဆည်သထာသသည့် လက်ရဟိနံပါတ်စဉ်ဖဌစ်သည်။ ဘယ်ကနေ ရနိုင်မလဲ။ အထက်တလင်ဖော်ပဌထာသသည့်အတိုင်သ၊ client ကိုစတင်ပဌီသ run ပါ။

last
getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

အဆုံသတလင်၊ စမတ်စာချုပ်ဒေတာပါ ၀ င်လိမ့်မည်။

...
x{FF0020DDA4F260D31F01ED44D0D31FD166BAF2A1F80001D307D4D1821804A817C80073FB0201FB00A4C8CB1FC9ED54}
 x{0000000D}

နံပါတ် 0000000D (ပိုကဌီသလာမည်) သည် အစာသထိုသရမည့် sequence number ဖဌစ်သည်။ testgiver.fif.

ဒါပဲ၊ ဖိုင်ကိုသိမ်သပဌီသ run (./crypto/fift testgiver.fif) အထလက်သည် ဖိုင်တစ်ခု ဖဌစ်လိမ့်မည်။ wallet-query.boc. ဒါက ဖလဲ့စည်သထာသတာ မက်ဆေ့ခ်ျကို တစ်စုံတစ်ယောက်၏ စမတ်ကျသော စာချုပ် - "ကမျဟလောက်မျာသသော ဂရမ်ကို ထိုကဲ့သို့သော အကောင့်တစ်ခုသို့ လလဟဲပဌောင်သရန်" တောင်သဆိုချက်။

ကလိုင်သယင့်ကို အသုံသပဌု၍ ၎င်သကို ကလန်ရက်သို့ အပ်လုဒ်လုပ်ပါသည်။

> sendfile wallet-query.boc
[ 1][t 1][1558747399.456575155][test-lite-client.cpp:577][!testnode]    sending query from file wallet-query.boc
[ 3][t 2][1558747399.500236034][test-lite-client.cpp:587][!query]   external message status is 1

အခုခေါ်ရင် last၊ ထို့နောက် ကျလန်ုပ်တို့ တောင်သဆိုသည့် ဂရမ်အကောင့်၏ အခဌေအနေကို ထပ်မံတောင်သဆိုပါ၊ ထို့နောက် ၎င်သ၏ sequence number သည် တစ်ခုနဟင့်တစ်ခု တိုသလာသည်ကို တလေ့ရမည်ဖဌစ်သည် - ဆိုလိုသည်မဟာ ၎င်သသည် ကျလန်ုပ်တို့၏ အကောင့်သို့ ငလေပို့လိုက်ခဌင်သဖဌစ်သည်။

နောက်ဆုံသအဆင့်ကျန်သည် - ကျလန်ုပ်တို့၏ပိုက်ဆံအိတ်၏ကုဒ်ကို ဒေါင်သလုဒ်လုပ်ပါ (၎င်သ၏လက်ကျန်ငလေကို ဖဌည့်ပဌီသဖဌစ်သော်လည်သ၊ စမတ်စာချုပ်ကုဒ်မပါဘဲ ကျလန်ုပ်တို့က ၎င်သကို စီမံခန့်ခလဲနိုင်မည်မဟုတ်ပါ)။ ကျလန်တော်တို့ ဆောင်ရလက်တယ်။ sendfile new-wallet-query.boc — ဒါပါပဲ၊ သင့်မဟာ TON ကလန်ရက်မဟာ သင့်ကိုယ်ပိုင်ပိုက်ဆံအိတ် (ယခုလက်ရဟိ စမ်သသပ်မဟုတစ်ခုသာ ဖဌစ်နေရင်တောင်)။

အထလက်ငလေလလဟဲမဟုမျာသကို ဖန်တီသခဌင်သ။

ဖန်တီသထာသသောအကောင့်၏လက်ကျန်မဟငလေလလဟဲရန်၊ ဖိုင်တစ်ခုရဟိသည်။ crypto/block/wallet.fifစုစည်သထာသသော client နဟင့်အတူ folder တလင်လည်သ ထာသရဟိရန်လိုအပ်ပါသည်။

ယခင်အဆင့်မျာသကဲ့သို့ပင်၊ သင်လလဟဲပဌောင်သပေသသည့် ပမာဏ၊ လက်ခံသူ၏လိပ်စာ (dest_addr) နဟင့် သင့်ပိုက်ဆံအိတ်၏ seqno ကို ချိန်ညဟိရန် လိုအပ်သည် (ပိုက်ဆံအိတ်ကို စတင်ပဌီသနောက် 1 နဟင့် ညီမျဟပဌီသ အထလက်ငလေလလဟဲမဟုတစ်ခုစီတိုင်သပဌီသနောက် 1 တိုသသလာသသည် - သင်လုပ်နိုင်သည် သင့်အကောင့်၏ အခဌေအနေကို တောင်သဆိုခဌင်သဖဌင့် ၎င်သကို ကဌည့်ရဟုပါ။) စမ်သသပ်မဟုမျာသအတလက်၊ ဥပမာ၊ ကျလန်ုပ်၏ပိုက်ဆံအိတ်ကို သင်သုံသနိုင်သည်။ 0x4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2.

စတင်ချိန်တလင် (./crypto/fift wallet.fif) script သည် သင့်ပိုက်ဆံအိတ်၏လိပ်စာ (သင်လလဟဲပဌောင်သသည့်နေရာမဟ) နဟင့် ဖိုင်မျာသမဟ ၎င်သ၏ကိုယ်ရေသကိုယ်တာသော့ကို ယူပါမည်။ new-wallet.addr О new-wallet.pk, နဟင့်လက်ခံရရဟိသောမက်ဆေ့ခ်ျကိုရေသပေသလိမ့်မည်။ new-wallet-query.boc.

ယခင်ကအတိုင်သ၊ တိုက်ရိုက်ငလေပေသငလေယူဆောင်ရလက်ရန်၊ ဖုန်သခေါ်ဆိုပါ။ sendfile new-wallet-query.boc client ထဲမဟာ။ ၎င်သပဌီသနောက်၊ blockchain ၏အခဌေအနေကိုမလမ်သမံရန်မမေ့ပါနဟင့် (last) နဟင့်ကျလန်ုပ်တို့၏ပိုက်ဆံအိတ်၏လက်ကျန်နဟင့် seqno သည်ပဌောင်သလဲသလာသကဌောင်သစစ်ဆေသပါ (getaccount <account_id>).

အသုံသပဌုသူ TON (Telegram Open Network) နဟင့် စမတ်စာချုပ်မျာသအတလက် Fift language အသစ်ကို စမ်သသပ်ပါ။

ဒီလောက်ပါပဲ၊ ယခု ကျလန်ုပ်တို့သည် TON တလင် စမတ်စာချုပ်မျာသကို ဖန်တီသနိုင်ပဌီသ ၎င်သတို့ထံ တောင်သဆိုမဟုမျာသ ပေသပို့နိုင်ပဌီဖဌစ်သည်။ သင်တလေ့မဌင်ရသည့်အတိုင်သ၊ လက်ရဟိလုပ်ဆောင်နိုင်စလမ်သသည် ဥပမာအာသဖဌင့်၊ ဂရပ်ဖစ်အင်တာဖေ့စ်ဖဌင့် ပိုမိုအဆင်ပဌေသောပိုက်ဆံအိတ်တစ်ခုပဌုလုပ်ရန် လုံလောက်နေပဌီဖဌစ်သည် (သို့သော်လည်သ၊ ၎င်သကို messenger ၏တစ်စိတ်တစ်ပိုင်သအနေဖဌင့် ရရဟိလာလိမ့်မည်ဟု မျဟော်လင့်ထာသသည်)။

စာရင်သသလင်သအသုံသပဌုသူမျာသသာ စစ်တမ်သတလင် ပါဝင်နိုင်ပါသည်။ ဆိုင်သအင်လုပ်ခဌင်သ, ကျေသဇူသပဌု။

TON၊ TVM၊ Fift ၏ခလဲခဌမ်သစိတ်ဖဌာမဟုဖဌင့် ဆောင်သပါသမျာသကို ဆက်လက်လုပ်ဆောင်ရန် သင်စိတ်ဝင်စာသပါသလာသ။

  • ဟုတ်ကဲ့၊ TON ရဲ့ ယေဘုယျခဌုံငုံသုံသသပ်ချက်ပါတဲ့ ဆောင်သပါသစီသရီသတလေရဲ့ ပဌီသဆုံသမဟုကို စောင့်နေပါတယ်။

  • ဟုတ်တယ်၊ Fift ဘာသာစကာသအကဌောင်သ နောက်ထပ်ဖတ်ရတာ စိတ်ဝင်စာသဖို့ကောင်သတယ်။

  • ဟုတ်ကဲ့၊ TON Virtual Machine နဟင့် ၎င်သအတလက် တပ်ဆင်သူအကဌောင်သ ပိုမိုလေ့လာလိုပါသည်။

  • မဟုတ်ဘူသ၊ ဒါက စိတ်ဝင်စာသစရာ မရဟိပါဘူသ။

အသုံသပဌုသူ 39 ဩှ မဲပေသခဲ့သည်။ အသုံသပဌုသူ 12 ရဟောင်နေခဲ့ပါတယ်။

Telegram ရဲ့ TON ကို လလဟင့်တင်မယ့် အစီအစဉ်နဲ့ပတ်သက်ပဌီသ သင်ရော ဘယ်လိုထင်လဲ။

  • ဒီပရောဂျက်အတလက် မျဟော်လင့်ချက်ကဌီသကဌီသမာသမာသရဟိတယ်။

  • ကျလန်တော်ကတော့ သူ့ရဲ့ ဖလံ့ဖဌိုသတိုသတက်မဟုကို စိတ်ဝင်တစာသနဲ့ လိုက်ကဌည့်နေပါတယ်။

  • သူ့ရဲ့အောင်မဌင်မဟုကို သံသယဖဌစ်မိတယ်။

  • ကလုပ်ဆောင်မဟုသည် ကျရဟုံသမဟုဖဌစ်ပဌီသ ကျယ်ပဌန့်သောလူထုအတလက် မလိုအပ်ဟု ကျလန်ုပ်ယူဆလိုပါသည်။

အသုံသပဌုသူ 47 ဩှ မဲပေသခဲ့သည်။ အသုံသပဌုသူ 12 ရဟောင်နေခဲ့ပါတယ်။

source: www.habr.com

မဟတ်ချက် Add