async Task <bool> StartServerAsync()
        {
            try
            {
                var cardanoServerConsoleProcess = _cardanoServer.Start(_nodePort);

                var allWallets = await _walletClient.GetAllWalletsAsync();

                AllWallets = new ObservableCollection <Wallet>(allWallets);

                var allPools = await _walletClient.GetAllPoolsAsync();

                BlockChainCache            = new BlockChainCache();
                BlockChainCache.StakePools = new ObservableCollection <StakePool>(allPools);
                BlockChainCache.CacheDate  = DateTime.Now;
                string jsonString = JsonConvert.SerializeObject(BlockChainCache);

                byte[] jsonUtf8Bytes;
                var    options = new JsonSerializerOptions
                {
                    WriteIndented = true
                };
                jsonUtf8Bytes = JsonSerializer.SerializeToUtf8Bytes(BlockChainCache, options);
                await File.WriteAllBytesAsync(StakePoolListDatabase, jsonUtf8Bytes);

                //var allPoolsGrouped = allPools.GroupBy(g=>g.LifeTimeBlocks == 0).ToDictionary(x => x.Key, x => x.ToList());
                var allStakePoolsGroups = new DataGridCollectionView(allPools);
                //allStakePoolsGroups.GroupDescriptions.Add(new DataGridPathGroupDescription("LifeTimeBlocks"));
                //allStakePoolsGroups.Filter = FilterProperty;
                AllStakePools = new ObservableCollection <StakePool>(allPools);

                if (BlockChainCache.StakePools.Any())
                {
                    BlockChainCache.StakePools.Clear();
                }
                OnPropertyChanged("BlockChainCache");

                return(true);
            }
            catch (Exception e)
            {
                Log.Logger.Fatal(e.Message);
                return(false);
            }
        }