Blokcheyningizda qancha TPS bor?

Texnik bo'lmagan shaxsning har qanday taqsimlangan tizim haqida sevimli savoli bu "Sizning blokcheyningizda qancha tps bor?" Biroq, javobda berilgan raqam, odatda, savol beruvchining eshitishni xohlagan narsasi bilan deyarli umumiy emas. Darhaqiqat, u "sizning blokcheyningiz mening biznesim talablariga mos keladimi" deb so'ramoqchi edi va bu talablar bitta raqam emas, balki ko'p shartlar - bu erda tarmoq xatolariga chidamlilik, yakuniy talablar, o'lchamlar, tranzaktsiyalar tabiati va boshqa ko'plab parametrlar. Shunday qilib, "qancha tps" degan savolga javob oddiy bo'lishi mumkin emas va deyarli hech qachon to'liq emas. Juda murakkab hisob-kitoblarni amalga oshiradigan o'nlab yoki yuzlab tugunlarga ega taqsimlangan tizim tarmoq holati, blokcheyn tarkibi, texnik nosozliklar, iqtisodiy muammolar, tarmoqqa hujumlar va boshqa ko'plab sabablar bilan bog'liq juda ko'p turli xil holatlarda bo'lishi mumkin. . Ishlash bilan bog'liq muammolar yuzaga kelishi mumkin bo'lgan bosqichlar an'anaviy xizmatlardan farq qiladi va blokcheyn tarmoq serveri ma'lumotlar bazasi, veb-server va torrent-mijozning funktsional imkoniyatlarini birlashtirgan tarmoq xizmati bo'lib, uni barcha quyi tizimlardagi yuklanish profili nuqtai nazaridan juda murakkab qiladi. : protsessor, xotira, tarmoq, saqlash

Shunday bo'ladiki, markazlashtirilmagan tarmoqlar va blokcheynlar markazlashtirilgan dasturiy ta'minot ishlab chiqaruvchilari uchun juda o'ziga xos va g'ayrioddiy dasturiy ta'minotdir. Shuning uchun men markazlashtirilmagan tarmoqlarning ishlashi va barqarorligining muhim jihatlarini, ularni o'lchash va qiyinchiliklarni topish yondashuvlarini ta'kidlamoqchiman. Biz blokcheyn foydalanuvchilariga xizmatlar ko'rsatish tezligini cheklaydigan turli xil ishlash muammolarini ko'rib chiqamiz va ushbu turdagi dasturiy ta'minotga xos xususiyatlarni qayd etamiz.

Blockchain mijozi tomonidan xizmat so'rovining bosqichlari

Har qanday ko'p yoki kamroq murakkab xizmat sifati haqida halol gapirish uchun siz nafaqat o'rtacha qiymatlarni, balki maksimal/minimal, medianlarni, foizlarni ham hisobga olishingiz kerak. Nazariy jihatdan, ba'zi bir blokcheynda biz 1000 tps haqida gapirishimiz mumkin, ammo agar 900 ta tranzaksiya juda katta tezlikda bajarilgan bo'lsa va 100 tasi bir necha soniya davomida "tiqilib qolgan" bo'lsa, unda barcha tranzaksiyalar bo'yicha yig'ilgan o'rtacha vaqt mijoz uchun mutlaqo adolatli ko'rsatkich emas. kim men bir necha soniya ichida tranzaktsiyani yakunlay olmadim. O'tkazib yuborilgan konsensus raundlari yoki tarmoq bo'linishi natijasida yuzaga kelgan vaqtinchalik "teshiklar" sinov skameykalarida mukammal ishlash ko'rsatgan xizmatni sezilarli darajada buzishi mumkin.

Bunday to'siqlarni aniqlash uchun haqiqiy blokcheyn foydalanuvchilarga xizmat ko'rsatishda qiyinchiliklarga duch kelishi mumkin bo'lgan bosqichlarni yaxshi tushunish kerak. Keling, tranzaktsiyani etkazib berish va qayta ishlash, shuningdek, mijoz o'z tranzaktsiyasi qayta ishlanganligini va hisobga olinganligini tekshirishi mumkin bo'lgan blokcheynning yangi holatini olishni tasvirlab beraylik.

  1. tranzaktsiya mijozda shakllantiriladi
  2. tranzaktsiya mijoz tomonidan imzolanadi
  3. mijoz tugunlardan birini tanlaydi va unga o'z tranzaksiyasini yuboradi
  4. mijoz tugunning davlat ma'lumotlar bazasiga yangilanishlarga obuna bo'lib, uning tranzaksiya natijalari paydo bo'lishini kutadi
  5. tugun tranzaktsiyani p2p tarmog'i orqali tarqatadi
  6. bir nechta yoki bitta BP (blok ishlab chiqaruvchisi) davlat ma'lumotlar bazasini yangilab, to'plangan tranzaktsiyalarni qayta ishlaydi
  7. BP kerakli miqdordagi tranzaktsiyalarni qayta ishlagandan so'ng yangi blokni tashkil qiladi
  8. BP p2p tarmog'i orqali yangi blokni tarqatadi
  9. yangi blok mijoz kirayotgan tugunga yetkaziladi
  10. tugun holati ma'lumotlar bazasini yangilaydi
  11. tugun mijozga tegishli yangilanishni ko'radi va unga tranzaksiya haqida xabar yuboradi

Keling, ushbu bosqichlarni batafsil ko'rib chiqamiz va har bir bosqichda yuzaga kelishi mumkin bo'lgan ishlash muammolarini tavsiflaymiz. Markazlashtirilgan tizimlardan farqli o'laroq, biz tarmoq mijozlarida kod bajarilishini ham ko'rib chiqamiz. Ko'pincha, TPSni o'lchashda tranzaktsiyalarni qayta ishlash vaqti mijozdan emas, balki tugunlardan yig'iladi - bu mutlaqo adolatli emas. Mijoz tugun o'z tranzaktsiyasini qanchalik tez amalga oshirganiga ahamiyat bermaydi, u uchun eng muhimi, blokcheynga kiritilgan ushbu tranzaksiya haqida ishonchli ma'lumot unga kirish vaqti. Aynan mana shu ko'rsatkich tranzaksiyani bajarish vaqtidir. Bu shuni anglatadiki, turli xil mijozlar, hatto bir xil tranzaktsiyani jo'natgan bo'lsa ham, kanalga, yukga va tugunning yaqinligiga va hokazolarga bog'liq bo'lgan butunlay boshqacha vaqtlarni olishlari mumkin. Shunday qilib, bu vaqtni mijozlar bo'yicha o'lchash mutlaqo zarur, chunki bu optimallashtirilishi kerak bo'lgan parametrdir.

Mijoz tomonida tranzaktsiyani tayyorlash

Dastlabki ikki nuqtadan boshlaylik: tranzaktsiya mijoz tomonidan tuziladi va imzolanadi. Ajablanarlisi shundaki, bu mijoz nuqtai nazaridan blokcheyn ishlashiga to'sqinlik qilishi mumkin. Bu barcha hisob-kitoblar va ma'lumotlar bilan operatsiyalarni o'z zimmasiga oladigan markazlashtirilgan xizmatlar uchun odatiy emas va mijoz shunchaki tayyor natijani qo'lga kiritib, katta hajmdagi ma'lumotlar yoki hisob-kitoblarni so'rashi mumkin bo'lgan qisqa so'rovni tayyorlaydi. Blokcheynlarda mijoz kodi tobora kuchayib boradi va blokcheyn yadrosi tobora engilroq bo'ladi va katta hisoblash vazifalari odatda mijoz dasturiy ta'minotiga o'tkaziladi. Blokcheynlarda bitta tranzaktsiyani juda uzoq vaqt tayyorlay oladigan mijozlar bor (men turli xil dalillar, qisqacha dalillar, chegara imzolari va mijoz tomonidagi boshqa murakkab operatsiyalar haqida gapiryapman). Oson zanjirda tekshirish va mijoz bilan tranzaktsiyani jiddiy tayyorlashning yaxshi namunasi Merkle-tree asosidagi ro'yxatga a'zolikni isbotlashdir, bu erda maqola.

Shuni ham unutmangki, mijoz kodi shunchaki blokcheynga tranzaktsiyalarni yubormaydi, balki birinchi navbatda blokcheyn holatini so'raydi - va bu faoliyat tarmoq va blokcheyn tugunlarining tiqilib qolishiga ta'sir qilishi mumkin. Shunday qilib, o'lchovlarni o'tkazayotganda, mijoz kodining xatti-harakatlarini iloji boricha to'liq taqlid qilish oqilona bo'lar edi. Agar blokcheyningizda biron bir aktivni o'tkazish uchun oddiy tranzaktsiyaga oddiy raqamli imzo qo'yadigan oddiy engil mijozlar bo'lsa ham, har yili mijoz bo'yicha ko'proq massiv hisob-kitoblar amalga oshirilmoqda, kripto algoritmlari kuchayib bormoqda va ishlov berishning bu qismi kelajakda jiddiy to'siqlarga aylanadi. Shuning uchun, ehtiyot bo'ling va 3.5 soniya davom etgan tranzaksiyada tranzaksiyani tayyorlash va imzolashga 2.5 soniya va tarmoqqa jo'natish va javob kutish uchun 1.0 soniya sarflangan vaziyatni o'tkazib yubormang. Ushbu to'siq xavfini baholash uchun siz faqat blokcheyn tugunlaridan emas, balki mijoz mashinalaridan ko'rsatkichlarni to'plashingiz kerak.

Tranzaktsiyani yuborish va uning holatini kuzatish

Keyingi qadam tranzaksiyani tanlangan blokcheyn tuguniga yuborish va uni tranzaksiya puliga qabul qilish holatini olishdir. Ushbu bosqich oddiy ma'lumotlar bazasiga kirishga o'xshaydi; tugun puldagi tranzaktsiyani yozib olishi va u haqidagi ma'lumotlarni p2p tarmog'i orqali tarqatishni boshlashi kerak. Bu erda ishlashni baholashga yondashuv an'anaviy Web API mikroxizmatlarining ishlashini baholashga o'xshaydi va blokcheynlardagi tranzaktsiyalarning o'zi yangilanishi va ularning holatini faol ravishda o'zgartirishi mumkin. Umuman olganda, ba'zi blokcheynlardagi tranzaksiya ma'lumotlarini yangilash bir necha marta sodir bo'lishi mumkin, masalan, zanjirli vilkalar o'rtasida almashish paytida yoki BP blokga tranzaktsiyani kiritish niyatini e'lon qilganda. Ushbu hovuz hajmi va undagi tranzaktsiyalar soni bo'yicha cheklovlar blokcheynning ishlashiga ta'sir qilishi mumkin. Agar tranzaksiya puli mumkin bo'lgan maksimal hajmgacha to'ldirilgan bo'lsa yoki operativ xotiraga to'g'ri kelmasa, tarmoq unumdorligi keskin pasayishi mumkin. Blokcheynlarda keraksiz xabarlar oqimidan himoya qilishning markazlashtirilgan vositalari yo'q va agar blokcheyn katta hajmli tranzaksiyalar va past to'lovlarni qo'llab-quvvatlasa, bu tranzaksiya pulining to'lib ketishiga olib kelishi mumkin - bu boshqa potentsial ishlash to'siqlari.

Blokcheynlarda mijoz tranzaksiyani o‘zi yoqtirgan istalgan blokcheyn tuguniga jo‘natadi, tranzaksiya xeshi odatda jo‘natishdan oldin mijozga ma’lum, shuning uchun u faqat ulanishga erishishi va uzatilgandan so‘ng blokcheyn o‘zgarishini kutishi kerak. uning holati, uning tranzaktsiyasini ta'minlaydi. E'tibor bering, "tps" ni o'lchash orqali siz blokcheyn tuguniga ulanishning turli usullari uchun butunlay boshqacha natijalarga erishishingiz mumkin. Bu oddiy HTTP RPC yoki "obuna" naqshini amalga oshirish imkonini beruvchi WebSocket bo'lishi mumkin. Ikkinchi holda, mijoz avvalroq xabarnoma oladi va tugun tranzaksiya holati haqidagi javoblarga kamroq resurslarni (asosan xotira va trafik) sarflaydi. Shunday qilib, "tps" ni o'lchashda mijozlarning tugunlarga ulanish usulini hisobga olish kerak. Shu sababli, ushbu to'siq xavfini baholash uchun benchmark blockchain mijozlarga WebSocket va HTTP RPC so'rovlari bilan haqiqiy tarmoqlarga mos keladigan nisbatda taqlid qilishi, shuningdek, tranzaktsiyalar xarakterini va ularning hajmini o'zgartirishi kerak.

Ushbu to'siq xavfini baholash uchun siz nafaqat blokcheyn tugunlaridan emas, balki mijoz mashinalaridan ham ko'rsatkichlarni to'plashingiz kerak.

Tranzaktsiyalar va bloklarni p2p tarmog'i orqali uzatish

Blokcheynlarda peer-to-peer (p2p) tarmog'i ishtirokchilar o'rtasida tranzaktsiyalar va bloklarni o'tkazish uchun ishlatiladi. Tranzaktsiyalar tugunlardan biridan boshlab, tranzaktsiyalarni bloklarga to'playdigan va bir xil p2p-dan foydalanib, barcha tarmoq tugunlariga yangi bloklarni tarqatadigan tengdosh blok ishlab chiqaruvchilarga yetguncha tarmoq bo'ylab tarqaladi. Ko'pgina zamonaviy p2p tarmoqlarining asosi Kademlia protokolining turli xil modifikatsiyalari hisoblanadi. shu yerda ushbu protokolning yaxshi xulosasi va ko'raylik - BitTorrent tarmog'idagi turli o'lchovlarga ega bo'lgan maqola, undan bu turdagi tarmoq markazlashtirilgan xizmatning qat'iy tuzilgan tarmog'iga qaraganda ancha murakkab va kamroq prognoz qilish mumkinligini tushunish mumkin. Shuningdek, ko'raylik Ethereum tugunlari uchun turli xil qiziqarli o'lchovlarni o'lchash haqida maqola.

Muxtasar qilib aytganda, bunday tarmoqlardagi har bir tengdosh boshqa tengdoshlarning o'zining dinamik ro'yxatini saqlaydi, ulardan kontent bo'yicha murojaat qilingan ma'lumotlar bloklarini so'raydi. Tengdosh so'rovni qabul qilganda, u kerakli ma'lumotlarni beradi yoki so'rovni ro'yxatdagi keyingi soxta tasodifiy tengdoshga uzatadi va javob olgandan so'ng uni so'rovchiga uzatadi va uni bir muddat keshda saqlaydi. keyingi safar avvalroq ma'lumot bloki. Shunday qilib, mashhur ma'lumotlar ko'p sonli tengdoshlarning ko'p sonli keshlarida tugaydi va mashhur bo'lmagan ma'lumotlar asta-sekin almashtiriladi. Tengdoshlar kim kimga qancha ma'lumot o'tkazgani haqida qaydlarni olib boradi va tarmoq faol distribyutorlarni ularning reytinglarini oshirish va ularga yuqori darajadagi xizmat ko'rsatish orqali rag'batlantirishga harakat qiladi, nofaol ishtirokchilarni tengdoshlar ro'yxatidan avtomatik ravishda siqib chiqaradi.

Shunday qilib, endi tranzaktsiyani tarmoq bo'ylab tarqatish kerak, shunda blok ishlab chiqaruvchilar uni ko'rishlari va uni blokga kiritishlari mumkin. Tugun barchaga yangi tranzaktsiyani faol ravishda "tarqatadi" va tarmoqni tinglaydi, kutayotgan mijozni xabardor qilish uchun indeksda kerakli tranzaktsiya paydo bo'ladigan blokni kutadi. Tarmoqning p2p tarmoqlarida yangi tranzaktsiyalar va bloklar haqidagi ma'lumotlarni bir-biriga o'tkazish vaqti juda ko'p omillarga bog'liq: yaqin atrofda ishlaydigan halol tugunlar soni (tarmoq nuqtai nazaridan), "iliq- Ushbu tugunlarning keshlari, bloklar hajmi, tranzaktsiyalar, o'zgarishlar tabiati, tarmoq geografiyasi, tugunlar soni va boshqa ko'plab omillar. Bunday tarmoqlarda ishlash ko'rsatkichlarini kompleks o'lchash murakkab masala bo'lib, bir vaqtning o'zida mijozlar va tengdoshlar (blokcheyn tugunlari) bo'yicha so'rovni qayta ishlash vaqtini baholash kerak. Har qanday p2p mexanizmlaridagi muammolar, ma'lumotlarni noto'g'ri olib tashlash va keshlash, faol tengdoshlar ro'yxatini samarasiz boshqarish va boshqa ko'plab omillar butun tarmoqning samaradorligiga ta'sir qiladigan kechikishlarga olib kelishi mumkin va bu to'siqni tahlil qilish eng qiyin hisoblanadi. , sinov va natijalarni sharhlash.

Blokcheynni qayta ishlash va davlat ma'lumotlar bazasini yangilash

Blokcheynning eng muhim qismi - bu konsensus algoritmi, uni tarmoqdan olingan yangi bloklarga qo'llash va natijalarni davlat ma'lumotlar bazasiga yozib olish bilan operatsiyalarni qayta ishlash. Zanjirga yangi blok qo'shish va keyin asosiy zanjirni tanlash imkon qadar tezroq ishlashi kerak. Biroq, haqiqiy hayotda "kerak" degani "ishlaydi" degani emas va masalan, ikkita uzun raqobatchi zanjir doimiy ravishda o'zaro almashinadigan va har bir almashtirishda hovuzdagi minglab tranzaktsiyalarning metama'lumotlarini o'zgartiradigan vaziyatni tasavvur qilish mumkin. , va doimiy ravishda davlat ma'lumotlar bazasini orqaga qaytarish. Bu bosqich, darboğazni aniqlash nuqtai nazaridan, p2p tarmoq qatlamiga qaraganda oddiyroq, chunki tranzaktsiyalarning bajarilishi va konsensus algoritmi qat'iy deterministikdir va bu erda har qanday narsani o'lchash osonroq.
Asosiysi, ushbu bosqichning ishlashidagi tasodifiy buzilishni tarmoq muammolari bilan aralashtirib yubormaslikdir - tugunlar bloklarni va asosiy zanjir haqida ma'lumotni etkazib berishda sekinroq va tashqi mijoz uchun bu sekin tarmoq kabi ko'rinishi mumkin, garchi muammo shundaki butunlay boshqa joy.

Ushbu bosqichda ishlashni optimallashtirish uchun tugunlarning o'zidan ko'rsatkichlarni to'plash va monitoring qilish va ularga davlat ma'lumotlar bazasini yangilash bilan bog'liq bo'lganlarni kiritish foydalidir: tugunda qayta ishlangan bloklar soni, ularning hajmi, tranzaktsiyalar soni, zanjirli vilkalar orasidagi kalitlar soni, yaroqsiz bloklar soni, virtual mashinaning ishlash vaqti, ma'lumotlarni topshirish vaqti va boshqalar. Bu tarmoq muammolarini zanjirli ishlov berish algoritmlaridagi xatolar bilan chalkashtirib yuborishning oldini oladi.

Virtual mashina tranzaktsiyalarini qayta ishlash blokcheyn ishlashini optimallashtirishi mumkin bo'lgan foydali ma'lumot manbai bo'lishi mumkin. Xotirani ajratish soni, o'qish/yozish bo'yicha ko'rsatmalar soni va shartnoma kodini bajarish samaradorligi bilan bog'liq boshqa ko'rsatkichlar ishlab chiquvchilarga juda ko'p foydali ma'lumotlarni taqdim etishi mumkin. Shu bilan birga, aqlli shartnomalar dasturlar bo'lib, ular nazariy jihatdan har qanday resurslarni iste'mol qilishi mumkin: CPU/xotira/tarmoq/xotira, shuning uchun tranzaktsiyalarni qayta ishlash juda noaniq bosqich bo'lib, qo'shimcha ravishda versiyalar o'rtasida o'tishda sezilarli darajada o'zgaradi. va shartnoma kodlarini o'zgartirganda. Shuning uchun tranzaktsiyalarni qayta ishlash bilan bog'liq ko'rsatkichlar blokcheyn ish faoliyatini samarali optimallashtirish uchun ham kerak.

Mijoz tomonidan blokcheynga tranzaktsiya kiritilganligi to'g'risida bildirishnoma olish

Bu blokcheyn mijozi xizmatni qabul qilishning yakuniy bosqichidir; boshqa bosqichlarga qaraganda, katta qo'shimcha xarajatlar yo'q, lekin baribir mijoz tugundan katta hajmdagi javob olish imkoniyatini ko'rib chiqishga arziydi (masalan, aqlli shartnoma). ma'lumotlar massivini qaytarish). Qanday bo'lmasin, bu nuqta "sizning blokcheyningizda qancha tps bor?" Degan savolni bergan kishi uchun eng muhimi, chunki Ayni paytda xizmatni qabul qilish vaqti qayd etiladi.

Bu joyda har doim mijoz blokcheyndan javob kutish uchun sarflashi kerak bo'lgan to'liq ish vaqti yuboriladi; bu safar foydalanuvchi o'z arizasida tasdiqlashni kutadi va aynan uni optimallashtirish. ishlab chiquvchilarning asosiy vazifasi.

xulosa

Natijada, biz blokcheynlarda bajariladigan operatsiyalar turlarini tavsiflashimiz va ularni bir necha toifalarga ajratishimiz mumkin:

  1. kriptografik transformatsiyalar, isbot qurilishi
  2. peer-to-peer tarmog'i, tranzaksiya va blokli replikatsiya
  3. tranzaktsiyalarni qayta ishlash, aqlli shartnomalarni bajarish
  4. davlat ma'lumotlar bazasiga blokcheyndagi o'zgarishlarni qo'llash, tranzaktsiyalar va bloklar bo'yicha ma'lumotlarni yangilash
  5. davlat ma'lumotlar bazasiga, blokcheyn tugun API, obuna xizmatlariga faqat o'qish uchun so'rovlar

Umuman olganda, zamonaviy blokcheyn tugunlariga qo‘yiladigan texnik talablar nihoyatda jiddiy – kriptografiya uchun tezkor protsessorlar, davlat ma’lumotlar bazasini saqlash va tezkor kirish uchun katta hajmdagi operativ xotira, bir vaqtning o‘zida ko‘p sonli ochiq ulanishlardan foydalangan holda tarmoq o‘zaro ta’siri va katta hajmdagi saqlash. Bunday yuqori talablar va turli xil operatsiyalarning ko'pligi muqarrar ravishda tugunlarning etarli resurslarga ega bo'lmasligiga olib keladi va keyin yuqorida muhokama qilingan har qanday bosqich tarmoqning umumiy ishlashi uchun yana bir to'siq bo'lib qolishi mumkin.

Blokcheynlarning ishlashini loyihalash va baholashda siz ushbu fikrlarning barchasini hisobga olishingiz kerak bo'ladi. Buning uchun siz bir vaqtning o'zida mijozlar va tarmoq tugunlaridan ko'rsatkichlarni to'plashingiz va tahlil qilishingiz, ular o'rtasidagi korrelyatsiyani izlashingiz, mijozlarga xizmatlar ko'rsatish uchun zarur bo'lgan vaqtni hisoblashingiz, barcha asosiy resurslarni hisobga olishingiz kerak: CPU/xotira/tarmoq/xotira. , ular qanday ishlatilishini tushunib, bir-biriga ta'sir qiladi. Bularning barchasi turli xil blokcheynlarning tezligini "qancha TPS" ko'rinishida solishtirishni juda nomaqbul vazifaga aylantiradi, chunki juda ko'p turli xil konfiguratsiyalar va holatlar mavjud. Yirik markazlashtirilgan tizimlarda, yuzlab serverlarning klasterlarida bu muammolar ham murakkab va juda ko'p turli ko'rsatkichlarni to'plashni talab qiladi, ammo blokcheynlarda p2p tarmoqlari, virtual mashinalarni qayta ishlash shartnomalari, ichki iqtisodlar, darajalar soni tufayli. erkinlik ancha katta, bu testni hatto bir nechta serverlarda ham o'tkazadi, u indikativ emas va faqat haqiqat bilan deyarli hech qanday aloqasi bo'lmagan juda taxminiy qiymatlarni ko'rsatadi.

Shuning uchun, blokcheyn yadrosini ishlab chiqishda, unumdorlikni baholash va "o'tgan vaqtga nisbatan yaxshilandimi?" Degan savolga javob berish uchun biz o'nlab tugunlar bilan blokcheynni ishga tushirishni tartibga soluvchi va avtomatik ravishda benchmarkni ishga tushiradigan va ko'rsatkichlarni to'playdigan juda murakkab dasturiy ta'minotdan foydalanamiz. ; bu ma'lumotsiz bir nechta ishtirokchilar bilan ishlaydigan protokollarni disk raskadrovka qilish juda qiyin.

Shunday qilib, siz "sizning blokcheyningizda qancha TPS bor?" Degan savolni olganingizda, suhbatdoshingizga choy taklif qiling va u o'nlab grafiklarni ko'rishga tayyormi yoki yo'qligini so'rang, shuningdek, blokcheyn ishlashi bilan bog'liq muammolarning uchta qutisini va takliflaringizni tinglang. ularni hal qilish ...

Manba: www.habr.com

a Izoh qo'shish