chia-blockchain 2.5.6rc2__py3-none-any.whl → 2.5.7rc2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. chia/_tests/blockchain/blockchain_test_utils.py +6 -7
  2. chia/_tests/blockchain/test_augmented_chain.py +4 -3
  3. chia/_tests/blockchain/test_blockchain.py +10 -5
  4. chia/_tests/clvm/coin_store.py +1 -1
  5. chia/_tests/cmds/cmd_test_utils.py +84 -97
  6. chia/_tests/cmds/test_dev_gh.py +1 -1
  7. chia/_tests/cmds/test_farm_cmd.py +56 -2
  8. chia/_tests/cmds/wallet/test_consts.py +3 -1
  9. chia/_tests/cmds/wallet/test_did.py +3 -8
  10. chia/_tests/cmds/wallet/test_nft.py +6 -6
  11. chia/_tests/cmds/wallet/test_notifications.py +39 -21
  12. chia/_tests/cmds/wallet/test_vcs.py +2 -1
  13. chia/_tests/cmds/wallet/test_wallet.py +160 -136
  14. chia/_tests/conftest.py +51 -26
  15. chia/_tests/core/cmds/test_wallet.py +4 -3
  16. chia/_tests/core/consensus/test_pot_iterations.py +71 -24
  17. chia/_tests/core/custom_types/test_proof_of_space.py +60 -30
  18. chia/_tests/core/custom_types/test_spend_bundle.py +1 -4
  19. chia/_tests/core/data_layer/conftest.py +7 -2
  20. chia/_tests/core/data_layer/old_format/__init__.py +0 -0
  21. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-005876c1cdc4d5f1726551b207b9f63efc9cd2f72df80a3a26a1ba73d40d6745-delta-23-v1.0.dat +0 -0
  22. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-005876c1cdc4d5f1726551b207b9f63efc9cd2f72df80a3a26a1ba73d40d6745-full-23-v1.0.dat +0 -0
  23. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-01b36e72a975cdc00d6514eea81668d19e8ea3150217ae98cb3361688a016fab-delta-9-v1.0.dat +0 -0
  24. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-01b36e72a975cdc00d6514eea81668d19e8ea3150217ae98cb3361688a016fab-full-9-v1.0.dat +0 -0
  25. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-06147c3b12d73e9b83b686a8c10b4a36a513c8a93c0ff99ae197f06326278be9-delta-5-v1.0.dat +0 -0
  26. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-06147c3b12d73e9b83b686a8c10b4a36a513c8a93c0ff99ae197f06326278be9-full-5-v1.0.dat +0 -0
  27. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-073c051a5934ad3b8db39eee2189e4300e55f48aaa17ff4ae30eeae088ff544a-delta-22-v1.0.dat +0 -0
  28. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-073c051a5934ad3b8db39eee2189e4300e55f48aaa17ff4ae30eeae088ff544a-full-22-v1.0.dat +0 -0
  29. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-0cc077559b9c7b4aefe8f8f591c195e0779bebdf89f2ad8285a00ea5f859d965-delta-1-v1.0.dat +0 -0
  30. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-0cc077559b9c7b4aefe8f8f591c195e0779bebdf89f2ad8285a00ea5f859d965-full-1-v1.0.dat +0 -0
  31. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-16377275567b723b20936d3f1ec0a2fd83f6ac379b922351a5e4c54949069f3b-delta-2-v1.0.dat +0 -0
  32. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-16377275567b723b20936d3f1ec0a2fd83f6ac379b922351a5e4c54949069f3b-full-2-v1.0.dat +0 -0
  33. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-1cb824a7a5f02cd30ac6c38e8f6216780d9bfa2d24811d282a368dcd541438a7-delta-29-v1.0.dat +0 -0
  34. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-1cb824a7a5f02cd30ac6c38e8f6216780d9bfa2d24811d282a368dcd541438a7-full-29-v1.0.dat +0 -0
  35. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-27b89dc4809ebc5a3b87757d35e95e2761d978cf121e44fa2773a5c06e4cc7b5-delta-28-v1.0.dat +0 -0
  36. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-27b89dc4809ebc5a3b87757d35e95e2761d978cf121e44fa2773a5c06e4cc7b5-full-28-v1.0.dat +0 -0
  37. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-28a6b7c134abfaeb0ab58a018313f6c87a61a40a4d9ec9bedf53aa1d12f3ee37-delta-7-v1.0.dat +0 -0
  38. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-28a6b7c134abfaeb0ab58a018313f6c87a61a40a4d9ec9bedf53aa1d12f3ee37-full-7-v1.0.dat +0 -0
  39. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-30a6bfe7cecbeda259a295dc6de3a436357f52388c3b03d86901e7da68565aeb-delta-19-v1.0.dat +0 -0
  40. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-30a6bfe7cecbeda259a295dc6de3a436357f52388c3b03d86901e7da68565aeb-full-19-v1.0.dat +0 -0
  41. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-343a2bf9add798e3ac2e6a571823cf9fa7e8a1bed532143354ead2648bd036ef-delta-10-v1.0.dat +0 -0
  42. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-343a2bf9add798e3ac2e6a571823cf9fa7e8a1bed532143354ead2648bd036ef-full-10-v1.0.dat +0 -0
  43. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4d90efbc1fb3df324193831ea4a57dd5e10e67d9653343eb18d178272adb0447-delta-17-v1.0.dat +0 -0
  44. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4d90efbc1fb3df324193831ea4a57dd5e10e67d9653343eb18d178272adb0447-full-17-v1.0.dat +0 -0
  45. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4dd2ea099e91635c441f40b36d3f84078a2d818d2dc601c7278e72cbdfe3eca8-delta-20-v1.0.dat +0 -0
  46. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4dd2ea099e91635c441f40b36d3f84078a2d818d2dc601c7278e72cbdfe3eca8-full-20-v1.0.dat +0 -0
  47. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-509effbdca78639023b933ce6c08a0465fb247e1cd5329e9e9c553940e4b6e46-delta-31-v1.0.dat +0 -0
  48. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-509effbdca78639023b933ce6c08a0465fb247e1cd5329e9e9c553940e4b6e46-full-31-v1.0.dat +0 -0
  49. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5379a4d9ff29c29d1ef0906d22e82c52472753d31806189ab813c43365341b78-delta-40-v1.0.dat +0 -0
  50. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5379a4d9ff29c29d1ef0906d22e82c52472753d31806189ab813c43365341b78-full-40-v1.0.dat +0 -0
  51. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-55908eda5686a8f89e4c50672cbe893ec1734fb23449dc03325efe7c414f9aa4-delta-49-v1.0.dat +0 -0
  52. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-55908eda5686a8f89e4c50672cbe893ec1734fb23449dc03325efe7c414f9aa4-full-49-v1.0.dat +0 -0
  53. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-57cc2691fb1fb986c99a58bcb0e029d0cd0cff41553d703147c54196d7d9ca63-delta-14-v1.0.dat +0 -0
  54. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-57cc2691fb1fb986c99a58bcb0e029d0cd0cff41553d703147c54196d7d9ca63-full-14-v1.0.dat +0 -0
  55. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5943bf8ae4f5e59969d8570e4f40a8223299febdcfbcf188b3b3e2ab11044e18-delta-34-v1.0.dat +0 -0
  56. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5943bf8ae4f5e59969d8570e4f40a8223299febdcfbcf188b3b3e2ab11044e18-full-34-v1.0.dat +0 -0
  57. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6518527b7c939bee60ce6b024cbe90d3b9d8913c56b8ce11a4df5da7ff7db1c8-delta-8-v1.0.dat +0 -0
  58. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6518527b7c939bee60ce6b024cbe90d3b9d8913c56b8ce11a4df5da7ff7db1c8-full-8-v1.0.dat +0 -0
  59. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-66ff26a26620379e14a7c91252d27ee4dbe06ad69a3a390a88642fe757f2b288-delta-45-v1.0.dat +0 -0
  60. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-66ff26a26620379e14a7c91252d27ee4dbe06ad69a3a390a88642fe757f2b288-full-45-v1.0.dat +0 -0
  61. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6bd0a508ee2c4afbe9d4daa811139fd6e54e7f4e16850cbce999fa30f8bdccd2-delta-6-v1.0.dat +0 -0
  62. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6bd0a508ee2c4afbe9d4daa811139fd6e54e7f4e16850cbce999fa30f8bdccd2-full-6-v1.0.dat +0 -0
  63. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6ce850d0d77ca743fcc2fc792747472e5d2c1c0813aa43abbb370554428fc897-delta-48-v1.0.dat +0 -0
  64. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6ce850d0d77ca743fcc2fc792747472e5d2c1c0813aa43abbb370554428fc897-full-48-v1.0.dat +0 -0
  65. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6eb4ca2e1552b156c5969396b49070eb08ad6c96b347359387519be59f7ccaed-delta-26-v1.0.dat +0 -0
  66. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6eb4ca2e1552b156c5969396b49070eb08ad6c96b347359387519be59f7ccaed-full-26-v1.0.dat +0 -0
  67. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-71c797fb7592d3f0a5a20c79ab8497ddaa0fd9ec17712e109d25c91b3f3c76e5-delta-3-v1.0.dat +0 -0
  68. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-71c797fb7592d3f0a5a20c79ab8497ddaa0fd9ec17712e109d25c91b3f3c76e5-full-3-v1.0.dat +0 -0
  69. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-73357026053d5a4969e7a6b9aeeef91c14cc6d5f32fc700fe6d21d2a1b22496c-delta-25-v1.0.dat +0 -0
  70. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-73357026053d5a4969e7a6b9aeeef91c14cc6d5f32fc700fe6d21d2a1b22496c-full-25-v1.0.dat +0 -0
  71. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-7c897e5c46e834ced65bde7de87716acfaa5dffbdb30b5cd9377d8c319df2034-delta-35-v1.0.dat +0 -0
  72. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-7c897e5c46e834ced65bde7de87716acfaa5dffbdb30b5cd9377d8c319df2034-full-35-v1.0.dat +0 -0
  73. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-87b8394d80d08117a5a1cd04ed8a682564eab7197a2c090159863591b5108874-delta-4-v1.0.dat +0 -0
  74. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-87b8394d80d08117a5a1cd04ed8a682564eab7197a2c090159863591b5108874-full-4-v1.0.dat +0 -0
  75. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-89eb40b9cc0921c5f5c3feb20927c13a9ada5760f82d219dcee153b7d400165c-delta-41-v1.0.dat +0 -0
  76. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-89eb40b9cc0921c5f5c3feb20927c13a9ada5760f82d219dcee153b7d400165c-full-41-v1.0.dat +0 -0
  77. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8b649433156b8c924436cdec9c6de26106fd6f73a0528570f48748f7b40d7f8a-delta-21-v1.0.dat +0 -0
  78. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8b649433156b8c924436cdec9c6de26106fd6f73a0528570f48748f7b40d7f8a-full-21-v1.0.dat +0 -0
  79. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8d364023a0834c8c3077e236a465493acbf488e4f9d1f4c6cc230343c10a8f7d-delta-42-v1.0.dat +0 -0
  80. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8d364023a0834c8c3077e236a465493acbf488e4f9d1f4c6cc230343c10a8f7d-full-42-v1.0.dat +0 -0
  81. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-925689e24a3d98d98676d816cdd8b73e7b2df057d9d4503da9b27bf91d79666c-delta-38-v1.0.dat +0 -0
  82. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-925689e24a3d98d98676d816cdd8b73e7b2df057d9d4503da9b27bf91d79666c-full-38-v1.0.dat +0 -0
  83. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-937be3d428b19f521be4f98faecc3307ae11ee731c76992f417fa4268d13859e-delta-11-v1.0.dat +0 -0
  84. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-937be3d428b19f521be4f98faecc3307ae11ee731c76992f417fa4268d13859e-full-11-v1.0.dat +0 -0
  85. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-97f34af499b79e2111fc296a598fc9654c2467ea038dfea41fd58241fb3642de-delta-32-v1.0.dat +0 -0
  86. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-97f34af499b79e2111fc296a598fc9654c2467ea038dfea41fd58241fb3642de-full-32-v1.0.dat +0 -0
  87. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-9d1b737243b8a1d0022f2b36ac53333c6280354a74d77f2a3642dcab35204e59-delta-33-v1.0.dat +0 -0
  88. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-9d1b737243b8a1d0022f2b36ac53333c6280354a74d77f2a3642dcab35204e59-full-33-v1.0.dat +0 -0
  89. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-a6663f98ef6ddf6db55f01163e34bb2e87aa82f0347e79ce31e8dbfa390c480c-delta-47-v1.0.dat +0 -0
  90. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-a6663f98ef6ddf6db55f01163e34bb2e87aa82f0347e79ce31e8dbfa390c480c-full-47-v1.0.dat +0 -0
  91. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-aa77376d1ccd3664e5c6366e010c52a978fedbf40f5ce262fee71b2e7fe0c6a9-delta-50-v1.0.dat +0 -0
  92. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-aa77376d1ccd3664e5c6366e010c52a978fedbf40f5ce262fee71b2e7fe0c6a9-full-50-v1.0.dat +0 -0
  93. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b0f28514741ed1a71f5c6544bf92f9e0e493c5f3cf28328909771d8404eff626-delta-24-v1.0.dat +0 -0
  94. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b0f28514741ed1a71f5c6544bf92f9e0e493c5f3cf28328909771d8404eff626-full-24-v1.0.dat +0 -0
  95. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b3efee5358e6eb89ab3b60db2d128d57eef39e8538fb63c5632412d4f8e7d09e-delta-44-v1.0.dat +0 -0
  96. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b3efee5358e6eb89ab3b60db2d128d57eef39e8538fb63c5632412d4f8e7d09e-full-44-v1.0.dat +0 -0
  97. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bb0b56b6eb7acbb4e80893b04c72412fe833418232e1ed7b06d97d7a7f08b4e1-delta-16-v1.0.dat +0 -0
  98. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bb0b56b6eb7acbb4e80893b04c72412fe833418232e1ed7b06d97d7a7f08b4e1-full-16-v1.0.dat +0 -0
  99. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bc45262b757ff494b53bd2a8fba0f5511cc1f9c2a2c5360e04ea8cebbf6409df-delta-13-v1.0.dat +0 -0
  100. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bc45262b757ff494b53bd2a8fba0f5511cc1f9c2a2c5360e04ea8cebbf6409df-full-13-v1.0.dat +0 -0
  101. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bd0494ba430aff13458b557113b073d226eaf11257dfe26ff3323fa1cfe1335b-delta-39-v1.0.dat +0 -0
  102. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bd0494ba430aff13458b557113b073d226eaf11257dfe26ff3323fa1cfe1335b-full-39-v1.0.dat +0 -0
  103. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cd04f5fbba1553fa728b4dd8131d4723aaac288e0c7dc080447fbf0872c0a6eb-delta-36-v1.0.dat +0 -0
  104. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cd04f5fbba1553fa728b4dd8131d4723aaac288e0c7dc080447fbf0872c0a6eb-full-36-v1.0.dat +0 -0
  105. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cdd2399557fb3163a848f08831fdc833703354edb19a0d32a965fdb140f160c2-delta-18-v1.0.dat +0 -0
  106. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cdd2399557fb3163a848f08831fdc833703354edb19a0d32a965fdb140f160c2-full-18-v1.0.dat +0 -0
  107. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cf7a08fca7b1332095242e4d9800f4b94a3f4eaae88fe8407da42736d54b9e18-delta-37-v1.0.dat +0 -0
  108. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cf7a08fca7b1332095242e4d9800f4b94a3f4eaae88fe8407da42736d54b9e18-full-37-v1.0.dat +0 -0
  109. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-d1f97465a9f52187e2ef3a0d811a1258f52380a65340c55f3e8e65b92753bc13-delta-15-v1.0.dat +0 -0
  110. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-d1f97465a9f52187e2ef3a0d811a1258f52380a65340c55f3e8e65b92753bc13-full-15-v1.0.dat +0 -0
  111. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e475eccd4ee597e5ff67b1a249e37d65d6e3f754c3f0379fdb43692513588fef-delta-46-v1.0.dat +0 -0
  112. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e475eccd4ee597e5ff67b1a249e37d65d6e3f754c3f0379fdb43692513588fef-full-46-v1.0.dat +0 -0
  113. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e82e63517d78fd65b23a05c3b9a98cf905ddad7026995a238bfe634006b84cd0-delta-27-v1.0.dat +0 -0
  114. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e82e63517d78fd65b23a05c3b9a98cf905ddad7026995a238bfe634006b84cd0-full-27-v1.0.dat +0 -0
  115. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-ed2cf0fd6c0f6237c87c161e1fca303b3fbe6c04e01f652b88720b4572143349-delta-12-v1.0.dat +0 -0
  116. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-ed2cf0fd6c0f6237c87c161e1fca303b3fbe6c04e01f652b88720b4572143349-full-12-v1.0.dat +0 -0
  117. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f6e454eaf24a83c46a7bed4c19260a0a3ce0ed5c51739cb6d748d4913dc2ef58-delta-30-v1.0.dat +0 -0
  118. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f6e454eaf24a83c46a7bed4c19260a0a3ce0ed5c51739cb6d748d4913dc2ef58-full-30-v1.0.dat +0 -0
  119. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f7ad2bdf86d9609b4d6381086ec1e296bf558e2ff467ead29dd7fa6e31bacc56-delta-43-v1.0.dat +0 -0
  120. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f7ad2bdf86d9609b4d6381086ec1e296bf558e2ff467ead29dd7fa6e31bacc56-full-43-v1.0.dat +0 -0
  121. chia/_tests/core/data_layer/old_format/files/__init__.py +0 -0
  122. chia/_tests/core/data_layer/old_format/old_db.sqlite +0 -0
  123. chia/_tests/core/data_layer/test_data_layer_util.py +18 -21
  124. chia/_tests/core/data_layer/test_data_rpc.py +77 -28
  125. chia/_tests/core/data_layer/test_data_store.py +637 -700
  126. chia/_tests/core/data_layer/test_data_store_schema.py +2 -209
  127. chia/_tests/core/full_node/ram_db.py +1 -1
  128. chia/_tests/core/full_node/stores/test_block_store.py +4 -10
  129. chia/_tests/core/full_node/stores/test_coin_store.py +1 -1
  130. chia/_tests/core/full_node/test_address_manager.py +3 -3
  131. chia/_tests/core/full_node/test_block_height_map.py +1 -1
  132. chia/_tests/core/full_node/test_full_node.py +91 -30
  133. chia/_tests/core/full_node/test_generator_tools.py +17 -10
  134. chia/_tests/core/mempool/test_mempool.py +190 -90
  135. chia/_tests/core/mempool/test_mempool_fee_estimator.py +2 -4
  136. chia/_tests/core/mempool/test_mempool_item_queries.py +1 -1
  137. chia/_tests/core/mempool/test_mempool_manager.py +134 -75
  138. chia/_tests/core/mempool/test_singleton_fast_forward.py +9 -27
  139. chia/_tests/core/server/serve.py +0 -2
  140. chia/_tests/core/server/test_rate_limits.py +400 -347
  141. chia/_tests/core/server/test_server.py +2 -2
  142. chia/_tests/core/services/test_services.py +7 -7
  143. chia/_tests/core/test_cost_calculation.py +31 -10
  144. chia/_tests/core/test_crawler.py +4 -4
  145. chia/_tests/core/test_db_conversion.py +7 -14
  146. chia/_tests/core/test_db_validation.py +2 -6
  147. chia/_tests/core/test_farmer_harvester_rpc.py +34 -1
  148. chia/_tests/core/test_full_node_rpc.py +28 -24
  149. chia/_tests/core/test_merkle_set.py +1 -4
  150. chia/_tests/core/test_seeder.py +1 -1
  151. chia/_tests/core/util/test_keychain.py +2 -2
  152. chia/_tests/core/util/test_lru_cache.py +16 -0
  153. chia/_tests/core/util/test_streamable.py +85 -4
  154. chia/_tests/environments/wallet.py +4 -1
  155. chia/_tests/farmer_harvester/test_farmer.py +8 -6
  156. chia/_tests/farmer_harvester/test_farmer_harvester.py +306 -8
  157. chia/_tests/farmer_harvester/test_filter_prefix_bits.py +3 -3
  158. chia/_tests/farmer_harvester/test_third_party_harvesters.py +11 -11
  159. chia/_tests/fee_estimation/test_fee_estimation_integration.py +2 -2
  160. chia/_tests/fee_estimation/test_fee_estimation_rpc.py +1 -1
  161. chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +1 -2
  162. chia/_tests/generator/test_rom.py +2 -1
  163. chia/_tests/harvester/__init__.py +0 -0
  164. chia/_tests/harvester/config.py +4 -0
  165. chia/_tests/harvester/test_harvester_api.py +157 -0
  166. chia/_tests/plot_sync/test_plot_sync.py +6 -3
  167. chia/_tests/plot_sync/test_receiver.py +16 -4
  168. chia/_tests/plot_sync/test_sender.py +8 -7
  169. chia/_tests/plot_sync/test_sync_simulated.py +15 -13
  170. chia/_tests/plot_sync/util.py +3 -2
  171. chia/_tests/plotting/test_plot_manager.py +21 -5
  172. chia/_tests/plotting/test_prover.py +106 -0
  173. chia/_tests/pools/test_pool_cmdline.py +7 -6
  174. chia/_tests/pools/test_pool_puzzles_lifecycle.py +10 -3
  175. chia/_tests/pools/test_pool_rpc.py +92 -64
  176. chia/_tests/solver/__init__.py +0 -0
  177. chia/_tests/solver/config.py +4 -0
  178. chia/_tests/solver/test_solver_service.py +29 -0
  179. chia/_tests/timelord/test_new_peak.py +1 -1
  180. chia/_tests/timelord/test_timelord.py +1 -1
  181. chia/_tests/util/benchmarks.py +5 -12
  182. chia/_tests/util/blockchain.py +1 -1
  183. chia/_tests/util/build_network_protocol_files.py +7 -0
  184. chia/_tests/util/network_protocol_data.py +26 -0
  185. chia/_tests/util/protocol_messages_bytes-v1.0 +0 -0
  186. chia/_tests/util/protocol_messages_json.py +19 -0
  187. chia/_tests/util/setup_nodes.py +21 -2
  188. chia/_tests/util/spend_sim.py +9 -3
  189. chia/_tests/util/test_condition_tools.py +3 -2
  190. chia/_tests/util/test_full_block_utils.py +10 -9
  191. chia/_tests/util/test_misc.py +10 -10
  192. chia/_tests/util/test_network.py +32 -1
  193. chia/_tests/util/test_network_protocol_files.py +333 -318
  194. chia/_tests/util/test_network_protocol_json.py +6 -0
  195. chia/_tests/util/test_network_protocol_test.py +27 -0
  196. chia/_tests/util/test_priority_mutex.py +1 -1
  197. chia/_tests/util/test_replace_str_to_bytes.py +6 -6
  198. chia/_tests/wallet/cat_wallet/test_cat_wallet.py +17 -13
  199. chia/_tests/wallet/cat_wallet/test_trades.py +55 -55
  200. chia/_tests/wallet/did_wallet/test_did.py +118 -1229
  201. chia/_tests/wallet/nft_wallet/config.py +1 -1
  202. chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +73 -96
  203. chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +15 -12
  204. chia/_tests/wallet/nft_wallet/test_nft_offers.py +67 -134
  205. chia/_tests/wallet/nft_wallet/test_nft_wallet.py +31 -26
  206. chia/_tests/wallet/rpc/test_wallet_rpc.py +765 -371
  207. chia/_tests/wallet/sync/test_wallet_sync.py +6 -0
  208. chia/_tests/wallet/test_new_wallet_protocol.py +1 -1
  209. chia/_tests/wallet/test_signer_protocol.py +2 -2
  210. chia/_tests/wallet/test_singleton_lifecycle_fast.py +3 -4
  211. chia/_tests/wallet/test_transaction_store.py +42 -33
  212. chia/_tests/wallet/test_wallet.py +22 -31
  213. chia/_tests/wallet/test_wallet_state_manager.py +14 -7
  214. chia/_tests/wallet/vc_wallet/test_vc_wallet.py +53 -32
  215. chia/apis.py +2 -0
  216. chia/cmds/beta.py +7 -3
  217. chia/cmds/chia.py +2 -0
  218. chia/cmds/cmd_classes.py +11 -27
  219. chia/cmds/cmds_util.py +3 -0
  220. chia/cmds/coin_funcs.py +27 -22
  221. chia/cmds/configure.py +42 -18
  222. chia/cmds/dev/data.py +22 -3
  223. chia/cmds/farm.py +32 -0
  224. chia/cmds/farm_funcs.py +54 -5
  225. chia/cmds/init_funcs.py +4 -0
  226. chia/cmds/keys_funcs.py +8 -10
  227. chia/cmds/peer_funcs.py +8 -10
  228. chia/cmds/plotnft_funcs.py +24 -16
  229. chia/cmds/rpc.py +11 -1
  230. chia/cmds/show_funcs.py +5 -5
  231. chia/cmds/solver.py +33 -0
  232. chia/cmds/solver_funcs.py +21 -0
  233. chia/cmds/wallet.py +1 -1
  234. chia/cmds/wallet_funcs.py +149 -96
  235. chia/consensus/block_body_validation.py +8 -9
  236. chia/consensus/block_creation.py +9 -10
  237. chia/consensus/block_header_validation.py +61 -69
  238. chia/{full_node → consensus}/block_height_map.py +2 -1
  239. chia/consensus/block_height_map_protocol.py +21 -0
  240. chia/consensus/block_rewards.py +12 -12
  241. chia/consensus/blockchain.py +8 -18
  242. chia/consensus/default_constants.py +6 -6
  243. chia/consensus/generator_tools.py +1 -1
  244. chia/consensus/get_block_challenge.py +24 -25
  245. chia/consensus/pos_quality.py +28 -2
  246. chia/consensus/pot_iterations.py +15 -17
  247. chia/daemon/keychain_proxy.py +5 -0
  248. chia/daemon/server.py +2 -3
  249. chia/data_layer/data_layer.py +32 -24
  250. chia/data_layer/data_layer_errors.py +5 -0
  251. chia/data_layer/data_layer_rpc_api.py +1 -1
  252. chia/data_layer/data_layer_service.py +8 -0
  253. chia/data_layer/data_layer_util.py +49 -89
  254. chia/data_layer/data_layer_wallet.py +20 -17
  255. chia/data_layer/data_store.py +1051 -1462
  256. chia/data_layer/download_data.py +44 -115
  257. chia/{server → data_layer}/start_data_layer.py +2 -1
  258. chia/data_layer/util/benchmark.py +38 -53
  259. chia/farmer/farmer.py +3 -0
  260. chia/farmer/farmer_api.py +104 -5
  261. chia/farmer/farmer_rpc_api.py +20 -0
  262. chia/farmer/farmer_rpc_client.py +6 -2
  263. chia/farmer/farmer_service.py +8 -0
  264. chia/{server → farmer}/start_farmer.py +4 -3
  265. chia/full_node/block_store.py +20 -10
  266. chia/full_node/coin_store.py +12 -4
  267. chia/full_node/eligible_coin_spends.py +17 -72
  268. chia/full_node/full_node.py +68 -71
  269. chia/full_node/full_node_api.py +26 -32
  270. chia/full_node/full_node_rpc_api.py +44 -32
  271. chia/full_node/full_node_rpc_client.py +67 -79
  272. chia/full_node/full_node_service.py +8 -0
  273. chia/full_node/full_node_store.py +5 -3
  274. chia/full_node/mempool.py +14 -14
  275. chia/full_node/mempool_manager.py +67 -89
  276. chia/{server → full_node}/start_full_node.py +1 -1
  277. chia/full_node/subscriptions.py +2 -2
  278. chia/full_node/weight_proof.py +14 -15
  279. chia/harvester/harvester.py +8 -1
  280. chia/harvester/harvester_api.py +178 -44
  281. chia/harvester/harvester_service.py +8 -0
  282. chia/{server → harvester}/start_harvester.py +1 -1
  283. chia/introducer/introducer_service.py +8 -0
  284. chia/{server → introducer}/start_introducer.py +1 -1
  285. chia/plot_sync/receiver.py +6 -1
  286. chia/plot_sync/sender.py +7 -4
  287. chia/plotting/cache.py +37 -28
  288. chia/plotting/check_plots.py +83 -48
  289. chia/plotting/create_plots.py +3 -4
  290. chia/plotting/manager.py +18 -13
  291. chia/plotting/prover.py +153 -0
  292. chia/plotting/util.py +14 -6
  293. chia/pools/pool_wallet.py +6 -4
  294. chia/protocols/harvester_protocol.py +14 -0
  295. chia/protocols/outbound_message.py +1 -0
  296. chia/protocols/pool_protocol.py +1 -1
  297. chia/protocols/protocol_message_types.py +7 -0
  298. chia/protocols/shared_protocol.py +2 -0
  299. chia/protocols/solver_protocol.py +18 -0
  300. chia/rpc/rpc_server.py +1 -1
  301. chia/seeder/crawl_store.py +4 -8
  302. chia/seeder/crawler.py +2 -2
  303. chia/seeder/crawler_service.py +8 -0
  304. chia/seeder/start_crawler.py +1 -1
  305. chia/server/address_manager.py +12 -15
  306. chia/server/introducer_peers.py +1 -1
  307. chia/server/node_discovery.py +9 -10
  308. chia/server/rate_limit_numbers.py +157 -168
  309. chia/server/rate_limits.py +44 -41
  310. chia/server/resolve_peer_info.py +5 -0
  311. chia/server/server.py +17 -7
  312. chia/server/start_service.py +0 -1
  313. chia/simulator/block_tools.py +92 -58
  314. chia/simulator/full_node_simulator.py +1 -1
  315. chia/simulator/setup_services.py +51 -15
  316. chia/solver/__init__.py +0 -0
  317. chia/solver/solver.py +100 -0
  318. chia/solver/solver_api.py +59 -0
  319. chia/solver/solver_rpc_api.py +31 -0
  320. chia/solver/solver_rpc_client.py +16 -0
  321. chia/solver/solver_service.py +8 -0
  322. chia/solver/start_solver.py +102 -0
  323. {mozilla-ca → chia/ssl}/cacert.pem +0 -27
  324. chia/ssl/create_ssl.py +3 -2
  325. chia/{server → timelord}/start_timelord.py +1 -1
  326. chia/timelord/timelord.py +12 -13
  327. chia/timelord/timelord_service.py +8 -0
  328. chia/types/blockchain_format/proof_of_space.py +61 -17
  329. chia/types/coin_spend.py +0 -8
  330. chia/types/internal_mempool_item.py +3 -3
  331. chia/types/mempool_item.py +15 -8
  332. chia/types/mempool_submission_status.py +1 -1
  333. chia/util/config.py +1 -3
  334. chia/util/db_wrapper.py +7 -8
  335. chia/util/initial-config.yaml +46 -0
  336. chia/util/lru_cache.py +8 -4
  337. chia/util/network.py +9 -0
  338. chia/util/service_groups.py +3 -1
  339. chia/util/streamable.py +38 -8
  340. chia/util/virtual_project_analysis.py +1 -1
  341. chia/wallet/cat_wallet/cat_outer_puzzle.py +7 -4
  342. chia/wallet/cat_wallet/cat_wallet.py +13 -7
  343. chia/wallet/cat_wallet/r_cat_wallet.py +4 -1
  344. chia/wallet/conditions.py +1 -3
  345. chia/wallet/did_wallet/did_wallet.py +27 -332
  346. chia/wallet/nft_wallet/nft_puzzle_utils.py +1 -1
  347. chia/wallet/nft_wallet/nft_wallet.py +9 -7
  348. chia/wallet/puzzle_drivers.py +7 -8
  349. chia/{server → wallet}/start_wallet.py +1 -1
  350. chia/wallet/trade_manager.py +12 -9
  351. chia/wallet/transaction_record.py +14 -51
  352. chia/wallet/util/clvm_streamable.py +28 -41
  353. chia/wallet/util/merkle_utils.py +2 -2
  354. chia/wallet/util/tx_config.py +3 -6
  355. chia/wallet/vc_wallet/cr_cat_wallet.py +12 -6
  356. chia/wallet/vc_wallet/vc_wallet.py +13 -15
  357. chia/wallet/wallet.py +5 -3
  358. chia/wallet/wallet_node.py +25 -30
  359. chia/wallet/wallet_request_types.py +538 -101
  360. chia/wallet/wallet_rpc_api.py +398 -570
  361. chia/wallet/wallet_rpc_client.py +144 -332
  362. chia/wallet/wallet_service.py +8 -0
  363. chia/wallet/wallet_state_manager.py +53 -42
  364. chia/wallet/wallet_transaction_store.py +13 -5
  365. {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info}/METADATA +31 -31
  366. {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info}/RECORD +369 -241
  367. {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info}/WHEEL +1 -1
  368. {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info}/entry_points.txt +8 -7
  369. chia/full_node/mempool_check_conditions.py +0 -102
  370. chia/server/aliases.py +0 -35
  371. {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info/licenses}/LICENSE +0 -0
@@ -3,22 +3,24 @@ from __future__ import annotations
3
3
  import asyncio
4
4
  import logging
5
5
  import time
6
+ from collections.abc import Awaitable, Sequence
6
7
  from pathlib import Path
7
8
  from typing import TYPE_CHECKING, ClassVar, Optional, cast
8
9
 
9
- from chia_rs import AugSchemeMPL, G1Element, G2Element, PlotSize, ProofOfSpace
10
+ from chia_rs import AugSchemeMPL, G1Element, G2Element, ProofOfSpace
10
11
  from chia_rs.sized_bytes import bytes32
11
- from chia_rs.sized_ints import uint8, uint32, uint64
12
+ from chia_rs.sized_ints import uint32, uint64
12
13
 
13
14
  from chia.consensus.pot_iterations import (
14
15
  calculate_iterations_quality,
15
16
  calculate_sp_interval_iters,
16
17
  )
17
18
  from chia.harvester.harvester import Harvester
19
+ from chia.plotting.prover import PlotVersion
18
20
  from chia.plotting.util import PlotInfo, parse_plot_info
19
21
  from chia.protocols import harvester_protocol
20
22
  from chia.protocols.farmer_protocol import FarmingInfo
21
- from chia.protocols.harvester_protocol import Plot, PlotSyncResponse
23
+ from chia.protocols.harvester_protocol import PartialProofsData, Plot, PlotSyncResponse
22
24
  from chia.protocols.outbound_message import Message, make_msg
23
25
  from chia.protocols.protocol_message_types import ProtocolMessageTypes
24
26
  from chia.server.api_protocol import ApiMetadata
@@ -26,8 +28,11 @@ from chia.server.ws_connection import WSChiaConnection
26
28
  from chia.types.blockchain_format.proof_of_space import (
27
29
  calculate_pos_challenge,
28
30
  calculate_prefix_bits,
31
+ calculate_required_plot_strength,
29
32
  generate_plot_public_key,
33
+ make_pos,
30
34
  passes_plot_filter,
35
+ quality_for_partial_proof,
31
36
  )
32
37
  from chia.wallet.derive_keys import master_sk_to_local_sk
33
38
 
@@ -49,6 +54,60 @@ class HarvesterAPI:
49
54
  def ready(self) -> bool:
50
55
  return True
51
56
 
57
+ def _plot_passes_filter(self, plot_info: PlotInfo, challenge: harvester_protocol.NewSignagePointHarvester2) -> bool:
58
+ filter_prefix_bits = calculate_prefix_bits(
59
+ self.harvester.constants,
60
+ challenge.peak_height,
61
+ plot_info.prover.get_size(),
62
+ )
63
+ return passes_plot_filter(
64
+ filter_prefix_bits,
65
+ plot_info.prover.get_id(),
66
+ challenge.challenge_hash,
67
+ challenge.sp_hash,
68
+ )
69
+
70
+ async def _handle_v1_responses(
71
+ self,
72
+ awaitables: Sequence[Awaitable[tuple[Path, list[harvester_protocol.NewProofOfSpace]]]],
73
+ start_time: float,
74
+ peer: WSChiaConnection,
75
+ ) -> int:
76
+ proofs_found = 0
77
+ for filename_sublist_awaitable in asyncio.as_completed(awaitables):
78
+ filename, sublist = await filename_sublist_awaitable
79
+ time_taken = time.monotonic() - start_time
80
+ if time_taken > 8:
81
+ self.harvester.log.warning(
82
+ f"Looking up qualities on {filename} took: {time_taken}. This should be below 8 seconds"
83
+ f" to minimize risk of losing rewards."
84
+ )
85
+ for response in sublist:
86
+ proofs_found += 1
87
+ msg = make_msg(ProtocolMessageTypes.new_proof_of_space, response)
88
+ await peer.send_message(msg)
89
+ return proofs_found
90
+
91
+ async def _handle_v2_responses(
92
+ self, v2_awaitables: Sequence[Awaitable[Optional[PartialProofsData]]], start_time: float, peer: WSChiaConnection
93
+ ) -> int:
94
+ partial_proofs_found = 0
95
+ for quality_awaitable in asyncio.as_completed(v2_awaitables):
96
+ partial_proofs_data = await quality_awaitable
97
+ if partial_proofs_data is None:
98
+ continue
99
+ time_taken = time.monotonic() - start_time
100
+ if time_taken > 8:
101
+ self.harvester.log.warning(
102
+ f"Looking up partial proofs on {partial_proofs_data.plot_identifier}"
103
+ f"took: {time_taken}. This should be below 8 seconds"
104
+ f"to minimize risk of losing rewards."
105
+ )
106
+ partial_proofs_found += len(partial_proofs_data.partial_proofs)
107
+ msg = make_msg(ProtocolMessageTypes.partial_proofs, partial_proofs_data)
108
+ await peer.send_message(msg)
109
+ return partial_proofs_found
110
+
52
111
  @metadata.request(peer_required=True)
53
112
  async def harvester_handshake(
54
113
  self, harvester_handshake: harvester_protocol.HarvesterHandshake, peer: WSChiaConnection
@@ -94,10 +153,82 @@ class HarvesterAPI:
94
153
  start = time.monotonic()
95
154
  assert len(new_challenge.challenge_hash) == 32
96
155
 
156
+ required_plot_strength = calculate_required_plot_strength(
157
+ self.harvester.constants, new_challenge.last_tx_height
158
+ )
159
+
97
160
  loop = asyncio.get_running_loop()
98
161
 
162
+ def blocking_lookup_v2_partial_proofs(filename: Path, plot_info: PlotInfo) -> Optional[PartialProofsData]:
163
+ # Uses the V2 Prover object to lookup qualities only. No full proofs generated.
164
+ try:
165
+ plot_id = plot_info.prover.get_id()
166
+ sp_challenge_hash = calculate_pos_challenge(
167
+ plot_id,
168
+ new_challenge.challenge_hash,
169
+ new_challenge.sp_hash,
170
+ )
171
+ partial_proofs = plot_info.prover.get_partial_proofs_for_challenge(
172
+ sp_challenge_hash, required_plot_strength
173
+ )
174
+
175
+ # If no partial proofs are found, return None
176
+ if len(partial_proofs) == 0:
177
+ return None
178
+
179
+ # Get the appropriate difficulty for this plot
180
+ difficulty = new_challenge.difficulty
181
+ sub_slot_iters = new_challenge.sub_slot_iters
182
+ if plot_info.pool_contract_puzzle_hash is not None:
183
+ # Check for pool-specific difficulty
184
+ for pool_difficulty in new_challenge.pool_difficulties:
185
+ if pool_difficulty.pool_contract_puzzle_hash == plot_info.pool_contract_puzzle_hash:
186
+ difficulty = pool_difficulty.difficulty
187
+ sub_slot_iters = pool_difficulty.sub_slot_iters
188
+ break
189
+
190
+ # Filter qualities that pass the required_iters check (same as V1 flow)
191
+ good_partial_proofs = []
192
+ sp_interval_iters = calculate_sp_interval_iters(self.harvester.constants, sub_slot_iters)
193
+
194
+ for partial_proof in partial_proofs:
195
+ quality_str = quality_for_partial_proof(partial_proof, new_challenge.challenge_hash)
196
+ required_iters: uint64 = calculate_iterations_quality(
197
+ self.harvester.constants,
198
+ quality_str,
199
+ plot_info.prover.get_size(),
200
+ difficulty,
201
+ new_challenge.sp_hash,
202
+ sub_slot_iters,
203
+ new_challenge.last_tx_height,
204
+ )
205
+
206
+ if required_iters < sp_interval_iters:
207
+ good_partial_proofs.append(partial_proof)
208
+
209
+ if len(good_partial_proofs) == 0:
210
+ return None
211
+
212
+ size = plot_info.prover.get_size().size_v2
213
+ assert size is not None
214
+ return PartialProofsData(
215
+ new_challenge.challenge_hash,
216
+ new_challenge.sp_hash,
217
+ good_partial_proofs[0].hex() + str(filename.resolve()),
218
+ good_partial_proofs,
219
+ new_challenge.signage_point_index,
220
+ size,
221
+ plot_info.pool_public_key,
222
+ plot_info.pool_contract_puzzle_hash,
223
+ plot_info.plot_public_key,
224
+ )
225
+ return None
226
+ except Exception:
227
+ self.harvester.log.exception("Failed V2 partial proof lookup")
228
+ return None
229
+
99
230
  def blocking_lookup(filename: Path, plot_info: PlotInfo) -> list[tuple[bytes32, ProofOfSpace]]:
100
- # Uses the DiskProver object to lookup qualities. This is a blocking call,
231
+ # Uses the Prover object to lookup qualities. This is a blocking call,
101
232
  # so it should be run in a thread pool.
102
233
  try:
103
234
  plot_id = plot_info.prover.get_id()
@@ -147,11 +278,10 @@ class HarvesterAPI:
147
278
 
148
279
  # Found proofs of space (on average 1 is expected per plot)
149
280
  for index, quality_str in enumerate(quality_strings):
150
- # TODO: todo_v2_plots
151
281
  required_iters: uint64 = calculate_iterations_quality(
152
282
  self.harvester.constants,
153
283
  quality_str,
154
- PlotSize.make_v1(plot_info.prover.get_size()),
284
+ plot_info.prover.get_size(),
155
285
  difficulty,
156
286
  new_challenge.sp_hash,
157
287
  sub_slot_iters,
@@ -200,12 +330,12 @@ class HarvesterAPI:
200
330
  responses.append(
201
331
  (
202
332
  quality_str,
203
- ProofOfSpace(
333
+ make_pos(
204
334
  sp_challenge_hash,
205
335
  plot_info.pool_public_key,
206
336
  plot_info.pool_contract_puzzle_hash,
207
337
  plot_info.plot_public_key,
208
- uint8(plot_info.prover.get_size()),
338
+ plot_info.prover.get_size(),
209
339
  proof_xs,
210
340
  ),
211
341
  )
@@ -218,7 +348,7 @@ class HarvesterAPI:
218
348
  async def lookup_challenge(
219
349
  filename: Path, plot_info: PlotInfo
220
350
  ) -> tuple[Path, list[harvester_protocol.NewProofOfSpace]]:
221
- # Executes a DiskProverLookup in a thread pool, and returns responses
351
+ # Executes a ProverLookup in a thread pool, and returns responses
222
352
  all_responses: list[harvester_protocol.NewProofOfSpace] = []
223
353
  if self.harvester._shut_down:
224
354
  return filename, []
@@ -241,6 +371,7 @@ class HarvesterAPI:
241
371
  return filename, all_responses
242
372
 
243
373
  awaitables = []
374
+ v2_awaitables = []
244
375
  passed = 0
245
376
  total = 0
246
377
  with self.harvester.plot_manager:
@@ -249,21 +380,19 @@ class HarvesterAPI:
249
380
  # Passes the plot filter (does not check sp filter yet though, since we have not reached sp)
250
381
  # This is being executed at the beginning of the slot
251
382
  total += 1
252
-
253
- # TODO: todo_v2_plots support v2 plots in PlotManager
254
- filter_prefix_bits = uint8(
255
- calculate_prefix_bits(
256
- self.harvester.constants,
257
- new_challenge.peak_height,
258
- PlotSize.make_v1(try_plot_info.prover.get_size()),
383
+ if not self._plot_passes_filter(try_plot_info, new_challenge):
384
+ continue
385
+ if try_plot_info.prover.get_version() == PlotVersion.V2:
386
+ v2_awaitables.append(
387
+ loop.run_in_executor(
388
+ self.harvester.executor,
389
+ blocking_lookup_v2_partial_proofs,
390
+ try_plot_filename,
391
+ try_plot_info,
392
+ )
259
393
  )
260
- )
261
- if passes_plot_filter(
262
- filter_prefix_bits,
263
- try_plot_info.prover.get_id(),
264
- new_challenge.challenge_hash,
265
- new_challenge.sp_hash,
266
- ):
394
+ passed += 1
395
+ else:
267
396
  passed += 1
268
397
  awaitables.append(lookup_challenge(try_plot_filename, try_plot_info))
269
398
  self.harvester.log.debug(f"new_signage_point_harvester {passed} plots passed the plot filter")
@@ -271,23 +400,26 @@ class HarvesterAPI:
271
400
  # Concurrently executes all lookups on disk, to take advantage of multiple disk parallelism
272
401
  time_taken = time.monotonic() - start
273
402
  total_proofs_found = 0
274
- for filename_sublist_awaitable in asyncio.as_completed(awaitables):
275
- filename, sublist = await filename_sublist_awaitable
276
- time_taken = time.monotonic() - start
277
- if time_taken > 8:
278
- self.harvester.log.warning(
279
- f"Looking up qualities on {filename} took: {time_taken}. This should be below 8 seconds"
280
- f" to minimize risk of losing rewards."
281
- )
282
- else:
283
- pass
284
- # self.harvester.log.info(f"Looking up qualities on {filename} took: {time_taken}")
285
- for response in sublist:
286
- total_proofs_found += 1
287
- msg = make_msg(ProtocolMessageTypes.new_proof_of_space, response)
288
- await peer.send_message(msg)
289
-
290
- now = uint64(int(time.time()))
403
+ total_v2_partial_proofs_found = 0
404
+
405
+ # run both concurrently
406
+ tasks = []
407
+ if awaitables:
408
+ tasks.append(self._handle_v1_responses(awaitables, start, peer))
409
+ if v2_awaitables:
410
+ tasks.append(self._handle_v2_responses(v2_awaitables, start, peer))
411
+
412
+ if tasks:
413
+ results = await asyncio.gather(*tasks)
414
+ if len(results) == 2:
415
+ total_proofs_found, total_v2_partial_proofs_found = results
416
+ elif len(results) == 1:
417
+ if awaitables:
418
+ total_proofs_found = results[0]
419
+ else:
420
+ total_v2_partial_proofs_found = results[0]
421
+
422
+ now = uint64(time.time())
291
423
 
292
424
  farming_info = FarmingInfo(
293
425
  new_challenge.challenge_hash,
@@ -302,9 +434,10 @@ class HarvesterAPI:
302
434
  await peer.send_message(pass_msg)
303
435
 
304
436
  self.harvester.log.info(
305
- f"{len(awaitables)} plots were eligible for farming {new_challenge.challenge_hash.hex()[:10]}..."
306
- f" Found {total_proofs_found} proofs. Time: {time_taken:.5f} s. "
307
- f"Total {self.harvester.plot_manager.plot_count()} plots"
437
+ f"challenge_hash: {new_challenge.challenge_hash.hex()[:10]} ..."
438
+ f"{len(awaitables) + len(v2_awaitables)} plots were eligible for farming challenge"
439
+ f"Found {total_proofs_found} V1 proofs and {total_v2_partial_proofs_found} V2 qualities."
440
+ f" Time: {time_taken:.5f} s. Total {self.harvester.plot_manager.plot_count()} plots"
308
441
  )
309
442
  self.harvester.state_changed(
310
443
  "farming_info",
@@ -312,7 +445,8 @@ class HarvesterAPI:
312
445
  "challenge_hash": new_challenge.challenge_hash.hex(),
313
446
  "total_plots": self.harvester.plot_manager.plot_count(),
314
447
  "found_proofs": total_proofs_found,
315
- "eligible_plots": len(awaitables),
448
+ "found_v2_partial_proofs": total_v2_partial_proofs_found,
449
+ "eligible_plots": len(awaitables) + len(v2_awaitables),
316
450
  "time": time_taken,
317
451
  },
318
452
  )
@@ -0,0 +1,8 @@
1
+ from __future__ import annotations
2
+
3
+ from chia.harvester.harvester import Harvester
4
+ from chia.harvester.harvester_api import HarvesterAPI
5
+ from chia.harvester.harvester_rpc_api import HarvesterRpcApi
6
+ from chia.server.start_service import Service
7
+
8
+ HarvesterService = Service[Harvester, HarvesterAPI, HarvesterRpcApi]
@@ -13,8 +13,8 @@ from chia.consensus.default_constants import DEFAULT_CONSTANTS, update_testnet_o
13
13
  from chia.harvester.harvester import Harvester
14
14
  from chia.harvester.harvester_api import HarvesterAPI
15
15
  from chia.harvester.harvester_rpc_api import HarvesterRpcApi
16
+ from chia.harvester.harvester_service import HarvesterService
16
17
  from chia.protocols.outbound_message import NodeType
17
- from chia.server.aliases import HarvesterService
18
18
  from chia.server.resolve_peer_info import get_unresolved_peer_infos
19
19
  from chia.server.signal_handlers import SignalHandlers
20
20
  from chia.server.start_service import RpcInfo, Service, async_run
@@ -0,0 +1,8 @@
1
+ from __future__ import annotations
2
+
3
+ from chia.full_node.full_node_rpc_api import FullNodeRpcApi
4
+ from chia.introducer.introducer import Introducer
5
+ from chia.introducer.introducer_api import IntroducerAPI
6
+ from chia.server.start_service import Service
7
+
8
+ IntroducerService = Service[Introducer, IntroducerAPI, FullNodeRpcApi]
@@ -8,8 +8,8 @@ from typing import Any, Optional
8
8
  from chia.apis import ApiProtocolRegistry
9
9
  from chia.introducer.introducer import Introducer
10
10
  from chia.introducer.introducer_api import IntroducerAPI
11
+ from chia.introducer.introducer_service import IntroducerService
11
12
  from chia.protocols.outbound_message import NodeType
12
- from chia.server.aliases import IntroducerService
13
13
  from chia.server.signal_handlers import SignalHandlers
14
14
  from chia.server.start_service import Service, async_run
15
15
  from chia.util.chia_logging import initialize_service_logging
@@ -6,6 +6,7 @@ from collections.abc import Awaitable, Collection, Sequence
6
6
  from dataclasses import dataclass, field
7
7
  from typing import Any, Callable, Optional, Union
8
8
 
9
+ from chia_rs import PlotSize
9
10
  from chia_rs.sized_bytes import bytes32
10
11
  from chia_rs.sized_ints import int16, uint32, uint64
11
12
  from typing_extensions import Protocol
@@ -349,7 +350,11 @@ class Receiver:
349
350
  self._duplicates = self._current_sync.delta.duplicates.additions.copy()
350
351
  self._total_plot_size = sum(plot.file_size for plot in self._plots.values())
351
352
  self._total_effective_plot_size = int(
352
- sum(UI_ACTUAL_SPACE_CONSTANT_FACTOR * int(_expected_plot_size(plot.size)) for plot in self._plots.values())
353
+ # TODO: todo_v2_plots support v2 plots
354
+ sum(
355
+ UI_ACTUAL_SPACE_CONSTANT_FACTOR * int(_expected_plot_size(PlotSize.make_v1(plot.size)))
356
+ for plot in self._plots.values()
357
+ )
353
358
  )
354
359
  # Save current sync as last sync and create a new current sync
355
360
  self._last_sync = self._current_sync
chia/plot_sync/sender.py CHANGED
@@ -37,16 +37,19 @@ log = logging.getLogger(__name__)
37
37
  def _convert_plot_info_list(plot_infos: list[PlotInfo]) -> list[Plot]:
38
38
  converted: list[Plot] = []
39
39
  for plot_info in plot_infos:
40
+ # TODO: todo_v2_plots support v2 plots
41
+ k = plot_info.prover.get_size().size_v1
42
+ assert k is not None
40
43
  converted.append(
41
44
  Plot(
42
45
  filename=plot_info.prover.get_filename(),
43
- size=plot_info.prover.get_size(),
46
+ size=k,
44
47
  plot_id=plot_info.prover.get_id(),
45
48
  pool_public_key=plot_info.pool_public_key,
46
49
  pool_contract_puzzle_hash=plot_info.pool_contract_puzzle_hash,
47
50
  plot_public_key=plot_info.plot_public_key,
48
51
  file_size=uint64(plot_info.file_size),
49
- time_modified=uint64(int(plot_info.time_modified)),
52
+ time_modified=uint64(plot_info.time_modified),
50
53
  compression_level=plot_info.prover.get_compression_level(),
51
54
  )
52
55
  )
@@ -72,7 +75,7 @@ class MessageGenerator(Generic[T]):
72
75
  args: Iterable[object]
73
76
 
74
77
  def generate(self) -> tuple[PlotSyncIdentifier, T]:
75
- identifier = PlotSyncIdentifier(uint64(int(time.time())), self.sync_id, self.message_id)
78
+ identifier = PlotSyncIdentifier(uint64(time.time()), self.sync_id, self.message_id)
76
79
  payload = self.payload_type(identifier, *self.args)
77
80
  return identifier, payload
78
81
 
@@ -277,7 +280,7 @@ class Sender:
277
280
  PlotSyncStart,
278
281
  initial,
279
282
  self._last_sync_id,
280
- uint32(int(count)),
283
+ uint32(count),
281
284
  self._harvesting_mode,
282
285
  )
283
286
 
chia/plotting/cache.py CHANGED
@@ -7,13 +7,16 @@ from collections.abc import ItemsView, KeysView, ValuesView
7
7
  from dataclasses import dataclass, field
8
8
  from math import ceil
9
9
  from pathlib import Path
10
- from typing import Optional
10
+ from typing import TYPE_CHECKING, Optional
11
+
12
+ if TYPE_CHECKING:
13
+ from chia.plotting.prover import ProverProtocol
11
14
 
12
15
  from chia_rs import G1Element
13
16
  from chia_rs.sized_bytes import bytes32
14
17
  from chia_rs.sized_ints import uint16, uint64
15
- from chiapos import DiskProver
16
18
 
19
+ from chia.plotting.prover import get_prover_from_bytes
17
20
  from chia.plotting.util import parse_plot_info
18
21
  from chia.types.blockchain_format.proof_of_space import generate_plot_public_key
19
22
  from chia.util.streamable import Streamable, VersionedBlob, streamable
@@ -43,7 +46,7 @@ class CacheDataV1(Streamable):
43
46
 
44
47
  @dataclass
45
48
  class CacheEntry:
46
- prover: DiskProver
49
+ prover: ProverProtocol
47
50
  farmer_public_key: G1Element
48
51
  pool_public_key: Optional[G1Element]
49
52
  pool_contract_puzzle_hash: Optional[bytes32]
@@ -51,7 +54,7 @@ class CacheEntry:
51
54
  last_use: float
52
55
 
53
56
  @classmethod
54
- def from_disk_prover(cls, prover: DiskProver) -> CacheEntry:
57
+ def from_prover(cls, prover: ProverProtocol) -> CacheEntry:
55
58
  (
56
59
  pool_public_key_or_puzzle_hash,
57
60
  farmer_public_key,
@@ -113,7 +116,7 @@ class Cache:
113
116
  cache_entry.pool_public_key,
114
117
  cache_entry.pool_contract_puzzle_hash,
115
118
  cache_entry.plot_public_key,
116
- uint64(int(cache_entry.last_use)),
119
+ uint64(cache_entry.last_use),
117
120
  )
118
121
  for path, cache_entry in self.items()
119
122
  }
@@ -149,8 +152,9 @@ class Cache:
149
152
  39: 44367,
150
153
  }
151
154
  for path, cache_entry in cache_data.entries:
155
+ prover: ProverProtocol = get_prover_from_bytes(path, cache_entry.prover_data)
152
156
  new_entry = CacheEntry(
153
- DiskProver.from_bytes(cache_entry.prover_data),
157
+ prover,
154
158
  cache_entry.farmer_public_key,
155
159
  cache_entry.pool_public_key,
156
160
  cache_entry.pool_contract_puzzle_hash,
@@ -161,28 +165,33 @@ class Cache:
161
165
  # it's here to filter invalid cache entries coming from bladebit RAM plotting.
162
166
  # Related: - https://github.com/Chia-Network/chia-blockchain/issues/13084
163
167
  # - https://github.com/Chia-Network/chiapos/pull/337
164
- k = new_entry.prover.get_size()
165
- if k not in estimated_c2_sizes:
166
- estimated_c2_sizes[k] = ceil(2**k / 100_000_000) * ceil(k / 8)
167
- memo_size = len(new_entry.prover.get_memo())
168
- prover_size = len(cache_entry.prover_data)
169
- # Estimated C2 size + memo size + 2000 (static data + path)
170
- # static data: version(2) + table pointers (<=96) + id(32) + k(1) => ~130
171
- # path: up to ~1870, all above will lead to false positive.
172
- # See https://github.com/Chia-Network/chiapos/blob/3ee062b86315823dd775453ad320b8be892c7df3/src/prover_disk.hpp#L282-L287 # noqa: E501
173
-
174
- # Use experimental measurements if more than estimates
175
- # https://github.com/Chia-Network/chia-blockchain/issues/16063
176
- check_size = estimated_c2_sizes[k] + memo_size + 2000
177
- if k in measured_sizes:
178
- check_size = max(check_size, measured_sizes[k])
179
-
180
- if prover_size > check_size:
181
- log.warning(
182
- "Suspicious cache entry dropped. Recommended: stop the harvester, remove "
183
- f"{self._path}, restart. Entry: size {prover_size}, path {path}"
184
- )
185
- else:
168
+ ps = new_entry.prover.get_size()
169
+ if ps.size_v1 is not None:
170
+ k = ps.size_v1
171
+ if k not in estimated_c2_sizes:
172
+ estimated_c2_sizes[k] = ceil(2**k / 100_000_000) * ceil(k / 8)
173
+ memo_size = len(new_entry.prover.get_memo())
174
+ prover_size = len(cache_entry.prover_data)
175
+ # Estimated C2 size + memo size + 2000 (static data + path)
176
+ # static data: version(2) + table pointers (<=96) + id(32) + k(1) => ~130
177
+ # path: up to ~1870, all above will lead to false positive.
178
+ # See https://github.com/Chia-Network/chiapos/blob/3ee062b86315823dd775453ad320b8be892c7df3/src/prover_disk.hpp#L282-L287 # noqa: E501
179
+
180
+ # Use experimental measurements if more than estimates
181
+ # https://github.com/Chia-Network/chia-blockchain/issues/16063
182
+ check_size = estimated_c2_sizes[k] + memo_size + 2000
183
+ if k in measured_sizes:
184
+ check_size = max(check_size, measured_sizes[k])
185
+
186
+ if prover_size > check_size:
187
+ log.warning(
188
+ "Suspicious cache entry dropped. Recommended: stop the harvester, remove "
189
+ f"{self._path}, restart. Entry: size {prover_size}, path {path}"
190
+ )
191
+ else:
192
+ self._data[Path(path)] = new_entry
193
+ elif ps.size_v2 is not None:
194
+ # TODO: todo_v2_plots validate prover size
186
195
  self._data[Path(path)] = new_entry
187
196
 
188
197
  log.info(f"Parsed {len(self._data)} cache entries in {time.time() - start:.2f}s")