ထီ၏နမူနာကိုအသုံးပြု၍ ကျပန်း oracle ကိုအသုံးပြုခြင်း။

တစ်မနက်မှာ ဆောင်းပါးတစ်ပုဒ်တွေ့တယ်။ အတည်ပြုနိုင်သော ကျပန်းနံပါတ် မီးစက် Waves ပလပ်ဖောင်း blockchain ပေါ်တွင်။

ခြုံငုံပုံမှာ ရှင်းရှင်းလင်းလင်းရှိသော်လည်း တိကျသော အကောင်အထည်ဖော်မှုနည်းလမ်းမှာ မပါရှိပါ။ အချို့သောကုဒ်များ၊ လက်မှတ်များ၊ ဘာလဲ၊ ဘယ်မှာ၊ ဘာကြောင့်လဲ။

oracle ၏ရေးသားသူနှင့် တိုင်ပင်ဆွေးနွေးမှုများစွာ ရလဒ်အနေဖြင့်၊ ပုံဆွဲယုတ္တိဗေဒ ( PHP တွင် အကောင်အထည်ဖော်ထားသည်) ကို ကျပန်းနံပါတ်ရရှိရန်အတွက် အယ်လဂိုရီသမ်တစ်ခုဖြင့် ပေါင်းစပ်နိုင်ခဲ့သည်။

  1. ပြိုင်ပွဲ/အဝိုင်းအစတွင်၊ ကျွန်ုပ်တို့သည် oracle မှ ကုဒ် (R-code) ပထမပိုင်းကို တောင်းဆိုပါသည်။

    ယခုအချိန်တွင် ကစားသမားအရေအတွက်၊ ဆုနေရာအရေအတွက်၊ ဆုပေးချေမှုအရွယ်အစား၊ သို့မဟုတ် ယေဘုယျအားဖြင့် ထီတည်ရှိမှုအကြောင်း အချက်အလက် မရှိပါ။ oracle သည် ငွေပေးငွေယူတစ်ခုမှတစ်ဆင့်၊ ၎င်းကိုတောင်းဆိုထားသူများမှ တစ်ကြိမ်သာအသုံးပြုနိုင်သည့် ကိုယ်ရေးကိုယ်တာကျပန်းကုဒ်ကိုထုတ်ပေးပါသည်။ စကားမစပ်၊ R-ကုဒ်ကို "ဝယ်ယူနိုင်သည်" (ဆိုလိုသည်မှာ တောင်းဆိုမှု အရောင်းအ၀ယ်၏ ကုန်ကျစရိတ် + တုံ့ပြန်မှုအတွက် oracle သို့ လျော်ကြေးငွေ၊ ဤပမာဏသည် လက်ရှိနှုန်းထားအရ $0.015 ခန့်ဖြစ်ပြီး၊ ကုဒ်ကိုယ်တိုင်က အခမဲ့ထုတ်ပေးပါသည်။ ) တုံ့ပြန်မှု ငွေလွှဲလက်ခံမှုကို နောက်ပိုင်းတွင် မစောင့်ဆိုင်းစေရန် အကြိမ်ပေါင်းများစွာ ကြိုတင်ဆောင်ရွက်ပါ။ ဒေတာဘေ့စ်မှာ ပုံမှန်မွမ်းမံပြင်ဆင်ထားတဲ့ ကြားခံလေးတစ်ခု လုပ်ထားတယ်။

  2. ပြိုင်ပွဲသည် များသောအားဖြင့် Waves ပလပ်ဖောင်း blockchain ၏ အတုံး 60 ကြာမြင့်ပြီး ယခုအချိန်တွင် ခန့်မှန်းခြေအားဖြင့် 1 နာရီဖြစ်သည်။ အကွက် 60 အပြီးတွင် အနည်းဆုံး လက်မှတ်နှစ်စောင်ရှိလျှင် ပြိုင်ပွဲကို ပြီးမြောက်သည်ဟု ယူဆပြီး ပိတ်သည်၊ သို့မဟုတ်ပါက ပြိုင်ပွဲလှုပ်ရှားမှုအချိန်ကို နောက်ထပ် 60 တုံးအထိ တိုးချဲ့ထားသည်။
  3. ပြိုင်ပွဲပိတ်ပြီးပြီးချင်း၊ ကျွန်ုပ်တို့သည် ရက်စွဲငွေလွှဲမှုတစ်ခုထုတ်ပေးပြီး ပေးပို့ပါ (၎င်းအတွက် ကော်မရှင်ခ $0.005 ခန့်ကိုလည်း ပေးဆောင်သည်)၊ လိုအပ်ပါက၊ ပုံ၏အခြေအနေအားလုံးကို မှတ်တမ်းတင်ထားပြီး များစွာသော ကစားသမားများစာရင်း (လက်မှတ်များ)၊ အဲဒီထဲကမှ ကံထူးရှင်တွေကို ရွေးရမယ်။
  4. ဤအဆင့်တွင်၊ ကျွန်ုပ်တို့တွင် ကုဒ် (R-code) နှင့် ငွေပေးငွေယူရက်စွဲ ID (TXID) ၏ ပထမအပိုင်း ရှိပြီးသားဖြစ်သည်။ ကျွန်ုပ်တို့သည် ၎င်းတို့အား ပေါင်းစပ်ဖွဲ့စည်းမှုပုံစံ (R-code + TXID) ဖြင့် oracle သို့ လက်မှတ်ရရှိရန် ပေးပို့လိုက်သည်၊ ကျွန်ုပ်တို့သည် ကော်မရှင် + လျော်ကြေးကို ထပ်မံပေးဆောင်ပါသည်။ oracle သည် ရရှိလာသော ဒေတာကို ထူးခြားမှုနှင့် ပိုင်ဆိုင်မှုအတွက် စစ်ဆေးပြီး တုံ့ပြန်မှုအနေဖြင့် ကျပန်းနံပါတ် ဂျင်နရေတာအတွက် အစမှတ်ဖြစ်သည့် sha256 ဖော်မတ် (S-code) ၏ ဒုတိယအပိုင်းကို ကျွန်ုပ်တို့ထံ ပေးပို့ပါသည်။
  5. အနိုင်ရလက်မှတ်၏ နံပါတ်စဉ်ကို ညွှန်ပြမည့် ကျပန်းနံပါတ်တစ်ခုရရှိရန်၊ ကျွန်ုပ်တို့သည် S-code ကို sha256 binary data မှ hexadecimal (HEX) ကိုယ်စားပြုအဖြစ်သို့ ပြောင်းပါသည်။ ထို့နောက် ထွက်ပေါ်လာသော HEX စာကြောင်းမှ ကျွန်ုပ်တို့သည် နံပါတ်တစ်ခုကို ရရှိသည်။ လက်မှတ်အရေအတွက် (all_tickets) ဖြင့် ရရှိလာသော နံပါတ်ကို ပိုင်းခြားပြီး ရလဒ်သို့ 1 ပေါင်းထည့်သည် (အားလုံး_လက်မှတ်များမတိုင်မီ နံပါတ် 1 ကိုရရန်)။ ရလဒ်အနေဖြင့် ကျွန်ုပ်တို့သည် အနိုင်ရသူ၏ အမှတ်စဉ်နံပါတ်ကို ရရှိပါသည်။
  6. အကယ်၍ ပုံ၏အခြေအနေများအရ၊ ဆုရရှိသူအများအပြားရှိနေပါက၊ ထို့နောက် ဆုရရှိသည့်နေရာအရေအတွက်နှင့် ညီမျှသောပမာဏဖြင့် ယခင်လုပ်ဆောင်မှုများကို ပြန်လုပ်ပါ။ ဤကိစ္စတွင်၊ စာရင်းမှ ဖယ်ရှားလိုက်တိုင်း အနိုင်ရပြီး လက်မှတ်အားလုံးကို 1 ဖြင့် လျှော့ချပြီး S-code အစား ယခင်ရရှိထားသော နံပါတ်ကို ညွှန်ပြပါသည်။

တိကျသေချာတဲ့ ဥပမာ၊ ပြိုင်ပွဲအမှတ် ၁၁၉ ကို ကြည့်ကြရအောင်။

စုစုပေါင်း လက်မှတ် ၇ စောင် (all_tickets)
လက်မှတ်ဖိုး အကြွေ ၅၀ (လောင်းကြေး)
ဂိမ်းကြေး 10% (အခကြေးငွေ)

ကံစမ်းမဲ၏အခြေအနေများအရ 30% သည် ဆုငွေကို ဆိုလိုပါသည်။ ဤကိစ္စတွင်၊ လက်မှတ် 2 စောင်သည် ဖော်မြူလာအရ တွက်ချက်ထားသည့် အရွယ်အစား (Bet*all_tickets-Fee)/2 ဖြစ်သည်။

1. ရရှိထားသော R-ကုဒ်- RdbAiAhKhveAtR4eyTKq75noMxdcEoxbE6BvojJjM13VE

2. ပြိုင်ပွဲပိတ်ပြီးနောက်၊ ကျွန်ုပ်တို့တွင် အတွဲပုံစံဖြင့် လက်မှတ်များစာရင်းရှိသည်- နံပါတ် + လိပ်စာ (ပြိုင်ပွဲတွင်ပါဝင်မှုအတွက် ငွေပေးချေထားသည့် ပိုက်ဆံအိတ်၏လိပ်စာ)။ လိပ်စာများကို ထပ်ခါတလဲလဲ ပြုလုပ်နိုင်သည်ကို ကျေးဇူးပြု၍ မှတ်သားထားပါ၊ ဆိုလိုသည်မှာ ပါဝင်သူတစ်ဦးသည် ပြိုင်ပွဲတစ်ခုသို့ လက်မှတ်များစွာကို ဝယ်ယူခဲ့ကြောင်း၊ ၎င်းကို စည်းမျဉ်းများဖြင့် တားမြစ်ထားခြင်းမရှိပါ။

ငွေလွှဲသည့်ရက်စွဲ ပို့လိုက်သည်- 82JTMzhHM5xEA2fQ9Qscd5QAJU3DAd8nShLjdVHTer5S

3. တောင်းဆိုထားသော S-ကုဒ်- FTF3uRyaa4F2uAyD6z5a3CNbTXbQLc7fSR6CFNVjgZYV မှတ်ချက်နှင့်အတူ (R-ကုဒ် + TXID):
RdbAiAhKhveAtR4eyTKq75noMxdcEoxbE6BvojJjM13VE 82JTMzhHM5xEA2fQ9Qscd5QAJU3DAd8nShLjdVHTer5S

4. ရရှိထားသော S-ကုဒ်- Ri89jHB4UXZDXY6gT1m4LBDXGMTaYzHozMk4nxiuqVXdC

5. ဆုရရှိသူများကို ဆုံးဖြတ်ခဲ့သည်။

6. ငွေပေးချေမှုများ ပေးပို့ခဲ့သည်။

ရလဒ်အနေဖြင့်၊ ကျွန်ုပ်တို့သည် အချိန်မရွေး ၎င်းကိုစစ်ဆေးနိုင်သည့် blockchain ရှိ ဆုပုံဆွဲခြင်းလုပ်ငန်းစဉ်အဆင့်ဆင့်ကို မှတ်တမ်းတင်ထားပါသည်။ ပွဲစီစဉ်သူသည် ရလဒ်များကို ခြယ်လှယ်ရန် မဖြစ်နိုင်သလောက် ဖြစ်သော်လည်း အနည်းဆုံး၊ ၎င်းကို သတိမပြုမိဘဲ လုပ်ဆောင်ရန် မဖြစ်နိုင်တော့ပါ။

determine the winner № 1

All_tickets:
Index: 1 Ticket:139
Index: 2 Ticket:141
Index: 3 Ticket:143
Index: 4 Ticket:145
Index: 5 Ticket:147
Index: 6 Ticket:149
Index: 7 Ticket:151

1. bin -> hex ( bin2hex(sha256(S-code)) ): Ri89jHB4UXZDXY6gT1m4LBDXGMTaYzHozMk4nxiuqVXdC -> 0xdaf5802953dcb27f89972e38e8900b898733f6a613e6e1c6c5491362c1832596

2. hex -> gmp number: 0xdaf5802953dcb27f89972e38e8900b898733f6a613e6e1c6c5491362c1832596 -> 99037963059744689166154019807924045947962565922868104113173478160267437352342

3. gmp -> modulo (mod=7): 99037963059744689166154019807924045947962565922868104113173478160267437352342 -> 4

4. modulo -> ticket: 4 -> 145

determine the winner № 2

All_tickets:

Index: 1 Ticket:139
Index: 2 Ticket:141
Index: 3 Ticket:143
Index: 4 Ticket:147
Index: 5 Ticket:149
Index: 6 Ticket:151

1. bin -> hex ( bin2hex(sha256(previous hex)) ): daf5802953dcb27f89972e38e8900b898733f6a613e6e1c6c5491362c1832596 -> 0x9560e77525e9ea2db92cdb8484dc52046ccafac7c719b8859ff55f0eb92834a0
2. hex -> gmp number: 0x9560e77525e9ea2db92cdb8484dc52046ccafac7c719b8859ff55f0eb92834a0 -> 67565829218838067182838043983962684143266386786567427968312120473742580659360
3. gmp -> modulo (mod=6): 67565829218838067182838043983962684143266386786567427968312120473742580659360 -> 1
4. modulo -> ticket: 1 -> 139

End.

source: www.habr.com

မှတ်ချက် Add