Пример #1
0
        public Task <long> Add(Sp8deBlock data)
        {
            using (var session = store.LightweightSession())
            {
                session.Insert(data);
                session.SaveChanges();

                return(Task.FromResult(data.Id));
            }
        }
Пример #2
0
        public Sp8deBlock GenerateNewBlock(IReadOnlyList <Sp8deTransaction> list, Sp8deBlock prevBlock, IKeySecret producerKey)
        {
            var block = new Sp8deBlock()
            {
                Id           = prevBlock.Id + 1,
                PreviousHash = prevBlock.Hash,
                Timestamp    = DateConverter.UtcNow,
                Transactions = list.Select(x => x.Id).ToList(),
                Signer       = producerKey.PublicAddress
            };

            block.TransactionRoot = CalculateTransactionRootHash(list);

            var blockContent = block.GeteDataForSing();

            block.Signature = cryptoService.SignMessage(blockContent, producerKey.PrivateKey);

            block.Hash = HexConverter.ToHex(cryptoService.CalculateHash(Encoding.UTF8.GetBytes(block.Signature)));

            return(block);
        }