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**系统示意图*
![](https://box.kancloud.cn/c9036f4d5aa1ae034cc25dfb251c3ddf_1480x830.png)
## 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)
![](https://box.kancloud.cn/270fd856bcff5a7042a8d9aba18cf453_2238x1038.png)
#### 4.8 退货
退货流程:
1. 消费者通过购买商品的电商平台提出申请,提交申请退货事务,并将商品退回生产商;
2. 生产商收到退货凭证后,通过处理退货事务,返还消费者原商品数字凭证;
3. 消费者将退还的数字凭证退还销售商;
4. 销售商将现金退回消费者,完成退货过程
>**接口**:
>申请退货接口:[Keeper:Shuttle 接口封装 / 4. 退货](http://doc.stringon.com/989398#4__730)
![](https://box.kancloud.cn/1b8f56bd25fbe9ac8872605924fc1d48_2910x1456.png)