Scry.info技术分享——ScryDB简介
来源:互联网 发布:网络作家收入 编辑:程序博客网 时间:2024/06/05 04:25
ScryDB的主要目的是将”大”点的数据存放在eth链以外的地方(毕竟现在eth链的数据增长已经很大了).
相关关系如下图:
可以看到ScryDB是为上层提供服务,封装了相关数据操作具体实现.
有个子实现:IPFS和Scry DB Chain.
IPFS: 一个值得信奈的去中心化的数据存储网络(此前已ICO成功), 此处不再赘述, 可自行查阅相关资料.目前我们对数据的存取在IPFS上进行的.
Scry DB Chain: scryInfo系统存储了大量的真实数据,有数据就会有查询.但IPFS是不提供(组合)查询功能的,它目前只能通过hash获取指定的内容.这是无法满足更多业务需要的.所以我们针对此需求计划设计一个新的chain,来满足有查询需求的数据存取(类似关系型数据库).该功能计划于第四阶段(2018年年底前)开始实施. 更多详细介绍请参阅白皮书.
由于Scry DB Chain要到第四阶段才开始实施,那现在我们的ScryInfo就不能提供查询了吗? 答案肯定是”能支持查询”. 现阶段我们基于IPFS实现了一个简易的结构来满足对查询的基本需求,如下图所示:
ScryDBFactory: 一个工厂类,外层调用主要用到此类的Create方法,返回的是ScryDBBase类型的对象. 它负责返回某个ScryDBBase的子类对象.
ScryDBBase: db操作抽象基础类.定义了几个重要的方法:
connect(): 连接到数据源(IPFS和Scry DB Chain都被设计为需要连接再操作).
get(): 获取指定的单个数据.IPFS可以通过一个hash获取到具体数据内容, ScryDBChain被设计为也能存取单个值.
set(): 保存指定数据到IPFS或Scry DB Chain.
exec(): 设计为可以执行一条SQL语句来达到查询数据的目的. 第1个参数就是SQL语句,第2个参数就是结果回调.
ScryDBIPFS: 具体的针对IPFS的实现,它主要实现了get()和set()方法,来达到在IPFS上存取数据的目的.
ScryDBChain: 计划为对Scry DB Chain的实现. 计划在第4阶段开始实现.
ScryDBIPFSTable: 这是ScryDBIPFS的子类,它主要负责实现了exec()方法.通过名称看的出它是按照类似数据库中表的形式来存储数据的. 这样就可以通过模拟SQL的方式来对数据进行CRUD. 额外的还提供了create table和drop table.
通过以上几个类,我们就在ScryInfo中实现了一个基于IPFS的简易的数据操作基础模块,就能为上层特别是SQS系统提供数据业务查询提供基础服务.
示例:
创建表:
插入数据:
查询:
输出结果为:
- Scry.info技术分享——ScryDB简介
- Scry.info社区开发者技术分享——智能合约
- 区块链智能合约引擎Scry.info完成国际PreICO
- 技术分享之 Binder简介
- SCRY.INFO無域日本福冈一场全球极客交锋
- 网页分享技术—对网页分享技术的思考
- Scry中文名首发:無域——开启基于区块链数据化经济的智能合约时代
- Scry中文名首发:無域——开启基于区块链数据化经济的智能合约时代
- 【恒天云技术分享系列11】Sheepdog简介
- 技术分享- RxJS与Redux-Observable简介
- GNU info 简介
- Tcl编程简介-info
- Info.plist文件简介
- 挖挖双色球——数据挖掘技术 分享
- 技术分享——mongodb入门(1)
- 技术分享——mongodb(2)
- 【技术分享总结】—设计模式
- Redis的info参数简介
- C++ SharedPtr 智能指针操作二维数组的细节异同
- 设计模式C++(Factory Method工厂方法模式)
- 利用bin-log文件特点配置读写分离
- U3D物理引擎
- python--leetcode637. Average of Levels in Binary Tree
- Scry.info技术分享——ScryDB简介
- U3D光源烘培光照贴图和light probes
- java 给数字加上单位'万'
- PAT 甲级 1084. Broken Keyboard (20)
- js判断是否为IE678简易办法
- 微信小程序——1、搭建自己的Https服务器
- 4轴开发之串级PID调试技巧
- STM32 USART串口初始化
- 最新闻:陨石落云南,震感强烈