- 浏览: 763822 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
EOS的数据库就是chainbase,而调用数据库服务的C++的API是由eosio::multi_index负责的
eosio::multi_index是基于boost::multi_index库改进的,它提供了针对不同类型索引对象的迭代器Multi-Index Iterators.
1.每一个multi_index的表对象都必须包含一个uint64类型的主键,同时每张表都必须包含一个常量函数primary_key()用于获得主键
2.multi_index支持额外16个二级索引,这些二级索引的类型可以是uint64,uint128,uint256,double或long double
一个multi_index的表需要三个参数
1.表名
2.表内存储数据类型(包括数据结构,都可以自定义,要包含主键)
3.索引(指的是二级索引,同样定义在对象数据中,并且包含get该索引的函数)
API
1.multi_index(uint64_t code,uint64_t scope):构建一个multi_index表的实例
2.get_code():获取code成员值,当前table的拥有者
3.get_scope():获取scope成员值,当前table的接收者范围
4.begin()/end(),iterator,const_iterator:返回当前table最小(大)主键对应的值,即最前对象(end批向最后对象的后一个位置,如果=end(),则证明在迭代器对象中不存在目标对象)
5.cbegin()/cend(),const_iterator:无条件返回一个常量迭代器对象
6.cbegin()/cend(),const reverse iterator:返回常量倒转迭代器对象
7.rbegin()/rend(),reverse iterator:返回倒转迭代器对象
8.lower_bound(uint64_t primary):设置主键(或二级索引)最小边界值,返回大于或等于该值的迭代器.若未查到则返回-1
9.upper_bound(uint64_t primary):设置最大值,存在则返回小于或等于该值的迭代器,查找不存在则返回大于该值的迭代器,如果在最后则返回-1
10.available_primary_key():返回一个可用主键,当table新增一条数据时,需要设置主键的值,通过该函数返回一个自增的主键id,不可重复
11.get_index<N(secondary indexName>():返回一个二级索引,可通过名字类型指定某个二级索引
12.iterator_to(const T & obj):返回一个给定对象引用的迭代器
13.emplace(uint64_t payer,Lambda && constructor):table新增一条数据.第一个参数是为新增数据的空间资源及其他开销的付费者;第二个参数为新增数据的对象内容,是一个当场初始化创建一个对象的Lambda函数
a.在multi_index中创建一个新对象,对象指定一个唯一主键,对象被序列化写入table,如果不存在,则先创建表
b.二级索引更新引用新添加的对象,如果不存在,则先创建二级索引,返回一个主键迭代器指向新创建的对象
14.Modify(const_iterator itr,uint64_ payer,Lambda && updater):修改table中的一条对象数据.第一个参数是指向需要更新的对象迭代器,第二个参数是开销付费者,第三个参数是目标对象内容的Lambda函数
a.修改后的对象会替代现有的
b.二级索引会更新,主键不发生更新
c.如果原对象的付款者与更新对象的付款者是同一个账户,则仅向差异化开销付费;如果更新后所占空间变小,则还会退款
d.如果付款者不同,则退还空间开销到原对象的付款账户
15.get(uint64_t primary):返回一个常量,包含特定主键对应table中的对象的引用.除根据主键查找外,还可以通过指定二级索引进行查找
16.find(uint64_t primary):返回一个迭代器,包含与传入值相等的主键的对象.除根据主键查找外,还可以通过指定二级索引进行查找
17.erase(const_iterator itr):传入一个迭代器,指向待删除的对象.通过该对象的主键从table中删除对象.
a.对象从表中删除,所有相关存储资源被回收
b.表中二级索引会更新
c.原对象付款者会被退还空间开销
eosio::multi_index是基于boost::multi_index库改进的,它提供了针对不同类型索引对象的迭代器Multi-Index Iterators.
1.每一个multi_index的表对象都必须包含一个uint64类型的主键,同时每张表都必须包含一个常量函数primary_key()用于获得主键
2.multi_index支持额外16个二级索引,这些二级索引的类型可以是uint64,uint128,uint256,double或long double
一个multi_index的表需要三个参数
1.表名
2.表内存储数据类型(包括数据结构,都可以自定义,要包含主键)
3.索引(指的是二级索引,同样定义在对象数据中,并且包含get该索引的函数)
API
1.multi_index(uint64_t code,uint64_t scope):构建一个multi_index表的实例
2.get_code():获取code成员值,当前table的拥有者
3.get_scope():获取scope成员值,当前table的接收者范围
4.begin()/end(),iterator,const_iterator:返回当前table最小(大)主键对应的值,即最前对象(end批向最后对象的后一个位置,如果=end(),则证明在迭代器对象中不存在目标对象)
5.cbegin()/cend(),const_iterator:无条件返回一个常量迭代器对象
6.cbegin()/cend(),const reverse iterator:返回常量倒转迭代器对象
7.rbegin()/rend(),reverse iterator:返回倒转迭代器对象
8.lower_bound(uint64_t primary):设置主键(或二级索引)最小边界值,返回大于或等于该值的迭代器.若未查到则返回-1
9.upper_bound(uint64_t primary):设置最大值,存在则返回小于或等于该值的迭代器,查找不存在则返回大于该值的迭代器,如果在最后则返回-1
10.available_primary_key():返回一个可用主键,当table新增一条数据时,需要设置主键的值,通过该函数返回一个自增的主键id,不可重复
11.get_index<N(secondary indexName>():返回一个二级索引,可通过名字类型指定某个二级索引
12.iterator_to(const T & obj):返回一个给定对象引用的迭代器
13.emplace(uint64_t payer,Lambda && constructor):table新增一条数据.第一个参数是为新增数据的空间资源及其他开销的付费者;第二个参数为新增数据的对象内容,是一个当场初始化创建一个对象的Lambda函数
a.在multi_index中创建一个新对象,对象指定一个唯一主键,对象被序列化写入table,如果不存在,则先创建表
b.二级索引更新引用新添加的对象,如果不存在,则先创建二级索引,返回一个主键迭代器指向新创建的对象
14.Modify(const_iterator itr,uint64_ payer,Lambda && updater):修改table中的一条对象数据.第一个参数是指向需要更新的对象迭代器,第二个参数是开销付费者,第三个参数是目标对象内容的Lambda函数
a.修改后的对象会替代现有的
b.二级索引会更新,主键不发生更新
c.如果原对象的付款者与更新对象的付款者是同一个账户,则仅向差异化开销付费;如果更新后所占空间变小,则还会退款
d.如果付款者不同,则退还空间开销到原对象的付款账户
15.get(uint64_t primary):返回一个常量,包含特定主键对应table中的对象的引用.除根据主键查找外,还可以通过指定二级索引进行查找
16.find(uint64_t primary):返回一个迭代器,包含与传入值相等的主键的对象.除根据主键查找外,还可以通过指定二级索引进行查找
17.erase(const_iterator itr):传入一个迭代器,指向待删除的对象.通过该对象的主键从table中删除对象.
a.对象从表中删除,所有相关存储资源被回收
b.表中二级索引会更新
c.原对象付款者会被退还空间开销
发表评论
-
eos快照
2019-10-06 08:31 377快照:为区块链提供临时 ... -
eos待确认/分叉库
2019-10-05 08:32 245fork_database:管理了轻量级状态数据,是由未确认的 ... -
eos controller概述
2019-10-03 17:28 287EOS中的模型层是blocks.log和基于chainbase ... -
eos chainbase状态库
2019-10-01 08:03 423chainbase:是一个快速包含 ... -
eos action
2019-09-28 17:18 179action:在EOS中,action被分配到对应程序(一般是 ... -
eos事务结构
2019-09-28 16:34 387transaction_header:事务头的数据大小是固定的 ... -
eos区块头结构
2019-09-28 08:54 277block_header:区块头 struct block ... -
eos rpc set
2019-09-26 19:27 278set contract:设置合约 xjdeMacBook- ... -
eos rpc create
2019-09-26 19:18 2521.创建公私钥对 xjdeMacBook-Pro:safeco ... -
EOS blocks.log
2019-09-26 07:40 364区块数据通过blocks.log与blocks.index持久 ... -
引用区块
2019-09-25 07:26 307trx.set_reference_block(ref_blo ... -
EOS事务
2019-09-24 07:36 341调用函数add_standard_transaction_op ... -
全节点搭建
2019-09-22 09:34 2601.通过system regproducer命令可将普通账户注 ... -
eos名词解释
2019-09-14 09:34 6481.Authority:权力,要与Permission做好区分 ... -
智能合约依赖库
2019-08-29 07:32 362Action:这部分定义了查询或发送action的API.在E ... -
eos_rpc_system资源获取
2019-08-21 07:39 366资源主要有CPU,net bandwidt ... -
eos_rpc_sign
2019-08-21 07:22 241sign [OPTIONS] transaction:完成EO ... -
eos_rpc_wallet
2019-08-20 07:31 3131.wallet create [OPTIONS]:创建一个新 ... -
eos_rpc_get
2019-08-18 08:38 2861.get info:通过指定全节点API接口获取其连接的EO ... -
nodeos,cleos,keosd
2019-08-16 07:17 299nodeos:是运行在服务端的 ...
相关推荐
**EOS - 普元企业服务总线** EOS(Enterprise Service Bus),由普元公司研发,是一款高效、灵活的企业服务总线系统。它在SOA(Service-Oriented Architecture,面向服务架构)环境中扮演着核心角色,为企业提供了...
"EOS Platform 7.6 Enterprise Edition Linux" 是一个专为Linux环境设计的企业级软件平台,主要服务于系统运维和服务器管理领域。这个版本的EOS(可能是Enterprise Operating System或类似含义的缩写)着重于提供...
**EOS(Ethernet Over SDH)业务** EOS,即以太网在SDH(Synchronous Digital Hierarchy,同步数字体系)上的承载,是一种将以太网数据流映射到SDH通道的技术,它允许以太网业务在SDH网络中高效、透明地传输。这种...
《EOS Platform 7.0基础开发教程》是一份详尽的指南,旨在帮助开发者们掌握EOS区块链平台的最新版本——EOS Platform 7.0的基础知识和应用开发技能。该教程结合了理论与实践,提供了丰富的实例,使得学习过程更加...
在区块链开发领域,EOS作为一种新兴的高性能区块链平台,其智能合约和链上操作涉及到大量的技术细节和状态检查。为了确保操作的正确性,EOS提供了丰富的错误代码以帮助开发者识别和定位问题。本文集整理了EOS区块链...
equation of state (EOS) of gas
属于真实气体状态方程,可用于计算气体温度、压力和密度。
根据提供的文件信息,我们可以深入探讨Primeton EOS 5.3产品的安装流程与注意事项。这份文档主要涉及四个不同版本的产品——开发版、专业版、社区版和企业版,并且提供了两种安装方式:界面交互安装和哑安装。下面将...
00 EOS文档使用指南.chm :00 EOS文档使用指南.chm EOS全部资料合集(包括例子) 01 EOS系统概述.chm :01 EOS系统概述.chm 02 EOS示例与教程.chm :02 EOS示例与教程.chm 03 EOS基础开发指南.chm :03 EOS基础开发...
运动高手秀的摄像头,默认是不支持乐橙云的,升级这个固件可以支持乐橙云,在自己的手机上面观看,实现随时随地的查看自己的摄像头,之所以提供给大家是因为我自己使用后感觉非常方便。这是冒着摄像头被杀死的风险...
资源分类:Python库 所属语言:Python 资源全名:eosfactory_tokenika-3.0.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
【EOS公司与增材制造】 EOS(Electro Optical Systems)是一家全球领先的电子制造解决方案提供商,尤其在医疗领域的应用上有着显著的地位。该公司成立于1989年,由Dr. Hans Langer博士创立,至今已有超过25年的历史...
Canon_EOS_ED-SDK_v3.6.1.rar ,含EDSDK、EDSDK_64、文档Document、范例Sample。 Supports models beginning from the EOS 1D Mark III in 2007. The following models are supported as of March 2010. EOS-1D ...
**EOS Webcam Utility Beta - 转变你的EOS相机为网络摄像头** 标题中的“EOS Webcam Utility Beta”是一款由佳能(Canon)开发的应用程序,专为Windows操作系统设计,版本号为0.9.0。该软件的主要功能是将支持的EOS...
佳能EOS_60d操作手册 详细介绍 佳能EOS_60d操作手册 具体的操作说明书 希望对您有所帮助
EOS提供两种类型的主键:`uint64_t`(单主键)和`multi_index`(多主键,包括联合主键)。在这里,我们使用`multi_index`来设置联合主键: ```cpp EOSIO_TABLE(Account, id) { uint64_t id; name username; ...
普元EOS7.6安装步骤涉及多个方面,包括对不同操作系统、不同版本的软件以及不同安装方式的详细指导。以下是对该文件中提到的知识点的详细说明。 ### 1. 概述 普元EOSPlatform7.6是一款企业级软件开发与运行平台,它...
《EOS Platform 7.0 扩展开发教程》是一份专为开发者设计的详细指南,旨在帮助他们深入了解EOS区块链平台的第七个主要版本,并掌握如何进行扩展开发。EOS平台以其高性能、可扩展性和去中心化的特性,成为区块链应用...