Block Rotation

Introduction

SKALE Chain Block Rotation allows to limit the space on hard drive which is occupied by blocks. The current default value is 12.6GB.

Each SKALE Chain maintains a minimum to maximum number of blocks, which are 80% and 100% of the above value respectively.

Rotation is performed across 4 databases. Each database contains:

  • blocks

  • transactions and their receipts

  • log blooms

  • "best" (lastBlockHash, best block of the canonical chain)

  • "chainStart" (firstBlockHash, used when full chain isn’t available, for example after snapshot import)

API Changes

Calls Changes

eth_getBlockByNumber/eth_getBlockByHash

may return null

eth_getBlockTransactionCountByNumber/eth_getBlockTransactionCountByHash

may return null

eth_getUncleCountByBlockNumber/eth_getUncleCountByBlockHash

may return null

eth_getTransactionByBlockHashAndIndex/eth_getTransactionByBlockNumberAndIndex

may return null

eth_getUncleByBlockHashAndIndex/eth_getUncleByBlockNumberAndIndex

may return null

eth_getTransactionByHash

may return null

eth_getTransactionReceipt

may return null

eth_getFilterLogs/eth_getLogs

will treat removed blocks as if they have 0 logs