數字貨幣交易所主要由以下5個系統組成:
1.賬戶系統
不管是韭菜還是莊家,只要是交易所的用戶,都會有一個自己的中心化賬戶,這個賬戶里包含了用戶的身份資訊、資產資訊以及交易資訊等,這些資訊都需要賬戶系統來進行統一的記錄和管控,
2.出入賬系統
出入帳系統不記錄資料,它的主要功能是在交易、充值或是提現的程序中,完成出賬和入賬的業務邏輯實作,將資產的變動與賬戶資料打通,
3.交易管理系統
對應到賭場的情景中,這個系統的功能就是定義并記錄所有的游戲規則與資料,交易所的漲跌幅、K線以及交易資料等都是由這個系統來管理,
4.撮合引擎
它只有一個功能——訂單撮合,交易所的所有買和賣的需求,都需要撮合引擎把買單和賣單撮合成交易,
5.區塊鏈錢包
數字貨幣交易所系統開發自身以及用戶的所有數字資產,都是存在區塊鏈錢包中,用戶每次實際充值提現所產生的鏈上互動,都是由錢包完成,
以上5個系統中,其中有2個又是系統建設中的重中之重,一個是撮合引擎,一個是區塊鏈錢包,
撮合引擎對于交易所的重要程度,就像心臟之于人,撮合引擎需要以一己之力帶動交易所其他各系統的運轉,一個優秀的撮合引擎需要滿足以下三個要求:
1.強大到變態的性能:交易所規模越大,并發的交易也就越多,撮合引擎性能的好壞,直接制約了交易所業務的發展,
2.多種訂單型別全兼容:常用的訂單型別就包括限價單、市價單、止盈止損單等,
3.合約功能的支持:現階段的交易所行業中,合約交易已經幾乎成了必備功能,合約的撮合實作相比現貨要復雜許多,對技術的要求也會更高,
就技術層面而言,做好撮合系統已經成功了一半,另一半成功的關鍵就是區塊鏈錢包,
一方面錢包需要做中心化和去中心化的橋接,打通兩者的資產資料,另一方面錢包還必須安全穩妥的實作資金管理的職能,一旦錢包出現問題,發生了盜幣的情況,輕則導致元氣大傷,重則會導致交易所直接破產,
function buyNewLevel(uint8 matrix, uint8 level) external payable {
require(isUserExists(msg.sender), "user is not exists. Register first.");
require(matrix == 1 || matrix == 2, "invalid matrix");
require(msg.value == levelPrice[level], "invalid price");
require(level > 1 && level <= LAST_LEVEL, "invalid level");
if (matrix == 1) {
require(!users[msg.sender].activeX3Levels[level], "level already activated");
if (users[msg.sender].x3Matrix[level-1].blocked) {
users[msg.sender].x3Matrix[level-1].blocked = false;
}
address freeX3Referrer = findFreeX3Referrer(msg.sender, level);
users[msg.sender].x3Matrix[level].currentReferrer = freeX3Referrer;
users[msg.sender].activeX3Levels[level] = true;
updateX3Referrer(msg.sender, freeX3Referrer, level);
emit Upgrade(msg.sender, freeX3Referrer, 1, level);
} else {
require(!users[msg.sender].activeX6Levels[level], "level already activated");
if (users[msg.sender].x6Matrix[level-1].blocked) {
users[msg.sender].x6Matrix[level-1].blocked = false;
}
address freeX6Referrer = findFreeX6Referrer(msg.sender, level);
users[msg.sender].activeX6Levels[level] = true;
updateX6Referrer(msg.sender, freeX6Referrer, level);
emit Upgrade(msg.sender, freeX6Referrer, 2, level);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/191949.html
標籤:其他
上一篇:UniswapV2周邊合約學習(五)-- ExampleFlashSwap.sol
下一篇:小談概率論(一)
