develop custom_top_html:no
default debug random = 0 / 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
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
1840 개발 [긴급속보] Parity 개발팀이 비잔티움 하드포크에 관하여 연속적인 버그 발생으로 하드포크를 2주간 딜레이 ... https://www.reddit.com/r/ethereum/comments/76d97i/fork_should_be_postponed_until_2_w_of_no_bugs_as/dod6ece/   DAO 사태 이후 최대의 위기 같습니다.   Parity 팀이 4일 연속으로 Bug fix ... 42 17 39020
인텔지원
2017.10.15
1839 개발 이더리움은 인터넷을 지배하게 될까요? 아마도 땡글의 많은 분들은 이더리움으로 대박이 나셨고, 이더리움으로 큰 손실도 입으신 것으로 압니다.   이더리움은 비교적 최근까지도 땡글 내의 가장 인기있는 채굴 코인이었으며, 여전히 ... 16 8 38813
ethminer
2019.07.17
1838 개발 IPFS 따라해보기 IPFS(InterPlanetary File System)란 무엇인가? IPFS는 차세대 웹 3.0에 필수 요소의 하나라고 일컫을 수 있을만한 분산 저장소 구현중의 하나입니다.   기존 웹의 가장 큰 단점이라 할 수 있는 ... 19 10 34284
ethminer
2019.07.20
1837 질문 어짜피 켜있는 컴퓨터, 채굴에 전기세가 많이 늘어날까요? 개발자다 보니, 집에서 항상 서버를 돌리고 있습니다. 어떨땐 데스크톱으로.. 어떨땐 저사양 노트북으로, 어떨땐 게이밍노트북으로..   머 어떤 형태든 20여년간 계속 서버를 돌려왔는데요..   ... 12 1 28653
비폭력무저항
2020.09.14
1836 개발 클레이튼 소스 코드 간단 분석 소스분석이랄것까지는 없습니다만   현재 공개되어 있는 클레이튼 소스코드를 간단히 점검하는 기분으로 살펴보았습니다.   공개된 클레이튼 노드 소스코드 https://github.com/klaytn/klaytn   ... 18 6 28494
ethminer
2019.07.10
1835 개발 이더리움 작동원리의 이해(1)-동영상 -땡글 블록체인 강의 https://youtu.be/ddZ4wBfHGIo 주최 : 땡글 암호화폐 커뮤니티 후원 : 제너크립토(주) 해외거래소 이더리움 작동원리의 이해(워터마크).pdf ------------------------------------- 꼬리말 * 게... 23 file 29 27213
쌍둥아빠
2017.11.03
1834 개발 사달라 자동매매봇 업데이트 했습니다.     안녕하세요. 마루마루 입니다. 이전에 트레이딩봇 관련해서 테스트 버젼을 올렸었습니다.   이전글 참조 [ https://www.ddengle.com/traders_free/11193656 ]   당분간 유료화 예정이 없어 ... 1 3 26285
마루마루
2019.07.05
1833 질문 서버 이전중에 코인이 싹 사라졌습니다. 코인은 라이트코인 포크로 만든 새로운 코인이구요.. 서버 이전이 있어서 (A --> B)   1. A 서버에서 계정들과 코인수량 다 확인하고 2. B 서버에서 데몬 실행, 정상적으로 블록이 쌓이는 거 확... 13 2 26047
비폭력무저항
2019.06.14
1832 질문 빗썸 API 요즘도 연속 주문 안 되나요? 안녕하세요.   예전에 빗썸 API를 쓰다가 너무 문제가 많아서 안 쓰게 되었습니다.   가장 큰 문제는 연속으로 주문을 넣으면 거부된다는 점이었습니다.   그래서 3초 정도 여유를 두고 주문을 ... 0 25849
크리
2020.09.26
1831 개발 폰 & 컴 해커한테 다 뚫림! 보안 다 빵꾸남!     컴퓨터 전원을 켜는 순간 아무것도 안해도 100% 다 털린다. 폰 전원을 켜는 순간 아무것고 안해도 해커는 다 훔쳐간다!     https://www.youtube.com/watch?v=TU5LgrlJ4vQ&feature=youtu... 2 file 0 25778
내가총대멘다
2020.09.10
1830 질문 암호화폐/주식 교육 사이트를 만들고 있는데 PG,결제연동사가 허락을 안해주네요; 다른 동영상 강의 사이트들은 PG연동에 문제가 여태 없었는데   암호화폐랑 주식은 안된다고 거품물고 반대 하네요; (도서는 된다고 하는데.. 클라이언트가 책은 생각이 없다고 해서..)   그런 ... 9 1 25729
딥러닝은개뿔
2019.06.11
1829 개발 주식 자동 매매 프로그램 이번 주는 많이 바빴습니다. 회사 업무도 있었지만, 프로그램 만드는 일도 몇 일 걸렸습니다. ETF(Exchange Traded Fund) 자동 매매 프로그램입니다. 저가에 매수하고, 고가에 매도하는 전략이... 28 file 11 25688
drjoon
2014.11.21
1828 질문 자동 코인 거래를 위한 시스템? 을 개발하고 있습니다.   봇에 거래소 API 키 및 코인, 금액을 세팅하고 활성화 시키면 24시간 해당 코인의 가격을 보다가    지정된 가격에 도달하면 매수/매도를 걸게 되고, 동시에 라인 및 텔레그램으로 알람을 보내... 12 0 25566
몬스터에너지
2019.07.13
1827 개발 안녕하세요. 오픈소스로 자동 트레이딩+알림 봇 공유합니다.   파이썬3로 제작되었고요.   1. 텔레그램에서 문자인증 받고 자동으로 로그인하는 기능. 2. 텔레그램에서 해당 채널의 메시지를 자동으로 읽는 기능. 3. 읽은 메시지를 정규표현식으로 분석해서... 24 file 48 25503
소프트
2018.01.12
1826 개발 거래소 API 시세정보 및 알람 표시 HTML 예제 코드입니다. 안녕하세요. 땡글에 리플은 많이 달아보았지만 게시글은 처음이네요 ㅎㅎㅎ 자료실에 올릴까 개발에다 올릴까 고민했는데 html로 개발하실 분들 대상으로 보시라고 여기에 올립니다.   예전에 거... 35 file 23 25399
크로비
2017.08.02
1825 개발 이더리움 트랜젝션 처리속도를 25 TPS라고 하는 이유 이더리움의 초당 트랜젝션 처리 가능 회수는 15 TPS라고 알려져있습니다. 그러나 좀 더 찾아보면 20~25 TPS라는 내용도 나오긴 하는데 이에 대해서 간단히 살펴보도록 하겠습니다. 현재의 이더리... 3 file 4 25271
ethminer
2019.07.08
1824 개발 이더리움 블록체인과 영지식 증명 스터디원을 모집합니다^^   안녕하세요. 철학자입니다.   이더리움 블록체인 스터디그룹인 D-lab의 <Awesome ZKP>분과에서 공부 같이하실 스터디원을 모집합니다^^   <Awesome ZKP> 분과는 현업 이더리움 블록체인 개발자... 1 25077
철학자
2019.06.07
1823 개발 룸네트워크의 메인넷 소스코드 공개 룸네트워크를 들어보신 분 많으실겁니다. 룸네트워크의 Loom 토큰이 업비트에도 상장되어 있으며, DPoS 컨센서스 기반의 룸네트워크 메인넷, 일명 "플라즈마체인"(Plasma Chain)으로 유명하고, (... 4 file 3 24991
ethminer
2019.07.12
1822 개발 이더리움 노드 소스 (go-ethereum) 버전 1.9.0 릴리스 7월 10일 날짜로, 이더리움 코어 소스코드 (go-ethereum) 버전 1.8.0이 나온 2018년 2월 14일 이후로 1년 5개월여만에 1.9.0 버전이 나왔습니다! 간단 요약 - full/fast/archive sync 성능 향상 ... 1 file 3 24694
ethminer
2019.07.12
1821 개발 이런 코인있으면....   로그인 할때마다 코인자동으로 지급해주는 코인 어떨까요 웹싸이트들 대부분 수익모델이 제로입니다 이걸 로그인코인이 보상해주는 거조 채굴보상대신 로그인마다 코인을 주는거죠 그러면 수익... 1 1 24559
독수리
2019.06.11
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 92 Next
/ 92
default debug random = 0 / type = READ / detected = READ