KR102172751B1 - Method and system for exchanging cryptocurrency - Google Patents
Method and system for exchanging cryptocurrency Download PDFInfo
- Publication number
- KR102172751B1 KR102172751B1 KR1020180124730A KR20180124730A KR102172751B1 KR 102172751 B1 KR102172751 B1 KR 102172751B1 KR 1020180124730 A KR1020180124730 A KR 1020180124730A KR 20180124730 A KR20180124730 A KR 20180124730A KR 102172751 B1 KR102172751 B1 KR 102172751B1
- Authority
- KR
- South Korea
- Prior art keywords
- server
- order
- transaction
- matching server
- matching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
가상화폐 거래 시스템 및 방법을 제시하며, 일 실시예에 따르면, 가상화폐 거래를 위한 시스템은 가상화폐 거래를 요청하는 주문의 처리를 위해 상기 주문과 함께 체결될 타주문을 매칭하여 거래쌍을 생성하는 제1매칭서버, 및 상기 제1매칭서버를 상기 거래 시스템에 추가시킨 코디네이션 장치를 포함하며, 상기 코디네이션 장치는, 상기 제1매칭서버의 장애 시 제2매칭서버를 등록하여 상기 주문을 처리한다.A virtual currency trading system and method are presented, and according to an embodiment, a system for virtual currency trading generates a trading pair by matching other orders to be concluded with the order for processing an order requesting a virtual currency transaction. A first matching server, and a coordination device in which the first matching server is added to the transaction system, wherein the coordination device registers a second matching server when the first matching server fails to process the order.
Description
본 명세서에서 개시되는 실시예들은 가상화폐를 거래하는 방법 및 시스템에 관한 것으로, 보다 상세하게는 순차적으로 체결이 이루어져야 하는 가상화폐 거래에 있어 장애 발생에 유연하게 대처하여 안전하게 거래가 체결되도록 하는 가상화폐 거래 방법 및 시스템에 관한 것이다.The embodiments disclosed in this specification relate to a method and system for trading virtual currency, and more specifically, a virtual currency transaction that enables a secure transaction by flexibly responding to failures in virtual currency transactions that must be executed in sequence. It relates to a method and system.
최근 들어, 비트코인, 이더리움과 같은 가상화폐가 화폐로서의 신용과 가치를 갖게 됨에 따라 그 거래가 활발해지고 있다. 예를 들어, 실물화폐로 가상화폐를 매수할 수 있고, 가상화폐로 실물화폐를 매수할 수 있다. 또한 가상화폐 자체가 가치를 지님에 따라 다른 가상화폐와 교환의 대상이 되기도 한다. In recent years, as cryptocurrencies such as Bitcoin and Ethereum have credibility and value as currency, the transaction has become active. For example, you can buy virtual currency with real money, and you can buy real money with virtual currency. Also, depending on the value of the virtual currency itself, it is also subject to exchange with other virtual currency.
가상화폐의 거래가 활발해짐에 따라 가상화폐를 안전하게 거래하면서 빠르게 처리할 수 있는 시스템의 니즈가 커지고 있다. 또한 가상화폐량이 유동적이기 때문에 가상화폐 거래 요청이 갑자기 증가하였을 때에도 증가량에 대해 유연하게 대처할 수 있는 시스템이 필요하다. 다만 오늘날 가상화폐의 거래를 중개하는 시스템들은 거래를 수행하는데 그칠 뿐, 거래를 빠르게 체결시키거나, 시스템 내 장애가 발생하였을 때 상기 장애에 대한 대응책이 미흡하다.As the cryptocurrency transaction becomes more active, the need for a system that can process cryptocurrency safely while transacting quickly is increasing. In addition, since the amount of cryptocurrency is flexible, a system that can flexibly respond to the increase in cryptocurrency transaction requests is required. However, today's systems that mediate cryptocurrency transactions only perform transactions, and when a transaction is concluded quickly or an error occurs in the system, countermeasures for the above-described failure are insufficient.
관련하여 한국특허공개문헌 제10-2018-0107037호는 구매자는 가상 화폐의 시세에 따라 현금화하여 사용할 수 있고, 판매자는 일반 결제와 동일하게 대금을 요청하고 현금 또는 가상화폐로 지불 받을 수 있는 결제 시스템에 대해 제안할 뿐 상술된 니즈를 만족하고 있지 못하다. In relation to Korean Patent Publication No. 10-2018-0107037, a payment system in which a buyer can use it by converting it into cash according to the market price of virtual currency, and a seller can request a payment in the same way as a general payment and receive payment in cash or virtual currency. It only proposes for and does not satisfy the above-described needs.
따라서 상술된 니즈를 충족하기 위한 기술이 필요하게 되었다.Therefore, there is a need for a technology to meet the needs described above.
한편, 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.On the other hand, the above-described background technology is technical information that the inventor possessed for derivation of the present invention or acquired during the derivation process of the present invention, and is not necessarily known to be publicly known before filing the present invention. .
본 명세서에서 개시되는 실시예들은, 가상화폐 거래 시스템 및 방법을 제시하는 데 목적이 있다. Embodiments disclosed herein are aimed at presenting a virtual currency trading system and method.
본 명세서에서 개시되는 실시예들은, 초당 처리 가능한 주문 처리 건수를 높일 수 있어 효율적으로 주문을 처리할 수 있는 가상화폐 거래 시스템 및 방법을 제시하는 데 목적이 있다. The embodiments disclosed in the present specification aim to provide a cryptocurrency trading system and method capable of efficiently processing orders by increasing the number of orders processed per second.
본 명세서에서 개시되는 실시예들은, 가상화폐 거래 서비스를 용이하게 확장시킬 수 있는 가상화폐 거래 시스템 및 방법을 제시하는 데 목적이 있다. The embodiments disclosed in the present specification aim to provide a virtual currency trading system and method that can easily expand a virtual currency trading service.
본 명세서에서 개시되는 실시예들은, 거래 시스템에서 발생될 수 있는 장애에 대해 능동적으로 대처 가능한 가상화폐 거래 시스템 및 방법을 제시하는 데 목적이 있다. The embodiments disclosed in the present specification aim to provide a virtual currency trading system and method capable of actively coping with a failure that may occur in a trading system.
본 명세서에서 개시되는 실시예들은, 데이터베이스에 가해지는 부하를 최소화시킬 수 있는 가상화폐 거래 시스템 및 방법을 제시하는 데 목적이 있다. The embodiments disclosed in this specification aim to provide a virtual currency trading system and method capable of minimizing the load on a database.
본 명세서에서 개시되는 실시예들은, 유저데이터를 안전하게 이용할 수 있는 가상화폐 거래 시스템 및 방법을 제시하는 데 목적이 있다. The embodiments disclosed in the present specification aim to provide a cryptocurrency trading system and method that can safely use user data.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 가상화폐 거래를 위한 시스템으로서, 가상화폐 거래를 요청하는 주문의 처리를 위해 상기 주문과 함께 체결될 타주문을 매칭하여 거래쌍을 생성하는 제1매칭서버, 및 상기 제1매칭서버를 상기 거래 시스템에 추가시킨 코디네이션 장치를 포함하며, 상기 코디네이션 장치는, 상기 제1매칭서버의 장애 시 제2매칭서버를 등록하여 상기 주문을 처리한다.As a technical means for achieving the above-described technical problem, according to an embodiment, as a system for virtual currency transaction, a transaction pair by matching other orders to be concluded with the order to process an order requesting a virtual currency transaction A first matching server for generating a, and a coordination device in which the first matching server is added to the transaction system, wherein the coordination device registers a second matching server when the first matching server fails to place the order. Process.
다른 실시예에 따르면, 가상화폐 거래를 요청하는 주문의 처리를 위해 상기 주문과 함께 체결될 타주문을 매칭하여 거래쌍을 생성하는 제1매칭서버를 포함하는 가상화폐 거래 시스템이, 가상화폐를 거래하는 방법으로서, 상기 제1매칭서버의 장애 시 제2매칭서버를 등록하여 상기 주문을 처리하는 단계를 포함한다.According to another embodiment, a cryptocurrency trading system including a first matching server for generating a trading pair by matching other orders to be concluded with the order for processing an order requesting a cryptocurrency transaction, transacts cryptocurrency As a method of doing so, it includes the step of registering a second matching server to process the order when the first matching server fails.
또 다른 실시예에 따르면, 가상화폐 거래 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체로서, 상기 가상화폐 거래방법은, 제1매칭서버의 장애 시 제2매칭서버를 등록하여 주문을 처리하는 단계를 포함한다.According to another embodiment, as a computer-readable recording medium in which a program for performing a virtual currency transaction method is recorded, the virtual currency transaction method includes registering a second matching server to process an order when the first matching server fails. Includes steps.
또 다른 실시예에 따르면, 가상화폐 거래 시스템에 의해 수행되며, 가상화폐 거래방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램으로서 상기 가상화폐 거래방법은, 제1매칭서버의 장애 시 제2매칭서버를 등록하여 주문을 처리하는 단계를 포함한다.According to another embodiment, as a computer program performed by a virtual currency trading system and stored in a medium to perform a virtual currency trading method, the virtual currency trading method registers a second matching server when the first matching server fails. And processing the order.
전술한 과제 해결 수단 중 어느 하나에 의하면, 가상화폐 거래 시스템 및 방법을 제시할 수 있다. According to any one of the above-described problem solving means, it is possible to propose a virtual currency trading system and method.
전술한 과제 해결 수단 중 어느 하나에 의하면, 초당 처리 가능한 주문 처리 건수를 높일 수 있어 효율적으로 주문을 처리할 수 있는 가상화폐 거래 시스템 및 방법을 제시할 수 있다.According to any one of the above-described problem solving means, it is possible to provide a virtual currency trading system and method capable of efficiently processing orders by increasing the number of orders processed per second.
전술한 과제 해결 수단 중 어느 하나에 의하면, 가상화폐 거래 서비스를 용이하게 확장시킬 수 있는 가상화폐 거래 시스템 및 방법을 제시할 수 있다. 즉 주문량이 증가하거나 주문의 처리에 따른 거래량이 증가하더라도 시스템을 스케일아웃(scale-out)함으로써 서비스를 확장시킬 수 있다.According to any one of the above-described problem solving means, a virtual currency trading system and method capable of easily expanding a virtual currency trading service can be provided. That is, even if the order volume increases or the transaction volume according to order processing increases, the service can be expanded by scaling out the system.
전술한 과제 해결 수단 중 어느 하나에 의하면, 거래 시스템에서 발생될 수 있는 장애에 대해 능동적으로 대처 가능한 가상화폐 거래 시스템 및 방법을 제시할 수 있다. 이에 가상화폐 거래 서비스 제공 시, 서비스의 중단 없이 가상화폐의 거래가 가능하도록 한다.According to any one of the above-described problem solving means, a virtual currency trading system and method capable of actively coping with a failure that may occur in a trading system can be provided. Therefore, when providing a virtual currency transaction service, it is possible to trade virtual currency without interruption of the service.
전술한 과제 해결 수단 중 어느 하나에 의하면, 데이터베이스에 가해지는 부하를 최소화시킬 수 있는 가상화폐 거래 시스템 및 방법을 제시할 수 있다. 거래 시스템을 구성하는 주문을 획득하는 어드미션서버가, 주문을 처리하는 매칭서버로 주문을 큐잉함으로써 매칭서버가 주문을 데이터베이스로부터 긁어오지 않아도 되며 그 결과 데이터베이스에 가해지는 부하를 최소화시킬 수 있다.According to any one of the above-described problem solving means, a virtual currency trading system and method capable of minimizing the load on the database can be provided. By queuing the order to the matching server that processes the order by the admission server that obtains the order constituting the transaction system, the matching server does not have to pick up the order from the database, and as a result, the load on the database can be minimized.
전술한 과제 해결 수단 중 어느 하나에 의하면, 유저데이터를 안전하게 이용할 수 있는 가상화폐 거래 시스템 및 방법을 제시할 수 있다. 즉, 유저데이터를 리스(lease) 요청함으로써, 어드미션서버 또는 커밋서버가 캐시서버를 이용할 때 발생될 수 있는 데이터 경합을 방지할 수 있다. According to any one of the above-described problem solving means, it is possible to propose a virtual currency trading system and method that can safely use user data. That is, by requesting a lease of user data, data contention that may occur when the admission server or the commit server uses the cache server can be prevented.
개시되는 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 개시되는 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects that can be obtained in the disclosed embodiments are not limited to the above-mentioned effects, and other effects not mentioned are obvious to those of ordinary skill in the art to which the embodiments disclosed from the following description belong. Can be understood.
도 1 내지 도 3은 일 실시예에 따른 가상화폐 거래 시스템을 도시한 구성도이다.
도 4 내지 도 6은 일 실시예에 따른 가상화폐 거래 방법을 설명하기 위한 순서도이다.1 to 3 are configuration diagrams illustrating a virtual currency trading system according to an embodiment.
4 to 6 are flowcharts illustrating a method of trading virtual currency according to an embodiment.
아래에서는 첨부한 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 아래에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여, 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략하였다. 그리고, 도면에서 실시예들의 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, various embodiments will be described in detail with reference to the accompanying drawings. The embodiments described below may be modified and implemented in various different forms. In order to more clearly describe the features of the embodiments, detailed descriptions of matters widely known to those of ordinary skill in the art to which the following embodiments belong are omitted. In addition, parts not related to the description of the embodiments are omitted in the drawings, and similar reference numerals are attached to similar parts throughout the specification.
명세서 전체에서, 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 ‘직접적으로 연결’되어 있는 경우뿐 아니라, ‘그 중간에 다른 구성을 사이에 두고 연결’되어 있는 경우도 포함한다. 또한, 어떤 구성이 어떤 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들을 더 포함할 수도 있음을 의미한다.Throughout the specification, when a component is said to be "connected" with another component, this includes not only the case where it is'directly connected', but also the case where it is'connected with another element in the middle.' In addition, when a certain configuration "includes" a certain configuration, this means that other configurations may be further included rather than excluding other configurations, unless otherwise specified.
이하 첨부된 도면을 참고하여 실시예들을 상세히 설명하기로 한다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings.
도 1 내지 도 3은 일 실시예에 따른 가상화폐 거래 시스템의 구성을 도시한 도면이다. 1 to 3 are diagrams showing the configuration of a virtual currency trading system according to an embodiment.
관련하여 ‘가상화폐’란 컴퓨터 등에 정보 형태로 남아 실물 없이 사이버 상으로 거래되는 전자화폐의 일종으로 암호화폐라고 칭하기도 한다. In relation to this,'virtual currency' is a kind of electronic money that remains in the form of information on computers, etc., and is traded in the cyber world, and is sometimes called cryptocurrency.
가상화폐 거래 시스템(설명의 편의상, 이하에서는 거래 시스템이라 함)(100)은 유저로부터 가상화폐의 거래(예를 들어 가상화폐의 매도, 가상화폐의 매수 등)를 요청 받으면 상기 거래를 주문으로 인식하고 주문을 처리하여 거래가 완료되도록 한다.The virtual currency transaction system (for convenience of explanation, hereinafter referred to as a transaction system) 100 recognizes the transaction as an order when a user requests a transaction for virtual currency (for example, selling virtual currency, buying virtual currency, etc.) And process the order to complete the transaction.
도 1을 참조하면, 일 실시예에 따른 거래 시스템(100)은 매칭서버(120)를 포함한다.Referring to FIG. 1, a
또한 일 실시예에 따른 어드미션서버(110), 커밋서버(130), 캐시서버(140) 및 데이터베이스(150)를 포함할 수 있다. In addition, it may include an
일 실시예에 따른 어드미션서버(admission server; 110)는 거래 시스템(100)의 외부 시스템(미도시)과 통신하며 외부 시스템(미도시)으로부터 유저의 가상화폐 매도 요청 또는 매수 요청을 받는다. The
어드미션서버(110)는 외부 시스템으로부터 수신된 상기 매도/매수의 요청을 ‘주문’으로 처리할 수 있다. 예를 들어, 어드미션서버(110)는 비트코인 1개를 100원의 가격으로 매수할 것을 요청하는 주문을 획득할 수 있다. 이때 주문은 다른 주문과 구별할 수 있는 식별자를 가지며, 상기 식별자는 각 주문을 유일하게 인식할 수 있도록 한다.The
이때, 어드미션서버(110)는 주문의 종류를 구별할 수 있다. 주문은 예를 들어, 정해진 금액으로만 매수 또는 매도하도록 하는 ‘지정가 거래’, 요청된 시점에 시장에서 거래가 체결되고 있는 금액으로 매수 또는 매도하도록 하는 ‘시장가 거래’, 및 특정 조건이 만족될 때 또는 특정 조건이 만족될 때까지만 매수/매도하도록 하는 ‘스탑 거래’가 있을 수 있다. 어드미션서버(110)는 주문의 종류를 구별하고 요청된 주문 중 적어도 일부가 체결되도록 할 수 있다.At this time, the
어드미션서버(110)는 획득된 주문의 종류를 구별하여, 주문이 ‘지정가 거래’ 또는 ‘시장가 거래’라 판단되면 상기 주문을 매칭서버(120)로 전달할 수 있다. 또한 주문이 ‘스탑 거래’라 판단되면 후술할 스탑오더서버(160)로 상기 주문을 전달할 수 있다. 이때 ‘스탑 거래’는 스탑오더서버(160)를 거쳐 ‘지정가 거래’ 또는 ‘시장가 거래’로 재획득될 수 있고, 재획득된 주문을 매칭서버(120)로 전달할 수 있다.The
어드미션서버(110)는 주문을 획득하면 캐시서버(140)에 요청하여 유저데이터를 획득할 수 있다. When the
이때 ‘유저데이터’는 가상화폐의 거래에 필요한 정보로서 유저에 관한 제반 정보를 포함하며, 예를 들어, 유저의 잔고에 관한 정보 등을 포함할 수 있다. 또한 예를 들어 유저데이터는, 요청된 주문을 기록하거나 주문 처리 완료에 따른 주문 삭제를 기록하는 오더북(order book) 등을 포함할 수 있다. In this case, the “user data” is information necessary for the transaction of virtual currency and includes all information about the user, and may include, for example, information about the user's balance. In addition, for example, the user data may include an order book that records a requested order or deletes an order upon completion of order processing.
유저데이터의 획득을 위해 일 실시예에 따르면, 어드미션서버(110)는 유저데이터에 대해 캐시서버(140)로 리스(lease) 요청할 수 있으나 유저데이터를 획득하기 위한 방법은 상술된 예에 제한되는 것은 아니며 예를 들어 어드미션서버(110)는 유저데이터에 대해 락(lock) 요청을 할 수 있다. For acquiring user data, according to an embodiment, the
상기 유저데이터를 획득한 어드미션서버(110)는 유저데이터를 참조하여 주문을 요청한 유저가 상기 주문을 처리하기 위한 잔고를 갖는지 확인할 수 있다. The
그리고 잔고가 있다고 판단되면 어드미션서버(110)는 리스 요청한 데이터를 캐시서버(140)에 반환하면서 주문에 관한 정보도 함께 전달할 수 있다. 이하에서 보다 상세히 서술될 캐시서버(140)는 상기 주문 정보를 획득하면서, 데이터베이스(150)에 저장된 유저의 오더북에 주문을 기록할 수 있다. 또한 어드미션서버(110)는 주문 정보를 캐시서버(140)로 전달하면서 자신의 식별자(예를 들어 서버 아이디)도 함께 전달하여 서버의 식별자가 데이터베이스(150)에 저장되도록 할 수 있다.In addition, when it is determined that there is a balance, the
그리고 어드미션서버(110)는 외부 시스템(미도시)에 주문에 관한 결과값을 전달할 수 있다.In addition, the
또한 어드미션서버(110)는 주문을 매칭서버(120)로 큐잉(queuing)할 수 있다. Also, the
상술된 어드미션서버(110)는 하나 이상의 인스턴스(instance)로 구현할 수 있으며 인스턴스를 증가시키면서 스케일아웃(scale-out)될 수 있다.The above-described
일 실시예에 따른 매칭서버(120)는 큐잉된 주문들을 매칭하여 거래쌍을 생성한다.The matching
즉 매칭서버(120)는 어드미션서버(110)로부터 주문을 획득할 수 있으며, 획득된 주문들을 서로 매칭하여 거래가 체결될 수 있다고 판단되면 체결 가능한 주문의 쌍을 거래쌍으로 커밋서버(130)로 전달할 수 있다. 후술될 커밋서버(130)는 거래쌍에 관한 정보를 데이터베이스(150)에 기록할 수 있다. 이를 통해 매칭서버(120)가 직접 체결될 거래쌍을 처리하기 위해 데이터베이스(150)에 액세스하지 않아도 되며 이는 매칭서버(120)에서 발생될 수 있는 I/O 병목을 최소화시킨다.That is, the matching
매칭서버(120)는 거래쌍을 생성하면 상기 거래쌍에 포함된 주문을 큐에서 삭제할 수 있다.When the matching
또한 매칭서버(120)는 거래쌍이 체결되었음에 관한 정보인 체결 정보를 스탑오더서버(160)로 전달할 수 있다. 이때 체결 정보는 커밋서버(130)로부터 수신될 수 있으며, 커밋서버(130)는 매칭서버(120)로부터 전달된 체결 요청에 응답하여 체결 정보를 매칭서버(120)로 전달할 수 있다.In addition, the matching
한편 매칭서버(120)는 어드미션서버(110)에 장애가 있음을 감지할 수 있고 어드미션서버(110)에 장애가 있다고 판단하면, 데이터베이스(150)의 오더북에서 어드미션서버(110)의 서버 식별자를 갖는 주문 중 자신이 모르는 주문을 어드미션서버(110)가 전달한 것처럼 처리하기 위해 큐잉시킬 수 있다.On the other hand, the matching
또한 매칭서버(120)는 커밋서버(130)에 장애가 있음을 감지할 수 있고, 커밋서버(130)에 장애가 있다고 판단하면 커밋서버(130)로부터 애크를 받지 못한 주문들에 대해 데이터베이스(150) 상의 오더북과 트랜잭션 이력을 참고하여 데이터베이스(150) 상에 처리가 완료되었는지 여부를 판단하고 완료되지 않았다면 다른 커밋서버로 상기 주문을 처리하도록 요청할 수 있다.In addition, the matching
상술된 매칭서버(120)는 하나 이상의 인스턴스로 구현될 수 있으며, 하나 이상의 인스턴스 중 하나의 인스턴스를 마스터(master)로 선정하여 어드미션서버(110)로부터 주문을 큐잉받아 커밋서버(120)와 통신하면서 주문을 처리하도록 할 수 있다. The above-described
이때 인스턴스가 복수 개이면 상기 복수의 인스턴스는 물리적으로 구분된 서버마다 설치되거나 하나의 물리적 서버에 설치될 수 있다. 따라서 인스턴스가 마스터 인스턴스로 선정되면 상기 인스턴스에 대응되는 물리적인 서버가 매칭서버로 동작하며 상기 물리적인 서버는 장애가 발생된 서버와 상이하거나 동일한 서버일 수 있다. 바람직하게는 장애에 유연하게 대응하기 위해 인스턴스 별로 상이한 물리 서버에 위치할 수 있다.In this case, if there are a plurality of instances, the plurality of instances may be installed for each physically separated server or on one physical server. Therefore, when an instance is selected as a master instance, a physical server corresponding to the instance operates as a matching server, and the physical server may be different from or the same as the server in which the failure occurred. Preferably, in order to flexibly respond to failure, it may be located on a different physical server for each instance.
한편 마스터로 선정된 인스턴스 이외의 인스턴스는 슬레이브(slave)로 설정할 수 있으며, 이때 마스터 인스턴스가 장애가 생겨 매칭서버(120)로서 동작하지 못한다면, 슬레이브 인스턴스 중 하나가 마스터 인스턴스가 될 수 있다. 가상화폐 거래의 특성상 거래의 체결이 순차적으로 이루어짐을 고려하면 하나의 매칭서버만이 동작해야 하나, 매칭서버에 발생될 수 있는 장애에 대한 대처를 위해 복수의 인스턴스 중 하나의 인스턴스만이 매칭서버로 동작하도록 할 수 있다.Meanwhile, an instance other than the instance selected as the master may be set as a slave. In this case, if the master instance fails to operate as the matching
이때 하나 이상의 인스턴스 중 마스터 인스턴스를 선정하는 방법은 다양할 수 있다.At this time, a method of selecting a master instance among one or more instances may be various.
일 실시예에 따르면 슬레이브 인스턴스 중 랜덤하게 선택된 슬레이브 인스턴스가 마스터 인스턴스가 될 수 있다.According to an embodiment, a slave instance randomly selected among slave instances may become the master instance.
또 다른 실시예에 따르면 슬레이브 인스턴스 중 가장 먼저 매칭서버로서 등록된 슬레이브 인스턴스가 마스터 인스턴스가 될 수 있다.According to another embodiment, a slave instance registered as the first matching server among slave instances may be the master instance.
관련하여 도 3에서 도시된 바와 같이 거래 시스템(100)은 코디네이션 장치(170)를 추가로 더 포함할 수 있는데, 코디네이션 장치(170)은 분산형 구성 서비스, 동기화 서비스 및 네이밍 레지스트리(naming registry) 중 적어도 하나를 제공하며, 거래 시스템을 구성하는 서버들 간의 정보 공유, 서버의 상태 체크 또는 서버들 간의 동기화를 수행할 수 있다. 따라서 시스템에서 새롭게 등록되고자 하는 서버는 코디네이션 장치(170)가 감지할 수 있고, 코디네이션 장치(미도시)는 서버를 등록할 수 있다. 이와 같은 코디네이션 장치(미도시)는 예를 들어, 아파치 주키퍼(apache zookeeper)로 구현될 수 있으며 또는 아파치 주키퍼와 치환 가능한 임의의 솔루션으로도 구현 가능하다. Relatedly, as shown in FIG. 3, the
따라서 예를 들어, 슬레이브 인스턴스 중 먼저 코디네이션 장치(미도시)에 매칭서버로 등록한 인스턴스가 마스터 인스턴스가 될 수 있다.Therefore, for example, an instance registered as a matching server in a coordination device (not shown) among the slave instances may become the master instance.
상술된 예에 따라 마스터 인스턴스가 변경되면, 새롭게 마스터가 되는 매칭서버는 커밋서버(130)에게 직전의 마스터 인스턴스로부터 체결 요청을 받았으나 체결되지 못한 상태의 거래쌍이 있다면 상기 거래쌍을 체결하고 응답하기를 요청할 수 있다. 상기 요청에 따라 커밋서버(130)는 미체결된 거래쌍을 체결하고 새로운 마스터 인스턴스로 응답할 수 있다. 그 후 새로운 마스터 인스턴스는 데이터베이스(150) 상의 오더북에 기록된 주문을 참조하여 이전 마스터 인스턴스가 처리하지 못한 주문을 복구할 수 있다. 복구하는 동안 새로운 마스터 인스턴스는 어드미션서버(110)로부터 새로운 주문을 수신할 수 있으며 새로운 주문은 펜딩되고 있다가 처리하지 못한 주문이 복구 완료된 이후, 복구된 주문과 중복되지 않는다면 큐잉될 수 있다. When the master instance is changed according to the above-described example, the matching server, which becomes the new master, receives a request for execution from the previous master instance from the commit
한편 일 실시예에 따른 커밋서버(130)는 매칭서버(120)로부터 획득된 거래쌍에 대해 체결 처리를 한다.Meanwhile, the commit
즉 커멋서버(130)는 매칭서버(120)로부터 거래쌍을 수신하여 체결 처리하면서 체결 결과에 따라 갱신된 데이터를 캐시서버(140)를 통해 데이터베이스(150)에 기록할 수 있다. That is, the
커멋서버(130)는 거래쌍 체결을 위한 유저데이터에 대해, 캐시서버(140)에 리스 요청함으로써 획득할 수 있다. 획득한 유저데이터를 이용하여 커밋서버(130)는 거래쌍에 포함된 주문에 대응되는 유저가 상기 주문을 처리하기 위한 잔고를 갖고 있는지 확인할 수 있다. 이와 같이 처리함으로써 어드미션서버(110)의 확인 이후 변경되었을 수도 있는 유저의 잔고를 다시 확인 가능하다. The
그리고 잔고가 있다고 판단되면 커밋서버(130)는 리스 요청한 데이터를 캐시서버(140)에 반환하면서, 캐시서버(140)를 통해 데이터베이스(150)에 저장된 유저의 오더북에 기록된 주문 정보를 삭제하고 잔고에 관한 정보를 변경할 수 있다. And when it is determined that there is a balance, the commit
커밋서버(130)는 체결 처리가 성공하면 체결 정보를 매칭서버(120)로 전달할 수 있다.The commit
커밋서버(130)는 매칭서버(120)와의 통신을 통해, 거래쌍의 체결 요청을 수신하거나 체결 처리의 성공을 애크하면서 응답할 수 있는데, 이에 매칭서버(120)가 커밋서버(130)의 장애를 감지할 수 있다. 예를 들어, 매칭서버(120)가 거래쌍에 관한 체결 요청을 전달하였으나 상기 요청에 대한 애크를 받지 못하면 커밋서버(130)에 장애가 발생되었음을 감지할 수 있다. 커밋서버(130)에 장애가 발생됨을 감지하면 매칭서버(120)는 애크를 받지 못한 주문들에 대해 데이터베이스(150) 상의 오더북과 트랜잭션 이력을 참고하여 데이터베이스(150) 상에 처리가 완료되었는지 여부를 판단하고 완료되지 않았다면 다른 커밋서버로 상기 주문의 처리를 요청할 수 있다. Through communication with the matching
커밋서버(130)는 매칭서버(120)와 비동기 방식으로 통신할 수 있으며, 또한 하나 이상의 인스턴스로 구현할 수 있어 인스턴스를 증가시키면서 스케일아웃(scale-out)될 수 있다.The commit
한편 일 실시예에 따른 캐시서버(cache server; 140)는, 어드미션서버(110), 매칭서버(120), 커밋서버(130) 또는 스탑오더서버(160)와, 데이터베이스(150) 사이에 위치하여 어드미션서버(110), 매칭서버(120), 커밋서버(130) 또는 스탑오더서버(160)가 데이터베이스(150)에 직접 액세스하지 않도록 한다. Meanwhile, the
캐시서버(140)는 유저데이터를 요청 받았을 때, 상기 유저데이터를 캐싱하고 있지 않다면 상기 유저데이터를 데이터베이스(150)로부터 획득하여 캐싱할 수 있다.When the user data is requested, the
캐시서버(140)는 어드미션서버(110) 또는 커밋서버(130)가 오더북에 기록/삭제의 요청을 하거나, 유저데이터를 갱신하거나 요청할 때, 캐싱된 데이터를 갱신하거나 데이터베이스(150)의 데이터를 갱신할 수 있다.When the
캐시서버(140)는 데이터베이스(150)에 반영이 완료된 데이터에 대해서는 트랜잭션 이력에 추가함으로써 관리할 수 있으며, 바람직하게는 데이터 갱신과 어토믹(atomic)하게 트랜잭션 이력을 관리할 수 있다.The
캐시서버(140)는 데이터에 대해 리스 요청 받을 수 있다. 예를 들어, 어드미션서버(110), 커밋서버(130) 또는 스탑오더서버(160)로부터 리스 요청 받을 수 있다. 다만 캐시서버(140)는 데이터에 대해 락 요청을 받을 수도 있다.The
캐시서버(140)는 리스 요청된 데이터를 관리할 수 있다. 따라서 캐시서버(140)에 장애가 발생할 때 어드미션서버(110)는 주문의 식별자에 대응되는 데이터가 오더북에 있는지를 확인하고, 커밋서버(130)는 트랜잭션 이력을 참조하여 주문이 존재하는지 확인한다. 확인 이후 어드미션서버(110) 또는 커밋서버(130)는 다시 리스 요청을 함에 따라 장애가 복구된 캐시서버(140)가 상기 요청에 따라 동작할 수 있다.The
캐시서버(140)는 I/O로 인한 병목현상을 없애기 위해 샤딩(sharding)을 지원할 수 있다.The
또한 캐시서버(140)는 갱신될 데이터의 유실을 방지하기 위해 동시 기록(write-through) 방식으로 동작할 수 있다.In addition, the
일 실시예에 따른 데이터베이스(150)는 거래 시스템(100)의 동작에 필요한 데이터를 저장한다.The
예를 들어 데이터베이스(150)는 유저데이터를 저장할 수 있는데, 예를 들어, 유저의 잔고에 관한 정보, 유저의 오더북 등을 저장할 수 있다. For example, the
한편 도 2를 참조하면, 일 실시예에 따른 거래 시스템(100)은, 추가적으로 스탑오더서버(160)를 더 포함할 수 있다. Meanwhile, referring to FIG. 2, the
일 실시예에 따른 스탑오더서버(160)는 ‘스탑 거래’의 주문을 받았을 때 동작할 수 있다. The
어드미션서버(110)가 획득한 주문이 ‘스탑 거래’인 경우 스탑오더서버(160)는 어드미션서버(110)로부터 주문을 수신할 수 있다.When the order acquired by the
스탑오더서버(160)는 주문을 저장하고 있으면서 상기 주문을 데이터베이스에 기록할 수 있다. The
또한 스탑오더서버(160)는 주문이 거래로 처리될 수 있는 조건이 만족되면 상기 주문을 ‘지정가 거래’ 주문 또는 ‘시장가 거래’ 주문으로 변경하여 어드미션서버(110)로 전달할 수 있다.In addition, the
즉 스탑오더서버(160)는 주문을 획득하면 주문에 매칭되는 유저의 유저데이터를 캐시서버(140)에 리스 요청함으로써 획득할 수 있고, 획득한 유저데이터를 이용하여 주문에 대응되는 유저가 상기 주문을 처리하기 위한 잔고를 갖고 있는지 확인할 수 있다. 잔고가 있다고 판단되면 스탑오더서버(160)는 주문의 처리가 가능하다고 판단할 수 있고, 어드미션서버(110)로 응답을 보내며, 리스 요청한 데이터를 캐시서버(140)에 반환하면서, 데이터베이스(150)에 저장된 유저의 오더북에 주문 정보를 기록할 수 있다. 또한 스탑오더서버(160)는 매칭서버(120)로부터 체결 정보를 획득하여 특정 조건이 만족되었는지를 판단할 수 있다. 특정 조건이 만족되었다고 판단되면 스탑오더서버(160)는 ‘스탑 거래’의 주문을 ‘지정가거래’ 또는 ‘시장가거래’의 주문으로 변경하여 어드미션서버(110)로 전달할 수 있다. That is, when the
상술된 스탑오더서버(160)는 하나 이상의 인스턴스로 구현될 수 있으며, 하나 이상의 인스턴스 중 하나의 인스턴스를 마스터로 선정하여 어드미션서버(110)로부터 주문을 전달받아 처리되도록 할 수 있다. The above-described
따라서 마스터로 선정되지 못한 인스턴스는 슬레이브로 설정되며, 이때 마스터 인스턴스가 장애가 생겨 스탑오더서버(160)로서 동작하지 못한다면, 슬레이브 인스턴스 중 하나가 마스터 인스턴스가 될 수 있다. Therefore, an instance that has not been selected as a master is set as a slave, and if the master instance fails to operate as the
이때 하나 이상의 인스턴스 중 마스터 인스턴스를 선정하는 방법은 다양할 수 있는데, 슬레이브 인스턴스 중 랜덤하게 선택된 슬레이브 인스턴스가 마스터 인스턴스가 되거나, 슬레이브 인스턴스 중 가장 먼저 스탑오더서버로서 등록된 인스턴스가 마스터 인스턴스가 될 수 있다.At this time, there may be various methods of selecting a master instance among one or more instances, and a slave instance randomly selected among the slave instances may become the master instance, or the instance registered as the first stop order server among the slave instances may become the master instance. .
상술된 어드미션서버(110), 매칭서버(120), 커밋서버(130), 캐시서버(140) 및 스탑오더서버(160) 각각은 제어부(미도시), 통신부(미도시) 및 메모리(미도시)를 포함할 수 있다. Each of the above-described
제어부(미도시)는 장치의 전체적인 동작을 제어하며, CPU 등과 같은 프로세서를 포함할 수 있다. 예를 들어, 제어부(미도시)는 메모리(미도시)에 저장된 프로그램을 실행시키거나, 메모리(미도시)에 저장된 데이터를 읽어오거나, 새로운 데이터를 메모리에 저장할 수도 있다.The controller (not shown) controls the overall operation of the device, and may include a processor such as a CPU. For example, the controller (not shown) may execute a program stored in a memory (not shown), read data stored in a memory (not shown), or store new data in the memory.
통신부(미도시)는 다른 디바이스 또는 네트워크와 유무선 통신을 수행할 수 있다. 이를 위해, 통신부(미도시)는 다양한 유무선 통신 방법 중 적어도 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들어, 통신 모듈은 칩셋(chipset)의 형태로 구현될 수 있다.The communication unit (not shown) may perform wired or wireless communication with other devices or networks. To this end, the communication unit (not shown) may include a communication module that supports at least one of various wired and wireless communication methods. For example, the communication module may be implemented in the form of a chipset.
통신부(미도시)가 지원하는 무선 통신은, 예를 들어 Wi-Fi(Wireless Fidelity), Wi-Fi Direct, 블루투스(Bluetooth), UWB(Ultra Wide Band) 또는 NFC(Near Field Communication) 등일 수 있다. 또한, 통신부(130)가 지원하는 유선 통신은, 예를 들어 USB 또는 HDMI(High Definition Multimedia Interface) 등일 수 있다.Wireless communication supported by the communication unit (not shown) may be, for example, Wireless Fidelity (Wi-Fi), Wi-Fi Direct, Bluetooth, Ultra Wide Band (UWB), or Near Field Communication (NFC). In addition, wired communication supported by the
통신부(미도시)는 유무선 통신 방법을 통해 RPC(remote procedure call) 통신할 수 있으며 RPC정보는 코디네이션 장치(170)에 저장될 수 있다. 코디네이션 장치(170)는 새로운 서버 등록 시 RPC정보를 획득하여 RPC채널을 생성함으로써 시스템 내의 다른 서버가 새로운 서버의 등록을 인지하도록 할 수 있고, RPC 채널이 끊기는 것으로 서버에 장애가 있음을 판단하도록 할 수 있다.The communication unit (not shown) may perform remote procedure call (RPC) communication through a wired or wireless communication method, and the RPC information may be stored in the
메모리(미도시)에는 파일, 어플리케이션 및 프로그램 등과 같은 다양한 종류의 데이터가 설치 및 저장될 수 있다. 제어부(미도시)는 메모리(미도시)에 저장된 데이터에 접근하여 이를 이용하거나, 또는 새로운 데이터를 메모리(미도시)에 저장할 수도 있다. 또한, 제어부(미도시)는 메모리(140)에 설치된 프로그램을 실행할 수도 있다. 예를 들어, 메모리(미도시)에는 가상화폐 거래 방법을 수행하기 위한 프로그램이 설치될 수 있다.Various types of data such as files, applications, and programs may be installed and stored in a memory (not shown). The controller (not shown) may access and use data stored in the memory (not shown), or may store new data in the memory (not shown). In addition, the control unit (not shown) may execute a program installed in the
한편 거래 시스템(100)은 추가적으로 거래 시스템(100)의 동작을 모니터링할 수 있는 대시보드서버(미도시)를 더 포함할 수 있다. Meanwhile, the
또한, 거래 시스템(100)은 추가적으로 거래 시스템(100)을 관리하는 관리서버(미도시)를 더 포함할 수 있다. 관리서버(미도시)는 관리용 API를 처리할 수 있으며, 예를 들어, 거래소 시스템의 동작을 중지시키거나, 새로운 화폐의 추가, 기존 화폐의 삭제, 교환 가능 대상 화폐의 추가(비트코인을 구매하고자 할 때 비트코인을 구매할 수 있는 화폐의 종류를 추가하는 것) 등의 동작을 수행할 때 타서버들을 제어할 수 있다. 대시보드서버 또는 관리서버 각각은 시스템을 구성하는 타서버와 통신할 수 있다.In addition, the
한편 도 4 내지 도 6은 일 실시예에 따른 가상화폐 거래 방법을 설명하기 위한 순서도이다. Meanwhile, FIGS. 4 to 6 are flowcharts illustrating a method of trading virtual currency according to an exemplary embodiment.
도 4 내지 도 6에 도시된 실시예에 따른 거래 방법은 도 1 내지 도 3에 도시된 거래 시스템(100)에서 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하에서 생략된 내용이라고 하더라도 도 1 내지 도 3에 도시된 거래 시스템(100)에 관하여 이상에서 기술한 내용은 도 4 내지 도 6에 도시된 실시예에 따른 거래 방법에도 적용될 수 있다.The transaction method according to the embodiment illustrated in FIGS. 4 to 6 includes steps processed in a time series in the
도 4에 도시된 바와 같이, 어드미션서버(110)는 외부 시스템(미도시)로부터 주문을 획득할 수 있으며, 상기 주문의 종류를 구분할 수 있다(S401). 주문의 종류를 구분한 어드미션서버(110)는 주문이 ‘시장가 거래’ 또는 ‘지정가 거래’라면 상기 주문을 위한 유저의 잔고 정도를 확인하기 위해 캐시서버(140)에 유저데이터를 리스 요청할 수 있다(S402). 유저에게 잔고가 있어 주문이 처리될 수 있음이 확인되면(S403), 어드미션서버(110)는 리스 요청한 데이터를 캐시서버(140)에 반환하면서 주문에 관한 정보도 함께 전달할 수 있다(S404). 주문정보를 수신한 캐시서버(140)는 자신이 캐싱한 유저데이터를 갱신하면서, 데이터베이스(150)에 저장된 유저의 오더북에 주문을 기록할 수 있다(S405). 이후 어드미션서버(110)는 외부 시스템(미도시)에 주문에 관한 결과값을 전달할 수 있다(S406). 따라서 만약 어드미션서버(110)에 장애가 발생되면 외부 시스템은 주문에 관한 결과값을 획득할 수 없으므로 외부 시스템은 어드미션서버(110)의 장애 발생을 감지하고 주문을 재요청할 수 있다. As shown in FIG. 4, the
이후 어드미션서버(110)는 주문을 매칭서버(120)로 큐잉할 수 있다(S407). 만약 어드미션서버(110)의 장애가 발생하면 상기 장애를 매칭서버(120)는 RPC로 감지할 수 있고, 데이터베이스(150)에 저장된 주문 정보를 읽어와 주문이 처리되도록 할 수 있다.Thereafter, the
한편 매칭서버(120)는 큐잉된 주문들을 매칭하여 거래쌍을 생성하며(S408), 거래쌍을 커밋서버(130)로 전달할 수 있다(S409). 커밋서버(130)는 매칭서버(120)로부터 획득된 거래쌍에 대해 체결 처리를 수행하며 이를 위해 캐시서버(140)에 유저데이터를 리스 요청할 수 있다(S410). 커멋서버(130)는 거래쌍 처리를 위한 잔고가 있다고 판단되면(S411) 리스 요청한 데이터를 캐시서버(140)에 반환하면서, 캐시서버(140)에 캐싱된 주문 정보를 삭제하고 잔고에 관한 정보를 변경함으로써 유저데이터를 갱신할 수 있다(S412). 그리고 캐시서버(140) 또한 데이터베이스(150)에 저장된 유저의 오더북에 기록된 주문 정보를 삭제하고 유저데이터를 갱신하며, 트랜잭션 이력에 거래쌍 처리에 관한 정보를 추가할 수 있다(S413). Meanwhile, the matching
한편 단계 S401에서 어드미션서버(110)가 외부 시스템(미도시)으로부터 주문을 획득하였을 때 상기 주문이 ‘스탑 거래’라면 도 5에서 각 단계를 수행한 이후 도 4의 단계 S402로 넘어갈 수 있다.On the other hand, when the
즉, 어드미션서버(110)는 스탑 거래인 주문을 스탑오더서버(160)로 전달할 수 있다(S501). 주문을 수신한 스탑오더서버(160)는 상기 주문을 위한 유저의 잔고 정도를 확인하기 위해 캐시서버(140)에 유저데이터를 리스 요청할 수 있다(S502). 유저에게 잔고가 있어 주문이 처리될 수 있음이 확인되면(S503), 스탑오더서버(160)는 캐시서버(140)를 통해(S504), 데이터베이스(150)에 주문을 기록할 수 있다(S505). 그리고 스탑오더서버(160)는 어드미션서버(110)로 주문 요청에 대한 응답을 전달할 수 있다(S506). That is, the
이후 스탑오더서버(160)는 매칭서버(120)로부터 체결 정보를 실시간으로 전달받을 수 있고(S507), 체결 정보에 기초하여 스탑 거래의 특정 조건이 만족됨을 판단하면(S508), 스탑 거래를 지정가 거래 또는 시장가 거래 중 적어도 하나로 변환하여 어드미션서버(110)로 전달할 수 있다(S509). 상기 변환된 주문은 어드미션서버(110)로 전달되고, 거래 시스템(100)은 단계 402 내지 단계 413의 각 단계를 수행할 수 있다.Thereafter, the
한편 거래 시스템(100)은 코디네이션 장치(170)를 더 포함하며, 매칭서버(120)의 장애를 감지하면 코디네이션 장치(170)로 하여금 새로운 매칭서버(120)가 동작하도록 하여 순차적으로 처리되어야 하는 가상화폐 거래를 정확하게 처리할 수 있도록 한다.Meanwhile, the
즉, 도 6에서 도시된 바와 같이 거래 시스템(100)은 슬레이브 인스턴스 하나 이상을 띄울 수 있다. 따라서 거래 시스템(100)이 매칭서버의 장애를 감지하면(S610), 하나 이상의 슬레이브 인스턴스 중 하나를 선택할 수 있다(S620). 이때 선택되는 인스턴스는, 가장 먼저 등록을 요청한 인스턴스이거나, 랜덤하게 선택된 인스턴스일 수 있다. 거래 시스템(100)은 선택된 인스턴스를 마스터 인스턴스로 하여 새로운 매칭서버로 동작하도록 할 수 있고, 장애가 발생된 기존의 마스터 서버는 동작을 중단시킬 수 있다(S630).That is, as shown in FIG. 6, the
상술된 바와 같이 새로운 매칭서버가 거래 시스템(100)에 등록되면, 신규 등록된 매칭서버는 장애가 발생된 장애 매칭서버에 의해 과거 요청되었던 체결 요청에 대한 응답을 커밋서버(130)로부터 획득함으로써 요청되었던 체결 요청의 처리가 완료된 것을 확인할 수 있다. 이후 신규 매칭서버는 장애 매칭서버가 큐잉 또는 거래쌍을 생성하였으나 처리되지 못한 주문을 데이터베이스(150)로부터 복구할 수 있다. 커밋서버(130)로부터 체결 요청에 대한 응답을 수신하거나 데이터베이스(150)로부터 주문을 복구하는 동안 신규 매칭서버는 어드미션서버(110)로부터의 주문을 펜딩하고, 장애 매칭서버에 의해 처리되지 못했던 주문을 데이터베이스로부터 복구하는 것을 완료하면 펜딩된 주문을 큐잉할 수 있다. As described above, when a new matching server is registered in the
이상의 실시예들에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field programmable gate array) 또는 ASIC 와 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램특허 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.The term'~ unit' used in the above embodiments refers to software or hardware components such as field programmable gate array (FPGA) or ASIC, and the'~ unit' performs certain roles. However,'~ part' is not limited to software or hardware. The'~ unit' may be configured to be in an addressable storage medium, or may be configured to reproduce one or more processors. Thus, as an example,'~ unit' refers to components such as software components, object-oriented software components, class components and task components, processes, functions, properties, and procedures. , Subroutines, segments of program patent code, drivers, firmware, microcode, circuitry, data, database, data structures, tables, arrays, and variables.
구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로부터 분리될 수 있다.The components and functions provided in the'~ units' may be combined into a smaller number of elements and'~ units' or separated from the additional elements and'~ units'.
뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다.In addition, components and'~ units' may be implemented to play one or more CPUs in a device or a security multimedia card.
도 4 내지 도 6을 통해 설명된 실시예에 따른 거래 방법은 컴퓨터에 의해 실행 가능한 명령어 및 데이터를 저장하는, 컴퓨터로 판독 가능한 매체의 형태로도 구현될 수 있다. 이때, 명령어 및 데이터는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터 기록 매체일 수 있는데, 컴퓨터 기록 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함할 수 있다.예를 들어, 컴퓨터 기록 매체는 HDD 및 SSD 등과 같은 마그네틱 저장 매체, CD, DVD 및 블루레이 디스크 등과 같은 광학적 기록 매체, 또는 네트워크를 통해 접근 가능한 서버에 포함되는 메모리일 수 있다. The transaction method according to the embodiment described with reference to FIGS. 4 to 6 may also be implemented in the form of a computer-readable medium that stores instructions and data executable by a computer. In this case, the instructions and data may be stored in the form of a program code, and when executed by a processor, a predetermined program module may be generated to perform a predetermined operation. Further, the computer-readable medium may be any available medium that can be accessed by a computer, and includes both volatile and nonvolatile media, and removable and non-removable media. Further, the computer-readable medium may be a computer recording medium, which is volatile and non-volatile implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. It may include both volatile, removable and non-removable media. For example, computer recording media may include magnetic storage media such as HDDs and SSDs, optical recording media such as CDs, DVDs, and Blu-ray discs, or accessible through a network. It may be a memory included in the server.
또한 도 4 내지 도 6을 통해 설명된 실시예에 따른 거래 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다. In addition, the transaction method according to the embodiment described with reference to FIGS. 4 to 6 may be implemented as a computer program (or computer program product) including instructions executable by a computer. The computer program includes programmable machine instructions processed by a processor, and may be implemented in a high-level programming language, an object-oriented programming language, an assembly language, or a machine language. . Further, the computer program may be recorded on a tangible computer-readable recording medium (eg, memory, hard disk, magnetic/optical medium, solid-state drive (SSD), etc.).
따라서 도 4 내지 도 6을 통해 설명된 실시예에 따른 거래 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다. Accordingly, the transaction method according to the embodiment described with reference to FIGS. 4 to 6 may be implemented by executing the above-described computer program by the computing device. The computing device may include at least some of a processor, a memory, a storage device, a high speed interface connected to the memory and a high speed expansion port, and a low speed interface connected to the low speed bus and the storage device. Each of these components is connected to each other using various buses and can be mounted on a common motherboard or in other suitable manner.
여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다. Here, the processor can process commands within the computing device. Such commands include, for example, to display graphic information for providing a GUI (Graphic User Interface) on an external input or output device, such as a display connected to a high-speed interface. Examples are instructions stored in memory or storage devices. As another embodiment, multiple processors and/or multiple buses may be utilized with multiple memories and memory types as appropriate. In addition, the processor may be implemented as a chipset formed by chips including a plurality of independent analog and/or digital processors.
또한 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다. The memory also stores information within the computing device. As an example, the memory may be composed of volatile memory units or a set of them. As another example, the memory may be composed of a nonvolatile memory unit or a set of them. Also, the memory may be another type of computer-readable medium such as a magnetic or optical disk.
그리고 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다. In addition, the storage device may provide a large-capacity storage space to the computing device. The storage device may be a computer-readable medium or a configuration including such a medium, for example, devices in a storage area network (SAN) or other configurations, a floppy disk device, a hard disk device, an optical disk device, Or it may be a tape device, a flash memory, or another semiconductor memory device or device array similar thereto.
상술된 실시예들은 예시를 위한 것이며, 상술된 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 상술된 실시예들이 갖는 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 상술된 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above-described embodiments are for illustrative purposes only, and those of ordinary skill in the art to which the above-described embodiments belong can easily transform into other specific forms without changing the technical idea or essential features of the above-described embodiments. You can understand. Therefore, it should be understood that the above-described embodiments are illustrative and non-limiting in all respects. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as being distributed may also be implemented in a combined form.
본 명세서를 통해 보호 받고자 하는 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태를 포함하는 것으로 해석되어야 한다.The scope to be protected through the present specification is indicated by the claims to be described later rather than the detailed description, and should be interpreted as including all changes or modified forms derived from the meaning and scope of the claims and the concept of equivalents thereof. .
100: 가상화폐 거래 시스템
110: 어드미션서버 120: 매칭서버
130: 커밋서버 140: 캐시서버
150: 데이터베이스 160: 스탑오더서버
170: 코디네이션 장치100: virtual currency trading system
110: admission server 120: matching server
130: commit server 140: cache server
150: database 160: stop order server
170: coordination device
Claims (16)
가상화폐 거래를 요청하는 주문의 처리를 위해 상기 주문과 함께 체결될 타주문을 매칭하여 거래쌍을 생성하는 제1매칭서버;
상기 제1매칭서버를 상기 거래 시스템에 추가시킨 코디네이션 장치; 및
상기 주문을 유저로부터 획득하여 상기 제1매칭서버로 전달하는 어드미션서버를 포함하며,
상기 제1매칭서버는 상기 어드미션서버로부터 수신된 주문을 큐잉하고,
상기 코디네이션 장치는,
상기 제1매칭서버의 장애 시 제2매칭서버를 등록하여 상기 주문을 처리하는, 가상화폐 거래 시스템.As a system for virtual currency trading,
A first matching server for generating a transaction pair by matching other orders to be concluded with the order for processing an order requesting a virtual currency transaction;
A coordination device in which the first matching server is added to the transaction system; And
And an admission server that obtains the order from a user and transmits the order to the first matching server,
The first matching server queues the order received from the admission server,
The coordination device,
When the first matching server fails, a second matching server is registered to process the order.
상기 코디네이션 장치는,
하나 이상의 슬레이브 인스턴스 중 하나를 마스터 인스턴스로 선택하고 상기 마스터 인스턴스에 대응되는 제2매칭서버를 등록하는, 가상화폐 거래 시스템. The method of claim 1,
The coordination device,
A virtual currency trading system for selecting one of one or more slave instances as a master instance and registering a second matching server corresponding to the master instance.
상기 코디네이션 장치는,
상기 제1매칭서버의 장애 시 상기 하나 이상의 슬레이브 인스턴스 중 가장 먼저 등록에 성공하는 인스턴스를 마스터 인스턴스로 결정하는, 가상화폐 거래 시스템.The method of claim 2,
The coordination device,
When the first matching server fails, the first instance of the one or more slave instances that succeeds in registration is determined as the master instance.
상기 제2매칭서버는,
상기 어드미션서버로부터의 주문을 펜딩하고 상기 제1매칭서버에 큐잉되었던 주문을 데이터베이스로부터 복구하면 펜딩된 주문을 큐잉하는, 가상화폐 거래 시스템.The method of claim 1,
The second matching server,
A cryptocurrency trading system for queuing the pending orders when pending orders from the admission server and recovering the orders queued in the first matching server from a database.
상기 제1매칭서버로부터 수신된 체결 정보에 기초하여 스탑 거래의 주문에 대응되는 조건이 만족되면, 지정가 거래의 주문 및 시장가 거래의 주문 중 적어도 하나로 스탑 거래의 주문을 변환하는 스탑오더서버를 더 포함하고,
상기 어드미션서버는 획득한 주문의 종류를 식별하며, 상기 주문의 종류가 스탑 거래이면 상기 주문을 상기 스탑오더서버로 전달하며, 상기 스탑오더서버로부터 지정가 거래 및 시장가 거래 중 적어도 하나의 거래를 요청하는 주문을 획득하는, 가상화폐 거래 시스템.The method of claim 1,
If a condition corresponding to the stop transaction order is satisfied based on the execution information received from the first matching server, the stop order server converts the stop transaction order to at least one of a limit transaction order and a market price transaction order. and,
The admission server identifies the type of order acquired, and if the order type is a stop transaction, transfers the order to the stop order server, and requests at least one of a limit transaction and a market price transaction from the stop order server. A cryptocurrency trading system that takes orders.
상기 코디네이션 장치는,
상기 스탑오더서버의 장애 시, 하나 이상의 슬레이브 인스턴스 중 하나를 마스터 인스턴스로 선택하고, 다른 스탑오더서버로서 상기 마스터 인스턴스에 대응되는 스탑오더서버를 등록하는, 가상화폐 거래 시스템.The method of claim 6,
The coordination device,
When the stop order server fails, one or more slave instances are selected as a master instance, and a stop order server corresponding to the master instance is registered as another stop order server.
상기 주문의 기록을 위한 데이터베이스와 통신하며 상기 주문의 처리를 위한 데이터의 리스(lease) 요청을 수신하는 캐시서버를 더 포함하는, 가상화폐 거래 시스템.The method of claim 1
The cryptocurrency trading system further comprises a cache server that communicates with the database for recording the order and receives a request for a lease of data for processing the order.
상기 제1매칭서버로부터 상기 거래쌍에 대한 체결 요청을 수신하여 상기 거래쌍을 체결하는 커밋서버를 더 포함하는, 가상화폐 거래 시스템.The method of claim 1,
A cryptocurrency trading system further comprising a commit server for receiving the execution request for the transaction pair from the first matching server and entering into the transaction pair.
상기 제2매칭서버는,
상기 제1매칭서버에 의해 요청되었던 체결 요청에 대한 응답을 상기 커밋서버로부터 획득하면, 상기 제1매칭서버에 의해 큐잉되었던 주문을 데이터베이스로부터 복구하는, 가상화폐 거래 시스템.The method of claim 9,
The second matching server,
When a response to the execution request that was requested by the first matching server is obtained from the commit server, the order queued by the first matching server is recovered from a database.
상기 제1매칭서버의 장애 시 제2매칭서버를 등록하여 상기 주문을 처리하는 단계를 포함하는, 가상화폐 거래 방법.To process an order requesting a virtual currency transaction, an admission server that acquires the order from the user and delivers it to the first matching server, and queues the order received from the admission server and matches other orders to be concluded with the order. As a method of trading virtual currency, a virtual currency trading system including a first matching server that generates a trading pair
Comprising the step of processing the order by registering a second matching server when the first matching server fails.
상기 주문을 처리하는 단계는,
하나 이상의 슬레이브 인스턴스 중 하나를 마스터 인스턴스로 선택하고 상기 마스터 인스턴스에 대응되는 제2매칭서버를 등록하는 단계를 포함하는, 가상화폐 거래 방법.The method of claim 11,
The step of processing the order,
Comprising the step of selecting one of the one or more slave instances as a master instance and registering a second matching server corresponding to the master instance, virtual currency trading method.
상기 가상화폐 거래 방법은,
상기 제2매칭서버가, 상기 어드미션서버로부터의 주문을 펜딩하고 상기 제1매칭서버에 큐잉되었던 주문을 데이터베이스로부터 복구하면 펜딩된 주문을 큐잉하는 단계를 더 포함하는, 가상화폐 거래 방법.The method of claim 11,
The cryptocurrency transaction method,
The second matching server, further comprising the step of queuing the pending order when pending the order from the admission server and recovering the order queued in the first matching server from the database.
상기 가상화폐 거래 시스템은 상기 제1매칭서버로부터 상기 거래쌍에 대한 체결 요청을 수신하여 상기 거래쌍을 체결하는 커밋서버를 더 포함하며,
상기 제1매칭서버에 의해 요청되었던 체결 요청에 대한 응답을 상기 커밋서버로부터 획득하면, 상기 제1매칭서버에 의해 큐잉되었던 주문을 데이터베이스로부터 복구하는 단계를 더 포함하는, 가상화폐 거래 방법.The method of claim 11,
The cryptocurrency trading system further includes a commit server for receiving the execution request for the transaction pair from the first matching server and entering into the transaction pair,
If a response to the execution request that was requested by the first matching server is obtained from the commit server, the method further comprising recovering the order queued by the first matching server from the database.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/564,088 US11386494B2 (en) | 2018-09-19 | 2019-09-09 | Cryptocurrency trading method and system |
EP19197498.9A EP3627351A1 (en) | 2018-09-19 | 2019-09-16 | Cryptocurrency trading method and system |
JP2019168235A JP6989147B2 (en) | 2018-09-19 | 2019-09-17 | Cryptocurrency trading method and system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180112391 | 2018-09-19 | ||
KR1020180112391 | 2018-09-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200033080A KR20200033080A (en) | 2020-03-27 |
KR102172751B1 true KR102172751B1 (en) | 2020-11-02 |
Family
ID=69959462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180124730A Active KR102172751B1 (en) | 2018-09-19 | 2018-10-18 | Method and system for exchanging cryptocurrency |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102172751B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001043105A (en) * | 1999-07-30 | 2001-02-16 | Toshiba Corp | High-availability computer system and data backup method of the system |
US20100017647A1 (en) * | 2006-08-11 | 2010-01-21 | Chicago Mercantile Exchange, Inc. | Match server for a financial exchange having fault tolerant operation |
-
2018
- 2018-10-18 KR KR1020180124730A patent/KR102172751B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001043105A (en) * | 1999-07-30 | 2001-02-16 | Toshiba Corp | High-availability computer system and data backup method of the system |
US20100017647A1 (en) * | 2006-08-11 | 2010-01-21 | Chicago Mercantile Exchange, Inc. | Match server for a financial exchange having fault tolerant operation |
Also Published As
Publication number | Publication date |
---|---|
KR20200033080A (en) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7558915B2 (en) | System and method for updating the firmware of a device in a storage network | |
US9524107B2 (en) | Host-based device drivers for enhancing operations in redundant array of independent disks systems | |
KR20200078382A (en) | Solid-state drive with initiator mode | |
CN105408880A (en) | Direct access to persistent memory of shared storage | |
US10884849B2 (en) | Mirroring information on modified data from a primary storage controller to a secondary storage controller for the secondary storage controller to use to calculate parity data | |
JP2014120151A5 (en) | ||
US11287988B2 (en) | Autonomous raid data storage device locking system | |
US11856004B2 (en) | Systems and methods for identifying malicious cryptographic addresses | |
US20200319819A1 (en) | Method and Apparatus for Improving Parity Redundant Array of Independent Drives Write Latency in NVMe Devices | |
US11436086B2 (en) | Raid storage-device-assisted deferred parity data update system | |
US10831597B2 (en) | Receiving, at a secondary storage controller, information on modified data from a primary storage controller to use to calculate parity data | |
CN116414612A (en) | Storage node and method of operation thereof | |
US20180276213A1 (en) | Methods and system for database request management | |
US11093329B1 (en) | RAID proxy storage-device-assisted data update system | |
US11163501B2 (en) | Raid storage multi-step command system | |
KR102172751B1 (en) | Method and system for exchanging cryptocurrency | |
US11334292B2 (en) | Autonomous RAID data storage system | |
US11386494B2 (en) | Cryptocurrency trading method and system | |
US20230350980A1 (en) | Management of Storage Devices Utilizing Non-Fungible Tokens | |
US11093180B2 (en) | RAID storage multi-operation command system | |
KR20190126992A (en) | Method for generating non-deterministic data using a specific selection node in blockchain-based system | |
US9703497B2 (en) | Storage system and storage control method | |
US8977814B1 (en) | Information lifecycle management for binding content | |
KR102422189B1 (en) | Method for managing printing job in case of error occurring in printing system, and apparatus for performing the same | |
KR102028666B1 (en) | Storage device for processing de-identification request and operating method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20181018 |
|
PA0201 | Request for examination | ||
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20200409 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20201005 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20201027 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20201027 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20240826 Start annual number: 5 End annual number: 5 |