public override void Load()
{
// bind concrete storage providers
Bind<LevelDbStorageManager>().ToSelf().InSingletonScope()
.WithConstructorArgument("baseDirectory", dataDirectory)
.WithConstructorArgument("blocksCacheSize", blocksCacheSize)
.WithConstructorArgument("blocksWriteCacheSize", blocksWriteCacheSize)
.WithConstructorArgument("blockTxesCacheSize", blockTxesCacheSize)
.WithConstructorArgument("blockTxesWriteCacheSize", blockTxesWriteCacheSize)
.WithConstructorArgument("chainStateCacheSize", chainStateCacheSize)
.WithConstructorArgument("chainStateWriteCacheSize", chainStateWriteCacheSize)
.WithConstructorArgument("blockTxesStorageLocations", blockTxesStorageLocations);
Bind<NetworkPeerStorage>().ToSelf().InSingletonScope()
.WithConstructorArgument("baseDirectory", peersDirectory)
.WithConstructorArgument("chainType", chainType);
// bind storage providers interfaces
Bind<IStorageManager>().ToMethod(x => Kernel.Get<LevelDbStorageManager>()).InSingletonScope();
Bind<INetworkPeerStorage>().ToMethod(x => Kernel.Get<NetworkPeerStorage>()).InSingletonScope();
}
}