C# Класс BitSharper.Store.BoundedOverheadBlockStore

Stores the block chain to disk.
This implementation is designed to have constant memory usage, regardless of the size of the block chain being stored. It exploits operating system level buffering and the fact that get() requests are, in normal usage, localized in chain space.

Blocks are stored sequentially. Most blocks are fetched out of a small in-memory cache. The slowest part is traversing difficulty transition points, which requires seeking backwards over around 2000 blocks. On a Google Nexus S phone this takes a couple of seconds. On a MacBook Pro it takes around 50msec.

The store has much room for optimization. Expanding the size of the cache will likely allow us to traverse difficulty transitions without using too much memory and without hitting the disk at all, for the case of initial block chain download. Storing the hashes on disk would allow us to avoid deserialization and hashing which is expensive on Android.

Наследование: IBlockStore
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
BoundedOverheadBlockStore ( NetworkParameters @params, FileInfo file ) : System.Diagnostics
Dispose ( ) : void
Get ( Sha256Hash hash ) : StoredBlock
GetChainHead ( ) : StoredBlock
Put ( StoredBlock block ) : void
SetChainHead ( StoredBlock chainHead ) : void

Приватные методы

Метод Описание
CreateNewStore ( NetworkParameters @params, FileInfo file ) : void
GetRecord ( Sha256Hash hash ) : Record
Load ( FileInfo file ) : void

Описание методов

BoundedOverheadBlockStore() публичный Метод

public BoundedOverheadBlockStore ( NetworkParameters @params, FileInfo file ) : System.Diagnostics
@params NetworkParameters
file System.IO.FileInfo
Результат System.Diagnostics

Dispose() публичный Метод

public Dispose ( ) : void
Результат void

Get() публичный Метод

public Get ( Sha256Hash hash ) : StoredBlock
hash Sha256Hash
Результат StoredBlock

GetChainHead() публичный Метод

public GetChainHead ( ) : StoredBlock
Результат StoredBlock

Put() публичный Метод

public Put ( StoredBlock block ) : void
block StoredBlock
Результат void

SetChainHead() публичный Метод

public SetChainHead ( StoredBlock chainHead ) : void
chainHead StoredBlock
Результат void