存储模型

    区块数据存储模型包括三个数据存储模型,分别为区块基本数据存储模型、区块详细数据存储模型及区块交易数据存储模型。

    存储了所有区块的状态信息和下载情况,对应数据库表名称为block_task_pool,如下所示:

    1.2 区块详细数据存储模型

    区块详细数据存储模型用于存储每个区块的详细数据,包括区块哈希、块高、出块时间、块上交易量,对应的数据库表名为block_detail_info,如下表所示。

    字段类型字段设置默认值说明
    pk_idbigint(20)Primary key & NOT NULL自增主键Id
    block_hashvarchar(255)Unique key & Index区块哈希
    block_heightbigint(20)区块高度
    block_tiemstampdatetimeindex出块时间
    tx_countint(11)当前区块交易量
    depot_updatetimedatetime系统时间记录插入/更新时间
    statusint(11)区块状态 0-初始化 1-成功 2-失败

    区块交易数据存储模型用于存储每个区块中每个交易的基本信息,包括区块哈希、块高、出块时间、合约名称、方法名称、交易哈希、交易发起方地址、交易接收方地址,对应的数据库表名为block_tx_detail_info。如下表所示。

    账户数据存储模型用于存储区块链网络中所有账户信息,包括账户创建时所在块高、账户所在块的出块时间、账户地址(合约地址)、合约名称。对应的数据库表名为account_info。如下表所示。需要注意的是,如果通过嵌套合约隐式调用构造方法,则不会导出。比如A合约中通过关键字new一个B合约,则B合约不会导出。

    字段类型字段设置默认值说明
    pk_idbigint(20)Primary key & NOT NULL自增主键Id
    block_heightbigint(20)index区块高度
    block_tiemstampdatetimeindex出块时间
    contract_addressvarchar(255)index合约/账户地址
    contract_namevarchar(255)合约名称
    depot_updatetimedatetime系统时间记录插入/更新时间

    3.1 事件数据存储命名规则

    由于事件数据存储模型是自动生成的,所以事件数据存储表名和表结构及字段命名采用统一的规则。以如下合约作为示例。

    3.1.1 事件表命名规则

    事件表命名规则为:合约名称_事件名称,并将合约名称和事件名称中的驼峰命名转化为小写加下划线方式。比如上述合约中合约名称为UserInfo,事件名称为modifyUserNameEvent,则表名称为user_info_modify_user_name_event。

    3.1.2 事件字段命名规则

    事件字段命名规则:事件字段驼峰命名转化为小写加下划线方式。仍以上述合约中modifyUserNameEvent为例,包含字段userName,则在user_info_modify_user_name_event表中对应的字段为user_name。

    事件数据存储模型除过存储该事件的相关信息外,还会存储和该事件相关的块和交易信息,如下表所示。

    | event-paralist | | | | 事件字段列表 | | tx_hash | varchar(255) | index | | 交易哈希 | | depot_updatetime | datetime | | 系统时间 | 记录插入/更新时间 |

    字段类型字段设置默认值说明
    user_namevarchar(255)用户名
    sexint性别

    交易数据存储模型同事件数据存储模型类似,是根据合约中的方法(Function)自动生成的。一个合约中有多少个方法就会生成多少个对应的方法数据存储表。该方法指的是实际产生交易的方法(含构造方法),不包含事件(Event)方法和查询方法(constant关键字标注)。

    4.1 交易数据存储命名规则

    交易数据存储表名、表结构及字段命名规则同事件数据存储模型类似.

    4.1.1 交易表命名规则

    交易表命名规则为:合约名称_方法名称,并将合约名称和方法名称中的驼峰命名转化为小写加下划线方式。比如上述合约中合约名称为UserInfo,方法名称为modifyUserName,则表名称为user_info_modify_user_name_method;构造方法名称为UserInfo,那么对应的表名为user_info_user_info_method。

    4.1.2 交易字段命名规则

    交易字段命名规则也是将交易参数字段驼峰命名转化为小写加下划线,不再赘述。需要指出的是,对于一些没有参数的方法,交易数据存储模型没有办法存储,即通过无参方法产生的交易明细将无法通过数据导出工具获取到。

    交易数据存储模型除过存储该方法的相关信息外,还会存储和该方法相关的块和交易信息,如下表所示。

    字段类型字段设置默认值说明
    user_namevarchar(255)用户名
    sexint性别