develop custom_top_html:no
default debug random = 2 / type = READ / detected = READ

맥스 나우..

요즘 참으로 핫한 거래소죠..

자신들은 php 도 안쓰고, NoSQL , Oracle 조차 안썼다고 자랑하는..

오로지 C++라고 자랑하길래..

한번 뜯어 보았습니다 (...)


뭐 뜯는다고 해킹까진 아니고 헤더를 좀 보았을뿐입니다.

Server 는 평범한 NginX 에 전송은 gzip으로 합니다.


자신들의 말고 헤더만으로 간단히 추측이 가능하네요.

( 저랑 다른 의견 가지신 분들은 댓글 주세요 )


맥스나우의 구조는 프론트에 NginX로 되어있는 시스템뒤에서 php 나 jsp와 같은 웹 언어 대신 단지 C++로 모듈을 개발한것으로 보입니다.

당연히 C++로 했으면 데이터 처리는 DB보다는 C++상에서 메모리에 저장하는게 개발이 편하겠지요..

(빠르기도 하구요)


그냥 현재로써는 제 추측은 여기까지입니다.

NginX를 이용하였고, 백단에는 C++로 된 모듈을 이용하고, 그 뒤에는 거래의 일부만 어딘가에 저장하는..

기본적으로 오픈소스가 아닌 모듈을 사용하니 해킹이 상대적으로 어려울 수도 있겠지만, 반대로는.. 예상치 못한 버그 & 메모리 릭이 존재할 수 도..


뭐 그냥 그렇다는겁니다.

워낙 맥스 나우가 다른 거래소들과 비교하길래..

저도 분석좀 해봤습니다.

사실 저도 거래소를 만들면 Node.js 를 활용 할 생각을 했습니다.

Socket.io 를 활용하구요.

어차피 기본적으로 하나의 언어로 통일 할 필요는 없어 보이고, 프론트 단은 PHP로 처리하고 , 백단의 거래 트랜젝션 부분들만 Node.js로 활용 하면 된다고 생각하는데....


다른 개발자 분들의 고견이 듣고 싶습니다 ^^;

3

calmlake79님의 서명

CCnex

당신의 인생과 인류의 미래를 바꿀

그 놀라운 경험


댓글 13
  • ?
    맥스나우 저도 좀 뜯어 봤는데요..
    제가 예측하기로는 웹 페이지 자체는 파이썬을 썼을 가능성이 높습니다. 파이썬이라는 언어가 C++로 만든 모듈을 쓰기가 편하거든요.
    그리고 시스템 백단은 예상대로 C++로 로직을 제작했을 거에요. 그리고 그걸 파이썬 모듈로 활용했을 거 같네요.
  • @묵향9
    헤더에 NginX라고 되있는건 게이트웨이일뿐일수도 있겠네요
  • ?
    @calmlake79
    예.. 게이트웨이 맞습니다.. 요즘 nginx를 그 용도로 많이 쓰죠.. 안정성이 짱이거든요.
    그리고 뒷단에 fastcgi 형태로 구성되어 있을거에요. (파이썬,PHP,Ruby,Node.js 등등이 지원)
    요즘 대형 사이트는 거의 다 이렇게 구성되어 있습니다.. 시스템 아키텍쳐상으로 구성하기도 용이하고 성능도 꽤 잘 나옵니다.
  • @묵향9
    전 주로 Node.js 를 선호해서요 ㅎㅎ;
    페이지 구성 자체는 Apache + PHP 로 개발하고,
    백단의 데이터 혹은 Ajax 처리는 Node.js 로 처리하면 개발도 편리하고, 성능도 만족스럽구요 ㅎㅎ;
  • ?
    @calmlake79
    Apache 대신 Nginx 를 써보시길.. ^^
    제가 테스트 해본 결과로는 대략 30-50% 퍼포먼스 업그레이드 가능합니다. (물론 상황에 따른 설정도 필요)
  • @묵향9
    제 판단으로는..
    NginX 가 정적인 파일( ex: css,gif 등등..)에서는 그 이상의 성능향상도 있다고 알고 있지만.
    우선은 아직 저런 규모 있는 서비스를 하지 않아서 그냥 편리하게 아파치 쓰고 있어요 ㅎㅎ;
    거래소가 터질만큼 사람들이 몰리거나, coinhighway가 그렇게 몰린다면..
    바로 넘어갈지도요. ( 그전에 HAProxy 써보고 싶습니다 ㅋㅋ )
  • 아직 뜯어보진 못했습니다만...
    주식거래소가 결국은 가장 완성된 형식이 아닐까요?
    나스닥, 코스피, ... 등의 거래소에선 안정성 및 빠른 속도를 위해서
    java 계열의 프로그램 대신 c/c++ 계열의 프로그램으로
    운영되고 있는것으로 알고 있습니다.
  • @duckking
    네.. 그게맞죠.
    다만 아직 전세계적으로 암호화폐의 시장이 그정도 규모가 안되기에..
    대부분은 PHP로 버티는거고 이제 하나둘 나오기는 하는데..
    제가 JAVA를 별로 좋아하진 않지만, 기존 금융권에서도 많은 회사들이 JAVA로 돌아가긴 합니다.

    제가 거래소를 만든다면 ( 꿈은 꿉니다.)
    아마, 기존 금융시스템에 있던 많은 시스템들을 도입할꺼 같습니다 ^^;
  • ?
    node.js나 python으로 웹페이지를 개발하더라도 앞에 게이트웨이로 nginx 많이 씁니다. php를쓰기위해서 nginx를 쓰는게 아니죠..
  • ?
    웹페이지를 php, python, node.js등등 어떤걸 쓰냐가 문제가 아니라 거래를 처리해주는 엔진을 C++ 로 직접 짰다는게 핵심이죠. mysql 같은 데이터베이스를 쓰게되면 거래소를 구현하기에 너무 많은 기능이 있지 않습니까? 필요한 부분을 C++로 직접짜서 구현하고 웹페이지는 다른 스크립트언어를 기반으로 개발했을거 같습니다.
  • 제가 잘 몰라서 그러는데 DB를 안쓰고 메모리많은로 저렇게 방대한 데이터를 저장할수가 있는건가요?
    그럼 프로세스를 재 시작하면 DB정보들은 어떻게 되는건가요?전 이부분이 궁금하네요..제가 메모리DB는 사용을 해밨는데...
    그리고 Back단은 c++로 하던 java로 하던 그외의 언어로 하던 큰 차이는 없다고 생각되네요..(나중에 선물옵션과 가튼 정말 0.0001초 차이의 거래를 위한 API를 제공하거나 그런 경우가 아니라면요..
  • ?
    @fourseam
    방대한 데이터가 몇기가의 데이터를 말하는지 잘 모르겠습니다만 수십기가의 메모리를 가지는 서버도 흔합니다. 저정도 거래 데이터면 몇기가 안될거 같은데요. 자주 참조되지 않는 로그등은 파일로 남길거고 자주 액세스되는 데이터만 메모리에 저장할것입니다.
    메모리디비의 프로세스 재시작하는 경우는 어떻게 처리하냐면 redis 라는 key-value store의 경우에는 데이터를 입력하면 우선적으로 메모리에 저장을 하고 파일 시스템에 로그를 남깁니다. 그리고 주기적으로 전체 데이터를 파일로 백업하고 그 이후를 다시 로그로 남깁니다. 도중에 프로세스가 종료되고 다시 실행되면 전체 데이터가 남겨진 파일을 우선 읽고 남겨진 로그를 기반으로 순차적으로 데이터를 복구해나갑니다. 그래도 100% 데이터가 안전한건 아니구요. 더 안전하게 하려면 똑같은 데이터를 2중 3중으로 나눠서 미러링하면 됩니다. 더 안전하게 할수록 접근 속도는 떨어지고 더 빠르게 할수록 안전성은 떨어집니다. 적정선에서 타협봐야죠.
  • @카디
    답변 감사합니다~~
default debug random = 0 / type = READ / detected = READ

List of Articles
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
14 개발 웹호스팅 추천좀 해주세요~ 서버호스팅까지는 필요 없을거같고.. 저렴한 웹호스팅.. 안정적인데로다.. 추천좀 해주세요.. hostinger.com 여기 썼었는데 db계정이랑 ftp비번같은걸 평문으로 저장하는지.. 그냥 메일로 다 보... 5 0 3337
천루
2014.03.01
13 개발 암호화폐관련 알바 구합니다. 상태의 변화가 생겼습니다. Full-time job은 구한 상태입니다. 기본적으로 재택근무라서, 가벼운 일, 주말알바 정도는 가능합니다. ^^ ==================================== 안녕하세요. 저는 ... 2 1 2910
더블유비
2014.03.01
12 개발 컴공 4학년 입니다. 안녕하세요  컴퓨터공학과 4학년인 대학생입니다. 친구의 권유로 코인관련 코딩을 시작하려 하는데요. 코인을 시세에 따라 사고 파는 프로그램을 만드려합니다. 어떤 개발환경에서 어떤 언어로 ... 7 0 4639
프로프리지
2014.02.24
11 개발 맥스코인 자동 매매 프로그램 만들고 있는데요... 시세 모니터링 하는것도 정말 힘드네요.. 이거 인건비도 안나와서 그냥 조그맣게 하나 만들고 있거든요. 거래량 및 시세 데이터를 모니터링 하다가 매매 조건에 부합되면 매수하고, 매수체결되면... 39 file 2 4034
꿀맨
2014.02.24
10 개발 mcxNow api 로 주문 넣어 보신분 계실까요? api 설명 페이지에 사용자를 구분하는 쿠키가 로그인할대 나오고,. api 이용시 이 값들을 쓰라고 되어 있는데... 로그인할때 어디에 나오는 건지.. 도대체가... 알수가 없네요.. 혹시 해보신분 ... 22 0 2041
꿀맨
2014.02.18
9 개발 mcxNow api 써보신분 계신가요? mcxNow 게시판에서 공개한 주소로 시세관련 데이터 request보냈는데,.. 돌아온 데이터가 현재꺼가 아니고 한참전꺼가 옵니다.. 그리고 가격이 변하지 않고 항상 현재가가 0.002356 이네요.... 먼... 10 0 2268
꿀맨
2014.02.18
8 개발 비트코인 tx 가변성에 대한 메이저 업체의 대응_ https://github.com/bitcoin/bitcoin/pull/3656 3656 많이 본 숫자 아닌가요 ? 곡스에서 제안한 ntxid 입니다. 코어 데브팀이 안 받겠다 하니까, 곡스가 우린 할련다 선언하고 다운타임 까지 잡... 4 1 2685
채플린
2014.02.16
개발 개발자적 측면에서 한번.. 맥스나우를 뜯어 보았습니다 (...) 맥스 나우.. 요즘 참으로 핫한 거래소죠.. 자신들은 php 도 안쓰고, NoSQL , Oracle 조차 안썼다고 자랑하는.. 오로지 C++라고 자랑하길래.. 한번 뜯어 보았습니다 (...) 뭐 뜯는다고 해킹까진 ... 13 0 2897
calmlake79
2014.02.15
6 개발 개발자 게시판이 생긴김에 화두를_ 멀티풀! api를 이용한 풀 선택 방법이 있고, 서버에서 마이너에게 날리는 방법이 있고... http://www.ddengle.com/board_free/364240 이 게시물을 참고 하시면, 풀 선택을 웹에서 조정 가능합니다. 해쉬 ... 4 0 2417
채플린
2014.02.13
5 개발 채굴기 모니터링 프로그램 개발 채굴기 cgminer를 원격에서 제어하는 프로그램을 개발 중에 있습니다. 지금 목표는 채굴기의 목록을 관리하는 서버와 채굴기에서 agency 역활을 하는 클라이언트 프로그램을 개발 하려고 합니다.... 7 file 0 5281
데포라쥬
2014.02.13
4 개발 C++ 이라는 언어에 대한 로망 예전에 학부때는 C언어와 C++언어로 실습을 했으나 실무에선 잘 안쓰죠. 웹이라든가 비주얼베이직, 자바, C#, 파이썬 등등... 이런걸 많이 쓰죠. 게다가 요즘엔 대학교 학부에서도 C/C++ 대신 딴... 13 1 4929
굳모닝
2014.02.13
3 개발 [질문] Wallet Daemon 에서.. 코인의 총 발행량을 확인하는 방법이 있을까요? 제목대로입니다. 데몬에서 rpc로 통신할때.. 코인의 총 발행량을 확인하는 정석의 메커니즘이 혹시 있나 궁금합니다. 사실 기본적으로는 블럭당 코인 * 블럭수 ( Block height ) 을 해서 반감기 ... 6 0 2528
calmlake79
2014.02.13
2 개발 개발자 게시판이군요!!!!! 근데 Tech 메뉴에서 좀 아래로 내려가는게 좋을거 같네요. 이런 게시판 누가 관심을 가진다고 맨 위에 있는지ㅋ 아무튼 우리 개발자들 만세! 3 0 2214
coincoin
2014.02.12
1 개발 이얍 첫글이다! 개발자 공간이라 합니다... 첫 글로 올려 봅니다. 많은 개발자 분들끼리의 외계어를 공유해보도록 해요.. 어찌하면 Heap Memory를 이쁘게 컨트롤 할 수 있을지 생각해 봐요 ㅋㅋ 7 0 2319
calmlake79
2014.02.12
Board Pagination Prev 1 ... 83 84 85 86 87 88 89 90 91 92 Next
/ 92
default debug random = 0 / type = READ / detected = READ