okchain作為okex的公鏈專案,功能面向交易所交易撮合。
**實現上,基於cosmos和tendermint兩個框架來實現。
這裡記錄一下他的實現的大概框架。
公鏈專案鏈結是
staking 投票質押邏輯distribution
slashing 非法投票懲罰 ( 感覺這個會是審計重點
order狀態改變token
dex
bonded -> unbonding -> unbonded
就是撤銷投票
就是抵押
252個塊一輪,21個va輪流出塊。
每輪結束 重新選舉21個va。
share得票按數量排序,選前21個。其他為cva。
每年增發1%
沒3秒乙個塊,一年有10512000個塊。
每個塊的獎勵1/4給va,3/4給投票給va的va和cva們。
每個塊上鏈時立刻結算,會存放到獎金池中,需要節點自己手動領取。
dex運營方髮型數字資產交易對,手續費20000okt。
dex運營方下架數字資產交易對,手續費0.0125okt。
dex運營方抵押任意數量okt,優先撮合撮合金高的幣對交易,手續費歸dex運營方
預先鎖定259200個區塊高度所使用的手續費(單位okt),餘額不足下單失敗,預設0.25920okt。當訂單被撮合或者過期時,將手續費分給bp節點們。多餘的手續費會返還。
每個va都維護了state變數,來描述va的合法性。是正常執行、崩潰、還是非法執行等。
va建立之後會進入unbonded狀態。被區塊確認許可權之後,進入bonded狀態。
share 和msd都為0,就會被剔除va set。
也就是沒人選它,把投給他的token都贖回。而且他自己也贖回了msd
unbonding週期結束後,如果 share == 0 and msd == 0,就直接kicked off
無需等待unbonding週期結束,過程中如果share票數極高,排名在全網前21名內,直接進入bonded狀態。
節點非法行為的處罰機制
OpenCV原始碼閱讀 1
開始從讀取檔案的函式說起,這裡主要有兩個函式用於讀取影象的 實際上,當我們在做數字影象處理系統的時候,主要要考慮的也是怎麼讀乙個進來。第乙個函式 cvloadimage主要是用於返回乙個iplimage 的資料結構。第二個函式 cvloadimagem主要是用於返回乙個cvmat 的資料結構。實際上...
Spring 原始碼閱讀(1)
這週在學習spring的原始碼,常常迷失在 森林中,因為英語水平不高,常常需要借助google翻譯幫忙解釋注釋,所以速度比較慢。下面是我模擬spring的解析xml,依賴注入的過程,比較簡略。node node nodes.item i if node instanceof element claz...
spring原始碼閱讀(1)
spring核心是ioc和aop,aop的底層是 實現。分為兩種 jdk動態 和cglib 區別 動態 被 物件是要實現乙個介面,類首先要拿到這個介面,來進行強制轉換,通過反射來生成 物件 public class meipo implements invocationhandler overrid...