BAIBAI

SHARE

Client Introduction

Baibai is the cryptocurrency exchange website where user can buy/sell Bitcoin and other alt coins.
Baibai adds a level of unprecedented security on top of a convenient marketplace solution.

Project Requirements

Engagement model: Project based – fixed price and on going support
Customer: Mikio Suzuki

Technologies

  • ASP.NET core 2.1
  • Amazon cloud service
  • Load balancing
  • Scalable system
  • Angular 5
  • Zendesk intergration
  • Bitcoin network
  • Stress test by Jmeter
  • Redis cache cluster
  • Rabbit MQ
  • Unit of work
  • Database cluster
  • SQL Server
  • YouTrack
  • Microservices
  • SignalR
  • Multi thread

Features

  • Deposit, withdraw, transfer cryptocurrency
  • Buy/sell Bitcoin and other alt coins
  • Protect user wallet and other attack methods by using 2FA
  • Referral program for user by level
  • Handle dispute when make a trade
  • Real time data update
  • Highload system
  • Online support 24/7
  • Provide a new way to buy/sellbitcoin
  • Chat between 2 users and supporter
  • Admin can control fee, limit and other settings real time
  • Verify user info
  • Full responsive website
  • Marketplace, support 1mil visit per sec, 10 trades per sec, cryptocurrecy exchange, bitcoin transcation, security system against common attacks, real time data update, referral program.

Challenges

  • Get passed customer target:
  • 1.000.000 visitors per second
  • 2.500 online users
  • 10 trades completed per second
  • All pages must render below 5s, all action must execute below 3s
  • UI/UX must 100% like design on mobile, desktop, tablet and on all browsers (Some special likes: UC browser…)
  • Protect user info, user wallet by all common attack methods
  • Need to understand about Bitcoin network and cryptocurrency exchange
  • Customer rebrands website with new look & feel
  • Deadline very shoot but the quality must good
  • China government blocks some Google services
  • Need to research and con!g all Amazon cloud services
  • Multi threads on multiple server access the same data to modify/get data
  • Work with remote team in China about their coin service

Solutions

  • Build solution based on microservice architecture
  • Split application to module to lazy loading
  • Optimize code, restructure component, database and apply best practice
  • Move all needed data to Redis cache cluster to speed up read side
  • Apply Rabbit MQ to speed up write side
  • Research and study Amazon cloud services, Coin service, Bitcoin network
  • Control task, member, sprint and deadline by SCRUM model and YouTrack tool
  • Use memcache and Redis cache to store data for a while (2s), then a background job will collect and process data later
  • Use other service which can run well in China