速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

FISCO BCOS 2.0 使用教程:分布式存储体验

  • 2020-04-19
  • 本文字数:1312 字

    阅读完需:约 4 分钟

FISCO BCOS 2.0使用教程:分布式存储体验

配置分布式存储

分布式存储支持多种存储引擎,根据业务需求和部署环境灵活选择,可以配置为不同的存储引擎。


区块链的区块、交易等基础数据采用库表结构保存,状态数据的存储方式可配为库表结构或 MPT,满足不同场景的需求。


分布式存储的配置项位于群组的配置文件中,各个群组可以使用单独的存储策略,群组配置文件位于区块链节点中名为 conf/group.[群组号].genesis 的路径下,如 group.1.genesis,一旦群组启动,该群组的分布式存储的相关配置不能再改变。


分布式存储配置项示例如下:


[storage]


type=LevelDB:分布式存储的 DB 引擎类型,支持”LevelDB”和“External”(rc2 版本)


[state]


type=storage:state 类型,目前支持 storage state 和 MPT state,默认为 storage state


推荐使用 storage state ,除非必须使用 MPT 来追溯全局历史状态,不建议使用 MPT State。

使用 CRUD 智能合约开发

分布式存储提供了专用的 CRUD 接口,支持合约直接访问底层的存储表。


访问 CRUD 需要引用分布式存储专用的智能合约 Table.sol 接口,该接口是数据库合约,可以创建表,并对表进行增删改查操作。


引用 Table.sol


import “./Table.sol”;


Table.sol 的接口包括:


  • createTable //创建表

  • select(string, Condition) //查询数据

  • insert(string, Entry) //插入数据

  • update(string, Entry, Condition) //更新数据

  • remove(string, Condition) //删除数据


每个接口的用法如下:


创建表


// TableFactory 的地址固定为 0x1001


TableFactory tf = TableFactory(0x1001);


// 创建 t_test 表,表的 key_field 为 name,value_field 为 item_id,item_name


// key_field 表示分布式存储主 key value_field 表示表中的列,可以有多列,以逗号分隔


int count = tf.createTable(“t_test”, “name”, “item_id,item_name”);


查询数据


TableFactory tf = TableFactory(0x1001);Table table = tf.openTable("t_test");        // 条件为空表示不筛选 也可以根据需要使用条件筛选Condition condition = table.newCondition();
Entries entries = table.select(name, condition);
复制代码


插入数据


TableFactory tf = TableFactory(0x1001);Table table = tf.openTable("t_test");        Entry entry = table.newEntry();entry.set("name", name);entry.set("item_id", item_id);entry.set("item_name", item_name);        int count = table.insert(name, entry);
复制代码


更新数据


TableFactory tf = TableFactory(0x1001);Table table = tf.openTable("t_test");        Entry entry = table.newEntry();entry.set("item_name", item_name);        Condition condition = table.newCondition();condition.EQ("name", name);condition.EQ("item_id", item_id);        int count = table.update(name, entry, condition);
复制代码


删除数据


TableFactory tf = TableFactory(0x1001);Table table = tf.openTable("t_test");        Condition condition = table.newCondition();condition.EQ("name", name);condition.EQ("item_id", item_id);        int count = table.remove(name, condition);
复制代码


本文转载自 FISCO 金链盟公众号。


原文链接:https://mp.weixin.qq.com/s/08MLbE9CohjCZDagpBOk9Q


2020-04-19 17:41902

评论

发布
暂无评论
发现更多内容

【案例分享】思牧科技助力德信诚包装突破信息化困境

明道云

CleanMyMac X一直提示输入密码的解决方案

阿拉灯神丁

#Mac CleanMyMac X 售后服务 苹果软件

赢单有秘诀,大模型智能陪练更懂你

中关村科金

人工智能 大模型 智能陪练

AIGC创作活动 | 智"绘"AI,使用PAI创造风格百变绘画助手

阿里云大数据AI技术

人工智能 阿里云 AIGC

Multicoin Capital:我们为什么投资 io.net

TechubNews

JVM关键指标梳理及DATABUFF监控实践

乘云数字DataBuff

运维 云原生 java 应用性能监控

深入研究区块链系统

dappweb

#区块链#

使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理

阿里云大数据AI技术

人工智能 阿里云 AIGC

软件测试丨性能测试进阶训练营重磅来袭

测试人

软件测试 性能测试

手机直连SpaceX星链,一场“酱油比鸡贵”的营销游戏

脑极体

通信

win版IDM UltraEdit(十六进制文本编辑器) v31.0中文激活版

iMac小白

推动低代码开发 赋能办公方式转变

快乐非自愿限量之名

低代码 企业转型

一文教你在MindSpore中实现A2C算法训练

华为云开发者联盟

人工智能 华为云 强化学习 华为云开发者联盟 企业号2024年6月PK榜

国内如何解决升级GPT-4订阅的困扰

蓉蓉

ChatGPT GPT-4

在 Kubernetes 云平台上训练和部署生成式 AI 大模型

亚马逊云科技 (Amazon Web Services)

生成式人工智能

活动预热丨在 AGI Playground 2024 遇见一群 RTE+AI 的 Builders

声网

【案例分享】印前制版工单系统:“鹿山科技”助力“铭匠数据”重塑业务流程

明道云

NFTScan 正式上线 ERC-404 NFT API 数据服务!

NFT Research

NFT\ NFTScan API 文档

win版IDM UEStudio(文本代码编辑器)v24.0特别版

iMac小白

cleanmymacX最新破解版 cleanmymacX激活码分享

阿拉灯神丁

#Mac 软件包 苹果软件 CleanMyMac X破解版

博查AI搜索首发多智能体搜索,提供答案更丰富的搜索体验

科技热闻

5G时代的到来,LED显示屏行业迎来机遇与挑战

Dylan

技术 5G LED显示屏 全彩LED显示屏 led显示屏厂家

让“节能”贯穿服务器全生命周期,英特尔至强6能效核处理器的出众之处

E科讯

网易伏羲有灵平台荣登《China Daily》,人机协作开辟灵活用工新篇章

新消费日报

FISCO BCOS 2.0使用教程:分布式存储体验_文化 & 方法_FISCO金链盟_InfoQ精选文章