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
chia/seeder/crawler.py CHANGED
@@ -180,7 +180,7 @@ class Crawler:
180
180
  uint64(0),
181
181
  uint32(0),
182
182
  uint64(0),
183
- uint64(int(time.time())),
183
+ uint64(time.time()),
184
184
  uint64(0),
185
185
  "undefined",
186
186
  uint64(0),
@@ -248,7 +248,7 @@ class Crawler:
248
248
  uint64(0),
249
249
  uint32(0),
250
250
  uint64(0),
251
- uint64(int(time.time())),
251
+ uint64(time.time()),
252
252
  uint64(response_peer.timestamp),
253
253
  "undefined",
254
254
  uint64(0),
@@ -0,0 +1,8 @@
1
+ from __future__ import annotations
2
+
3
+ from chia.seeder.crawler import Crawler
4
+ from chia.seeder.crawler_api import CrawlerAPI
5
+ from chia.seeder.crawler_rpc_api import CrawlerRpcApi
6
+ from chia.server.start_service import Service
7
+
8
+ CrawlerService = Service[Crawler, CrawlerAPI, CrawlerRpcApi]
@@ -15,7 +15,7 @@ from chia.protocols.outbound_message import NodeType
15
15
  from chia.seeder.crawler import Crawler
16
16
  from chia.seeder.crawler_api import CrawlerAPI
17
17
  from chia.seeder.crawler_rpc_api import CrawlerRpcApi
18
- from chia.server.aliases import CrawlerService
18
+ from chia.seeder.crawler_service import CrawlerService
19
19
  from chia.server.signal_handlers import SignalHandlers
20
20
  from chia.server.start_service import RpcInfo, Service, async_run
21
21
  from chia.util.chia_logging import initialize_service_logging
@@ -129,8 +129,8 @@ class ExtendedPeerInfo:
129
129
  def from_string(cls, peer_str: str) -> ExtendedPeerInfo:
130
130
  blobs = peer_str.split(" ")
131
131
  assert len(blobs) == 5
132
- peer_info = TimestampedPeerInfo(blobs[0], uint16(int(blobs[1])), uint64(int(blobs[2])))
133
- src_peer = PeerInfo(blobs[3], uint16(int(blobs[4])))
132
+ peer_info = TimestampedPeerInfo(blobs[0], uint16(blobs[1]), uint64(blobs[2]))
133
+ src_peer = PeerInfo(blobs[3], uint16(blobs[4]))
134
134
  return cls(peer_info, src_peer)
135
135
 
136
136
  def get_tried_bucket(self, key: int) -> int:
@@ -177,7 +177,7 @@ class ExtendedPeerInfo:
177
177
 
178
178
  def is_terrible(self, now: Optional[int] = None) -> bool:
179
179
  if now is None:
180
- now = int(math.floor(time.time()))
180
+ now = math.floor(time.time())
181
181
  # never remove things tried in the last minute
182
182
  if self.last_try > 0 and self.last_try >= now - 60:
183
183
  return False
@@ -202,7 +202,7 @@ class ExtendedPeerInfo:
202
202
 
203
203
  def get_selection_chance(self, now: Optional[int] = None) -> float:
204
204
  if now is None:
205
- now = int(math.floor(time.time()))
205
+ now = math.floor(time.time())
206
206
  chance = 1.0
207
207
  since_last_try = max(now - self.last_try, 0)
208
208
  # deprioritize very recent attempts away
@@ -371,9 +371,8 @@ class AddressManager:
371
371
  if value == -1:
372
372
  if (row, col) in self.used_new_matrix_positions:
373
373
  self.used_new_matrix_positions.remove((row, col))
374
- else:
375
- if (row, col) not in self.used_new_matrix_positions:
376
- self.used_new_matrix_positions.add((row, col))
374
+ elif (row, col) not in self.used_new_matrix_positions:
375
+ self.used_new_matrix_positions.add((row, col))
377
376
 
378
377
  # Use only this method for modifying tried matrix.
379
378
  def _set_tried_matrix(self, row: int, col: int, value: int) -> None:
@@ -381,9 +380,8 @@ class AddressManager:
381
380
  if value == -1:
382
381
  if (row, col) in self.used_tried_matrix_positions:
383
382
  self.used_tried_matrix_positions.remove((row, col))
384
- else:
385
- if (row, col) not in self.used_tried_matrix_positions:
386
- self.used_tried_matrix_positions.add((row, col))
383
+ elif (row, col) not in self.used_tried_matrix_positions:
384
+ self.used_tried_matrix_positions.add((row, col))
387
385
 
388
386
  def load_used_table_positions(self) -> None:
389
387
  self.used_new_matrix_positions = set()
@@ -587,10 +585,9 @@ class AddressManager:
587
585
  info.ref_count += 1
588
586
  if node_id is not None:
589
587
  self._set_new_matrix(new_bucket, new_bucket_pos, node_id)
590
- else:
591
- if info.ref_count == 0:
592
- if node_id is not None:
593
- self.delete_new_entry_(node_id)
588
+ elif info.ref_count == 0:
589
+ if node_id is not None:
590
+ self.delete_new_entry_(node_id)
594
591
  return is_unique
595
592
 
596
593
  def attempt_(self, addr: PeerInfo, count_failures: bool, timestamp: int) -> None:
@@ -737,7 +734,7 @@ class AddressManager:
737
734
  return addr
738
735
 
739
736
  def cleanup(self, max_timestamp_difference: int, max_consecutive_failures: int) -> None:
740
- now = int(math.floor(time.time()))
737
+ now = math.floor(time.time())
741
738
  for bucket in range(NEW_BUCKET_COUNT):
742
739
  for pos in range(BUCKET_SIZE):
743
740
  if self.new_matrix[bucket][pos] != -1:
@@ -48,7 +48,7 @@ class IntroducerPeers:
48
48
  return False
49
49
 
50
50
  p = VettedPeer(peer.host, peer.port)
51
- p.time_added = uint64(int(time.time()))
51
+ p.time_added = uint64(time.time())
52
52
 
53
53
  if p in self._peers:
54
54
  return True
@@ -119,7 +119,7 @@ class FullNodeDiscovery:
119
119
  timestamped_peer_info = TimestampedPeerInfo(
120
120
  peer.peer_info.host,
121
121
  peer.peer_server_port,
122
- uint64(int(time.time())),
122
+ uint64(time.time()),
123
123
  )
124
124
  await self.address_manager.add_to_new_table([timestamped_peer_info], peer.get_peer_info(), 0)
125
125
  if self.relay_queue is not None:
@@ -228,12 +228,11 @@ class FullNodeDiscovery:
228
228
  if self.server.is_duplicate_or_self_connection(addr):
229
229
  # Mark it as a softer attempt, without counting the failures.
230
230
  await self.address_manager.attempt(addr, False)
231
+ elif client_connected is True:
232
+ await self.address_manager.mark_good(addr)
233
+ await self.address_manager.connect(addr)
231
234
  else:
232
- if client_connected is True:
233
- await self.address_manager.mark_good(addr)
234
- await self.address_manager.connect(addr)
235
- else:
236
- await self.address_manager.attempt(addr, True)
235
+ await self.address_manager.attempt(addr, True)
237
236
  self.pending_outbound_connections.remove(addr.host)
238
237
  except Exception as e:
239
238
  if addr.host in self.pending_outbound_connections:
@@ -247,7 +246,7 @@ class FullNodeDiscovery:
247
246
  dns_server_index: int = 0
248
247
  tried_all_dns_servers: bool = False
249
248
  local_peerinfo: Optional[PeerInfo] = await self.server.get_peer_info()
250
- last_timestamp_local_info: uint64 = uint64(int(time.time()))
249
+ last_timestamp_local_info: uint64 = uint64(time.time())
251
250
  last_collision_timestamp = 0
252
251
 
253
252
  if self.initial_wait > 0:
@@ -372,7 +371,7 @@ class FullNodeDiscovery:
372
371
  continue
373
372
  if time.time() - last_timestamp_local_info > 1800 or local_peerinfo is None:
374
373
  local_peerinfo = await self.server.get_peer_info()
375
- last_timestamp_local_info = uint64(int(time.time()))
374
+ last_timestamp_local_info = uint64(time.time())
376
375
  if local_peerinfo is not None and addr == local_peerinfo:
377
376
  continue
378
377
  got_peer = True
@@ -465,7 +464,7 @@ class FullNodeDiscovery:
465
464
  current_peer = TimestampedPeerInfo(
466
465
  peer.host,
467
466
  peer.port,
468
- uint64(int(time.time() - 5 * 24 * 60 * 60)),
467
+ uint64(time.time() - 5 * 24 * 60 * 60),
469
468
  )
470
469
  else:
471
470
  current_peer = peer
@@ -534,7 +533,7 @@ class FullNodePeers(FullNodeDiscovery):
534
533
  TimestampedPeerInfo(
535
534
  peer.host,
536
535
  peer.port,
537
- uint64(int(time.time())),
536
+ uint64(time.time()),
538
537
  )
539
538
  ]
540
539
  msg = make_msg(
@@ -1,21 +1,22 @@
1
1
  # All of these rate limits scale with the number of transactions so the aggregate amounts are higher
2
2
  from __future__ import annotations
3
3
 
4
- import copy
5
4
  import dataclasses
6
- import functools
7
- from typing import Any, Optional
5
+ from typing import Optional, Union
8
6
 
9
7
  from chia.protocols.protocol_message_types import ProtocolMessageTypes
10
8
  from chia.protocols.shared_protocol import Capability
11
9
 
12
- compose_rate_limits_cache: dict[int, dict[str, Any]] = {}
10
+ compose_rate_limits_cache: dict[int, dict[ProtocolMessageTypes, Union[RLSettings, Unlimited]]] = {}
13
11
 
14
12
 
15
13
  # this class is used to configure the *rate* limit for a message type. The
16
14
  # limits are counts and size per 60 seconds.
17
15
  @dataclasses.dataclass(frozen=True)
18
16
  class RLSettings:
17
+ # if true, messages affect and are limited by the per connection aggregate limiter,
18
+ # which affects messages across message types
19
+ aggregate_limit: bool
19
20
  frequency: int # Max request per time period (ie 1 min)
20
21
  max_size: int # Max size of each request
21
22
  max_total_size: Optional[int] = None # Max cumulative size of all requests in that period
@@ -24,191 +25,179 @@ class RLSettings:
24
25
  # this class is used to indicate that a message type is not subject to a rate
25
26
  # limit, but just a per-message size limit. This may be appropriate for response
26
27
  # messages that are implicitly limited by their corresponding request message
28
+ # Unlimited message types are also not subject to the overall limit across all
29
+ # messages (just like messages in the "tx" category)
27
30
  @dataclasses.dataclass(frozen=True)
28
31
  class Unlimited:
29
32
  max_size: int # Max size of each request
30
33
 
31
34
 
32
- def get_rate_limits_to_use(our_capabilities: list[Capability], peer_capabilities: list[Capability]) -> dict[str, Any]:
35
+ # for the aggregate limit, not all fields of RLSettings are used. Only "frequency" and "max_total_size"
36
+ aggregate_limit = RLSettings(
37
+ aggregate_limit=False,
38
+ frequency=1000,
39
+ max_size=0,
40
+ max_total_size=100 * 1024 * 1024,
41
+ )
42
+
43
+
44
+ def get_rate_limits_to_use(
45
+ our_capabilities: list[Capability], peer_capabilities: list[Capability]
46
+ ) -> tuple[dict[ProtocolMessageTypes, Union[RLSettings, Unlimited]], RLSettings]:
33
47
  # This will use the newest possible rate limits that both peers support. At this time there are only two
34
48
  # options, v1 and v2.
35
49
 
36
50
  if Capability.RATE_LIMITS_V2 in our_capabilities and Capability.RATE_LIMITS_V2 in peer_capabilities:
37
51
  # Use V2 rate limits
38
52
  if 2 in compose_rate_limits_cache:
39
- return compose_rate_limits_cache[2]
40
- composed = compose_rate_limits(rate_limits[1], rate_limits[2])
53
+ return compose_rate_limits_cache[2], aggregate_limit
54
+ composed = {
55
+ **rate_limits[1],
56
+ **rate_limits[2],
57
+ }
41
58
  compose_rate_limits_cache[2] = composed
42
- return composed
59
+ return composed, aggregate_limit
43
60
  else:
44
61
  # Use V1 rate limits
45
- return rate_limits[1]
46
-
47
-
48
- def compose_rate_limits(old_rate_limits: dict[str, Any], new_rate_limits: dict[str, Any]) -> dict[str, Any]:
49
- # Composes two rate limits dicts, so that the newer values override the older values
50
- final_rate_limits: dict[str, Any] = copy.deepcopy(new_rate_limits)
51
- categories: list[str] = ["rate_limits_tx", "rate_limits_other"]
52
- all_new_msgs_lists: list[list[ProtocolMessageTypes]] = [
53
- list(new_rate_limits[category].keys()) for category in categories
54
- ]
55
- all_new_msgs: list[ProtocolMessageTypes] = functools.reduce(lambda a, b: a + b, all_new_msgs_lists)
56
- for old_cat, mapping in old_rate_limits.items():
57
- if old_cat in categories:
58
- for old_protocol_msg, old_rate_limit_value in mapping.items():
59
- if old_protocol_msg not in all_new_msgs:
60
- if old_cat not in final_rate_limits:
61
- final_rate_limits[old_cat] = {}
62
- final_rate_limits[old_cat][old_protocol_msg] = old_rate_limit_value
63
- return final_rate_limits
62
+ return rate_limits[1], aggregate_limit
64
63
 
65
64
 
66
65
  # Each number in this dict corresponds to a specific version of rate limits (1, 2, etc).
67
66
  # Version 1 includes the original limits for chia software from versions 1.0 to 1.4.
68
- rate_limits = {
67
+ rate_limits: dict[int, dict[ProtocolMessageTypes, Union[RLSettings, Unlimited]]] = {
69
68
  1: {
70
- "default_settings": RLSettings(100, 1024 * 1024, 100 * 1024 * 1024),
71
- "non_tx_freq": 1000, # There is also a freq limit for many requests
72
- "non_tx_max_total_size": 100 * 1024 * 1024, # There is also a size limit for many requests
73
- # All transaction related apis also have an aggregate limit
74
- "rate_limits_tx": {
75
- ProtocolMessageTypes.new_transaction: RLSettings(5000, 100, 5000 * 100),
76
- ProtocolMessageTypes.request_transaction: RLSettings(5000, 100, 5000 * 100),
77
- ProtocolMessageTypes.respond_transaction: RLSettings(
78
- 5000, 1 * 1024 * 1024, 20 * 1024 * 1024
79
- ), # TODO: check this
80
- ProtocolMessageTypes.send_transaction: RLSettings(5000, 1024 * 1024),
81
- ProtocolMessageTypes.transaction_ack: RLSettings(5000, 2048),
82
- },
69
+ ProtocolMessageTypes.new_transaction: RLSettings(False, 5000, 100, 5000 * 100),
70
+ ProtocolMessageTypes.request_transaction: RLSettings(False, 5000, 100, 5000 * 100),
71
+ # TODO: check this
72
+ ProtocolMessageTypes.respond_transaction: RLSettings(False, 5000, 1 * 1024 * 1024, 20 * 1024 * 1024),
73
+ ProtocolMessageTypes.send_transaction: RLSettings(False, 5000, 1024 * 1024),
74
+ ProtocolMessageTypes.transaction_ack: RLSettings(False, 5000, 2048),
83
75
  # All non-transaction apis also have an aggregate limit
84
- "rate_limits_other": {
85
- ProtocolMessageTypes.handshake: RLSettings(5, 10 * 1024, 5 * 10 * 1024),
86
- ProtocolMessageTypes.harvester_handshake: RLSettings(5, 1024 * 1024),
87
- ProtocolMessageTypes.new_signage_point_harvester: RLSettings(100, 4886), # Size with 100 pool list
88
- ProtocolMessageTypes.new_proof_of_space: RLSettings(100, 2048),
89
- ProtocolMessageTypes.request_signatures: RLSettings(100, 2048),
90
- ProtocolMessageTypes.respond_signatures: RLSettings(100, 2048),
91
- ProtocolMessageTypes.new_signage_point: RLSettings(200, 2048),
92
- ProtocolMessageTypes.declare_proof_of_space: RLSettings(100, 10 * 1024),
93
- ProtocolMessageTypes.request_signed_values: RLSettings(100, 10 * 1024),
94
- ProtocolMessageTypes.farming_info: RLSettings(100, 1024),
95
- ProtocolMessageTypes.signed_values: RLSettings(100, 1024),
96
- ProtocolMessageTypes.new_peak_timelord: RLSettings(100, 20 * 1024),
97
- ProtocolMessageTypes.new_unfinished_block_timelord: RLSettings(100, 10 * 1024),
98
- ProtocolMessageTypes.new_signage_point_vdf: RLSettings(100, 100 * 1024),
99
- ProtocolMessageTypes.new_infusion_point_vdf: RLSettings(100, 100 * 1024),
100
- ProtocolMessageTypes.new_end_of_sub_slot_vdf: RLSettings(100, 100 * 1024),
101
- ProtocolMessageTypes.request_compact_proof_of_time: RLSettings(100, 10 * 1024),
102
- ProtocolMessageTypes.respond_compact_proof_of_time: RLSettings(100, 100 * 1024),
103
- ProtocolMessageTypes.new_peak: RLSettings(200, 512),
104
- ProtocolMessageTypes.request_proof_of_weight: RLSettings(5, 100),
105
- ProtocolMessageTypes.respond_proof_of_weight: RLSettings(5, 50 * 1024 * 1024, 100 * 1024 * 1024),
106
- ProtocolMessageTypes.request_block: RLSettings(200, 100),
107
- ProtocolMessageTypes.reject_block: Unlimited(100),
108
- ProtocolMessageTypes.request_blocks: RLSettings(500, 100),
109
- ProtocolMessageTypes.respond_blocks: Unlimited(50 * 1024 * 1024),
110
- ProtocolMessageTypes.reject_blocks: Unlimited(100),
111
- ProtocolMessageTypes.respond_block: Unlimited(2 * 1024 * 1024),
112
- ProtocolMessageTypes.new_unfinished_block: RLSettings(200, 100),
113
- ProtocolMessageTypes.request_unfinished_block: RLSettings(200, 100),
114
- ProtocolMessageTypes.new_unfinished_block2: RLSettings(200, 100),
115
- ProtocolMessageTypes.request_unfinished_block2: RLSettings(200, 100),
116
- ProtocolMessageTypes.respond_unfinished_block: RLSettings(200, 2 * 1024 * 1024, 10 * 2 * 1024 * 1024),
117
- ProtocolMessageTypes.new_signage_point_or_end_of_sub_slot: RLSettings(200, 200),
118
- ProtocolMessageTypes.request_signage_point_or_end_of_sub_slot: RLSettings(200, 200),
119
- ProtocolMessageTypes.respond_signage_point: RLSettings(200, 50 * 1024),
120
- ProtocolMessageTypes.respond_end_of_sub_slot: RLSettings(100, 50 * 1024),
121
- ProtocolMessageTypes.request_mempool_transactions: RLSettings(5, 1024 * 1024),
122
- ProtocolMessageTypes.request_compact_vdf: RLSettings(200, 1024),
123
- ProtocolMessageTypes.respond_compact_vdf: RLSettings(200, 100 * 1024),
124
- ProtocolMessageTypes.new_compact_vdf: RLSettings(100, 1024),
125
- ProtocolMessageTypes.request_peers: RLSettings(10, 100),
126
- ProtocolMessageTypes.respond_peers: RLSettings(10, 1 * 1024 * 1024),
127
- ProtocolMessageTypes.request_puzzle_solution: RLSettings(1000, 100),
128
- ProtocolMessageTypes.respond_puzzle_solution: RLSettings(1000, 1024 * 1024),
129
- ProtocolMessageTypes.reject_puzzle_solution: RLSettings(1000, 100),
130
- ProtocolMessageTypes.new_peak_wallet: RLSettings(200, 300),
131
- ProtocolMessageTypes.request_block_header: RLSettings(500, 100),
132
- ProtocolMessageTypes.respond_block_header: RLSettings(500, 500 * 1024),
133
- ProtocolMessageTypes.reject_header_request: RLSettings(500, 100),
134
- ProtocolMessageTypes.request_removals: RLSettings(500, 50 * 1024, 10 * 1024 * 1024),
135
- ProtocolMessageTypes.respond_removals: RLSettings(500, 1024 * 1024, 10 * 1024 * 1024),
136
- ProtocolMessageTypes.reject_removals_request: RLSettings(500, 100),
137
- ProtocolMessageTypes.request_additions: RLSettings(500, 1024 * 1024, 10 * 1024 * 1024),
138
- ProtocolMessageTypes.respond_additions: RLSettings(500, 1024 * 1024, 10 * 1024 * 1024),
139
- ProtocolMessageTypes.reject_additions_request: RLSettings(500, 100),
140
- ProtocolMessageTypes.request_header_blocks: RLSettings(500, 100),
141
- ProtocolMessageTypes.reject_header_blocks: RLSettings(100, 100),
142
- ProtocolMessageTypes.respond_header_blocks: RLSettings(500, 2 * 1024 * 1024, 100 * 1024 * 1024),
143
- ProtocolMessageTypes.request_peers_introducer: RLSettings(100, 100),
144
- ProtocolMessageTypes.respond_peers_introducer: RLSettings(100, 1024 * 1024),
145
- ProtocolMessageTypes.farm_new_block: RLSettings(200, 200),
146
- ProtocolMessageTypes.request_plots: RLSettings(10, 10 * 1024 * 1024),
147
- ProtocolMessageTypes.respond_plots: RLSettings(10, 100 * 1024 * 1024),
148
- ProtocolMessageTypes.plot_sync_start: RLSettings(1000, 100 * 1024 * 1024),
149
- ProtocolMessageTypes.plot_sync_loaded: RLSettings(1000, 100 * 1024 * 1024),
150
- ProtocolMessageTypes.plot_sync_removed: RLSettings(1000, 100 * 1024 * 1024),
151
- ProtocolMessageTypes.plot_sync_invalid: RLSettings(1000, 100 * 1024 * 1024),
152
- ProtocolMessageTypes.plot_sync_keys_missing: RLSettings(1000, 100 * 1024 * 1024),
153
- ProtocolMessageTypes.plot_sync_duplicates: RLSettings(1000, 100 * 1024 * 1024),
154
- ProtocolMessageTypes.plot_sync_done: RLSettings(1000, 100 * 1024 * 1024),
155
- ProtocolMessageTypes.plot_sync_response: RLSettings(3000, 100 * 1024 * 1024),
156
- ProtocolMessageTypes.coin_state_update: RLSettings(1000, 100 * 1024 * 1024),
157
- ProtocolMessageTypes.register_for_ph_updates: RLSettings(1000, 100 * 1024 * 1024),
158
- ProtocolMessageTypes.respond_to_ph_updates: RLSettings(1000, 100 * 1024 * 1024),
159
- ProtocolMessageTypes.register_for_coin_updates: RLSettings(1000, 100 * 1024 * 1024),
160
- ProtocolMessageTypes.respond_to_coin_updates: RLSettings(1000, 100 * 1024 * 1024),
161
- ProtocolMessageTypes.request_remove_puzzle_subscriptions: RLSettings(1000, 100 * 1024 * 1024),
162
- ProtocolMessageTypes.respond_remove_puzzle_subscriptions: RLSettings(1000, 100 * 1024 * 1024),
163
- ProtocolMessageTypes.request_remove_coin_subscriptions: RLSettings(1000, 100 * 1024 * 1024),
164
- ProtocolMessageTypes.respond_remove_coin_subscriptions: RLSettings(1000, 100 * 1024 * 1024),
165
- ProtocolMessageTypes.request_puzzle_state: RLSettings(1000, 100 * 1024 * 1024),
166
- ProtocolMessageTypes.respond_puzzle_state: RLSettings(1000, 100 * 1024 * 1024),
167
- ProtocolMessageTypes.reject_puzzle_state: RLSettings(200, 100),
168
- ProtocolMessageTypes.request_coin_state: RLSettings(1000, 100 * 1024 * 1024),
169
- ProtocolMessageTypes.respond_coin_state: RLSettings(1000, 100 * 1024 * 1024),
170
- ProtocolMessageTypes.reject_coin_state: RLSettings(200, 100),
171
- ProtocolMessageTypes.mempool_items_added: RLSettings(1000, 100 * 1024 * 1024),
172
- ProtocolMessageTypes.mempool_items_removed: RLSettings(1000, 100 * 1024 * 1024),
173
- ProtocolMessageTypes.request_cost_info: RLSettings(1000, 100),
174
- ProtocolMessageTypes.respond_cost_info: RLSettings(1000, 1024),
175
- ProtocolMessageTypes.request_ses_hashes: RLSettings(2000, 1 * 1024 * 1024),
176
- ProtocolMessageTypes.respond_ses_hashes: RLSettings(2000, 1 * 1024 * 1024),
177
- ProtocolMessageTypes.request_children: RLSettings(2000, 1024 * 1024),
178
- ProtocolMessageTypes.respond_children: RLSettings(2000, 1 * 1024 * 1024),
179
- },
76
+ ProtocolMessageTypes.handshake: RLSettings(True, 5, 10 * 1024, 5 * 10 * 1024),
77
+ ProtocolMessageTypes.harvester_handshake: RLSettings(True, 5, 1024 * 1024),
78
+ ProtocolMessageTypes.new_signage_point_harvester: RLSettings(True, 100, 4886), # Size with 100 pool list
79
+ ProtocolMessageTypes.new_proof_of_space: RLSettings(True, 100, 2048),
80
+ ProtocolMessageTypes.request_signatures: RLSettings(True, 100, 2048),
81
+ ProtocolMessageTypes.respond_signatures: RLSettings(True, 100, 2048),
82
+ ProtocolMessageTypes.new_signage_point: RLSettings(True, 200, 2048),
83
+ ProtocolMessageTypes.declare_proof_of_space: RLSettings(True, 100, 10 * 1024),
84
+ ProtocolMessageTypes.request_signed_values: RLSettings(True, 100, 10 * 1024),
85
+ ProtocolMessageTypes.farming_info: RLSettings(True, 100, 1024),
86
+ ProtocolMessageTypes.signed_values: RLSettings(True, 100, 1024),
87
+ ProtocolMessageTypes.new_peak_timelord: RLSettings(True, 100, 20 * 1024),
88
+ ProtocolMessageTypes.new_unfinished_block_timelord: RLSettings(True, 100, 10 * 1024),
89
+ ProtocolMessageTypes.new_signage_point_vdf: RLSettings(True, 100, 100 * 1024),
90
+ ProtocolMessageTypes.new_infusion_point_vdf: RLSettings(True, 100, 100 * 1024),
91
+ ProtocolMessageTypes.new_end_of_sub_slot_vdf: RLSettings(True, 100, 100 * 1024),
92
+ ProtocolMessageTypes.request_compact_proof_of_time: RLSettings(True, 100, 10 * 1024),
93
+ ProtocolMessageTypes.respond_compact_proof_of_time: RLSettings(True, 100, 100 * 1024),
94
+ ProtocolMessageTypes.new_peak: RLSettings(True, 200, 512),
95
+ ProtocolMessageTypes.request_proof_of_weight: RLSettings(True, 5, 100),
96
+ ProtocolMessageTypes.respond_proof_of_weight: RLSettings(True, 5, 50 * 1024 * 1024, 100 * 1024 * 1024),
97
+ ProtocolMessageTypes.request_block: RLSettings(True, 200, 100),
98
+ ProtocolMessageTypes.reject_block: Unlimited(100),
99
+ ProtocolMessageTypes.request_blocks: RLSettings(True, 500, 100),
100
+ ProtocolMessageTypes.respond_blocks: Unlimited(50 * 1024 * 1024),
101
+ ProtocolMessageTypes.reject_blocks: Unlimited(100),
102
+ ProtocolMessageTypes.respond_block: Unlimited(2 * 1024 * 1024),
103
+ ProtocolMessageTypes.new_unfinished_block: RLSettings(True, 200, 100),
104
+ ProtocolMessageTypes.request_unfinished_block: RLSettings(True, 200, 100),
105
+ ProtocolMessageTypes.new_unfinished_block2: RLSettings(True, 200, 100),
106
+ ProtocolMessageTypes.request_unfinished_block2: RLSettings(True, 200, 100),
107
+ ProtocolMessageTypes.respond_unfinished_block: RLSettings(True, 200, 2 * 1024 * 1024, 10 * 2 * 1024 * 1024),
108
+ ProtocolMessageTypes.new_signage_point_or_end_of_sub_slot: RLSettings(True, 200, 200),
109
+ ProtocolMessageTypes.request_signage_point_or_end_of_sub_slot: RLSettings(True, 200, 200),
110
+ ProtocolMessageTypes.respond_signage_point: RLSettings(True, 200, 50 * 1024),
111
+ ProtocolMessageTypes.respond_end_of_sub_slot: RLSettings(True, 100, 50 * 1024),
112
+ ProtocolMessageTypes.request_mempool_transactions: RLSettings(True, 5, 1024 * 1024),
113
+ ProtocolMessageTypes.request_compact_vdf: RLSettings(True, 200, 1024),
114
+ ProtocolMessageTypes.respond_compact_vdf: RLSettings(True, 200, 100 * 1024),
115
+ ProtocolMessageTypes.new_compact_vdf: RLSettings(True, 100, 1024),
116
+ ProtocolMessageTypes.request_peers: RLSettings(True, 10, 100),
117
+ ProtocolMessageTypes.respond_peers: RLSettings(True, 10, 1 * 1024 * 1024),
118
+ ProtocolMessageTypes.request_puzzle_solution: RLSettings(True, 1000, 100),
119
+ ProtocolMessageTypes.respond_puzzle_solution: RLSettings(True, 1000, 1024 * 1024),
120
+ ProtocolMessageTypes.reject_puzzle_solution: RLSettings(True, 1000, 100),
121
+ ProtocolMessageTypes.none_response: RLSettings(False, 500, 100),
122
+ ProtocolMessageTypes.new_peak_wallet: RLSettings(True, 200, 300),
123
+ ProtocolMessageTypes.request_block_header: RLSettings(True, 500, 100),
124
+ ProtocolMessageTypes.respond_block_header: RLSettings(True, 500, 500 * 1024),
125
+ ProtocolMessageTypes.reject_header_request: RLSettings(True, 500, 100),
126
+ ProtocolMessageTypes.request_block_headers: RLSettings(False, 5000, 100),
127
+ ProtocolMessageTypes.reject_block_headers: RLSettings(False, 1000, 100),
128
+ ProtocolMessageTypes.respond_block_headers: RLSettings(False, 5000, 2 * 1024 * 1024),
129
+ ProtocolMessageTypes.request_removals: RLSettings(True, 500, 50 * 1024, 10 * 1024 * 1024),
130
+ ProtocolMessageTypes.respond_removals: RLSettings(True, 500, 1024 * 1024, 10 * 1024 * 1024),
131
+ ProtocolMessageTypes.reject_removals_request: RLSettings(True, 500, 100),
132
+ ProtocolMessageTypes.request_additions: RLSettings(True, 500, 1024 * 1024, 10 * 1024 * 1024),
133
+ ProtocolMessageTypes.respond_additions: RLSettings(True, 500, 1024 * 1024, 10 * 1024 * 1024),
134
+ ProtocolMessageTypes.reject_additions_request: RLSettings(True, 500, 100),
135
+ ProtocolMessageTypes.request_header_blocks: RLSettings(True, 500, 100),
136
+ ProtocolMessageTypes.reject_header_blocks: RLSettings(True, 100, 100),
137
+ ProtocolMessageTypes.respond_header_blocks: RLSettings(True, 500, 2 * 1024 * 1024, 100 * 1024 * 1024),
138
+ ProtocolMessageTypes.request_peers_introducer: RLSettings(True, 100, 100),
139
+ ProtocolMessageTypes.respond_peers_introducer: RLSettings(True, 100, 1024 * 1024),
140
+ ProtocolMessageTypes.farm_new_block: RLSettings(True, 200, 200),
141
+ ProtocolMessageTypes.request_plots: RLSettings(True, 10, 10 * 1024 * 1024),
142
+ ProtocolMessageTypes.respond_plots: RLSettings(True, 10, 100 * 1024 * 1024),
143
+ ProtocolMessageTypes.plot_sync_start: RLSettings(True, 1000, 100 * 1024 * 1024),
144
+ ProtocolMessageTypes.plot_sync_loaded: RLSettings(True, 1000, 100 * 1024 * 1024),
145
+ ProtocolMessageTypes.plot_sync_removed: RLSettings(True, 1000, 100 * 1024 * 1024),
146
+ ProtocolMessageTypes.plot_sync_invalid: RLSettings(True, 1000, 100 * 1024 * 1024),
147
+ ProtocolMessageTypes.plot_sync_keys_missing: RLSettings(True, 1000, 100 * 1024 * 1024),
148
+ ProtocolMessageTypes.plot_sync_duplicates: RLSettings(True, 1000, 100 * 1024 * 1024),
149
+ ProtocolMessageTypes.plot_sync_done: RLSettings(True, 1000, 100 * 1024 * 1024),
150
+ ProtocolMessageTypes.plot_sync_response: RLSettings(True, 3000, 100 * 1024 * 1024),
151
+ ProtocolMessageTypes.coin_state_update: RLSettings(True, 1000, 100 * 1024 * 1024),
152
+ ProtocolMessageTypes.register_for_ph_updates: RLSettings(True, 1000, 100 * 1024 * 1024),
153
+ ProtocolMessageTypes.respond_to_ph_updates: RLSettings(True, 1000, 100 * 1024 * 1024),
154
+ ProtocolMessageTypes.register_for_coin_updates: RLSettings(True, 1000, 100 * 1024 * 1024),
155
+ ProtocolMessageTypes.respond_to_coin_updates: RLSettings(True, 1000, 100 * 1024 * 1024),
156
+ ProtocolMessageTypes.request_remove_puzzle_subscriptions: RLSettings(True, 1000, 100 * 1024 * 1024),
157
+ ProtocolMessageTypes.respond_remove_puzzle_subscriptions: RLSettings(True, 1000, 100 * 1024 * 1024),
158
+ ProtocolMessageTypes.request_remove_coin_subscriptions: RLSettings(True, 1000, 100 * 1024 * 1024),
159
+ ProtocolMessageTypes.respond_remove_coin_subscriptions: RLSettings(True, 1000, 100 * 1024 * 1024),
160
+ ProtocolMessageTypes.request_puzzle_state: RLSettings(True, 1000, 100 * 1024 * 1024),
161
+ ProtocolMessageTypes.respond_puzzle_state: RLSettings(True, 1000, 100 * 1024 * 1024),
162
+ ProtocolMessageTypes.reject_puzzle_state: RLSettings(True, 200, 100),
163
+ ProtocolMessageTypes.request_coin_state: RLSettings(True, 1000, 100 * 1024 * 1024),
164
+ ProtocolMessageTypes.respond_coin_state: RLSettings(True, 1000, 100 * 1024 * 1024),
165
+ ProtocolMessageTypes.reject_coin_state: RLSettings(True, 200, 100),
166
+ ProtocolMessageTypes.mempool_items_added: RLSettings(True, 1000, 100 * 1024 * 1024),
167
+ ProtocolMessageTypes.mempool_items_removed: RLSettings(True, 1000, 100 * 1024 * 1024),
168
+ ProtocolMessageTypes.request_cost_info: RLSettings(True, 1000, 100),
169
+ ProtocolMessageTypes.respond_cost_info: RLSettings(True, 1000, 1024),
170
+ ProtocolMessageTypes.request_ses_hashes: RLSettings(True, 2000, 1 * 1024 * 1024),
171
+ ProtocolMessageTypes.respond_ses_hashes: RLSettings(True, 2000, 1 * 1024 * 1024),
172
+ ProtocolMessageTypes.request_children: RLSettings(True, 2000, 1024 * 1024),
173
+ ProtocolMessageTypes.respond_children: RLSettings(True, 2000, 1 * 1024 * 1024),
174
+ ProtocolMessageTypes.error: RLSettings(False, 50000, 100),
175
+ ProtocolMessageTypes.request_fee_estimates: RLSettings(True, 10, 100),
176
+ ProtocolMessageTypes.respond_fee_estimates: RLSettings(True, 10, 100),
177
+ ProtocolMessageTypes.solve: RLSettings(False, 120, 1024),
178
+ ProtocolMessageTypes.solution_response: RLSettings(False, 120, 1024),
179
+ ProtocolMessageTypes.partial_proofs: RLSettings(False, 120, 3 * 1024),
180
180
  },
181
181
  2: {
182
- "default_settings": RLSettings(100, 1024 * 1024, 100 * 1024 * 1024),
183
- "non_tx_freq": 1000, # There is also a freq limit for many requests
184
- "non_tx_max_total_size": 100 * 1024 * 1024, # There is also a size limit for many requests
185
- "rate_limits_tx": {
186
- ProtocolMessageTypes.request_block_header: RLSettings(500, 100),
187
- ProtocolMessageTypes.respond_block_header: RLSettings(500, 500 * 1024),
188
- ProtocolMessageTypes.reject_header_request: RLSettings(500, 100),
189
- ProtocolMessageTypes.request_removals: RLSettings(5000, 50 * 1024, 10 * 1024 * 1024),
190
- ProtocolMessageTypes.respond_removals: RLSettings(5000, 1024 * 1024, 10 * 1024 * 1024),
191
- ProtocolMessageTypes.reject_removals_request: RLSettings(500, 100),
192
- ProtocolMessageTypes.request_additions: RLSettings(50000, 100 * 1024 * 1024),
193
- ProtocolMessageTypes.respond_additions: RLSettings(50000, 100 * 1024 * 1024),
194
- ProtocolMessageTypes.reject_additions_request: RLSettings(500, 100),
195
- ProtocolMessageTypes.reject_header_blocks: RLSettings(1000, 100),
196
- ProtocolMessageTypes.respond_header_blocks: RLSettings(5000, 2 * 1024 * 1024),
197
- ProtocolMessageTypes.request_block_headers: RLSettings(5000, 100),
198
- ProtocolMessageTypes.reject_block_headers: RLSettings(1000, 100),
199
- ProtocolMessageTypes.respond_block_headers: RLSettings(5000, 2 * 1024 * 1024),
200
- ProtocolMessageTypes.request_ses_hashes: RLSettings(2000, 1 * 1024 * 1024),
201
- ProtocolMessageTypes.respond_ses_hashes: RLSettings(2000, 1 * 1024 * 1024),
202
- ProtocolMessageTypes.request_children: RLSettings(2000, 1024 * 1024),
203
- ProtocolMessageTypes.respond_children: RLSettings(2000, 1 * 1024 * 1024),
204
- ProtocolMessageTypes.request_puzzle_solution: RLSettings(5000, 100),
205
- ProtocolMessageTypes.respond_puzzle_solution: RLSettings(5000, 1024 * 1024),
206
- ProtocolMessageTypes.reject_puzzle_solution: RLSettings(5000, 100),
207
- ProtocolMessageTypes.none_response: RLSettings(500, 100),
208
- ProtocolMessageTypes.error: RLSettings(50000, 100),
209
- },
210
- "rate_limits_other": { # These will have a lower cap since they don't scale with high TPS (NON_TX_FREQ)
211
- ProtocolMessageTypes.request_header_blocks: RLSettings(5000, 100),
212
- },
182
+ ProtocolMessageTypes.request_block_header: RLSettings(False, 500, 100),
183
+ ProtocolMessageTypes.respond_block_header: RLSettings(False, 500, 500 * 1024),
184
+ ProtocolMessageTypes.reject_header_request: RLSettings(False, 500, 100),
185
+ ProtocolMessageTypes.request_removals: RLSettings(False, 5000, 50 * 1024, 10 * 1024 * 1024),
186
+ ProtocolMessageTypes.respond_removals: RLSettings(False, 5000, 1024 * 1024, 10 * 1024 * 1024),
187
+ ProtocolMessageTypes.reject_removals_request: RLSettings(False, 500, 100),
188
+ ProtocolMessageTypes.request_additions: RLSettings(False, 50000, 100 * 1024 * 1024),
189
+ ProtocolMessageTypes.respond_additions: RLSettings(False, 50000, 100 * 1024 * 1024),
190
+ ProtocolMessageTypes.reject_additions_request: RLSettings(False, 500, 100),
191
+ ProtocolMessageTypes.reject_header_blocks: RLSettings(False, 1000, 100),
192
+ ProtocolMessageTypes.respond_header_blocks: RLSettings(False, 5000, 2 * 1024 * 1024),
193
+ ProtocolMessageTypes.request_ses_hashes: RLSettings(False, 2000, 1 * 1024 * 1024),
194
+ ProtocolMessageTypes.respond_ses_hashes: RLSettings(False, 2000, 1 * 1024 * 1024),
195
+ ProtocolMessageTypes.request_children: RLSettings(False, 2000, 1024 * 1024),
196
+ ProtocolMessageTypes.respond_children: RLSettings(False, 2000, 1 * 1024 * 1024),
197
+ ProtocolMessageTypes.request_puzzle_solution: RLSettings(False, 5000, 100),
198
+ ProtocolMessageTypes.respond_puzzle_solution: RLSettings(False, 5000, 1024 * 1024),
199
+ ProtocolMessageTypes.reject_puzzle_solution: RLSettings(False, 5000, 100),
200
+ # These will have a lower cap since they don't scale with high TPS (NON_TX_FREQ)
201
+ ProtocolMessageTypes.request_header_blocks: RLSettings(True, 5000, 100),
213
202
  },
214
203
  }