Ejemplo n.º 1
0
        public void ReplaceBlockchain(List <BlockHeader> blockHeaders, List <BlockContent> blockContents)
        {
            _logger.LogDebug("Attempting to replace the whole blockchain.");
            var blocksToPersist = new List <Block>();

            foreach (BlockHeader blockHeader in blockHeaders)
            {
                var          blockIri     = GenerateNewBlockIri(blockHeader.GetIndexAsInt());
                BlockContent blockContent = FindBlockContentByBlockHeader(blockContents, blockHeader);
                blocksToPersist.Add(new Block(blockIri, blockHeader, blockContent));
            }
            _logger.LogDebug("Ready to persist the following blocks: {}.", blocksToPersist);
            _repositoryManager.ClearBlockchainAndPersistBlocks(blocksToPersist);
        }