develop custom_top_html:no
default debug random = 3 / 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
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
320 개발 지금 실시간 이더리움 회의내용 잘 이해가 안되는데 대충해석해보면 이더리움 이더리움 클래식 이더리움 오리진  해서 3개 운영  메폴은 이더리움 클래식부터 8월 1일부터 실행  근데 가장궁금 한거는 오리진도 채굴이 될까여???  제가 해석한게 맞나요?? 0 2589
라을123
2017.07.29
319 개발 bitcoin core에서의 root seed를 알고싶습니다. 분명히 HD지갑을 지원해준다면 root seed가 있을텐데    빗트코인 core에서의 (qt) 시드는 어떤 명령어로 볼 수 있는 거죠??   알려주시면 감사하겠습니다~  0 1352
Bitya
2017.07.28
318 개발 비트코인 이더리움 dapp 개발 관련 책 좀있나요?  안녕하세요 선배님들    현직개발 6년차 초보 개발자입니다.   비트코인 이더리움 dapp 관련해서 큰 꿈이 있어서 개발좀 살살 해보려고 하는데   도무지 첫발띠기가 굉장히 어렵내요... 마치 제... 4 0 3087
IT전문가6년차
2017.07.28
317 개발 오늘 채굴케이스제작 샘플 도장하고 왔읍니다. 케이스 샘플나온것 들고 도장 업체에 가서 도장하고 왔읍니다. 4u렉타입보다 가로,높이가 조금큼니다. 4u규격에 듀얼파워 넣으려면 메인보드 위로 올려야 공간이나오는데 그러면 유지 보수,조립... 16 file 4 2944
바람도리2
2017.07.26
316 개발 ewbf zec miner를 위한 모니터링 프로그램 MINE ASSIST FOR ewbf 안녕하세요. MINE ASSIST를 개발하고 있는 파이리입니다.   MINE ASSIST에서 ewbf 마이너도 지원하게 되었습니다. 아래의 링크에서 다운로드 받으셔서 사용하실 수 있고요. ( https://www.mineas... 8 file 2 3267
파이리
2017.07.26
315 개발 스마트 플러그 중에 api 공개되어있는 제품이 혹시 있나요? 앱으로 확인하는 것들 밖에 안보이는데 혹시 api 공개되어있는게 있는지 궁금합니다.   채굴량 대비 전력소비량 등을 수집해서 분석 해보려고 합니다. 0 1679
XTR
2017.07.26
314 개발 [질문]코인원 api key 받으려교 하는데 발급하는 곳이 안보이네요 안녕하세요.   제목처럼 api key 받으려고 하는데  https://coinone.co.kr/developer/oauth/ 먼저 앱을 등록해 봅시다. [개발자] -> [나의 App] -> [새 앱]   이렇게 나와 있는데 .. [개발자]라... 3 0 1054
발로짜
2017.07.26
313 개발 안녕하세요 Claymore 관련 질문이 있어 질문드립니다.. 안녕하세요 현재 채굴기 통합 모니터링을 간단하게 개발해보고자 하는 학생입니다.   이쪽에 발디딘지는 얼마안되어서 기초적인 질문일수도 있으니 양해부탁드립니다 ㅠ   현재 Claymore 를 분석... 4 1 1108
Ultra007
2017.07.25
312 개발 영문 OS 사용하시는분 계신가요? 테스트 한번 부탁드립니당... 얼마전 웹사이트 만든걸 땡글 개발 게시판에 소개했었는데 오늘 영어 번역을 마무리했습니다.   혹시 영문 OS 쓰시고... 영문 브라우저(?) 사용하시거나 해외에 계신분들 계시면 해외에서 영어로... 9 3 868
초밥매니아
2017.07.25
311 개발 이더리움 셋팅 가능하신분   우분투 서버에 이더리움  셋팅했으나   우분투 서버 가 지속 적으로 뻑나는 현상이 일어 나네요    이후 우분투 버전 마다 다 셋팅해보았으나 계속 같은 현상이 일어나네요    이더리움 셋팅에... 6 0 1859
비키천사
2017.07.25
310 개발 차익거래 개발중에 폴로닉스 마진 청산방법 이 궁굼 합니다. 폴로닉스에서 이더 마진 매도한것을 빗섬에서 이더사서 송금 하고  폴로닉스에 송금 받은 이더로 마진 상환하는 하려면 어찌해야 하나요?   송금하고 마진으로 이동 해도 안되네요 2 0 2007
둔산
2017.07.24
309 개발 LED 적용 신형 9세대 라이져카드 출시 안녕하세요? 컴퓨터 주변기기 전문 수입 및 시소식 공식 파트너인 (주)맥스엘리트입니다.   고휘도 LED 가 적용된 신형 라이져카드를 소개합니다.   LED가 적용되어 라이져카드의 이상유무를 LED... 10 file 3 2831
맥스엘리트
2017.07.24
308 개발 엑셀에서 api불러오는거 질문드려요 엑셀로 코인원 api 중에 ticker 값들을 불러오려고 하는데요   써있는 주소로 불러오면 기본값인 비트코인꺼만 불러오고 다른 코인을 불러오는 방법을 모르겠더라구요;;   빗썸은 주소 뒤에 eth ... 4 0 3275
shuny
2017.07.24
307 개발 안녕하세요 Hashrate 에 대해서 질문드립니다.. 안녕하세요 이번에 모니터링에 관련해서 간단한 개발을 해보려는 초보개발자 입니다..   다름이 아니라 채굴기로 채굴시 각각 그래픽카드별 및 총 Hashrate 이 나오는데   GPU memory / clock 만... 4 0 1380
Ultra007
2017.07.24
306 개발 코인 거래소 오픈 소스프로젝트??   국내  코인 거래소들의 연이은  해킹으로   거래소 규제 건도 뉴스에 나오기 시작했습니다.   역발상으로 , 오픈 소스로  거래소 기능의 코어  (현금 입출금 부분,방화벽  제외 등 전부는 아님... 5 1 3044
스머프1000
2017.07.24
305 개발 웹 거래소는 어떻게 개발되나요? AJAX를 이용하는지 웹소켓을 이용하는지 궁금하네요.   아니면 Socket.io 를 이용하는지... Socket.io 를 쓰려면 서버가 무조건 node.js 서버여야 되고 성능면에서 부적합할 듯 한데...     4 0 1783
시공의술사
2017.07.24
304 개발 [업데이트] Ethminer Watcher - ethminer 모니터링툴 배포 ethminer모니터링을 위한 프로그램 입니다. 몇몇 기능을 개선하여 배포합니다.   업데이트 내용: - ethminer 0.12 dev1 지원 - 자동시작 시간 조절 가능   다운로드: - https://drive.google.com... 2 file 4 3514
아뵤
2017.07.24
303 개발 Pololender 한글 언어팩 적용된 버전입니다. 미천하지만 필요하신분들을 위해서 공개 합니다. 0.8 버전에서 짬짬히 수정하고 있었는데, poloLender가  1.0.0, 1.1.0으로 가는 바람에 추가분 적용해봤습니다.   https://github.com/Kaim-Lee/... 2 4 1382
신짜오
2017.07.24
302 개발 보조지표를 만들어서 활용하고 싶은데요ㅜㅜ rsi 지표나 macd같은 지표를 계산해서 주기적으로 갱신해주고 싶은데   제가 쌩초보라.. 2주전 자료들은 도대체 어디서 긁어와야할까요?ㅠ (지표를 만들려면 예전 자료가 필요하니.ㅜ)   국내 거... 2 0 1739
꼬리별
2017.07.23
301 개발 거래소문의 안녕하세요 매번 눈팅만하다 글남깁니다 다름아니라 우리나라 현 거래소는 해외에비해 많이 뒤쳐져있는듯합니다 비젼도좋아보이고 거래량도세계적으로봐도 상위급이죠 다음달에 코스피상장업체에... 5 0 1580
전북김이사
2017.07.23
Board Pagination Prev 1 ... 72 73 74 75 76 77 78 79 80 81 ... 92 Next
/ 92
default debug random = 0 / type = READ / detected = READ