index module
Meta information maintenance
After engine-server build is successful, data-owner synchronizes the dataset meta information to the chain. Meta includes database, data table, administrator and some description information.
- dataset_name: dataset name
- work_status: work status; 0: not set; 1 has started providing services; 2 has stopped providing services; 3 has been deleted
- owner_address: dataset owner
- expiration_time: expiration time
- hosts: dataset domain name, users can use this domain name to request the dataset
- manage_addresses: dataset management address, currently this address has no actual use scenario, and this field will be used to manage the dataset in the future
- tables: dataset table collection
- sum_cpdt: dataset's cousumer total collateral
- description: dataset's description information, including some social information and reporting information
- update_time: dataset's update time on the chain
Renewal Management
When creating a dataset, a certain amount of GLI is consumed. Currently, setting 1 dataset requires 31.5 GLI per year, which can be defined in the system through the parameter fee_per_dataset_per_second. The expiration time can be viewed through the chain's API. When the dataset expires, it will enter a 30-day duration period, during which it can still be renewed. After the duration period, the dataset's mata information will be deleted, and the collateral on the dataset will be returned by the original route.
protocol
dataset
dataset represents the meta information stored on the chain, field meaning
message Dataset {
string dataset_name = 1;
ServiceStatus work_status = 2;
string owner_address = 3;
google.protobuf.Timestamp expiration_time = 4 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
string hosts = 5;
string manage_addresses = 6;
repeated Table tables = 7
[
(gogoproto.nullable) = false
];
string sum_cpdt = 8 //consumer pledge dataset token
[
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.nullable) = false,
(gogoproto.customname) = "SumCPDT"
];
string description = 9;
google.protobuf.Timestamp update_time = 10
[(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"update_time\""];
}
message Table{
string table_name = 1;
string description = 2;
google.protobuf.Timestamp update_time = 3
[(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"update_time\""];
}
params
message Params {
option (gogoproto.goproto_stringer) = false;
string fee_per_dataset_per_second = 1
[(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false];
int64 grace_period = 2;
}
- fee_per_dataset_per_second: How much AGLI is consumed per dataset per second
- grace_period: How long can the dataset be retained after it expires