Telegramda yozing@Odilient

VEB-PLATFORMA

Mablag‘larni saqlaydigan kripto-birja

NDA ostidagi mijoz uchun foydalanuvchi mablag‘larini saqlash (custody) jarayonlariga ega kripto-birja: ikki xizmatdan iborat — ommaviy birja va izolyatsiyalangan hamyon va nodalar xizmati, relizlar esa CI nazoratidan o‘tib chiqadi.

NDA
Mijoz
Fintex va kripto
Soha
7 oy
Muddat
2022
Yil
Boshlang‘ich nuqta

Muammo

Mijozga foydalanuvchilar mablag‘larini ham saqlaydigan kripto-birja kerak edi. Bunday platformada bitta muvaffaqiyatsiz deploy yoki internetga ochiq bitta xizmatning buzib kirilishi hamyonlarni xavf ostiga qo‘yishi mumkin, shuning uchun xavfsizlik arxitekturaga boshidanoq kiritilishi kerak edi. Hamyonlar bilan ishlash izolyatsiyalangan, audit qilinadigan va qayta urinishda xavfsiz bo‘lishi, har bir reliz esa production’ga yetib borishidan oldin nazoratdan o‘tishi kerak edi.

Biz nima qildik

Yechim

Biz uch dasturchidan iborat full-stack jamoaga rahbarlik qildik va tizimni ikkiga ajratdik: akkauntlar, buyurtmalar va React interfeysi uchun ommaviy birja xizmati hamda ommaviy trafikdan izolyatsiya qilingan, konteynerlarda ishlaydigan alohida hamyon va nodalarni boshqarish xizmati. Har bir reliz PHPUnit testlari va statik tahlildan iborat CI nazoratidan o‘tadi. Qisqa muddatli kalitlar, idempotent hamyon operatsiyalari va back-ofisda pul yechishni ko‘rib chiqish vositalari kundalik ishni himoya qiladi.

Texnologiyalar
SymfonyReact.jsRedux ToolkitMariaDBDockerPHPUnitCI/CD
Parda ortida

Loyiha qanday yaratildi

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.

Birga yaratamiz

Mablag‘larni saqlaydigan kripto-birja kabi loyiha kerakmi?

Mahsulotingiz nima qilishi kerakligini ayting. Ish hajmini belgilaymiz, muddatlarni rejalashtiramiz va qat’iy narx yuboramiz — bepul va davom ettirish majburiyatisiz.

Bepul konsultatsiya Majburiyatsiz Tezkor javob