public bool VerifyBlock(BlockBase blockBase) { SignedBlockBase signedBlockBase = (SignedBlockBase)blockBase; byte[] messageBody = signedBlockBase.BodyBytes.ToArray(); byte[] signature = signedBlockBase.Signature.ToArray(); byte[] publickKey = signedBlockBase.Signer.Value.ToArray(); if (!VerifySignature(messageBody, signature, publickKey)) { _log.Error("Signature is invalid"); return(false); } return(true); }
protected override Memory <byte> ParseSigned(ushort version, Memory <byte> spanBody, out SignedBlockBase signedBlockBase) { ulong blockHeight = BinaryPrimitives.ReadUInt64LittleEndian(spanBody.Span); SyncedBlockBase syncedBlockBase; Memory <byte> spanPostBody = ParseSynced(version, spanBody.Slice(8), out syncedBlockBase); syncedBlockBase.BlockHeight = blockHeight; signedBlockBase = syncedBlockBase; return(spanPostBody); }
protected abstract Memory <byte> ParseSigned(ushort version, Memory <byte> spanBody, out SignedBlockBase signedBlockBase);