storage.DBTX
2 UNIVERSE -> 9 GALAXY -> 18 PLANET
宇宙 -> 星系 -> 行星
数据包括:
- 历史数据(原生数据)
- 状态数据(衍生数据)
UNIVERSE
var BLOCKCHAIN_UNIVERSE = []byte("U") //[]byte("BLOCKCHAIN_UNIVERSE") // all block chain data is store in this BLOCKCHAIN_UNIVERSE
var SMARTCONTRACT_UNIVERSE = []byte("SC")
区块链
智能合约
GALAXY
var GALAXY_BLOCK = []byte("GB")
var GALAXY_TRANSACTION = []byte("GTX") // []byte("TRANSACTION")
var GALAXY_TRANSACTION_VALIDITY = []byte("GTXV") //[]byte("TRANSACTIONVALIDITY")
var GALAXY_KEYIMAGE = []byte("GKI") //[]byte("KEYIMAGE")
var GALAXY_TOPOLOGICAL_ORDER = []byte("GT") // []byte("TOPOLOGICAL") // stores block to topo index mapping
var GALAXY_TOPOLOGICAL_INDEX = []byte("GTI") //[]byte("TOPOLOGICAL_INDEX") // stores topological index to block mapping
//2 galaxies store inverse mapping
var GALAXY_HEIGHT = []byte("GH") //[]byte("HEIGHT") // height to block id mapping
var GALAXY_OUTPUT_INDEX = []byte("GOI") //[]byte("OUTPUT_INDEX") // output index to wallet data for blockchain verification and wallets
// these store unstructured data
var GALAXY_KEYVALUE = []byte("GKV") //[]byte("KEYVALUE") // used to store simple data
区块、交易、密钥镜像
全排序、映射关系
高度、输出索引
// the various attributes stored in keyvalue
var TOP_HEIGHT = []byte("TOP_HEIGHT") // stores current TOP HEIGHT, only stores single value
var TOPO_HEIGHT = []byte("TOPO_HEIGHT") // stores current TOPO HEIGHT, only stores single value
var TIPS = []byte("TIPS") // this stores tips
高度、拓扑高度、末端区块
PLANET
var PLANET_BLOB = []byte("BLOB") //it shows serialised block
var PLANET_HEIGHT = []byte("HEIGHT") // contains height
var PLANET_PARENT = []byte("PARENT") // parent of block
var PLANET_PAST = []byte("PAST") // past of block
var PLANET_FUTURE = []byte("FUTURE") // future of block only 1 level
//var PLANET_HEIGHT_BUCKET = []byte("H") // contains all blocks of same height
//var PLANET_SETTLE_STATUS = []byte("S") // contains whether the block is settled
var PLANET_SIZE = []byte("SIZE") // sum of block + all txs
var PLANET_ALREADY_GENERATED_COINS = []byte("CCOINS") // all coins generated till this block
var PLANET_OUTPUT_INDEX = []byte("OINDEX") // tx outputs indexing starts from here for this block
var PLANET_OUTPUT_INDEX_END = []byte("OINDEXEND") // tx outputs indexing ends here ( this is excluded )
var PLANET_CUMULATIVE_DIFFICULTY = []byte("CDIFF") //[]byte("CDIFFICULTY") // Cumulative difficulty
var PLANET_DIFFICULTY = []byte("DIFF") //[]byte("DIFFICULTY") // difficulty
var PLANET_BASEREWARD = []byte("BREWARD") // base reward of a block ( new coins generated)
var PLANET_MINERTX_REWARD = []byte("REWARD") //reward for minertx is stored here ( base reward + collected fees after client protocol run)
var PLANET_TIMESTAMP = []byte("TS") // []byte("TIMESTAMP")
// the TX has the following attributes
var PLANET_TX_BLOB = []byte("BLOB") // contains serialised TX , this attribute is also found in BLOCK where
var PLANET_TX_MINED_IN_BLOCK = []byte("MBL") //[]byte("MINERBLOCK") // which blocks mined this tx, stores topo height of mined block
var PLANET_TX_MINED = []byte("MIN") // all blocks where tx is mined in in
var PLANET_TX_SIZE = []byte("SIZE")
var PLANET_TX_SC_BYTES = []byte("SC")
var PLANET_TX_SC_PROCESSED = []byte("SCP")
var PLANET_TX_SC_CHANGELOG = []byte("SCL")
复杂的数据结构有 Block、Tips、Transaction,其它 uint64、Timestamp、bytes,其它 TX_Output_Data(在钱包同步时,提供数据)。