private async void DistributeBlock(EncodedBlock encodedBlock)
        {
            encodedBlock.NodeSenderId = BlockchainNodeConfiguration.NodeId;
            encodedBlock.NodesAcceptedIds.Add(BlockchainNodeConfiguration.NodeId);

            await _consensusHubContext.Clients.All.ReceiveBlock(encodedBlock);
        }
        private void DistributeBlock(DAM.Block.BlockBase blockBase)
        {
            var blockJson    = JsonConvert.SerializeObject(blockBase);
            var base64String = Convert.ToBase64String(Encoding.UTF8.GetBytes(blockJson));
            var encodedBlock = new EncodedBlock
            {
                Id               = Guid.NewGuid().ToString(),
                Base64Block      = base64String,
                NodeSenderId     = BlockchainNodeConfiguration.NodeId,
                NodesAcceptedIds = new List <string>()
            };

            DistributeBlock(encodedBlock);
        }
        public void AcceptExternalBlock(EncodedBlock encodedBlock)
        {
            _backgroundQueue.Enqueue(token => new Task(() =>
            {
                if (encodedBlock?.Base64Block != null &&
                    !_encodedBlocksStorage.EncodedBlocksIds.Contains(encodedBlock.Id))
                {
                    _encodedBlocksStorage.EncodedBlocksIds.Add(encodedBlock.Id);

                    var blockchainJson = Encoding.UTF8.GetString(Convert.FromBase64String(encodedBlock.Base64Block));
                    var incomingBlock  = BlockchainConverter.DeserializeBlock(blockchainJson);

                    var result = AcceptBlock(incomingBlock, encodedBlock.NodeSenderId);
                    if (result.IsSuccess)
                    {
                        DistributeBlock(encodedBlock);
                    }
                }
            }, token));
        }
Example #4
0
        public byte[] DecodeBlock(string key, EncodedBlock block)
        {
            var transform = GetCryptoProvider(block.IV).CreateDecryptor();

            return(transform.TransformEntireBlock(block.Data));
        }
Example #5
0
		public byte[] DecodeBlock(string key, EncodedBlock block)
		{
			var transform = GetCryptoProvider(block.IV).CreateDecryptor();

			return transform.TransformEntireBlock(block.Data);
		}