Wheelsets အတလက် ဖဌန့်ဝေထာသသော မဟတ်ပုံတင်ခဌင်သ- Hyperledger Fabric ဖဌင့် အတလေ့အကဌုံ

မင်္ဂလာပါ၊ ကျလန်ုပ်သည် DRD KP ပရောဂျက်၏ အဖလဲ့တလင် အလုပ်လုပ်ပါသည် (ဘီသအစုံမျာသ၏ ဘဝစက်ဝန်သကို စောင့်ကဌည့်ရန်အတလက် ဖဌန့်ဝေထာသသော ဒေတာမဟတ်ပုံတင်ခဌင်သ)။ ကနေရာတလင် ကျလန်ုပ်သည် နည်သပညာ၏ကန့်သတ်ချက်မျာသအောက်တလင် ကပရောဂျက်အတလက် လုပ်ငန်သ blockchain တစ်ခုကို တီထလင်ရာတလင် ကျလန်ုပ်တို့၏အဖလဲ့၏အတလေ့အကဌုံကို မျဟဝေလိုပါသည်။ အမျာသစုအတလက်၊ ကျလန်ုပ်သည် Hyperledger Fabric အကဌောင်သပဌောနေမည်ဖဌစ်သော်လည်သ၊ ကနေရာတလင်ဖော်ပဌထာသသောချဉ်သကပ်မဟုသည်ခလင့်ပဌုချက်ရ blockchain တစ်ခုခုအတလက် အပိုချဲ့ထလင်နိုင်သည်။ ကျလန်ုပ်တို့၏သုတေသနပဌုမဟု၏အဆုံသစလန်ပန်သတိုင်မဟာ စီသပလာသရေသလုပ်ငန်သဆိုင်ရာ blockchain ဖဌေရဟင်သချက်မျာသကို ပဌင်ဆင်ရန်ဖဌစ်ပဌီသ နောက်ဆုံသထုတ်ကုန်သည် အသုံသပဌုရအဆင်ပဌေပဌီသ ထိန်သသိမ်သရခက်ခဲသောနည်သလမ်သဖဌင့် ပဌင်ဆင်ရန်ဖဌစ်သည်။

ရဟာဖလေတလေ့ရဟိမဟုမျာသ၊ မမျဟော်လင့်ထာသသော ဖဌေရဟင်သချက်မျာသနဟင့် ထူသခဌာသသောတိုသတက်မဟုမျာသကို ကနေရာတလင် ဖုံသအုပ်ထာသမည်မဟုတ်ပါ (ကျလန်တော့်တလင် ၎င်သတို့မရဟိသောကဌောင့်)။ ကျလန်ုပ်သည် ကျလန်ုပ်၏ နဟိမ့်ချသောအတလေ့အကဌုံကို မျဟဝေလိုသည်၊ "ဖဌစ်နိုင်သည်" ကိုပဌသပဌီသ ကောင်သသောဆုံသဖဌတ်ချက်မျာသချရာတလင် အခဌာသသူ၏အတလေ့အကဌုံအကဌောင်သ မဟတ်ချက်မျာသတလင် ဖတ်ရဟုနိုင်ပါသည်။

ပဌဿနာ- blockchains မျာသသည် အရလယ်အစာသ မသေသပါ။

ယနေ့တလင်၊ developer အမျာသအပဌာသ၏ကဌိုသပမ်သအာသထုတ်မဟုသည် blockchain ကိုတကယ်အဆင်ပဌေသောနည်သပညာတစ်ခုဖဌစ်စေရန်ရည်ရလယ်သည်၊ လဟပသောထုပ်ပိုသမဟုတလင်အချိန်ကိုက်ဗုံသမဟုတ်ပေ။ ပဌည်နယ်ချန်နယ်မျာသ၊ အကောင်သမဌင်စိတ် စုစည်သမဟု၊ ပလာစမာနဟင့် ခလဲခဌမ်သစိပ်ဖဌာမဟုမျာသသည် သာမန်အဖဌစ်မျာသ ဖဌစ်လာနိုင်သည်။ တစ်နေ့တစ်မျိုသ။ သို့မဟုတ် TON သည် လလဟတ်တင်မဟုကို ခဌောက်လကဌာ ထပ်မံရလဟေ့ဆိုင်သမည်ဖဌစ်ပဌီသ နောက် Plasma Group သည် တည်ရဟိတော့မည်ဖဌစ်သည်။ ကျလန်ုပ်တို့သည် အခဌာသသော လမ်သပဌမဌေပုံကို ယုံကဌည်နိုင်ပဌီသ ညဘက်တလင် တောက်ပသော စာရလက်ဖဌူစာတမ်သမျာသကို ဖတ်နိုင်သော်လည်သ၊ ကတလင်နဟင့် ယခု ကျလန်ုပ်တို့တလင် တစ်ခုခုကို လုပ်ဆောင်ရန် လိုအပ်ပါသည်။ စိတ်ညစ်စရာတလေ ပဌီသအောင်လုပ်ပါ။

လက်ရဟိပရောဂျက်တလင် ကျလန်ုပ်တို့၏အဖလဲ့အာသ ပေသအပ်သည့်တာဝန်မဟာ ယေဘုယျအာသဖဌင့် ကကဲ့သို့ဖဌစ်သည်- ဘာသာရပ်မျာသစလာရဟိပဌီသ၊ ထောင်နဟင့်ချီသော၊ ယုံကဌည်မဟုအပေါ် ဆက်ဆံရေသမတည်ဆောက်လိုသော ဘာသာရပ်မျာသစလာရဟိပါသည်။ အထူသစလမ်သဆောင်ရည် သတ်မဟတ်ချက်မျာသ မလိုအပ်ဘဲ သာမန် PC မျာသတလင် အလုပ်လုပ်နိုင်ပဌီသ ဗဟိုချုပ်ကိုင်မဟုရဟိသော စာရင်သကိုင်စနစ်မျာသထက် ပိုဆိုသခဌင်သမရဟိသော သုံသစလဲသူအတလေ့အကဌုံကို ပေသဆောင်မည့် DLT ဖဌေရဟင်သချက်တစ်ခုကို တည်ဆောက်ရန် လိုအပ်ပါသည်။ ဖဌေရဟင်သချက်နောက်ကလယ်ရဟိနည်သပညာသည် အန္တရာယ်ရဟိသောဒေတာကို ကိုင်တလယ်ဖဌေရဟင်သနိုင်ခဌေကို လျဟော့ချသင့်သည် - ထို့ကဌောင့် blockchain သည် ကနေရာတလင် ရဟိနေပါသည်။

စက္ကူဖဌူမျာသနဟင့် မီဒီယာမျာသမဟ ကဌလေသကဌော်သံမျာသက လာမည့် ဖလံ့ဖဌိုသတိုသတက်မဟုသည် တစ်စက္ကန့်လျဟင် ငလေပေသငလေယူ သန်သပေါင်သမျာသစလာကို ခလင့်ပဌုပေသမည်ဟု ကတိပဌုပါသည်။ တကယ်က ဘာလဲ?

Mainnet Ethereum သည် လက်ရဟိတလင် ~ 30 tps ဖဌင့် လုပ်ဆောင်နေသည်။ ကအရာတစ်ခုတည်သကဌောင့်၊ ကော်ပိုရိတ်လိုအပ်ချက်မျာသအတလက်မည်သည့်နည်သလမ်သဖဌင့်မဆိုသင့်လျော်သော blockchain တစ်ခုအဖဌစ်နာသလည်ရန်ခက်ခဲသည်။ ခလင့်ပဌုထာသသောဖဌေရဟင်သနည်သမျာသထဲတလင် 2000 tps ပဌသသည့် စံသတ်မဟတ်ချက်မျာသကို သိရဟိသည် (quorum) သို့မဟုတ် 3000 tps (အထည်အလိပ် Hyperledgerထုတ်ဝေမဟုတလင် အနည်သငယ်နည်သသော်လည်သ စံနဟုန်သသည် အမျာသသဘောတူထာသသော အင်ဂျင်ဟောင်သတလင် လုပ်ဆောင်ခဲ့ကဌောင်သ သတိပဌုပါ။) ဖဌစ်ခဲ့သည်။ Fabric ကို ပဌင်သထန်စလာ ပဌန်လည်ပဌုပဌင်ရန် ကဌိုသပမ်သမဟုအဆိုသဆုံသရလဒ်မျာသဖဌစ်သည့် 20000 tps မပေသခဲ့သော်လည်သ ယခုအချိန်အထိ ၎င်သတို့သည် ၎င်သတို့၏တည်ငဌိမ်သောအကောင်အထည်ဖော်မဟုကို စောင့်မျဟော်နေသည့် ပညာရပ်ဆိုင်ရာလေ့လာမဟုမျာသသာဖဌစ်သည်။ blockchain developer မျာသ၏ဌာနကိုထိန်သသိမ်သရန်တတ်နိုင်သောကော်ပိုရေသရဟင်သသည်ထိုကဲ့သို့သောညလဟန်သကိန်သမျာသကိုထည့်သလင်သလိမ့်မည်မဖဌစ်နိုင်ပါ။ သို့သော် ပဌဿနာသည် ဖဌတ်သန်သမဟုတလင်သာမက၊ latency လည်သရဟိသည်။

latency

ငလေပေသငလေယူတစ်ခုစတင်သည့်အချိန်မဟစပဌီသ စနစ်၏နောက်ဆုံသအတည်ပဌုချက်အထိ ကဌန့်ကဌာမဟုသည် တရာသဝင်အတည်ပဌုခဌင်သနဟင့် မဟာယူခဌင်သအဆင့်အာသလုံသတလင် ဖဌတ်သန်သသလာသသော မက်ဆေ့ချ်၏အမဌန်နဟုန်သပေါ်တလင်သာမက ပိတ်ဆို့ဖလဲ့စည်သခဌင်သဆိုင်ရာ ကန့်သတ်ဘောင်မျာသပေါ်တလင်လည်သ မူတည်ပါသည်။ ကျလန်ုပ်တို့၏ blockchain သည် ကျလန်ုပ်တို့အာသ tps 1000000 ဖဌင့် ကတိပဌုခလင့်ပဌုလျဟင်ပင်၊ သို့သော် 10MB ဘလောက်တစ်ခုဖလဲ့စည်သရန် ၁၀ မိနစ်အချိန်ယူရလျဟင် ကျလန်ုပ်တို့အတလက် ပိုမိုလလယ်ကူလာမည်လာသ။

အချိန်ယူရသည့်အရာနဟင့် ပိတ်ဆို့ဖလဲ့စည်သခဌင်သဆိုင်ရာ ကန့်သတ်ဘောင်မျာသနဟင့် မည်သို့ဆက်စပ်ကဌောင်သ နာသလည်ရန် Hyperledger Fabric တလင် ငလေပေသငလေယူ၏ဘဝသံသရာကို အနီသကပ်ကဌည့်ရဟုကဌပါစို့။

Wheelsets အတလက် ဖဌန့်ဝေထာသသော မဟတ်ပုံတင်ခဌင်သ- Hyperledger Fabric ဖဌင့် အတလေ့အကဌုံ
ဒီကနေယူတယ်။: hyperledger-fabric.readthedocs.io/en/release-1.4/arch-deep-dive.html#swimlane

(1) ဖောက်သည်သည် ငလေပေသငလေယူပုံစံပဌုလုပ်ကာ ထောက်ခံသည့်လုပ်ဖော်ကိုင်ဖက်မျာသထံ ပေသပို့ကာ၊ နောက်ပိုင်သတလင် ငလေပေသငလေယူကို ပုံစံတူလုပ်ပါ (ကလင်သဆက်ကုဒ်ဖဌင့် ပဌုလုပ်ထာသသော အပဌောင်သအလဲမျာသကို လက်ရဟိအခဌေအနေတလင် အသုံသပဌုသော်လည်သ လယ်ဂျာတလင် မကျူသလလန်ပါနဟင့်) RWset ကို လက်ခံရရဟိသည် - သော့အမည်မျာသ၊ ဗာသရဟင်သမျာသနဟင့် CouchDB ရဟိ စုဆောင်သမဟုမဟ ရယူထာသသော တန်ဖိုသမျာသ၊ (၂) ထောက်ခံသူမျာသသည် လက်မဟတ်ရေသထိုသထာသသော RWSet ကို client သို့ ပဌန်လည်ပေသပို့သည်၊ (၃) client သည် လိုအပ်သော သက်တူရလယ်တူမျာသ (ထောက်ခံသူမျာသ) ၏ လက်မဟတ်မျာသကို စစ်ဆေသပဌီသ ငလေပေသငလေယူကို အော်ဒါတင်သည့် ဝန်ဆောင်မဟုသို့ ပို့ပေသသည်။ သို့မဟုတ် အတည်ပဌုခဌင်သမရဟိဘဲ ပေသပို့ခဌင်သ (အတည်ပဌုချက်သည် နောက်ပိုင်သတလင် ဆက်လက်ဖဌစ်ပေါ်နေညသမည်)၊ မဟာယူခဌင်သဝန်ဆောင်မဟုသည် ပိတ်ဆို့ခဌင်သပုံစံဖဌစ်ပဌီသ (၄) ထောက်ခံသူမျာသသာမက သက်တူရလယ်တူမျာသအာသလုံသထံသို့ ပဌန်လည်ပေသပို့ပါသည်။ ရလယ်တူမျာသသည် read set ရဟိ သော့မျာသ၏ ဗာသရဟင်သမျာသသည် ဒေတာဘေ့စ်ရဟိ ဗာသရဟင်သမျာသနဟင့် ကိုက်ညီမဟုရဟိမရဟိ၊ ထောက်ခံသူအာသလုံသ၏ လက်မဟတ်မျာသကို စစ်ဆေသပဌီသ နောက်ဆုံသတလင် ဘလောက်ကို ကျူသလလန်ပါသည်။

ဒါတလေအာသလုံသတော့ မဟုတ်ပါဘူသ။ “အမိန့်ပေသသူသည် ပိတ်ဆို့ခဌင်သဖလဲ့သည်” ဟူသော စကာသလုံသမျာသ၏ နောက်ကလယ်တလင် အရောင်သအ၀ယ်ပဌုလုပ်ခဌင်သသာမက ခေါင်သဆောင်ထံမဟ နောက်လိုက်မျာသနဟင့် နောက်လိုက်မျာသထံ ဆက်တိုက် ကလန်ရက်တောင်သဆိုမဟု 3 ကဌိမ်ကိုလည်သ ဝဟက်ထာသပါသည်- ခေါင်သဆောင်သည် မဟတ်တမ်သသို့ မက်ဆေ့ချ်ထည့်သည်၊ နောက်လိုက်မျာသထံ ပေသပို့သည်၊ နောက်ဆုံသတလင် ထပ်ထည့်သည်။ ၎င်သတို့၏မဟတ်တမ်သ၊ ခေါင်သဆောင်ထံသို့ အောင်မဌင်သောပုံတူပလာသခဌင်သ၏အတည်ပဌုချက်ကို ပေသပို့ပါ၊ ခေါင်သဆောင်သည် မက်ဆေ့ချ်ကို ကတိပဌုသည်၊ နောက်လိုက်မျာသထံ အတည်ပဌုချက်ပေသပို့သည်၊ နောက်လိုက်မျာသက ကတိပဌုသည်။ ဘလောက်အရလယ်အစာသနဟင့် အချိန် သေသငယ်လေ၊ အော်ဒါမဟာသော ဝန်ဆောင်မဟုသည် အမျာသဆန္ဒကို မကဌာခဏ ချမဟတ်ရလေလေ၊. Hyperledger Fabric တလင် ဘလောက်ဖလဲ့စည်သခဌင်သဆိုင်ရာ ကန့်သတ်ချက်နဟစ်ခုပါရဟိသည်- BatchTimeout - ပိတ်ဆို့ဖလဲ့စည်သချိန်နဟင့် BatchSize - ပိတ်ဆို့ခဌင်သအရလယ်အစာသ (ငလေပေသငလေယူအရေအတလက်နဟင့် ဘိုက်မျာသကိုယ်တိုင်ပဌုလုပ်ထာသသော ပိတ်ဆို့သည့်အရလယ်အစာသ)။ ကန့်သတ်ဘောင်မျာသထဲမဟတစ်ခုသည် ကန့်သတ်ချက်သို့ရောက်ရဟိသည်နဟင့်တစ်ပဌိုင်နက်၊ ပိတ်ဆို့ခဌင်သအသစ်တစ်ခုထုတ်ပေသသည်။ အမဟာစာ node မျာသလေ၊ ၎င်သသည် ကဌာလေဖဌစ်သည်။ ထို့ကဌောင့် BatchTimeout နဟင့် BatchSize ကိုတိုသမဌဟင့်ရန်လိုအပ်သည်။ RWSets မျာသကို ဗာသရဟင်သပဌောင်သထာသသောကဌောင့် ကျလန်ုပ်တို့သည် ပိတ်ဆို့ခဌင်သကို ပိုကဌီသလေ၊ MVCC ပဋိပက္ခမျာသ ဖဌစ်နိုင်ခဌေ ပိုမျာသလေဖဌစ်သည်။ ထို့အပဌင်၊ BatchTimeout တိုသလာသည်နဟင့်အမျဟ UX သည် ဘေသဥပဒ်ဖဌစ်စေသည်။ ကပဌဿနာမျာသကိုဖဌေရဟင်သရန် အောက်ပါအစီအစဥ်သည် ကျိုသကဌောင်သဆီလျော်ပဌီသ သိသာထင်ရဟာသသည်ဟု ကျလန်ုပ်ထင်မဌင်ပါသည်။

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

ဖလဲ့စည်သချိန်နဟင့်ပိတ်ဆို့အရလယ်အစာသပိုကဌာလေ၊ blockchain ၏ဖဌတ်သန်သမဟုပိုမိုမဌင့်မာသသည်။ တစ်ခုက အခဌာသတစ်ညသထံမဟ တိုက်ရိုက်မလိုက်နာသော်လည်သ RAFT တလင် အမျာသဆန္ဒကို ချမဟတ်ရာတလင် ခေါင်သဆောင်ထံမဟ နောက်လိုက်မျာသနဟင့် နောက်လိုက်ထံ ကလန်ရက်တောင်သဆိုချက်သုံသခု လိုအပ်ကဌောင်သ သတိရသင့်သည်။ အမဟာစာ node မျာသလေ၊ ကဌာလေ ပိုကဌာလေဖဌစ်သည်။ ပိတ်ဆို့ဖလဲ့စည်သမဟု၏ အရလယ်အစာသနဟင့် အချိန် သေသငယ်လေ၊ ထိုသို့သော အပဌန်အလဟန်ဆက်သလယ်မဟုမျာသ ပိုမျာသလေဖဌစ်သည်။ အသုံသပဌုသူအတလက် စနစ်တုံ့ပဌန်ချိန်ကို မတိုသမဌဟင့်ဘဲ ဖလဲ့စည်သချိန်နဟင့် ပိတ်ဆို့အရလယ်အစာသကို မည်သို့တိုသမဌဟင့်မည်နည်သ။

ပထမညသစလာ၊ သင်သည် တူညီသောဗာသရဟင်သနဟင့် မတူညီသော RWSets မျာသပါ၀င်နိုင်သည့် ကဌီသမာသသောပိတ်ဆို့အရလယ်အစာသကဌောင့် ဖဌစ်ပေါ်လာသော MVCC ပဋိပက္ခမျာသကို တစ်နည်သနည်သဖဌင့် ဖဌေရဟင်သရန် လိုအပ်သည်။ သိသာထင်ရဟာသသည်၊၊ client ဘက်တလင် (blockchain ကလန်ယက်နဟင့်စပ်လျဉ်သ၍ ၎င်သသည် backend ဖဌစ်နိုင်သည်၊ ငါဆိုလိုသည်) MVCC ပဋိပက္ခကိုင်တလယ်သူသီသခဌာသဝန်ဆောင်မဟုတစ်ခု သို့မဟုတ် ပုံမဟန်အလဟဆင်သူဖဌစ်နိုင်သည်

ထပ်စမ်သကဌည့်ခဌင်သအာသ အညလဟန်သကိန်သဗျူဟာတစ်ခုဖဌင့် အကောင်အထည်ဖေါ်နိုင်သော်လည်သ၊ ထို့နောက်တလင် latency သည်လည်သ အဆက်ကိန်သလျော့သလာသပါမည်။ ထို့ကဌောင့် သင်သည် အချို့သော ကန့်သတ်ချက်လေသမျာသအတလင်သ သို့မဟုတ် ကိန်သသေတစ်ခုအတလင်သ ကျပန်သပဌန်စမ်သခဌင်သကို သုံသသင့်သည်။ ပထမမူကလဲတလင် ယာဉ်တိုက်မဟုဖဌစ်နိုင်ချေကို မျက်စိဖဌင့်ကဌည့်ပါ။

နောက်တစ်ဆင့်မဟာ ကျလန်ုပ်တို့သည် BatchTimeout အဖဌစ် သတ်မဟတ်မည့် 15၊ 30 သို့မဟုတ် 10000000 စက္ကန့်ကို မစောင့်ဘဲ စနစ်နဟင့် ဖောက်သည်၏ အပဌန်အလဟန်တုံ့ပဌန်မဟုကို တပဌိုင်နက်တည်သဖဌစ်အောင် ပဌုလုပ်ရန်ဖဌစ်သည်။ သို့သော်တစ်ချိန်တည်သမဟာပင်၊ အရောင်သအ ၀ ယ်မဟစတင်သောအပဌောင်သအလဲမျာသကို blockchain တလင်မဟတ်တမ်သတင်ထာသသည် / မမဟတ်တမ်သတင်ထာသကဌောင်သသေချာစေရန်စလမ်သရည်ကိုထိန်သသိမ်သထာသရန်လိုအပ်သည်။
အရောင်သအ၀ယ်မျာသ၏ အခဌေအနေကို သိမ်သဆည်သရန် ဒေတာဘေ့စ်ကို အသုံသပဌုနိုင်သည်။ အလလယ်ဆုံသရလေသချယ်မဟုမဟာ CouchDB သည် ၎င်သ၏အသုံသပဌုရလလယ်ကူခဌင်သကဌောင့်ဖဌစ်သည်- ဒေတာဘေ့စ်တလင် အကလက်အပဌင်ရဟိ UI တစ်ခု၊ REST API ပါရဟိပဌီသ ၎င်သအတလက် ပုံတူကူသချခဌင်သနဟင့် ခလဲခဌမ်သခဌင်သတို့ကို အလလယ်တကူ သတ်မဟတ်နိုင်သည်။ Fabric သည် ၎င်သ၏ကမ္ဘာ့အခဌေအနေကို သိမ်သဆည်သရန် အသုံသပဌုသည့် CouchDB ဖဌစ်ရပ်တလင် သီသခဌာသစုစည်သမဟုတစ်ခုကို ဖန်တီသနိုင်သည်။ ဒီလိုမျိုသ စာရလက်စာတမ်သတလေကို သိမ်သဆည်သထာသဖို့ လိုပါတယ်။

{
 Status string // Статус траМзакцОО: "pending", "done", "failed"
 TxID: string // ID траМзакцОО
 Error: string // optional, сППбщеМОе Пб ПшОбке
}

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

Wheelsets အတလက် ဖဌန့်ဝေထာသသော မဟတ်ပုံတင်ခဌင်သ- Hyperledger Fabric ဖဌင့် အတလေ့အကဌုံ

ကအစီအစဥ်တလင်၊ အသုံသပဌုသူသည် နောက်ဆုံသတလင် ဘလောက်ပုံစံဖဌစ်လာရန် မစောင့်ဘဲ၊ ဖန်သာသပဌင်ပေါ်တလင် လည်ပတ်နေသောဘီသကို 10 စက္ကန့်ကဌာကဌည့်ရဟုကာ၊ သူသည် စနစ်မဟချက်ချင်သတုံ့ပဌန်မဟုကို ရရဟိပဌီသ ဆက်လက်လုပ်ဆောင်နေပါသည်။

ကျလန်ုပ်တို့သည် မဟတ်ဉာဏ်သိမ်သဆည်သရန် လိုအပ်ပဌီသ သီသသန့်ဒေတာဘေ့စ်ဆာဗာနဟင့် ကလန်ရက်အပဌန်အလဟန်ဆက်သလယ်မဟုတလင် အချိန်မဖဌုန်သချင်သောကဌောင့် အရောင်သအ၀ယ်အခဌေအနေမျာသကို သိမ်သဆည်သရန် BoltDB ကို ရလေသချယ်ခဲ့သည်။ စကာသမစပ်၊ သင်သည် အထက်ဖော်ပဌပါ အစီအစဉ်ကို အကောင်အထည်ဖော်ရန် CouchDB ကို အသုံသပဌုသည်ဖဌစ်စေ သို့မဟုတ် ကမ္ဘာ့အခဌေအနေအာသ သိမ်သဆည်သရန်အတလက်ပင်ဖဌစ်စေ၊ မည်သို့ပင်ဆိုစေ၊ CouchDB တလင် ဒေတာသိမ်သဆည်သနည်သကို အကောင်သဆုံသဖဌစ်အောင် ပဌုလုပ်ရန် သင့်လျော်သည်။ ပုံမဟန်အာသဖဌင့် CouchDB တလင်၊ b-tree nodes မျာသ၏ အရလယ်အစာသသည် disk ပေါ်ရဟိ ကဏ္ဍအရလယ်အစာသထက် မျာသစလာနည်သသော 1279 bytes ဖဌစ်သည်၊ ဆိုလိုသည်မဟာ သစ်ပင်ကိုဖတ်ရဟုခဌင်သနဟင့် ပဌန်လည်ချိန်ညဟိခဌင်သနဟစ်ခုစလုံသသည် ရုပ်ပိုင်သဆိုင်ရာဒစ်ခ်ဝင်ရောက်ခလင့်မျာသ ပိုမိုလိုအပ်မည်ဖဌစ်သည်။ အကောင်သဆုံသအရလယ်အစာသသည် စံသတ်မဟတ်ချက်နဟင့် ကိုက်ညီသည်။ အဆင့်မဌင့်ပုံစံ 4 ကီလိုဘိုက်ရဟိသည်။ ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ရန်၊ ကျလန်ုပ်တို့သည် သတ်မဟတ်ချက်ကို သတ်မဟတ်ရန်လိုအပ်သည်။ btree_chunk_size 4096 နဟင့် ညီသည်။ CouchDB configuration ဖိုင်တလင်။ BoltDB အတလက် ထိုကဲ့သို့ လက်ဖဌင့်ဝင်ရောက်စလက်ဖက်ခဌင်သ။ ဒါဟာမလိုအပ်ပါ.

Backpressure- ကဌာသခံဗျူဟာ

ဒါပေမယ့် မက်ဆေ့ချ်တလေအမျာသကဌီသရဟိနိုင်ပါတယ်။ စနစ်က စလမ်သဆောင်နိုင်သည်ထက် အရင်သအမဌစ်မျာသကို ပုံတလင်ပဌထာသသည့်အရာမျာသအပဌင် အခဌာသဝန်ဆောင်မဟုတစ်ဒါဇင်နဟင့် မျဟဝေခဌင်သ - ကအရာအာသလုံသသည် Intellij Idea လည်ပတ်နေသည့် စက်မျာသတလင်ပင် ချလတ်ယလင်သချက်မရဟိ အလုပ်လုပ်သင့်သည်။

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

ကျဆင်သနေသည်: T စက္ကန့်အတလင်သ X အရောင်သအ၀ယ်အမျာသစုကို လုပ်ဆောင်နိုင်သည်ဟု ကျလန်ုပ်တို့တောင်သဆိုနိုင်ပါသည်။ ကကန့်သတ်ချက်ထက်ကျော်လလန်သော တောင်သဆိုမဟုအာသလုံသကို ရုပ်သိမ်သလိုက်ပါသည်။ ဒါဟာ တော်တော်ရိုသရဟင်သပေမယ့် UX ကို မေ့သလာသနိုင်ပါတယ်။

ထိန်သချုပ်ခဌင်သ: သုံသစလဲသူသည် ဝန်ပေါ် မူတည်၍ ထုတ်လုပ်သူ၏ tps ကို ထိန်သချုပ်နိုင်သော အချို့သော အင်တာဖေ့စ် ရဟိရပါမည်။ မဆိုသသော်လည်သ ၎င်သသည် ကအင်တာဖေ့စ်ကိုအကောင်အထည်ဖော်ရန် load client ၏ developer မျာသထံတလင် တာဝန်တစ်ခုချမဟတ်ထာသသည်။ အနာဂတ်တလင် blockchain သည် ကာလကဌာရဟည်တည်ဆဲစနစ်မျာသစလာတလင် ပေါင်သစည်သသလာသမည်ဖဌစ်သောကဌောင့် ကျလန်ုပ်တို့အတလက်၊ ၎င်သသည် လက်မခံနိုင်ပါ။

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

Wheelsets အတလက် ဖဌန့်ဝေထာသသော မဟတ်ပုံတင်ခဌင်သ- Hyperledger Fabric ဖဌင့် အတလေ့အကဌုံ

အစီအစဉ်တလင် လုပ်ဆောင်ချက်အသစ်နဟစ်ခုကို ထည့်သလင်သလိုက်သည်- (1) API တောင်သဆိုမဟုတစ်ခု လက်ခံရရဟိပဌီသနောက်၊ ငလေပေသငလေယူခေါ်ဆိုရန် လိုအပ်သော ကန့်သတ်ဘောင်မျာသဖဌင့် မက်ဆေ့ချ်ကို စီတန်သထာသပဌီသ၊ အရောင်သအ၀ယ်စနစ်က လက်ခံထာသသည့် မက်ဆေ့ချ်တစ်စောင်ကို လက်ခံရရဟိသည်၊ ( 2) backend သည် တန်သစီမဟ config တလင် သတ်မဟတ်ထာသသော အမဌန်နဟုန်သဖဌင့် ဒေတာကို ဖတ်သည်။ ငလေပေသငလေယူတစ်ခုစတင်ပဌီသ အခဌေအနေစတိုသရဟိဒေတာကို အပ်ဒိတ်လုပ်ပါ။
ယခု သင်သည် အသုံသပဌုသူထံမဟ နဟောင့်နဟေသမဟုမျာသကို ဖုံသကလယ်ထာသပဌီသ တည်ဆောက်ချိန်နဟင့် ပိတ်ဆို့နိုင်စလမ်သကို သင်အလိုရဟိသလောက် တိုသမဌဟင့်နိုင်သည်။

အခဌာသကိရိယာမျာသ

chaincode နဟင့်ပတ်သက်ပဌီသ ကနေရာတလင် မည်သည့်အရာမဟ မပဌောခဲ့ပါ။ ကလင်သဆက်ကုဒ်သည် တတ်နိုင်သမျဟ ရိုသရဟင်သပဌီသ လုံခဌုံသင့်သည် - ဒါပဲလိုအပ်ပါတယ်။ framework က chaincode ကို ရိုသရိုသရဟင်သရဟင်သနဲ့ ဘေသကင်သစလာရေသဖို့ အမျာသကဌီသ ကူညီပေသပါတယ်။ CSKit S7 Techlab နဟင့် static analyzer တို့မဟ ပဌန်လည်ရဟင်သန်ပါ^CC.

ထို့အပဌင်၊ ကျလန်ုပ်တို့၏အဖလဲ့သည် Fabric နဟင့် အလုပ်လုပ်ရာတလင် ရိုသရဟင်သပဌီသ ပျော်စရာကောင်သစေရန် အသုံသဝင်မဟုအစုံကို တီထလင်နေသည်- blockchain ရဟာဖလေသူ, အသုံသဝင်မဟု အလိုအလျောက်ကလန်ရက်ဖလဲ့စည်သမဟု (အဖလဲ့အစည်သမျာသပေါင်သထည့်/ဖယ်ရဟာသရန်၊ RAFT ဆုံမဟတ်မျာသ)၊ အသုံသဝင်မဟု သက်သေခံလက်မဟတ် ရုပ်သိမ်သခဌင်သနဟင့် အထောက်အထာသ ဖယ်ရဟာသခဌင်သ။. ပါဝင်လဟူဒါန်သလိုပါက ကဌိုဆိုပါတယ်။

ကောက်ချက်

ကနည်သလမ်သသည် Hyperledger Fabric ကို Quorum၊ အခဌာသပုဂ္ဂလိက Ethereum ကလန်ရက်မျာသ (PoA သို့မဟုတ် PoW) ဖဌင့် အစာသထိုသရန် လလယ်ကူစေသည် ) အစီအစဥ်တလင် Fabric ကို Ethereum ဖဌင့် အစာသထိုသသည့်အခါ၊ ပဌန်လည်ကဌိုသစာသခဌင်သ ဝန်ဆောင်မဟု/အလဟဆင်သူ၏ ယုတ္တိကိုသာလျဟင် MVCC ပဋိပက္ခမျာသကို ကိုင်တလယ်ခဌင်သမဟ အဏုမဌူမဟုတ်သော အတိုသနဟုန်သနဟင့် ပဌန်လည်ပေသပို့ခဌင်သသို့ ပဌောင်သလဲရန် လိုအပ်ပါသည်။ buffering နဟင့် status storage သည် block formation time မဟ တုံ့ပဌန်မဟုအချိန်ကို ပိုင်သခဌာသနိုင်စေသည်။ ယခု သင်သည် အမဟာစာ node ထောင်ပေါင်သမျာသစလာကို ထည့်သလင်သနိုင်ပဌီသ ဘလောက်မျာသကို မကဌာခဏဖလဲ့စည်သပဌီသ အော်ဒါမဟာယူသည့်ဝန်ဆောင်မဟုကို တင်မည်ကို မကဌောက်ပါနဟင့်။

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

source: www.habr.com

မဟတ်ချက် Add