CQL Q&A:CovenantSQL 測試網如何計費

原文發佈在: demo.covenantsql.io/forum/#/t/1…

Question by Triton: 

IPFS其實只是去中心化的文件存儲,和區塊鏈無關。BigchainDB用的是MongoDB做爲數據的鏈下存儲,用Tendermint作數據在鏈上的錨定,鏈上存放的應該是proof。CovenantSQL說本身是區塊鏈數據庫讓人很迷惑,到底CovenantSQL把數據放在鏈上(Ledger)仍是鏈下?放在鏈上徹底沒有必要且代價巨大;若是數據放鏈下,那最多就是去中心化數據庫而已。
我在爲本身的一個項目選擇去中心化數據庫,因此想請教一下,使用CovenantSQL有沒有GAS費用?押金多少?假設用戶選擇了3個數據節點,那麼若是數據節點離線或者故障,CovenantSQL如何保證數據的availability?側鏈上數據庫實例之間是如何進行數據複製的?是對transaction logs的replay嗎?這樣,加入我在一個數據節點上執行了一個SQL insert指令,那麼,這個指令將在側鏈廣播並在其餘數據節點上進行replay?

Answer by auxten:

CovenantSQL(CQL)本質上是用了不少加密算法的「邊緣數據庫」(去中心數據庫),數據自己是存儲在 Layer2 的 Miner 中,Miner 是用咱們修改過的 SQLite 做爲鏈下存儲的,數據能夠參考這張圖:
2layersnode

CQL 的寫操做是按 Transaction 來進行兩階段提交(2PC) 同步的,以此來保證數據庫 ACID。
CQL 運行是須要消耗 PTC(相似於GAS) 的,每條 SQL 消耗的 PTC 參考:git

CovenantSQL 數據庫採用與以太坊相似的 Gas 計費方式,Gas 與穩定代幣 Particle 的換算單位(即 Gas Price)在建立時指定,對應的字段爲 gas-price。若是未指定,則默認設置爲 1。另外一個與計費相關的字段是預付款 advance-payment,用於進行押金抵扣及後續查詢計費,默認值爲 20,000,000。例如:github

cql create '{"node": 2, "gas-price": 5, "advance-payment": 500000000}'
Copy複製代碼

則能夠建立 gas-price 爲 5,預付款爲 500,000,000 的數據庫。在礦機資源緊缺時,設置更高的 gas-price有助於建立請求被更快地被響應,可是也會消耗更多的代幣。算法

目前暫時還只支持使用 CovenantSQL 的穩定代幣 Particle 來進行計費,將來將會陸續支持其餘幣種。sql

進行數據庫查詢時具體扣費邏輯以下:數據庫

  • 對於讀查詢,消耗的 Gas 爲返回的行數 rows_count
  • 對於寫查詢,消耗的 Gas 爲結果中的 affected_rows
  • SQLChain 根據配置進行週期性結算上報總 Gas 消耗到主鏈,主鏈驗證成功後從預付款中扣除 Gas * Gas Price 的代幣

能夠參考這裏領取 PTC。
領取 PTC 以後建立數據庫並指定足夠的押金便可。bash

CQL 網絡目前還處於測試網狀態,計費形式還比較簡單。咱們保證的是:測試網期間使用 CQL 存儲的數據會永久保留並由咱們提供充足的 PTC 保證數據庫永久在線可用,主網上線後咱們也會進行平滑遷移。測試網的 PTC 除了不能進行交易,功能上會和正式網一致。網絡

更多原理方面的介紹能夠參考文檔站:
區塊鏈

developers.covenantsql.io/docs/zh-CN/… 測試

相關文章
相關標籤/搜索