NethermindEth / nethermind

A robust execution client for Ethereum node operators.
https://nethermind.io/nethermind-client
GNU General Public License v3.0
1.25k stars 431 forks source link

Replace BouncyCastle if possible #5207

Open rubo opened 1 year ago

rubo commented 1 year ago

Explore the possibility of replacing the BouncyCastle implementations with .NET's own ones or with already existing ones if any:

tanishqjasoria commented 1 year ago

why do we want to do this?

tanishqjasoria commented 1 year ago

Also, would it be a good idea to separate our cryptography implementations (like Keccak, Blake2Avx2, etc) in a separate library? I also would be adding things related to verkle trees.

rubo commented 1 year ago

why do we want to do this?

For performance reasons.

Also, would it be a good idea to separate our cryptography implementations (like Keccak, Blake2Avx2, etc) in a separate library? I also would be adding things related to verkle trees.

There already is Nethermind.Crypto for that.

tanishqjasoria commented 1 year ago

For performance reasons.

when I was trying to implement verkle trees, i counld not find a better library for crypto in .net.

There already is Nethermind.Crypto for that.

I meant like a seperate nuget package

rubo commented 1 year ago

when I was trying to implement verkle trees, i counld not find a better library for crypto in .net.

BouncyCastle is very rich, you can find almost anything there. But not necessarily the most performant.

I meant like a seperate nuget package

That's also an option, especially if we need it in other projects as well.