KomodoOcean icon indicating copy to clipboard operation
KomodoOcean copied to clipboard

Remove libsnark, libgmp, mini-gmp

Open DeckerSU opened this issue 1 year ago • 0 comments

  • The old mini-gmp C-library has been removed, and the functions bitcoin_base58{en,de}code have been replaced with internal {En,De}codeBase58 from the Bitcoin codebase.
  • GMP functions are no longer used in rewards CC; the same results can be achieved more efficiently using the internal arith_uint256 type.
  • GMP functions are no longer used in payments CC; refactoring has been done to work with large numbers in calculations using arith_uint256.
  • Dilithium and musig have been removed from the CC in preparation for the upcoming update to the secp256k1 codebase.
  • Old pre-sapling Sprout (PHGRProof) proofs validation has been removed. komodod will no longer verify old Sprout proofs and will assume they are valid. This change is safe for KMD and ACs, as transactions involving Sprout after KOMODO_SAPLING_DEADLINE (February 15, 2019) were prohibited at the consensus level.
  • libnsnark and libgmp have been removed from dependencies and build systems.
  • KMD and dPoW-protected AC checkpoints have been updated.

These changes will result in faster Initial Block Download (IBD) due to saving CPU time on verifying old Sprout transactions and disabling scripts and other resource-intensive checks during IBD. Additionally, with the removal of old pre-sapling Sprout, the need for sprout-proving.key and sprout-verifying.key files in .zcash-params (~910 Mb) is eliminated.

DeckerSU avatar Feb 19 '24 20:02 DeckerSU