Walletload #2950

pull pstratem wants to merge 3 commits into bitcoin:master from pstratem:walletload changing 4 files +66 −8
  1. pstratem commented at 8:40 AM on August 29, 2013: contributor

    Calculates a hash to accelerate key import.

    Enables skipping EC_KEY_check_key when a hash is present.

    Benchmarks show 0.15ms per key vs 1.5ms per key.

    An order of magnitude improvement.

  2. improve wallet load time by removing duplicated calls to EC_KEY_check_key and adding a hash for vchPubKey/vchPrivKey entries in wallet.dat
    backwards compatible with previous wallet.dat format
    6e51b3bddf
  3. verify vchPubKey matches calculated public key unless fSkipCheck is set a42eef6f10
  4. gmaxwell commented at 9:15 AM on August 29, 2013: contributor

    Cool. This is interesting because on a wallet with lots of keys the initial startup is shockingly slow.

  5. gavinandresen commented at 5:49 AM on October 4, 2013: contributor

    Please add a comment to the "key" / "wkey" case statement that explains the old/new data schema. Maybe:

    // Old wallets store keys as "key"[pubkey] => [privkey]
    // ... which was slow for wallets with lots of keys, because the public key is re-derived from the private key
    // using EC operations as a checksum.
    // Newer wallets store keys as "key"[pubkey] => [privkey][hash(pubkey,privkey)], which is much faster while
    // remaining backwards-compatible.
    
  6. comment explaining new wallet format for key/wkey entries bc68788317
  7. pstratem commented at 6:45 AM on October 13, 2013: contributor

    @gavinandresen comment added

  8. BitcoinPullTester commented at 7:17 AM on October 13, 2013: none

    Automatic sanity-testing: PASSED, see http://jenkins.bluematt.me/pull-tester/bc68788317a4ece16f0cfb0cb7eb1e0e220cbc6f for binaries and test log. This test script verifies pulls every time they are updated. It, however, dies sometimes and fails to test properly. If you are waiting on a test, please check timestamps to verify that the test.log is moving at http://jenkins.bluematt.me/pull-tester/current/ Contact BlueMatt on freenode if something looks broken.

  9. gavinandresen commented at 11:37 PM on October 15, 2013: contributor

    ACK. Tested loading old wallets with the new code, and loading new wallets with the old code, all was good.

  10. gavinandresen referenced this in commit 796e7b7aec on Oct 17, 2013
  11. gavinandresen merged this on Oct 17, 2013
  12. gavinandresen closed this on Oct 17, 2013

  13. Bushstar referenced this in commit e02c562aa5 on Apr 8, 2020
  14. laanwj referenced this in commit 9ab9665c74 on Nov 19, 2020
  15. sidhujag referenced this in commit e0ef59e967 on Nov 19, 2020
  16. PastaPastaPasta referenced this in commit 6fc94f3d08 on Jun 27, 2021
  17. PastaPastaPasta referenced this in commit d75ef3021a on Jun 28, 2021
  18. PastaPastaPasta referenced this in commit bef5666a7e on Jun 29, 2021
  19. DrahtBot locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-19 00:16 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me