Weaver 系統是創造數字憑證經濟的基礎服務平臺,憑借 Weaver 一步跨入價值網絡經濟圈。
## 1. 系統介紹
整個系統分為多個產品和服務,從不同環節提供數字憑證經濟所需要的功能
| 產品&服務 | 職能&用途 |接口文檔| Demo 環境 |
|---|------|---|---|
| **Astro**?? | 區塊鏈及智能合約族 | | |
| **Shuttle**?? | 區塊鏈節點服務 |[節點服務 Shuttle API](ShuttleV2.md)| |
| **Matrix**?? | 生產平臺,為商品定義數字憑證 | [生產平臺 Matrix API](MatrixV2.md) | [https://matrix-test.stringon.com/](https://matrix-test.stringon.com/) |
| **Keeper**?? | 系統私鑰管理服務 |[鑰匙庫 Keeper API](keeper.md) | |
| **Discoverer**?? | 區塊鏈商品數字憑證瀏覽器 | | [https://discoverer-test.stringon.com/](https://discoverer-test.stringon.com/) |
| **Wing**??| 物影錢包 APP、小程序、H5 | | [https://www.stringon.com/wing.html](https://www.stringon.com/wing.html) |
***Weaver**系統示意圖*

## 2. 名詞解釋
**商品數字憑證**:商品數字憑證是商品的價值載體,將實物商品或虛擬商品在區塊鏈上生成等量數字憑證,并使用數字憑證交易完成商品的銷售過程
**生產商**:生產商是指產出商品的主體,可包括商品的品牌商、服務的提供商、運營商等
**銷售商**:從上游購買商品數字憑證并出售給下游客戶的商業主體,其自身不產出商品
**消費者**:購買商品數字憑證并提貨,完成整個銷售的終端主體
**電商**:銷售商通過電商平臺展示商品并銷售給消費者的平臺,可以是某一銷售商專營的平臺,也可以是提供多個銷售商入住并銷售各自商品的平臺
**服務類平臺**:使用數字憑證提供美容美發、餐飲等服務類的平臺
**游戲平臺**:使用數字憑證為游戲道具、積分等游戲數據的游戲平臺
**積分消費卡**:使用數字憑證發行積分、消費卡,并使用積分、消費卡的系統
**數字內容平臺**:使用數字憑證發行出版數字內容,并提供數字內容服務的平臺,數字內容可能為影視、音樂、電子書等產品
**商品錢包APP**:使用私鑰管理商品數字憑證的APP,主要以移動端APP形式提供
## 3. 基本商業邏輯
利用區塊鏈的特性將商品數字化,生成區塊鏈商品數字憑證,實現商品價值和實物的分離,利用互聯網和區塊鏈更高效、經濟地實現商品流通,為生產商、經銷商、消費者創造更大價值。
1. **數字憑證的生成:**
1. 商品數字憑證由商品的生產者創造并提供數字憑證到實物的償付擔保,Matrix 生產平臺負責對生產商的企業資質、信譽進行審核和公示;
2. 生產商負責定義商品信息,包括名稱、特性描述、展示圖片、視頻等,并根據 SKU 生成相應 數字憑證;
2. **商品銷售:**
1. 整個銷售(批發、零售)的環節都使用數字憑證完成交易,所有中間銷售環節與實物分離;
3. **商品交付:**
1. 由最終消費者使用數字憑證向生產商申請提貨,并由生產商將商品送達消費者;
4. **退貨:**
1. 消費者通過購買商品的電商平臺提出申請,并將商品退回生產商;
2. 生產商將數字憑證退還消費者;
3. 消費者將數字憑證退還銷售商;
4. 銷售商將現金退回消費者,完成退貨過程
## 4. 應用系統的改造
使用數字憑證的系統通常需要使用如下三個服務完成特性的功能:
1. Matrix 生產平臺:該系統用來定義商品并發行商品數字憑證,并對外提供商品信息,同時提供商品提貨訂單和生產商 ERP 的對接。應用系統通過 Matrix 的接口獲取商品信息、生產商信息以及提貨。
2. Shuttle 節點服務:該系統實現區塊鏈數據的獲取以及提交上鏈事務,在數字憑證交易中都是通過 Shuttle 實現交易上鏈以及交易查詢的。Shuttle 主要提供構造事務接口、提交事務接口、地址訂閱接口、通知接口。
3. Keeper 鑰匙庫:Keeper 提供服務端的私鑰管理,該服務以 Docker 形式提供,將 Keeper 部署于應用系統內部網絡中,并僅允許內網訪問。Keeper 提供公私鑰、地址生成,使用私鑰簽名的功能。
### 4.1 用戶賬號
建議應用系統平臺使用中心化托管的方式來生成和管理用戶的地址和私鑰,為每個用戶賬號分配區塊鏈地址,用來管理用戶的數字憑證。賣家、買家都需要分配地址。系統使用 Keeper 生成用戶的地址和公鑰,并使用這些私鑰完成上鏈事務的簽名,地址可以明碼保存在數據庫中,私鑰統一由 Keeper 保管。
>**接口**:
>[ 鑰匙庫 Keeper:獲取 1 個未使用的地址](http://doc.stringon.com/989398#3__1__99)
### 4.2 用戶數字憑證轉出
有如下場景需要執行數字憑證的轉出:
1. 商品 數字憑證交易時需要執行從賣家地址轉出數字憑證到買家地址。隨著交易的付款完成,由商城執行相應的數字憑證轉賬。
2. 用戶可以自己主動將自己的數字憑證轉出到任意地址,比如轉出到自己錢包,或者贈送給他人。商城提供商品數字憑證轉出的功能,由用戶自己設置轉出地址,并提交轉出表單,商城執行相關轉賬流程。
>**接口:**
>[ 鑰匙庫 Keeper:Shuttle接口封裝 / 1. 轉賬](http://doc.stringon.com/989398#1__604)
### 4.3 用戶數字憑證轉入
數字憑證轉入為被動接收,Shuttle 會發送實時消息,通知系統所有已訂閱地址的鏈上新事務信息,通過消息信息可以實時得到用戶地址中新轉入的數字憑證。
>**接口:**
>訂閱地址接口:[Shuttle:添加訂閱地址](http://doc.stringon.com/1063914#_83)
>接收訂閱消息:[Shuttle:通知 / 轉賬相關通知 / 轉賬完成](http://doc.stringon.com/1063914#_789)
當收到通知后,通常需要執行:
1. 獲取數字憑證的商品信息:如果商城的商品中不包含新轉入的數字憑證,需要獲得該商品的信息;
2. 更新用戶的商品數量;
3. 確認交易完成;
### 4.4 商品信息的獲取和更新
**商品信息的獲取**:
生產商在生產平臺發布商品的信息并生成商品數字憑證,其他系統(商城)在使用商品信息時直接從生產平臺拉取。
商城可以根據生廠商ID或商品數字憑證ID從 Matrix(生產平臺)獲取商品信息,并添加到商城的商品庫中,賣家設定商品價格后即可上架銷售。
>**接口:**
>[Matrix:1.2 獲取商品 ID](http://doc.stringon.com/1057629#12__ID_105)
>[Matrix:1.4 獲取商品 SPU 信息](http://doc.stringon.com/1057629#14__SPU__348)
**商品信息的變更**:定期通過接口獲取商品變更列表,再根據變更列表中本站有的商品進行數據更新。
>**接口:**
>[Matrix:1.5 獲取已變更商品列表](http://doc.stringon.com/1057629#15__525)
### 4.5 商品交易
完成交易需要執行數字憑證的轉賬,將賣家地址的數字憑證發送到買家地址中。交易的完成,以數字憑證轉賬完成為準。
對應需要執行的操作為:商品數字憑證的轉出和轉入。
>**接口:**
>轉出:[ 鑰匙庫 Keeper:Shuttle接口封裝 / 1. 轉賬](http://doc.stringon.com/989398#1__604)
>轉入:[Shuttle:通知 / 轉賬相關通知 / 轉賬完成](http://doc.stringon.com/1063914#_789)
### 4.6 商品庫存
商品庫存數據應該為賣家地址中數字憑證的數量,系統通過獲取地址的數字憑證余額來得到庫存數量,并通過訂閱地址,來實時掌握庫存變化。
>**接口:**
>[Shuttle:Astro Token 專用接口 / 獲取余額](http://doc.stringon.com/1063914#_547)
### 4.7 提貨和發貨
消費者購買商品后通過提貨流程完成最終商品實物的交付,提貨流程:
1. 消費者申請提貨:將要提貨的數字憑證通過提貨事務發送到生產商的提貨地址,提貨事務同時附帶加密的送貨地址信息,加密信息僅能通過生產商的私鑰解密;
2. 生產商通過提貨事務獲得提貨信息和送貨地址,按地址配送商品,并通過發貨事務將商品唯一對應的已發貨憑證發給消費者,并附帶加密的運單信息;
3. 消費者獲得發貨后的數字憑證,并解密得到運單信息,查詢物流狀態;
**實現**:
1. 商城可以代用戶提交提貨申請及后續的運單查詢;
2. 生產商發貨功能已經集成在 Matrix 系統中,生產商可以直接使用,也可以通過接口將發貨功能對接到企業ERP系統中。
>**接口**:
>申請提貨接口:[Keeper:Shuttle 接口封裝 / 2. 提貨](http://doc.stringon.com/989398#2__646)

#### 4.8 退貨
退貨流程:
1. 消費者通過購買商品的電商平臺提出申請,提交申請退貨事務,并將商品退回生產商;
2. 生產商收到退貨憑證后,通過處理退貨事務,返還消費者原商品數字憑證;
3. 消費者將退還的數字憑證退還銷售商;
4. 銷售商將現金退回消費者,完成退貨過程
>**接口**:
>申請退貨接口:[Keeper:Shuttle 接口封裝 / 4. 退貨](http://doc.stringon.com/989398#4__730)
