ტრადიციულ ბლოკჩეინებში ბლოკის გავრცელება ხდება Peer-to-peer ქსელის მეშვეობით, რომელშიც ახალი ბლოკები და ტრანზაქციები გადაიცემა ყველა გამავრცელებელ კვანძზე. ეს პროცესი ჩვეულებრივ ხდება თანმიმდევრულად ან დატბორილია. თუმცა, ეს მეთოდი არ არის მასშტაბირებადი, რადგან მისი მართვა რთული ხდება, რადგან ქსელი იზრდება კომუნიკაციების დიდი რაოდენობის გამო. განვიხილოთ 35000 ვალიდატორის ქსელი. ლიდერმა უნდა გადასცეს 128 MB ბლოკი (დაახლოებით 500,000 ტრანზაქცია 250 ბაიტი თითო ტრანზაქციაზე) ყველა 35,000 ვალიდატორზე. ბლოკის გავრცელების ტრადიციული დანერგვა მოითხოვს ლიდერს ჰქონდეს უნიკალური კავშირი თითოეულ ვალიდატორთან და გადასცეს სრული 128 მბ 35000-ჯერ. ეს გამოიწვევს მონაცემთა მთლიანი გადაცემას 4,69 ტბ, რაც ბევრად აღემატება ტიპიური გამტარუნარიანობის შესაძლებლობებს და შეუძლებელი იქნება ამდენი კავშირის დაკავშირება. ნელი ბლოკის გავრცელების საკითხის გადასაჭრელად, სოლანამ წარმოადგინა Turbine, მრავალშრიანი ბლოკის გავრცელების მექანიზმი, რომელსაც იყენებენ კლასტერები წიგნში ჩანაწერების გადასაცემად ყველა კვანძში. ზოგადად, Turbine არღვევს ბლოკებს პატარა ბლოკებად და ავრცელებს მათ კვანძების რიგითობით, ამცირებს დატვირთვას ცალკეულ კვანძზე. რა არის ტურბინა? ტურბინის არქიტექტურა დიდად იყო შთაგონებული BitTorrent-ით. ორივე ეყრდნობა მონაცემთა დაქუცმაცებას - დიდი მონაცემების დაყოფას პატარა ნაწილებად - და იყენებს Peer-to-peer ქსელს მონაცემების გასავრცელებლად. ტურბინა ოპტიმიზებულია ნაკადისთვის. ის გადასცემს მონაცემებს მხოლოდ UDP-ის გამოყენებით, რაც უზრუნველყოფს ლატენტურ სარგებელს. ის ახორციელებს შემთხვევით გზას თითო პაკეტზე ქსელში, რადგან ლიდერები (ბლოკის მწარმოებლები) აწარმოებენ თავიანთ მონაცემებს. ბლოკის გამრავლების ეს მაღალი სიჩქარე სოლანას საშუალებას აძლევს შეინარჩუნოს თავისი მაღალი გამტარუნარიანობა. უფრო მეტიც, Turbine მიმართავს მონაცემთა ხელმისაწვდომობის საკითხს, რაც უზრუნველყოფს, რომ ყველა კვანძს შეუძლია საჭირო მონაცემებზე წვდომა ტრანზაქციების ეფექტურად დასადასტურებლად. ეს კეთდება უზარმაზარი გამტარუნარიანობის მოთხოვნის გარეშე, რაც საერთო ბლოკადაა სხვა ბლოკჩეინ ქსელებში. ტურბინის ბლოკის გამრავლების პროცესი სანამ ბლოკი გავრცელდება, ლიდერი აშენებს და ბრძანებს ბლოკს, ტრანზაქციების შემომავალი ნაკადის გათვალისწინებით. ბლოკის აშენების შემდეგ, ის მზად არის ტურბინის საშუალებით გასაგზავნად დანარჩენ ქსელში. ამ პროცესს უწოდებენ . შემდეგ შეტყობინებები გადაეცემა ვალიდატორებს შორის და ეს შეტყობინებები იკვრება ბლოკის მონაცემებში, რათა დააკმაყოფილოს ვალდებულების სტატუსი „დადასტურებული“ ან „დასრულებული“. ბლოკის გამრავლებას სანამ ლიდერები აშენებენ და სთავაზობენ მთელ ბლოკებს, ფაქტობრივი მონაცემები იგზავნება როგორც დაქუცმაცებული (ნაწილობრივი ბლოკები) ქსელის სხვა ვალიდატორებს. შრედები არის ატომური ერთეულები, რომლებიც გაგზავნილია ვალიდატორებს შორის. დაქუცმაცების და გამრავლების ეს პროცესი უზრუნველყოფს ბლოკის მონაცემების სწრაფ და ეფექტურ განაწილებას სოლანაში, მაღალი გამტარუნარიანობისა და ქსელის უსაფრთხოების შენარჩუნებას. შენიშვნა: დადასტურებულმა ბლოკმა მიიღო ლეჯერის ხმების უმეტესობა, ხოლო დასრულებული ბლოკი დადასტურებულია და აქვს 31+ დადასტურებული ბლოკი აგებული სამიზნე ბლოკის თავზე. წაშლის კოდირება ტურბინის ხეზე გაგზავნამდე, ნაჭრები დაშიფრულია რიდ-სოლომონის წაშლის კოდირებით, მონაცემთა დაცვის მეთოდით, რომელიც იყენებს შეცდომის გამოსწორების სპეციფიკურ ტიპებს. ეს მეთოდი შექმნილია იმისთვის, რომ დაიცვას მონაცემების დაკარგვა წარუმატებლობის ან შეცდომის შემთხვევაში. ის ყოფს მონაცემებს პატარა ბლოკებად და დაშიფვრავს თითოეულ ბლოკს დამატებითი ინფორმაციით. ტურბინა დიდწილად ეყრდნობა პაკეტების ხელახლა გადაცემას ვალიდატორებს შორის, რომლებსაც შეუძლიათ გადაწყვიტონ არასწორი ან არასრული მონაცემების ხელახალი გადაცემა. ხელახალი გადაცემის გამო, ქსელის მასშტაბით ნებისმიერი პაკეტის დაკარგვა ემატება და იმის ალბათობა, რომ პაკეტი ვერ მიაღწევს დანიშნულების ადგილს, იზრდება ყოველ ჰოპზე. მაგალითად, თუ ლიდერი გადასცემს ბლოკის პაკეტების 20%-ს, როგორც წაშლის კოდებს, მაშინ ქსელს შეუძლია ჩამოაგდეს პაკეტების ნებისმიერი 20% ბლოკის დაკარგვის გარეშე. ლიდერებს შეუძლიათ დინამიურად დაარეგულირონ ეს რიცხვი (FEC მაჩვენებელი) ქსელის პირობებზე დაყრდნობით, ისეთი ცვლადების გათვალისწინებით, როგორიცაა ბოლო დროს დაფიქსირებული ქსელის პაკეტის დაკარგვა და ხის სიღრმე. სოლანაში მონაცემთა დაქუცმაცება არის ლიდერის მიერ აშენებული ორიგინალური ბლოკის ნაწილობრივი ბლოკები, ხოლო აღდგენის ბლოკები არის Reed-Solomon-ის მიერ გენერირებული წაშლის კოდირებული ბლოკები. ბლოკები Solana-ზე, როგორც წესი, იყენებენ 32:32 FEC-ს (64 პაკეტიდან 32 შეიძლება დაიკარგოს ხელახლა გადაცემის გარეშე). ტურბინის ხე სოლანა იყენებს Turbine Tree-ს, სტრუქტურირებულ ქსელის ტოპოლოგიას, რათა ხელი შეუწყოს დაქუცმაცების ეფექტური გავრცელებას ვალიდატორებს შორის. როდესაც ფრაგმენტები სათანადოდ იქნება კოდირებული მათ შესაბამის დაქუცმაცებულ ჯგუფებში, ისინი მზად არიან გავრცელდეს ტურბინის ხის მეშვეობით, რათა აცნობონ სხვა ვალიდატორებს ქსელში ყველაზე განახლებული მდგომარეობის შესახებ. ტურბინის ხე, რომელიც ყველასთვის ცნობილია, უზრუნველყოფს თითოეულ ვალიდატორს ზუსტად იცოდეს სად არის პასუხისმგებელი ამ ნატეხის გადაცემაზე. ტურბინის ხე, როგორც წესი, არის 2- ან 3-ჰოპ ხე (დამოკიდებულია აქტიური ვალიდატორების რაოდენობაზე), ამჟამინდელი DATA_PLANE_FANOUT მნიშვნელობის 200-ის გათვალისწინებით. გარდა ამისა, კვანძებს შეუძლიათ მიმართონ ჭორებს და შეკეთებას, თუ ისინი არ მიიღებენ საკმარის ნაწილებს ან თუ ზარალის მაჩვენებელი აღემატება FEC-ის მაჩვენებელს. ამჟამინდელი იმპლემენტაციის პირობებში, კვანძი, რომელსაც აკლია საკმარისი ფრაგმენტები ბლოკის აღსადგენად, უგზავნის მოთხოვნას ლიდერს ხელახალი გადაცემისთვის. დეტერმინისტული ტურბინის პირობებში, ნებისმიერ კვანძს, რომელიც იღებს სრულ ბლოკს, შეუძლია გამოაგზავნოს სარემონტო ფრაგმენტები, რომლებიც სჭირდება მომთხოვნ კვანძს, რითაც მონაცემთა გადაცემა უფრო ქვევით ხის იმ ადგილებში, რომლებიც ითხოვენ მონაცემებს. დასკვნა ამ მოხსენებაში ჩვენ გამოვიკვლიეთ სოლანას ტურბინის ბლოკის გამრავლების მექანიზმი, რომელიც დიდ ბლოკებს ანაწილებს პატარა ნაჭრებად, რათა ეფექტურად გაანაწილოს მონაცემები ქსელში. ჩვენ ხაზგასმით აღვნიშნეთ, თუ როგორ უზრუნველყოფს წაშლის კოდირება მონაცემთა მთლიანობას და როგორ უწყობს ხელს Turbine Tree სწრაფ გადაცემას ვალიდატორებს შორის.