Skip to content

Commit

Permalink
Skip prewarming tx if main processing has caught up (#7143)
Browse files Browse the repository at this point in the history
  • Loading branch information
flcl42 committed Jun 10, 2024
1 parent 89d9ce4 commit d1594c0
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions src/Nethermind/Nethermind.Crypto/KzgPolynomialCommitments.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,17 +91,29 @@ public static bool VerifyProof(ReadOnlySpan<byte> commitment, ReadOnlySpan<byte>

public static bool AreProofsValid(byte[][] blobs, byte[][] commitments, byte[][] proofs)
{
var length = blobs.Length * Ckzg.Ckzg.BytesPerBlob;
if (blobs.Length is 1 && commitments.Length is 1 && proofs.Length is 1)
{
try
{
return Ckzg.Ckzg.VerifyBlobKzgProof(blobs[0], commitments[0], proofs[0], _ckzgSetup);
}
catch (Exception e) when (e is ArgumentException or ApplicationException or InsufficientMemoryException)
{
return false;
}
}

int length = blobs.Length * Ckzg.Ckzg.BytesPerBlob;
byte[] flatBlobsArray = ArrayPool<byte>.Shared.Rent(length);
var flatBlobs = new Span<byte>(flatBlobsArray, 0, length);
Span<byte> flatBlobs = new(flatBlobsArray, 0, length);

length = blobs.Length * Ckzg.Ckzg.BytesPerCommitment;
byte[] flatCommitmentsArray = ArrayPool<byte>.Shared.Rent(length);
var flatCommitments = new Span<byte>(flatCommitmentsArray, 0, length);
Span<byte> flatCommitments = new(flatCommitmentsArray, 0, length);

length = blobs.Length * Ckzg.Ckzg.BytesPerProof;
byte[] flatProofsArray = ArrayPool<byte>.Shared.Rent(length);
var flatProofs = new Span<byte>(flatProofsArray, 0, length);
Span<byte> flatProofs = new(flatProofsArray, 0, length);

for (int i = 0; i < blobs.Length; i++)
{
Expand Down

0 comments on commit d1594c0

Please sign in to comment.