海外版量化合約/秒合約/合約量化/永續合約/交易所繫統開發(多語言)及原始碼功能
那麼Web3資料板塊如何重塑資料價值呢?主要有以下三個方面:
它使資料透明和防篡改。
在Web2的世界中,應用程式透過提供免費服務獲取使用者資料,然後壟斷這些資料以獲取利潤並建立自己的業務。資料儲存在他們的中央伺服器上,外界無法訪問。無法知道儲存了哪些資料,以及以何種方式和粒度儲存。此外,如果這些應用程式受到攻擊或主動終止其服務,使用者的資料將在一夜之間丟失。但是,以區塊鏈技術為底層Web3框架,鏈上資料公開、透明、不可篡改,實現了使用者的獨立性和安全性。
打破資料孤島並提高互操作性。
使用Web2,使用者每次使用新應用程式時都必須完成註冊過程。這是因為每個應用程式都有自己獨立的資料庫,無法連線到其他應用程式。使用者資料是碎片化的,無法跨平臺複用或整合。在Web3的世界裡,使用者只需要一個地址就可以訪問和使用各種去中心化應用;該地址的每一筆鏈上交易都可以使用相應的資料。應用程式許可權是不必要的。
透過代幣經濟更好地分配價值。
資料創造的價值如何分配給產生它的個人,是Web3需要回答的一個重要問題。目前看來,不斷髮展的通證經濟才是實現價值再分配的核心路徑。
core偏核心邏輯,流程及案例I35軟體7O98開發O7I8,單個swap的邏輯。periphery偏外圍服務,一個個swap的基礎上構建服務。單個swap,兩種代幣形成的交易對,俗稱“池子”。每個交易對有一些基本屬性:reserve0/reserve1以及total supply。reserve0/reserve1是交易對的兩種代幣的儲存量。total supply是當前流動性代幣的總量。每個交易對都對應一個流動性代幣(LPT - liquidity provider token)。簡單的說,LPT記錄了所有流動性提供者的貢獻。所有流動性代幣的總和就是total supply。Uniswap協議的思想是reserve0*reserve1的乘積不變。
Periphery邏輯
核心邏輯實現在UniswapV2Router02.sol中。稱為Router,因為Periphery實現了“路由”,支援各個swap之間的連線。基本上實現了三個功能:1/ add liquidity(增加流動性)2/remove liqudity (抽取流動性) 3/ swap(交換)。
- add liqudity
增加流動性,就是同時提供兩種代幣。因為代幣有可能是ETH,針對不同情況有不同的介面。邏輯類似。
function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external virtual override ensure(deadline) returns (uint amountA, uint amountB, uint liquidity)
add liqudity檢視之前有沒有建立相應的交易對。如果有相應的交易對,確定目前的兌換比例在希望的範圍內(期望amountDesired和不低於amountMin)。如果兌換比例OK,將相應的代幣轉入對應的交易對池子,並呼叫其的mint函式。
- remove liqudity
提供流動性的相反的操作就是抽取流動性。也就是說,流動性提供者不再提供相應的流動性:
function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) public virtual override ensure(deadline) returns (uint amountA, uint amountB) {
liquidity是抽取的流動性的量。amountMin是抽取代幣的最小的個數。to是抽取代幣的目標地址。deadline是個有意思的設計:抽取的操作有時效性。超過了一定的deadline(區塊高度),這次抽取操作看成無效。
先收回需要抽取的Token,並且銷燬:
IUniswapV2Pair(pair).transferFrom(msg.sender, pair, liquidity); // send liquidity to pair
(uint amount0, uint amount1) = IUniswapV2Pair(pair).burn(to);
- swap
swap是普通使用者進行代幣交易的操作。普通使用者透過swap操作實現兩種token之間的交易。
function swapExactTokensForTokens(
uint amountIn, uint amountOutMin, address[] calldata path,address to, uint deadline
) external virtual override ensure(deadline) returns (uint[] memory amounts) {
Uniswap支援多種代幣的交換。具體的含義是,Uniswap提供了多級交易池的路由功能。舉個例子,已有兩個交易對TokenA-TokenB,以及TokenB-TokenC,透過swap介面,可以實現TokenA-TokenC的交換,其中經過的TokenA-TokenB,TokenB-TokenC,稱為路徑(path)。amountIn是路徑中的第一個代幣的數量,amountOutMin是期望的交換後的最少的數量。
amounts = UniswapV2Library.getAmountsOut(factory, amountIn, path);
require(amounts[amounts.length - 1] >= amountOutMin, 'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT');
amounts是每個路徑上的交換後的數量。amounts[amounts.length-1]也就是最後一條路徑的輸出數量。注意,UniswapV2Library.getAmountsOut的實現(在獲取每個交易對的reserve資訊後,呼叫getAmountOut函式):
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) internal pure returns (uint amountOut) { require(amountIn > 0, 'UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT'); require(reserveIn > 0 && reserveOut > 0, 'UniswapV2Library: INSUFFICIENT_LIQUIDITY'); uint amountInWithFee = amountIn.mul(997); uint numerator = amountInWithFee.mul(reserveOut); uint denominator = reserveIn.mul(1000).add(amountInWithFee); amountOut = numerator / denominator; }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2936093/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 量化交易/量化合約/合約量化/秒合約/永續合約/合約跟單/交易所繫統開發(策略及原始碼)原始碼
- 現貨期權合約量化/量化合約/秒合約/永續合約/交易所繫統開發(開發案例及原始碼)原始碼
- 量化合約/合約量化/秒合約/永續合約/現貨期權期貨/交易所繫統開發案例及原始碼原始碼
- 永續合約/秒合約/合約量化/量化合約系統開發詳情/原始碼功能/成熟案例原始碼
- 量化合約/合約量化/秒合約系統開發/永續合約/合約跟單
- 現貨期權期貨/合約量化/量化合約/秒合約/永續合約/交易所繫統開發成熟技術及原始碼原始碼
- 數字貨幣交易所/合約跟單/秒合約/永續合約/量化合約/合約量化系統開發詳細策略及原始碼原始碼
- 永續合約/秒合約/HKD交易所繫統合約開發詳情
- 合約量化/量化合約開發原始碼功能,量化合約/合約量化系統開發(開發策略)及案例詳情原始碼
- 現貨跟單量化/合約跟單/系統開發/量化合約交易/永續合約/秒合約解析
- 量化合約/合約量化/合約跟單/交易所繫統開發實現技術原理及案例原始碼原始碼
- 量化合約丨合約量化開發原始碼版,合約量化丨量化合約系統開發(成熟案例)及詳細策略原始碼
- 秒合約開發/量化合約系統技術開發/永續交割合約/現貨跟單交易
- 量化合約/合約量化/合約跟單/對沖搬磚/交易所繫統開發成熟及方案丨原始碼案例原始碼
- 量化合約/合約量化/合約跟單系統開發(策略及詳細)案例原始碼原始碼
- 秒合約|合約跟單|永續合約系統開發模式模式
- 數字貨幣交易所/合約跟單/秒合約/永續合約/合約量化系統開發說明/原始碼案例/運營版原始碼
- 量化合約丨合約量化丨合約跟單丨交易所繫統開發實現技術案例及原始碼(demo)原始碼
- 量化合約開發(原始碼)丨量化合約系統開發(海外版)丨量化合約系統開發(多語言)原始碼
- 合約跟單/系統開發/現貨量化跟單/永續合約/秒合約策略
- 量化跟單/秒合約/原始碼系統開發/永續合約量化交易開發技術分析原始碼
- 合約量化|秒合約|合約跟單系統開發案例
- 永續合約交易所繫統開發(開發邏輯)丨永續合約系統開發(原始碼方案)原始碼
- 量化合約及合約量化機器人系統開發(開發策略)丨量化合約原始碼部署機器人原始碼
- 秒合約/永續合約/合約跟單/量化交易系統設計開發/詳情分析
- 交割合約系統/現貨量化跟單技術開發/秒合約/永續合約交易
- 秒合約|合約跟單|永續合約系統開發|測試版
- 合約交易丨秒合約丨永續合約丨幣幣合約交易所繫統開發|案例詳情|專案測試
- 合約跟單/秒合約/永續合約/量化跟單交易系統開發技術設計
- 量化合約系統開發丨合約量化系統開發原始碼丨合約量化系統開發技術Demo原始碼
- 量化合約系統開發(原始碼)合約量化系統開發(技術)原始碼
- 秒合約系統開發搭建原始碼|秒合約案例原始碼
- 合約量化系統開發(Python語言)丨合約量化開發(原始碼專案)Python原始碼
- 合約量化系統丨合約量化系統開發策略及詳情丨合約量化開發原始碼邏輯原始碼
- 量化跟單丨永續合約丨秒合約丨合約交易模式軟體開發詳情模式
- SET智慧合約量化系統開發|秒合約量化開發搭建
- 合約量化系統丨合約量化開發原始碼邏輯原始碼
- 永續合約開發/秒合約/合約跟單/量化交易跟單系統技術開發丨Python示例Python