1. 簡介
在大區塊的背景下,資料將越來越大,很多人對應對大區塊還是有很多疑問,基于此我們設計實作了ShowMANDB資料分布式存盤來應對大資料時代,
事實上將來資料量變得足夠大的時候,遠端單點資料獲取和處理將變得困難,龐大的資料量導致業務處理會變得越來越慢,分布式儲存和處理變得越來越有必要,今天我們就介紹一下基于MetaID的分布式儲存方案,ShowMANDB,AppMANDB和LocalMANDB,
2. ShowMANDB
ShowMAN是ShowPay MetaID Accessing & Networking,目的是方便第三方開發者快速開展基于MetaID的開發同時也是分布式資料節點,
ShowMANDB 存盤的本質上是MetaID的Tx集合,并且對外提供聚合服務,
ShowMANDB 提供了MetaID的基本服務,應用可以通過ShowMANDB很方便的獲取到用戶的MetaID用戶資訊,Protocols節點資訊等基本的MetaID服務,同時我們也提供了Metanet的基本請求介面,包括metanet tree的獲取,父節點/子節點,已經metanet node資訊等,
應用可以通過ShowMANDB很方便的獲取資料,同時配合MetaIDjs/ShowAppjs,完成MetaID的讀寫,從而可以將精力放在應用業務上,更容易產出更優質的應用,
3. AppMANDB 和 LocalMANDB
首先AppMANDB和LocalMANDB在資料存盤和預置的介面上是大致一樣的,他們在資料篩選上有所區別,
我們注意到如同ShowMANDB在Metanet資料中只過濾存盤了MetaID的資料,對應大部分應用來說,也只需要專注自己感興趣的資料,并且存盤和處理就完全足夠了,一方面資料存盤將變少,操作效率也將變快,于是我們在ShowMANDB的基礎上分離出來AppMAN,將來開源之后用戶將很方便的構建AppMANDB,甚至在這個基礎上處理自己的資料,
同樣對于用戶來說,無論是將來點對點,或者離線處理需要,資料也可以存盤在用戶設備本地,以后新的拓展也方便,比如在ShowApp上我們也集成了輕量級的LocalMANDB,
<style>#mermaid-svg-U6A2I2XCTViUBAiJ .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-U6A2I2XCTViUBAiJ .label text{fill:#333}#mermaid-svg-U6A2I2XCTViUBAiJ .node rect,#mermaid-svg-U6A2I2XCTViUBAiJ .node circle,#mermaid-svg-U6A2I2XCTViUBAiJ .node ellipse,#mermaid-svg-U6A2I2XCTViUBAiJ .node polygon,#mermaid-svg-U6A2I2XCTViUBAiJ .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-U6A2I2XCTViUBAiJ .node .label{text-align:center;fill:#333}#mermaid-svg-U6A2I2XCTViUBAiJ .node.clickable{cursor:pointer}#mermaid-svg-U6A2I2XCTViUBAiJ .arrowheadPath{fill:#333}#mermaid-svg-U6A2I2XCTViUBAiJ .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-U6A2I2XCTViUBAiJ .flowchart-link{stroke:#333;fill:none}#mermaid-svg-U6A2I2XCTViUBAiJ .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-U6A2I2XCTViUBAiJ .edgeLabel rect{opacity:0.9}#mermaid-svg-U6A2I2XCTViUBAiJ .edgeLabel span{color:#333}#mermaid-svg-U6A2I2XCTViUBAiJ .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-U6A2I2XCTViUBAiJ .cluster text{fill:#333}#mermaid-svg-U6A2I2XCTViUBAiJ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-U6A2I2XCTViUBAiJ .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-U6A2I2XCTViUBAiJ text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-U6A2I2XCTViUBAiJ .actor-line{stroke:grey}#mermaid-svg-U6A2I2XCTViUBAiJ .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-U6A2I2XCTViUBAiJ .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-U6A2I2XCTViUBAiJ #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-U6A2I2XCTViUBAiJ .sequenceNumber{fill:#fff}#mermaid-svg-U6A2I2XCTViUBAiJ #sequencenumber{fill:#333}#mermaid-svg-U6A2I2XCTViUBAiJ #crosshead path{fill:#333;stroke:#333}#mermaid-svg-U6A2I2XCTViUBAiJ .messageText{fill:#333;stroke:#333}#mermaid-svg-U6A2I2XCTViUBAiJ .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-U6A2I2XCTViUBAiJ .labelText,#mermaid-svg-U6A2I2XCTViUBAiJ .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-U6A2I2XCTViUBAiJ .loopText,#mermaid-svg-U6A2I2XCTViUBAiJ .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-U6A2I2XCTViUBAiJ .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-U6A2I2XCTViUBAiJ .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-U6A2I2XCTViUBAiJ .noteText,#mermaid-svg-U6A2I2XCTViUBAiJ .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-U6A2I2XCTViUBAiJ .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-U6A2I2XCTViUBAiJ .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-U6A2I2XCTViUBAiJ .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-U6A2I2XCTViUBAiJ .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U6A2I2XCTViUBAiJ .section{stroke:none;opacity:0.2}#mermaid-svg-U6A2I2XCTViUBAiJ .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-U6A2I2XCTViUBAiJ .section2{fill:#fff400}#mermaid-svg-U6A2I2XCTViUBAiJ .section1,#mermaid-svg-U6A2I2XCTViUBAiJ .section3{fill:#fff;opacity:0.2}#mermaid-svg-U6A2I2XCTViUBAiJ .sectionTitle0{fill:#333}#mermaid-svg-U6A2I2XCTViUBAiJ .sectionTitle1{fill:#333}#mermaid-svg-U6A2I2XCTViUBAiJ .sectionTitle2{fill:#333}#mermaid-svg-U6A2I2XCTViUBAiJ .sectionTitle3{fill:#333}#mermaid-svg-U6A2I2XCTViUBAiJ .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U6A2I2XCTViUBAiJ .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-U6A2I2XCTViUBAiJ .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U6A2I2XCTViUBAiJ .grid path{stroke-width:0}#mermaid-svg-U6A2I2XCTViUBAiJ .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-U6A2I2XCTViUBAiJ .task{stroke-width:2}#mermaid-svg-U6A2I2XCTViUBAiJ .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U6A2I2XCTViUBAiJ .taskText:not([font-size]){font-size:11px}#mermaid-svg-U6A2I2XCTViUBAiJ .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U6A2I2XCTViUBAiJ .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-U6A2I2XCTViUBAiJ .task.clickable{cursor:pointer}#mermaid-svg-U6A2I2XCTViUBAiJ .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-U6A2I2XCTViUBAiJ .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-U6A2I2XCTViUBAiJ .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-U6A2I2XCTViUBAiJ .taskText0,#mermaid-svg-U6A2I2XCTViUBAiJ .taskText1,#mermaid-svg-U6A2I2XCTViUBAiJ .taskText2,#mermaid-svg-U6A2I2XCTViUBAiJ .taskText3{fill:#fff}#mermaid-svg-U6A2I2XCTViUBAiJ .task0,#mermaid-svg-U6A2I2XCTViUBAiJ .task1,#mermaid-svg-U6A2I2XCTViUBAiJ .task2,#mermaid-svg-U6A2I2XCTViUBAiJ .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-U6A2I2XCTViUBAiJ .taskTextOutside0,#mermaid-svg-U6A2I2XCTViUBAiJ .taskTextOutside2{fill:#000}#mermaid-svg-U6A2I2XCTViUBAiJ .taskTextOutside1,#mermaid-svg-U6A2I2XCTViUBAiJ .taskTextOutside3{fill:#000}#mermaid-svg-U6A2I2XCTViUBAiJ .active0,#mermaid-svg-U6A2I2XCTViUBAiJ .active1,#mermaid-svg-U6A2I2XCTViUBAiJ .active2,#mermaid-svg-U6A2I2XCTViUBAiJ .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-U6A2I2XCTViUBAiJ .activeText0,#mermaid-svg-U6A2I2XCTViUBAiJ .activeText1,#mermaid-svg-U6A2I2XCTViUBAiJ .activeText2,#mermaid-svg-U6A2I2XCTViUBAiJ .activeText3{fill:#000 !important}#mermaid-svg-U6A2I2XCTViUBAiJ .done0,#mermaid-svg-U6A2I2XCTViUBAiJ .done1,#mermaid-svg-U6A2I2XCTViUBAiJ .done2,#mermaid-svg-U6A2I2XCTViUBAiJ .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-U6A2I2XCTViUBAiJ .doneText0,#mermaid-svg-U6A2I2XCTViUBAiJ .doneText1,#mermaid-svg-U6A2I2XCTViUBAiJ .doneText2,#mermaid-svg-U6A2I2XCTViUBAiJ .doneText3{fill:#000 !important}#mermaid-svg-U6A2I2XCTViUBAiJ .crit0,#mermaid-svg-U6A2I2XCTViUBAiJ .crit1,#mermaid-svg-U6A2I2XCTViUBAiJ .crit2,#mermaid-svg-U6A2I2XCTViUBAiJ .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-U6A2I2XCTViUBAiJ .activeCrit0,#mermaid-svg-U6A2I2XCTViUBAiJ .activeCrit1,#mermaid-svg-U6A2I2XCTViUBAiJ .activeCrit2,#mermaid-svg-U6A2I2XCTViUBAiJ .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-U6A2I2XCTViUBAiJ .doneCrit0,#mermaid-svg-U6A2I2XCTViUBAiJ .doneCrit1,#mermaid-svg-U6A2I2XCTViUBAiJ .doneCrit2,#mermaid-svg-U6A2I2XCTViUBAiJ .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-U6A2I2XCTViUBAiJ .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-U6A2I2XCTViUBAiJ .milestoneText{font-style:italic}#mermaid-svg-U6A2I2XCTViUBAiJ .doneCritText0,#mermaid-svg-U6A2I2XCTViUBAiJ .doneCritText1,#mermaid-svg-U6A2I2XCTViUBAiJ .doneCritText2,#mermaid-svg-U6A2I2XCTViUBAiJ .doneCritText3{fill:#000 !important}#mermaid-svg-U6A2I2XCTViUBAiJ .activeCritText0,#mermaid-svg-U6A2I2XCTViUBAiJ .activeCritText1,#mermaid-svg-U6A2I2XCTViUBAiJ .activeCritText2,#mermaid-svg-U6A2I2XCTViUBAiJ .activeCritText3{fill:#000 !important}#mermaid-svg-U6A2I2XCTViUBAiJ .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U6A2I2XCTViUBAiJ g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-U6A2I2XCTViUBAiJ g.classGroup text .title{font-weight:bolder}#mermaid-svg-U6A2I2XCTViUBAiJ g.clickable{cursor:pointer}#mermaid-svg-U6A2I2XCTViUBAiJ g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-U6A2I2XCTViUBAiJ g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-U6A2I2XCTViUBAiJ .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-U6A2I2XCTViUBAiJ .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-U6A2I2XCTViUBAiJ .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-U6A2I2XCTViUBAiJ .dashed-line{stroke-dasharray:3}#mermaid-svg-U6A2I2XCTViUBAiJ #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-U6A2I2XCTViUBAiJ #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-U6A2I2XCTViUBAiJ #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-U6A2I2XCTViUBAiJ #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-U6A2I2XCTViUBAiJ #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-U6A2I2XCTViUBAiJ #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-U6A2I2XCTViUBAiJ #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-U6A2I2XCTViUBAiJ #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-U6A2I2XCTViUBAiJ .commit-id,#mermaid-svg-U6A2I2XCTViUBAiJ .commit-msg,#mermaid-svg-U6A2I2XCTViUBAiJ .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U6A2I2XCTViUBAiJ .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U6A2I2XCTViUBAiJ .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U6A2I2XCTViUBAiJ g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U6A2I2XCTViUBAiJ g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-U6A2I2XCTViUBAiJ g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-U6A2I2XCTViUBAiJ g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-U6A2I2XCTViUBAiJ g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-U6A2I2XCTViUBAiJ g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-U6A2I2XCTViUBAiJ .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-U6A2I2XCTViUBAiJ .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-U6A2I2XCTViUBAiJ .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-U6A2I2XCTViUBAiJ .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-U6A2I2XCTViUBAiJ .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-U6A2I2XCTViUBAiJ .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-U6A2I2XCTViUBAiJ .edgeLabel text{fill:#333}#mermaid-svg-U6A2I2XCTViUBAiJ .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U6A2I2XCTViUBAiJ .node circle.state-start{fill:black;stroke:black}#mermaid-svg-U6A2I2XCTViUBAiJ .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-U6A2I2XCTViUBAiJ #statediagram-barbEnd{fill:#9370db}#mermaid-svg-U6A2I2XCTViUBAiJ .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-U6A2I2XCTViUBAiJ .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-U6A2I2XCTViUBAiJ .statediagram-state .divider{stroke:#9370db}#mermaid-svg-U6A2I2XCTViUBAiJ .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-U6A2I2XCTViUBAiJ .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-U6A2I2XCTViUBAiJ .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-U6A2I2XCTViUBAiJ .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-U6A2I2XCTViUBAiJ .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-U6A2I2XCTViUBAiJ .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-U6A2I2XCTViUBAiJ .note-edge{stroke-dasharray:5}#mermaid-svg-U6A2I2XCTViUBAiJ .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-U6A2I2XCTViUBAiJ .error-icon{fill:#522}#mermaid-svg-U6A2I2XCTViUBAiJ .error-text{fill:#522;stroke:#522}#mermaid-svg-U6A2I2XCTViUBAiJ .edge-thickness-normal{stroke-width:2px}#mermaid-svg-U6A2I2XCTViUBAiJ .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-U6A2I2XCTViUBAiJ .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-U6A2I2XCTViUBAiJ .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-U6A2I2XCTViUBAiJ .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-U6A2I2XCTViUBAiJ .marker{fill:#333}#mermaid-svg-U6A2I2XCTViUBAiJ .marker.cross{stroke:#333}
:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}</style>
<style>#mermaid-svg-U6A2I2XCTViUBAiJ {
color: rgba(0, 0, 0, 0.75);
font: ;
}</style>
BSV-Data
ShowMANDB
ShowMANDB2
APPMANDB1
APPMANDB2
User1
LocalManDB1
User3
User4
User2
LocalManDB2
User6
User7
User8
User5
APPMANDB3
3.1 AppMANDB
AppMANDB 可以配置從ShowMANDB上獲取資料,通過訂閱模式從ShowMANDB上獲取自己感興趣的資料,應用可以構建只包含自己資料集的APPMANDB,從showmandb中訂閱獲取屬于自己的tx集合再進行資料分析和處理,可以拓展showmandb資料介面方便賦予自己應用更多的功能,同時也從showmandb同步獲取原始資料,showmandb服務資料,
appmandb localmandb都將提供基礎的和showmandb一樣介面服務,同時也提供了資料存盤結構,應用方/用戶可以很方便的基于資料構建屬于自己的附加資料服務,提供的介面包括:
1.獲取metaid基礎資訊getMetaIDInfo
2.獲取節點資訊getNode
3.獲取MetaID節點parts資訊
4.獲取根節點
5.獲取子節點
6.獲取節點樹
7.根據address獲取節點
等,
比如Showbuzz AppMANDB 訂閱了showbuzz協議metanote協議,
這樣Showbuzz 只需要從showbuzz-AppMANDB上獲取資料,一方面減少ShowMANDB服務的負載,另一方面也將大大加快資料獲取速度,也可以在這個基礎上添加自己需要的功能,比如Tag資料賽選等,
3.2 LocalMANDB
應用客戶端(web or phone)進一步將屬于資料變小存盤在自己設備中,資料獲取和處理速度進一步變快,為以后的點對點通道提供資料基礎,
這樣的ChainData -> ShowMANDB -> AppMANDB -> localMANDB 資料層層分布式存盤,不僅在所有權上用戶自己擁有自己資料,也可以花最小代價自己存盤資料,事實上我們在設計這個模型的時候已經在產品中使用了,目前Show APP中已經初步完成了localmandb的雛形, metaidjs 中我們也存盤了用戶資訊等基本資訊,后續會將protocalsdata也存盤,進一步優化用戶使用體驗,
這樣最終ShowMANDB 擁有MetaID所有資料,AppMANDB儲存應用相關的資料,LocalMANDB儲存用戶自己的資料,資料分布式存盤,可以保證業務在大資料時候正常運行,這樣設計也讓應用和用戶的MetaID資料不單獨依賴任何服務方,保證資料在全球范圍是真正分布式存盤,
目前ShowMANDB已經對外提供服務,可以通過API-query直接查詢,LocalMANDB和AppMANDB已經在Show等應用中實踐測驗,這兩個程式我們開發工程師正在加緊優化,爭取早日開源,