Izolyatsiya atrofida loyihalangan, mablag‘larni saqlaydigan kripto-birja
Platforma foydalanuvchilar mablag‘larini saqlasa, xavfsizlik boshidanoq loyihaga kiritilishi kerak. NDA ostidagi mijoz uchun qurilgan bu kripto-birja bitta tamoyilga amal qildi: tizimning hamyonlarga tegadigan qismi internet bilan gaplashadigan qismidan alohida turadi.
Biz loyihani yetti oy davomida uch kishilik full-stack jamoaning tim-lidi sifatida boshqardik va mablag‘larni saqlash jarayonlariga ega MVP’ni topshirdik.
Asosiy imkoniyatlar
- Ommaviy birja xizmati: foydalanuvchi akkauntlari, buyurtmalar va savdo interfeysi.
- Izolyatsiyalangan hamyon va nodalar xizmati: hamyon operatsiyalari va blokcheyn nodalarini boshqarish ommaviy trafikdan ajratilgan, konteynerlarda ishlaydigan alohida xizmatda bajariladi.
- Idempotent hamyon operatsiyalari: qayta yuborilgan so‘rov ikkinchi marta bajarilmaydi, shuning uchun taymautlar va qayta urinishlar operatsiyani takrorlamaydi.
- Qisqa muddatli kalitlar: nozik operatsiyalar uchun qisqa umrli kalitlar — sizib chiqqan ma’lumot qancha vaqt yaroqli bo‘lib qolishini cheklaydi.
- Pul yechishni ko‘rib chiqish vositalari: back-ofis xodimlari pul yechish so‘rovlarini ko‘rib chiqadi, shuning uchun xavfli jarayonlarda qaror doim odamda qoladi.
- CI nazoratidagi relizlar: kod birlashtirilishidan oldin PHPUnit testlari va statik tahlildan o‘tishi shart.
Arxitektura va texnologiyalar
Bitta emas, ikkita xizmat
Backend MariaDB bilan Symfony’da qurilgan va ikki xizmatga bo‘lingan. Ommaviy birja xizmati akkauntlar, buyurtmalar va foydalanuvchilar bilan bog‘liq hamma narsani boshqaradi. Hamyon va nodalarni boshqarish xizmati esa ommaviy trafikdan izolyatsiya qilingan holda, alohida Docker konteynerlarida ishlaydi.
Bu bo‘linish hodisa qanchalik keng tarqalishi mumkinligini cheklaydi. Ommaviy xizmatdagi muammoni hamyon infratuzilmasini ochib qo‘ymasdan tekshirib, tuzatish mumkin. Hamyon xizmatini esa ommaviy veb-ilovaga qaraganda ancha qattiqroq yopib qo‘yish mumkin.
React va Redux Toolkit frontend’i
Birja interfeysi React.js va Redux Toolkit’da qurilgan — bu ma’lumotlarga boy savdo interfeysida akkaunt, balans va buyurtmalar holatini oldindan aytib bo‘ladigan qilib saqlaydi.
Qayta urinishda xavfsiz hamyon operatsiyalari
Pul harakatlanadigan har qanday tizimda qayta urinishlar muqarrar: tarmoq taymautga tushadi, worker’lar qayta ishga tushadi, foydalanuvchilar ikki marta bosadi. Hamyon operatsiyalari idempotent qilib qurilgan, shuning uchun so‘rovni takrorlash ikkinchi tranzaksiya emas, o‘sha natijaning o‘zini beradi. Nozik operatsiyalar uchun qisqa muddatli kalitlar bilan birga bu oddiy nosozlikning moliyaviy nosozlikka aylanish ehtimolini kamaytiradi.
Muhandislik intizomi va relizlar xavfsizligi
Har bir o‘zgarish birlashtirilishidan oldin CI’dan o‘tdi. PHPUnit testlari va statik tahlil birlashtirishning majburiy shartlari edi, kod sifati vositalari esa butun jamoa uchun majburiy qilingan. Foydalanuvchilar mablag‘larini saqlaydigan mahsulotda muvaffaqiyatsiz konveyer muvaffaqiyatsiz relizdan ancha arzonga tushadi.
Back-ofis vositalari inson tekshiruvini qo‘shadi. Pul yechish so‘rovlari ko‘rib chiqish vositalaridan o‘tadi, shuning uchun xodimlar xavfli jarayonni u yakunlangandan keyin emas, undan oldin tekshira oladi.
Bizning rolimiz
Tim-lid sifatida biz xizmatlarni ajratish, CI nazorati va hamyonlar atrofidagi operatsion nazorat choralarini boshqardik. Uch dasturchidan iborat jamoani arxitekturadan tortib mablag‘larni saqlash jarayonlariga ega ishlab turgan MVP’gacha olib bordik.
O‘xshash ishlar
Kripto-savdoning frontend tomoni uchun WalletConnect bilan kripto-birja frontendi va TRON DAO frontendi keyslarini ko‘ring. Bozor ma’lumotlari tomonini real vaqt rejimidagi kripto-bozor agregatorimiz yoritadi. Bunday loyihalar veb-ilovalar yaratish xizmatimizga kiradi.



