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.
- chia/_tests/blockchain/blockchain_test_utils.py +6 -7
- chia/_tests/blockchain/test_augmented_chain.py +4 -3
- chia/_tests/blockchain/test_blockchain.py +10 -5
- chia/_tests/clvm/coin_store.py +1 -1
- chia/_tests/cmds/cmd_test_utils.py +84 -97
- chia/_tests/cmds/test_dev_gh.py +1 -1
- chia/_tests/cmds/test_farm_cmd.py +56 -2
- chia/_tests/cmds/wallet/test_consts.py +3 -1
- chia/_tests/cmds/wallet/test_did.py +3 -8
- chia/_tests/cmds/wallet/test_nft.py +6 -6
- chia/_tests/cmds/wallet/test_notifications.py +39 -21
- chia/_tests/cmds/wallet/test_vcs.py +2 -1
- chia/_tests/cmds/wallet/test_wallet.py +160 -136
- chia/_tests/conftest.py +51 -26
- chia/_tests/core/cmds/test_wallet.py +4 -3
- chia/_tests/core/consensus/test_pot_iterations.py +71 -24
- chia/_tests/core/custom_types/test_proof_of_space.py +60 -30
- chia/_tests/core/custom_types/test_spend_bundle.py +1 -4
- chia/_tests/core/data_layer/conftest.py +7 -2
- chia/_tests/core/data_layer/old_format/__init__.py +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-005876c1cdc4d5f1726551b207b9f63efc9cd2f72df80a3a26a1ba73d40d6745-delta-23-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-005876c1cdc4d5f1726551b207b9f63efc9cd2f72df80a3a26a1ba73d40d6745-full-23-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-01b36e72a975cdc00d6514eea81668d19e8ea3150217ae98cb3361688a016fab-delta-9-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-01b36e72a975cdc00d6514eea81668d19e8ea3150217ae98cb3361688a016fab-full-9-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-06147c3b12d73e9b83b686a8c10b4a36a513c8a93c0ff99ae197f06326278be9-delta-5-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-06147c3b12d73e9b83b686a8c10b4a36a513c8a93c0ff99ae197f06326278be9-full-5-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-073c051a5934ad3b8db39eee2189e4300e55f48aaa17ff4ae30eeae088ff544a-delta-22-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-073c051a5934ad3b8db39eee2189e4300e55f48aaa17ff4ae30eeae088ff544a-full-22-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-0cc077559b9c7b4aefe8f8f591c195e0779bebdf89f2ad8285a00ea5f859d965-delta-1-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-0cc077559b9c7b4aefe8f8f591c195e0779bebdf89f2ad8285a00ea5f859d965-full-1-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-16377275567b723b20936d3f1ec0a2fd83f6ac379b922351a5e4c54949069f3b-delta-2-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-16377275567b723b20936d3f1ec0a2fd83f6ac379b922351a5e4c54949069f3b-full-2-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-1cb824a7a5f02cd30ac6c38e8f6216780d9bfa2d24811d282a368dcd541438a7-delta-29-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-1cb824a7a5f02cd30ac6c38e8f6216780d9bfa2d24811d282a368dcd541438a7-full-29-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-27b89dc4809ebc5a3b87757d35e95e2761d978cf121e44fa2773a5c06e4cc7b5-delta-28-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-27b89dc4809ebc5a3b87757d35e95e2761d978cf121e44fa2773a5c06e4cc7b5-full-28-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-28a6b7c134abfaeb0ab58a018313f6c87a61a40a4d9ec9bedf53aa1d12f3ee37-delta-7-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-28a6b7c134abfaeb0ab58a018313f6c87a61a40a4d9ec9bedf53aa1d12f3ee37-full-7-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-30a6bfe7cecbeda259a295dc6de3a436357f52388c3b03d86901e7da68565aeb-delta-19-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-30a6bfe7cecbeda259a295dc6de3a436357f52388c3b03d86901e7da68565aeb-full-19-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-343a2bf9add798e3ac2e6a571823cf9fa7e8a1bed532143354ead2648bd036ef-delta-10-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-343a2bf9add798e3ac2e6a571823cf9fa7e8a1bed532143354ead2648bd036ef-full-10-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4d90efbc1fb3df324193831ea4a57dd5e10e67d9653343eb18d178272adb0447-delta-17-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4d90efbc1fb3df324193831ea4a57dd5e10e67d9653343eb18d178272adb0447-full-17-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4dd2ea099e91635c441f40b36d3f84078a2d818d2dc601c7278e72cbdfe3eca8-delta-20-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4dd2ea099e91635c441f40b36d3f84078a2d818d2dc601c7278e72cbdfe3eca8-full-20-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-509effbdca78639023b933ce6c08a0465fb247e1cd5329e9e9c553940e4b6e46-delta-31-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-509effbdca78639023b933ce6c08a0465fb247e1cd5329e9e9c553940e4b6e46-full-31-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5379a4d9ff29c29d1ef0906d22e82c52472753d31806189ab813c43365341b78-delta-40-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5379a4d9ff29c29d1ef0906d22e82c52472753d31806189ab813c43365341b78-full-40-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-55908eda5686a8f89e4c50672cbe893ec1734fb23449dc03325efe7c414f9aa4-delta-49-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-55908eda5686a8f89e4c50672cbe893ec1734fb23449dc03325efe7c414f9aa4-full-49-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-57cc2691fb1fb986c99a58bcb0e029d0cd0cff41553d703147c54196d7d9ca63-delta-14-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-57cc2691fb1fb986c99a58bcb0e029d0cd0cff41553d703147c54196d7d9ca63-full-14-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5943bf8ae4f5e59969d8570e4f40a8223299febdcfbcf188b3b3e2ab11044e18-delta-34-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5943bf8ae4f5e59969d8570e4f40a8223299febdcfbcf188b3b3e2ab11044e18-full-34-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6518527b7c939bee60ce6b024cbe90d3b9d8913c56b8ce11a4df5da7ff7db1c8-delta-8-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6518527b7c939bee60ce6b024cbe90d3b9d8913c56b8ce11a4df5da7ff7db1c8-full-8-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-66ff26a26620379e14a7c91252d27ee4dbe06ad69a3a390a88642fe757f2b288-delta-45-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-66ff26a26620379e14a7c91252d27ee4dbe06ad69a3a390a88642fe757f2b288-full-45-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6bd0a508ee2c4afbe9d4daa811139fd6e54e7f4e16850cbce999fa30f8bdccd2-delta-6-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6bd0a508ee2c4afbe9d4daa811139fd6e54e7f4e16850cbce999fa30f8bdccd2-full-6-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6ce850d0d77ca743fcc2fc792747472e5d2c1c0813aa43abbb370554428fc897-delta-48-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6ce850d0d77ca743fcc2fc792747472e5d2c1c0813aa43abbb370554428fc897-full-48-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6eb4ca2e1552b156c5969396b49070eb08ad6c96b347359387519be59f7ccaed-delta-26-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6eb4ca2e1552b156c5969396b49070eb08ad6c96b347359387519be59f7ccaed-full-26-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-71c797fb7592d3f0a5a20c79ab8497ddaa0fd9ec17712e109d25c91b3f3c76e5-delta-3-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-71c797fb7592d3f0a5a20c79ab8497ddaa0fd9ec17712e109d25c91b3f3c76e5-full-3-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-73357026053d5a4969e7a6b9aeeef91c14cc6d5f32fc700fe6d21d2a1b22496c-delta-25-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-73357026053d5a4969e7a6b9aeeef91c14cc6d5f32fc700fe6d21d2a1b22496c-full-25-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-7c897e5c46e834ced65bde7de87716acfaa5dffbdb30b5cd9377d8c319df2034-delta-35-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-7c897e5c46e834ced65bde7de87716acfaa5dffbdb30b5cd9377d8c319df2034-full-35-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-87b8394d80d08117a5a1cd04ed8a682564eab7197a2c090159863591b5108874-delta-4-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-87b8394d80d08117a5a1cd04ed8a682564eab7197a2c090159863591b5108874-full-4-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-89eb40b9cc0921c5f5c3feb20927c13a9ada5760f82d219dcee153b7d400165c-delta-41-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-89eb40b9cc0921c5f5c3feb20927c13a9ada5760f82d219dcee153b7d400165c-full-41-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8b649433156b8c924436cdec9c6de26106fd6f73a0528570f48748f7b40d7f8a-delta-21-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8b649433156b8c924436cdec9c6de26106fd6f73a0528570f48748f7b40d7f8a-full-21-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8d364023a0834c8c3077e236a465493acbf488e4f9d1f4c6cc230343c10a8f7d-delta-42-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8d364023a0834c8c3077e236a465493acbf488e4f9d1f4c6cc230343c10a8f7d-full-42-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-925689e24a3d98d98676d816cdd8b73e7b2df057d9d4503da9b27bf91d79666c-delta-38-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-925689e24a3d98d98676d816cdd8b73e7b2df057d9d4503da9b27bf91d79666c-full-38-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-937be3d428b19f521be4f98faecc3307ae11ee731c76992f417fa4268d13859e-delta-11-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-937be3d428b19f521be4f98faecc3307ae11ee731c76992f417fa4268d13859e-full-11-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-97f34af499b79e2111fc296a598fc9654c2467ea038dfea41fd58241fb3642de-delta-32-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-97f34af499b79e2111fc296a598fc9654c2467ea038dfea41fd58241fb3642de-full-32-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-9d1b737243b8a1d0022f2b36ac53333c6280354a74d77f2a3642dcab35204e59-delta-33-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-9d1b737243b8a1d0022f2b36ac53333c6280354a74d77f2a3642dcab35204e59-full-33-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-a6663f98ef6ddf6db55f01163e34bb2e87aa82f0347e79ce31e8dbfa390c480c-delta-47-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-a6663f98ef6ddf6db55f01163e34bb2e87aa82f0347e79ce31e8dbfa390c480c-full-47-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-aa77376d1ccd3664e5c6366e010c52a978fedbf40f5ce262fee71b2e7fe0c6a9-delta-50-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-aa77376d1ccd3664e5c6366e010c52a978fedbf40f5ce262fee71b2e7fe0c6a9-full-50-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b0f28514741ed1a71f5c6544bf92f9e0e493c5f3cf28328909771d8404eff626-delta-24-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b0f28514741ed1a71f5c6544bf92f9e0e493c5f3cf28328909771d8404eff626-full-24-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b3efee5358e6eb89ab3b60db2d128d57eef39e8538fb63c5632412d4f8e7d09e-delta-44-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b3efee5358e6eb89ab3b60db2d128d57eef39e8538fb63c5632412d4f8e7d09e-full-44-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bb0b56b6eb7acbb4e80893b04c72412fe833418232e1ed7b06d97d7a7f08b4e1-delta-16-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bb0b56b6eb7acbb4e80893b04c72412fe833418232e1ed7b06d97d7a7f08b4e1-full-16-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bc45262b757ff494b53bd2a8fba0f5511cc1f9c2a2c5360e04ea8cebbf6409df-delta-13-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bc45262b757ff494b53bd2a8fba0f5511cc1f9c2a2c5360e04ea8cebbf6409df-full-13-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bd0494ba430aff13458b557113b073d226eaf11257dfe26ff3323fa1cfe1335b-delta-39-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bd0494ba430aff13458b557113b073d226eaf11257dfe26ff3323fa1cfe1335b-full-39-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cd04f5fbba1553fa728b4dd8131d4723aaac288e0c7dc080447fbf0872c0a6eb-delta-36-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cd04f5fbba1553fa728b4dd8131d4723aaac288e0c7dc080447fbf0872c0a6eb-full-36-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cdd2399557fb3163a848f08831fdc833703354edb19a0d32a965fdb140f160c2-delta-18-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cdd2399557fb3163a848f08831fdc833703354edb19a0d32a965fdb140f160c2-full-18-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cf7a08fca7b1332095242e4d9800f4b94a3f4eaae88fe8407da42736d54b9e18-delta-37-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cf7a08fca7b1332095242e4d9800f4b94a3f4eaae88fe8407da42736d54b9e18-full-37-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-d1f97465a9f52187e2ef3a0d811a1258f52380a65340c55f3e8e65b92753bc13-delta-15-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-d1f97465a9f52187e2ef3a0d811a1258f52380a65340c55f3e8e65b92753bc13-full-15-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e475eccd4ee597e5ff67b1a249e37d65d6e3f754c3f0379fdb43692513588fef-delta-46-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e475eccd4ee597e5ff67b1a249e37d65d6e3f754c3f0379fdb43692513588fef-full-46-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e82e63517d78fd65b23a05c3b9a98cf905ddad7026995a238bfe634006b84cd0-delta-27-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e82e63517d78fd65b23a05c3b9a98cf905ddad7026995a238bfe634006b84cd0-full-27-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-ed2cf0fd6c0f6237c87c161e1fca303b3fbe6c04e01f652b88720b4572143349-delta-12-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-ed2cf0fd6c0f6237c87c161e1fca303b3fbe6c04e01f652b88720b4572143349-full-12-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f6e454eaf24a83c46a7bed4c19260a0a3ce0ed5c51739cb6d748d4913dc2ef58-delta-30-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f6e454eaf24a83c46a7bed4c19260a0a3ce0ed5c51739cb6d748d4913dc2ef58-full-30-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f7ad2bdf86d9609b4d6381086ec1e296bf558e2ff467ead29dd7fa6e31bacc56-delta-43-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f7ad2bdf86d9609b4d6381086ec1e296bf558e2ff467ead29dd7fa6e31bacc56-full-43-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/__init__.py +0 -0
- chia/_tests/core/data_layer/old_format/old_db.sqlite +0 -0
- chia/_tests/core/data_layer/test_data_layer_util.py +18 -21
- chia/_tests/core/data_layer/test_data_rpc.py +77 -28
- chia/_tests/core/data_layer/test_data_store.py +637 -700
- chia/_tests/core/data_layer/test_data_store_schema.py +2 -209
- chia/_tests/core/full_node/ram_db.py +1 -1
- chia/_tests/core/full_node/stores/test_block_store.py +4 -10
- chia/_tests/core/full_node/stores/test_coin_store.py +1 -1
- chia/_tests/core/full_node/test_address_manager.py +3 -3
- chia/_tests/core/full_node/test_block_height_map.py +1 -1
- chia/_tests/core/full_node/test_full_node.py +91 -30
- chia/_tests/core/full_node/test_generator_tools.py +17 -10
- chia/_tests/core/mempool/test_mempool.py +190 -90
- chia/_tests/core/mempool/test_mempool_fee_estimator.py +2 -4
- chia/_tests/core/mempool/test_mempool_item_queries.py +1 -1
- chia/_tests/core/mempool/test_mempool_manager.py +134 -75
- chia/_tests/core/mempool/test_singleton_fast_forward.py +9 -27
- chia/_tests/core/server/serve.py +0 -2
- chia/_tests/core/server/test_rate_limits.py +400 -347
- chia/_tests/core/server/test_server.py +2 -2
- chia/_tests/core/services/test_services.py +7 -7
- chia/_tests/core/test_cost_calculation.py +31 -10
- chia/_tests/core/test_crawler.py +4 -4
- chia/_tests/core/test_db_conversion.py +7 -14
- chia/_tests/core/test_db_validation.py +2 -6
- chia/_tests/core/test_farmer_harvester_rpc.py +34 -1
- chia/_tests/core/test_full_node_rpc.py +28 -24
- chia/_tests/core/test_merkle_set.py +1 -4
- chia/_tests/core/test_seeder.py +1 -1
- chia/_tests/core/util/test_keychain.py +2 -2
- chia/_tests/core/util/test_lru_cache.py +16 -0
- chia/_tests/core/util/test_streamable.py +85 -4
- chia/_tests/environments/wallet.py +4 -1
- chia/_tests/farmer_harvester/test_farmer.py +8 -6
- chia/_tests/farmer_harvester/test_farmer_harvester.py +306 -8
- chia/_tests/farmer_harvester/test_filter_prefix_bits.py +3 -3
- chia/_tests/farmer_harvester/test_third_party_harvesters.py +11 -11
- chia/_tests/fee_estimation/test_fee_estimation_integration.py +2 -2
- chia/_tests/fee_estimation/test_fee_estimation_rpc.py +1 -1
- chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +1 -2
- chia/_tests/generator/test_rom.py +2 -1
- chia/_tests/harvester/__init__.py +0 -0
- chia/_tests/harvester/config.py +4 -0
- chia/_tests/harvester/test_harvester_api.py +157 -0
- chia/_tests/plot_sync/test_plot_sync.py +6 -3
- chia/_tests/plot_sync/test_receiver.py +16 -4
- chia/_tests/plot_sync/test_sender.py +8 -7
- chia/_tests/plot_sync/test_sync_simulated.py +15 -13
- chia/_tests/plot_sync/util.py +3 -2
- chia/_tests/plotting/test_plot_manager.py +21 -5
- chia/_tests/plotting/test_prover.py +106 -0
- chia/_tests/pools/test_pool_cmdline.py +7 -6
- chia/_tests/pools/test_pool_puzzles_lifecycle.py +10 -3
- chia/_tests/pools/test_pool_rpc.py +92 -64
- chia/_tests/solver/__init__.py +0 -0
- chia/_tests/solver/config.py +4 -0
- chia/_tests/solver/test_solver_service.py +29 -0
- chia/_tests/timelord/test_new_peak.py +1 -1
- chia/_tests/timelord/test_timelord.py +1 -1
- chia/_tests/util/benchmarks.py +5 -12
- chia/_tests/util/blockchain.py +1 -1
- chia/_tests/util/build_network_protocol_files.py +7 -0
- chia/_tests/util/network_protocol_data.py +26 -0
- chia/_tests/util/protocol_messages_bytes-v1.0 +0 -0
- chia/_tests/util/protocol_messages_json.py +19 -0
- chia/_tests/util/setup_nodes.py +21 -2
- chia/_tests/util/spend_sim.py +9 -3
- chia/_tests/util/test_condition_tools.py +3 -2
- chia/_tests/util/test_full_block_utils.py +10 -9
- chia/_tests/util/test_misc.py +10 -10
- chia/_tests/util/test_network.py +32 -1
- chia/_tests/util/test_network_protocol_files.py +333 -318
- chia/_tests/util/test_network_protocol_json.py +6 -0
- chia/_tests/util/test_network_protocol_test.py +27 -0
- chia/_tests/util/test_priority_mutex.py +1 -1
- chia/_tests/util/test_replace_str_to_bytes.py +6 -6
- chia/_tests/wallet/cat_wallet/test_cat_wallet.py +17 -13
- chia/_tests/wallet/cat_wallet/test_trades.py +55 -55
- chia/_tests/wallet/did_wallet/test_did.py +118 -1229
- chia/_tests/wallet/nft_wallet/config.py +1 -1
- chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +73 -96
- chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +15 -12
- chia/_tests/wallet/nft_wallet/test_nft_offers.py +67 -134
- chia/_tests/wallet/nft_wallet/test_nft_wallet.py +31 -26
- chia/_tests/wallet/rpc/test_wallet_rpc.py +765 -371
- chia/_tests/wallet/sync/test_wallet_sync.py +6 -0
- chia/_tests/wallet/test_new_wallet_protocol.py +1 -1
- chia/_tests/wallet/test_signer_protocol.py +2 -2
- chia/_tests/wallet/test_singleton_lifecycle_fast.py +3 -4
- chia/_tests/wallet/test_transaction_store.py +42 -33
- chia/_tests/wallet/test_wallet.py +22 -31
- chia/_tests/wallet/test_wallet_state_manager.py +14 -7
- chia/_tests/wallet/vc_wallet/test_vc_wallet.py +53 -32
- chia/apis.py +2 -0
- chia/cmds/beta.py +7 -3
- chia/cmds/chia.py +2 -0
- chia/cmds/cmd_classes.py +11 -27
- chia/cmds/cmds_util.py +3 -0
- chia/cmds/coin_funcs.py +27 -22
- chia/cmds/configure.py +42 -18
- chia/cmds/dev/data.py +22 -3
- chia/cmds/farm.py +32 -0
- chia/cmds/farm_funcs.py +54 -5
- chia/cmds/init_funcs.py +4 -0
- chia/cmds/keys_funcs.py +8 -10
- chia/cmds/peer_funcs.py +8 -10
- chia/cmds/plotnft_funcs.py +24 -16
- chia/cmds/rpc.py +11 -1
- chia/cmds/show_funcs.py +5 -5
- chia/cmds/solver.py +33 -0
- chia/cmds/solver_funcs.py +21 -0
- chia/cmds/wallet.py +1 -1
- chia/cmds/wallet_funcs.py +149 -96
- chia/consensus/block_body_validation.py +8 -9
- chia/consensus/block_creation.py +9 -10
- chia/consensus/block_header_validation.py +61 -69
- chia/{full_node → consensus}/block_height_map.py +2 -1
- chia/consensus/block_height_map_protocol.py +21 -0
- chia/consensus/block_rewards.py +12 -12
- chia/consensus/blockchain.py +8 -18
- chia/consensus/default_constants.py +6 -6
- chia/consensus/generator_tools.py +1 -1
- chia/consensus/get_block_challenge.py +24 -25
- chia/consensus/pos_quality.py +28 -2
- chia/consensus/pot_iterations.py +15 -17
- chia/daemon/keychain_proxy.py +5 -0
- chia/daemon/server.py +2 -3
- chia/data_layer/data_layer.py +32 -24
- chia/data_layer/data_layer_errors.py +5 -0
- chia/data_layer/data_layer_rpc_api.py +1 -1
- chia/data_layer/data_layer_service.py +8 -0
- chia/data_layer/data_layer_util.py +49 -89
- chia/data_layer/data_layer_wallet.py +20 -17
- chia/data_layer/data_store.py +1051 -1462
- chia/data_layer/download_data.py +44 -115
- chia/{server → data_layer}/start_data_layer.py +2 -1
- chia/data_layer/util/benchmark.py +38 -53
- chia/farmer/farmer.py +3 -0
- chia/farmer/farmer_api.py +104 -5
- chia/farmer/farmer_rpc_api.py +20 -0
- chia/farmer/farmer_rpc_client.py +6 -2
- chia/farmer/farmer_service.py +8 -0
- chia/{server → farmer}/start_farmer.py +4 -3
- chia/full_node/block_store.py +20 -10
- chia/full_node/coin_store.py +12 -4
- chia/full_node/eligible_coin_spends.py +17 -72
- chia/full_node/full_node.py +68 -71
- chia/full_node/full_node_api.py +26 -32
- chia/full_node/full_node_rpc_api.py +44 -32
- chia/full_node/full_node_rpc_client.py +67 -79
- chia/full_node/full_node_service.py +8 -0
- chia/full_node/full_node_store.py +5 -3
- chia/full_node/mempool.py +14 -14
- chia/full_node/mempool_manager.py +67 -89
- chia/{server → full_node}/start_full_node.py +1 -1
- chia/full_node/subscriptions.py +2 -2
- chia/full_node/weight_proof.py +14 -15
- chia/harvester/harvester.py +8 -1
- chia/harvester/harvester_api.py +178 -44
- chia/harvester/harvester_service.py +8 -0
- chia/{server → harvester}/start_harvester.py +1 -1
- chia/introducer/introducer_service.py +8 -0
- chia/{server → introducer}/start_introducer.py +1 -1
- chia/plot_sync/receiver.py +6 -1
- chia/plot_sync/sender.py +7 -4
- chia/plotting/cache.py +37 -28
- chia/plotting/check_plots.py +83 -48
- chia/plotting/create_plots.py +3 -4
- chia/plotting/manager.py +18 -13
- chia/plotting/prover.py +153 -0
- chia/plotting/util.py +14 -6
- chia/pools/pool_wallet.py +6 -4
- chia/protocols/harvester_protocol.py +14 -0
- chia/protocols/outbound_message.py +1 -0
- chia/protocols/pool_protocol.py +1 -1
- chia/protocols/protocol_message_types.py +7 -0
- chia/protocols/shared_protocol.py +2 -0
- chia/protocols/solver_protocol.py +18 -0
- chia/rpc/rpc_server.py +1 -1
- chia/seeder/crawl_store.py +4 -8
- chia/seeder/crawler.py +2 -2
- chia/seeder/crawler_service.py +8 -0
- chia/seeder/start_crawler.py +1 -1
- chia/server/address_manager.py +12 -15
- chia/server/introducer_peers.py +1 -1
- chia/server/node_discovery.py +9 -10
- chia/server/rate_limit_numbers.py +157 -168
- chia/server/rate_limits.py +44 -41
- chia/server/resolve_peer_info.py +5 -0
- chia/server/server.py +17 -7
- chia/server/start_service.py +0 -1
- chia/simulator/block_tools.py +92 -58
- chia/simulator/full_node_simulator.py +1 -1
- chia/simulator/setup_services.py +51 -15
- chia/solver/__init__.py +0 -0
- chia/solver/solver.py +100 -0
- chia/solver/solver_api.py +59 -0
- chia/solver/solver_rpc_api.py +31 -0
- chia/solver/solver_rpc_client.py +16 -0
- chia/solver/solver_service.py +8 -0
- chia/solver/start_solver.py +102 -0
- {mozilla-ca → chia/ssl}/cacert.pem +0 -27
- chia/ssl/create_ssl.py +3 -2
- chia/{server → timelord}/start_timelord.py +1 -1
- chia/timelord/timelord.py +12 -13
- chia/timelord/timelord_service.py +8 -0
- chia/types/blockchain_format/proof_of_space.py +61 -17
- chia/types/coin_spend.py +0 -8
- chia/types/internal_mempool_item.py +3 -3
- chia/types/mempool_item.py +15 -8
- chia/types/mempool_submission_status.py +1 -1
- chia/util/config.py +1 -3
- chia/util/db_wrapper.py +7 -8
- chia/util/initial-config.yaml +46 -0
- chia/util/lru_cache.py +8 -4
- chia/util/network.py +9 -0
- chia/util/service_groups.py +3 -1
- chia/util/streamable.py +38 -8
- chia/util/virtual_project_analysis.py +1 -1
- chia/wallet/cat_wallet/cat_outer_puzzle.py +7 -4
- chia/wallet/cat_wallet/cat_wallet.py +13 -7
- chia/wallet/cat_wallet/r_cat_wallet.py +4 -1
- chia/wallet/conditions.py +1 -3
- chia/wallet/did_wallet/did_wallet.py +27 -332
- chia/wallet/nft_wallet/nft_puzzle_utils.py +1 -1
- chia/wallet/nft_wallet/nft_wallet.py +9 -7
- chia/wallet/puzzle_drivers.py +7 -8
- chia/{server → wallet}/start_wallet.py +1 -1
- chia/wallet/trade_manager.py +12 -9
- chia/wallet/transaction_record.py +14 -51
- chia/wallet/util/clvm_streamable.py +28 -41
- chia/wallet/util/merkle_utils.py +2 -2
- chia/wallet/util/tx_config.py +3 -6
- chia/wallet/vc_wallet/cr_cat_wallet.py +12 -6
- chia/wallet/vc_wallet/vc_wallet.py +13 -15
- chia/wallet/wallet.py +5 -3
- chia/wallet/wallet_node.py +25 -30
- chia/wallet/wallet_request_types.py +538 -101
- chia/wallet/wallet_rpc_api.py +398 -570
- chia/wallet/wallet_rpc_client.py +144 -332
- chia/wallet/wallet_service.py +8 -0
- chia/wallet/wallet_state_manager.py +53 -42
- chia/wallet/wallet_transaction_store.py +13 -5
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info}/METADATA +31 -31
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info}/RECORD +369 -241
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info}/WHEEL +1 -1
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info}/entry_points.txt +8 -7
- chia/full_node/mempool_check_conditions.py +0 -102
- chia/server/aliases.py +0 -35
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info/licenses}/LICENSE +0 -0
chia/_tests/conftest.py
CHANGED
|
@@ -50,19 +50,14 @@ from chia._tests.util.setup_nodes import (
|
|
|
50
50
|
from chia._tests.util.spend_sim import CostLogger
|
|
51
51
|
from chia._tests.util.time_out_assert import time_out_assert
|
|
52
52
|
from chia.farmer.farmer_rpc_client import FarmerRpcClient
|
|
53
|
+
from chia.farmer.farmer_service import FarmerService
|
|
53
54
|
from chia.full_node.full_node_api import FullNodeAPI
|
|
55
|
+
from chia.full_node.full_node_service import FullNodeService
|
|
54
56
|
from chia.harvester.harvester_rpc_client import HarvesterRpcClient
|
|
57
|
+
from chia.harvester.harvester_service import HarvesterService
|
|
58
|
+
from chia.seeder.crawler_service import CrawlerService
|
|
55
59
|
from chia.seeder.dns_server import DNSServer
|
|
56
|
-
from chia.server.aliases import (
|
|
57
|
-
CrawlerService,
|
|
58
|
-
FarmerService,
|
|
59
|
-
FullNodeService,
|
|
60
|
-
HarvesterService,
|
|
61
|
-
TimelordService,
|
|
62
|
-
WalletService,
|
|
63
|
-
)
|
|
64
60
|
from chia.server.server import ChiaServer
|
|
65
|
-
from chia.server.start_service import Service
|
|
66
61
|
from chia.simulator.full_node_simulator import FullNodeSimulator
|
|
67
62
|
from chia.simulator.setup_services import (
|
|
68
63
|
setup_crawler,
|
|
@@ -70,11 +65,14 @@ from chia.simulator.setup_services import (
|
|
|
70
65
|
setup_full_node,
|
|
71
66
|
setup_introducer,
|
|
72
67
|
setup_seeder,
|
|
68
|
+
setup_solver,
|
|
73
69
|
setup_timelord,
|
|
74
70
|
)
|
|
75
71
|
from chia.simulator.start_simulator import SimulatorFullNodeService
|
|
76
72
|
from chia.simulator.wallet_tools import WalletTool
|
|
77
|
-
from chia.
|
|
73
|
+
from chia.solver.solver_service import SolverService
|
|
74
|
+
from chia.timelord.timelord_service import TimelordService
|
|
75
|
+
from chia.types.peer_info import PeerInfo, UnresolvedPeerInfo
|
|
78
76
|
from chia.util.config import create_default_chia_config, lock_and_load_config
|
|
79
77
|
from chia.util.db_wrapper import generate_in_memory_db_uri
|
|
80
78
|
from chia.util.keychain import Keychain
|
|
@@ -82,6 +80,7 @@ from chia.util.task_timing import main as task_instrumentation_main
|
|
|
82
80
|
from chia.util.task_timing import start_task_instrumentation, stop_task_instrumentation
|
|
83
81
|
from chia.wallet.wallet_node import WalletNode
|
|
84
82
|
from chia.wallet.wallet_rpc_client import WalletRpcClient
|
|
83
|
+
from chia.wallet.wallet_service import WalletService
|
|
85
84
|
|
|
86
85
|
# TODO: review how this is now after other imports and before some stdlib imports... :[
|
|
87
86
|
# Set spawn after stdlib imports, but before other imports
|
|
@@ -93,7 +92,7 @@ from pathlib import Path
|
|
|
93
92
|
from chia_rs.sized_ints import uint128
|
|
94
93
|
|
|
95
94
|
from chia._tests.environments.wallet import WalletEnvironment, WalletState, WalletTestFramework
|
|
96
|
-
from chia._tests.util.setup_nodes import
|
|
95
|
+
from chia._tests.util.setup_nodes import setup_farmer_solver_multi_harvester
|
|
97
96
|
from chia.full_node.full_node_rpc_client import FullNodeRpcClient
|
|
98
97
|
from chia.simulator.block_tools import BlockTools, create_block_tools_async, test_constants
|
|
99
98
|
from chia.simulator.keyring import TempKeyring
|
|
@@ -233,8 +232,8 @@ def blockchain_constants(consensus_mode: ConsensusMode) -> ConsensusConstants:
|
|
|
233
232
|
@pytest.fixture(scope="session", name="bt")
|
|
234
233
|
async def block_tools_fixture(get_keychain, blockchain_constants, anyio_backend) -> BlockTools:
|
|
235
234
|
# Note that this causes a lot of CPU and disk traffic - disk, DB, ports, process creation ...
|
|
236
|
-
|
|
237
|
-
return
|
|
235
|
+
shared_block_tools = await create_block_tools_async(constants=blockchain_constants, keychain=get_keychain)
|
|
236
|
+
return shared_block_tools
|
|
238
237
|
|
|
239
238
|
|
|
240
239
|
# if you have a system that has an unusual hostname for localhost and you want
|
|
@@ -790,7 +789,7 @@ async def three_nodes_two_wallets(blockchain_constants: ConsensusConstants):
|
|
|
790
789
|
@pytest.fixture(scope="function")
|
|
791
790
|
async def one_node(
|
|
792
791
|
blockchain_constants: ConsensusConstants,
|
|
793
|
-
) -> AsyncIterator[tuple[list[
|
|
792
|
+
) -> AsyncIterator[tuple[list[SimulatorFullNodeService], list[WalletService], BlockTools]]:
|
|
794
793
|
async with setup_simulators_and_wallets_service(1, 0, blockchain_constants) as _:
|
|
795
794
|
yield _
|
|
796
795
|
|
|
@@ -867,7 +866,7 @@ async def farmer_one_harvester_simulator_wallet(
|
|
|
867
866
|
]
|
|
868
867
|
]:
|
|
869
868
|
async with setup_simulators_and_wallets_service(1, 1, blockchain_constants) as (nodes, wallets, bt):
|
|
870
|
-
async with
|
|
869
|
+
async with setup_farmer_solver_multi_harvester(bt, 1, tmp_path, bt.constants, start_services=True) as (
|
|
871
870
|
harvester_services,
|
|
872
871
|
farmer_service,
|
|
873
872
|
_,
|
|
@@ -880,31 +879,54 @@ FarmerOneHarvester = tuple[list[HarvesterService], FarmerService, BlockTools]
|
|
|
880
879
|
|
|
881
880
|
@pytest.fixture(scope="function")
|
|
882
881
|
async def farmer_one_harvester(tmp_path: Path, get_b_tools: BlockTools) -> AsyncIterator[FarmerOneHarvester]:
|
|
883
|
-
async with
|
|
882
|
+
async with setup_farmer_solver_multi_harvester(
|
|
883
|
+
get_b_tools, 1, tmp_path, get_b_tools.constants, start_services=True
|
|
884
|
+
) as _:
|
|
884
885
|
yield _
|
|
885
886
|
|
|
886
887
|
|
|
888
|
+
FarmerOneHarvesterSolver = tuple[list[HarvesterService], FarmerService, SolverService, BlockTools]
|
|
889
|
+
|
|
890
|
+
|
|
891
|
+
@pytest.fixture(scope="function")
|
|
892
|
+
async def farmer_one_harvester_solver(
|
|
893
|
+
tmp_path: Path, get_b_tools: BlockTools
|
|
894
|
+
) -> AsyncIterator[FarmerOneHarvesterSolver]:
|
|
895
|
+
async with setup_solver(tmp_path / "solver", get_b_tools, get_b_tools.constants) as solver_service:
|
|
896
|
+
solver_peer = UnresolvedPeerInfo(get_b_tools.config["self_hostname"], solver_service._server.get_port())
|
|
897
|
+
async with setup_farmer_solver_multi_harvester(
|
|
898
|
+
get_b_tools, 1, tmp_path, get_b_tools.constants, start_services=True, solver_peer=solver_peer
|
|
899
|
+
) as (harvester_services, farmer_service, bt):
|
|
900
|
+
yield harvester_services, farmer_service, solver_service, bt
|
|
901
|
+
|
|
902
|
+
|
|
887
903
|
@pytest.fixture(scope="function")
|
|
888
904
|
async def farmer_one_harvester_not_started(
|
|
889
905
|
tmp_path: Path, get_b_tools: BlockTools
|
|
890
|
-
) -> AsyncIterator[tuple[list[
|
|
891
|
-
async with
|
|
906
|
+
) -> AsyncIterator[tuple[list[HarvesterService], FarmerService, BlockTools]]:
|
|
907
|
+
async with setup_farmer_solver_multi_harvester(
|
|
908
|
+
get_b_tools, 1, tmp_path, get_b_tools.constants, start_services=False
|
|
909
|
+
) as _:
|
|
892
910
|
yield _
|
|
893
911
|
|
|
894
912
|
|
|
895
913
|
@pytest.fixture(scope="function")
|
|
896
914
|
async def farmer_two_harvester_not_started(
|
|
897
915
|
tmp_path: Path, get_b_tools: BlockTools
|
|
898
|
-
) -> AsyncIterator[tuple[list[
|
|
899
|
-
async with
|
|
916
|
+
) -> AsyncIterator[tuple[list[HarvesterService], FarmerService, BlockTools]]:
|
|
917
|
+
async with setup_farmer_solver_multi_harvester(
|
|
918
|
+
get_b_tools, 2, tmp_path, get_b_tools.constants, start_services=False
|
|
919
|
+
) as _:
|
|
900
920
|
yield _
|
|
901
921
|
|
|
902
922
|
|
|
903
923
|
@pytest.fixture(scope="function")
|
|
904
924
|
async def farmer_three_harvester_not_started(
|
|
905
925
|
tmp_path: Path, get_b_tools: BlockTools
|
|
906
|
-
) -> AsyncIterator[tuple[list[
|
|
907
|
-
async with
|
|
926
|
+
) -> AsyncIterator[tuple[list[HarvesterService], FarmerService, BlockTools]]:
|
|
927
|
+
async with setup_farmer_solver_multi_harvester(
|
|
928
|
+
get_b_tools, 3, tmp_path, get_b_tools.constants, start_services=False
|
|
929
|
+
) as _:
|
|
908
930
|
yield _
|
|
909
931
|
|
|
910
932
|
|
|
@@ -1285,10 +1307,13 @@ async def farmer_harvester_2_simulators_zero_bits_plot_filter(
|
|
|
1285
1307
|
)
|
|
1286
1308
|
for index in range(len(bts))
|
|
1287
1309
|
]
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1310
|
+
async with setup_solver(tmp_path / "solver", bt, bt.constants) as solver_service:
|
|
1311
|
+
solver_peer = UnresolvedPeerInfo(bt.config["self_hostname"], solver_service._server.get_port())
|
|
1312
|
+
[harvester_service], farmer_service, _ = await async_exit_stack.enter_async_context(
|
|
1313
|
+
setup_farmer_solver_multi_harvester(
|
|
1314
|
+
bt, 1, tmp_path, bt.constants, start_services=True, solver_peer=solver_peer
|
|
1315
|
+
)
|
|
1316
|
+
)
|
|
1292
1317
|
|
|
1293
1318
|
yield farmer_service, harvester_service, simulators[0], simulators[1], bt
|
|
1294
1319
|
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from typing import Any
|
|
3
|
+
from typing import Any
|
|
4
4
|
|
|
5
5
|
import pytest
|
|
6
6
|
from chia_rs.sized_bytes import bytes32
|
|
7
7
|
from chia_rs.sized_ints import uint32
|
|
8
8
|
|
|
9
9
|
from chia.cmds.wallet_funcs import print_offer_summary
|
|
10
|
+
from chia.wallet.wallet_request_types import CATAssetIDToName, CATAssetIDToNameResponse
|
|
10
11
|
|
|
11
12
|
TEST_DUCKSAUCE_ASSET_ID = "1000000000000000000000000000000000000000000000000000000000000001"
|
|
12
13
|
TEST_CRUNCHBERRIES_ASSET_ID = "1000000000000000000000000000000000000000000000000000000000000002"
|
|
@@ -19,8 +20,8 @@ TEST_ASSET_ID_NAME_MAPPING: dict[bytes32, tuple[uint32, str]] = {
|
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
|
|
22
|
-
async def cat_name_resolver(
|
|
23
|
-
return TEST_ASSET_ID_NAME_MAPPING.get(asset_id)
|
|
23
|
+
async def cat_name_resolver(request: CATAssetIDToName) -> CATAssetIDToNameResponse:
|
|
24
|
+
return CATAssetIDToNameResponse(*TEST_ASSET_ID_NAME_MAPPING.get(request.asset_id, (None, None)))
|
|
24
25
|
|
|
25
26
|
|
|
26
27
|
@pytest.mark.anyio
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import pytest
|
|
3
4
|
from chia_rs import PlotSize
|
|
4
5
|
from chia_rs.sized_ints import uint8, uint16, uint32, uint64, uint128
|
|
5
6
|
from pytest import raises
|
|
@@ -7,7 +8,6 @@ from pytest import raises
|
|
|
7
8
|
from chia.consensus.default_constants import DEFAULT_CONSTANTS
|
|
8
9
|
from chia.consensus.pos_quality import _expected_plot_size
|
|
9
10
|
from chia.consensus.pot_iterations import (
|
|
10
|
-
PHASE_OUT_PERIOD,
|
|
11
11
|
calculate_ip_iters,
|
|
12
12
|
calculate_iterations_quality,
|
|
13
13
|
calculate_phase_out,
|
|
@@ -68,7 +68,7 @@ class TestPotIterations:
|
|
|
68
68
|
ip_iters = calculate_ip_iters(test_constants, ssi, uint8(13), required_iters)
|
|
69
69
|
assert ip_iters == sp_iters + test_constants.NUM_SP_INTERVALS_EXTRA * sp_interval_iters + required_iters
|
|
70
70
|
|
|
71
|
-
required_iters = uint64(
|
|
71
|
+
required_iters = uint64(ssi * 4 / 300)
|
|
72
72
|
ip_iters = calculate_ip_iters(test_constants, ssi, uint8(13), required_iters)
|
|
73
73
|
assert ip_iters == sp_iters + test_constants.NUM_SP_INTERVALS_EXTRA * sp_interval_iters + required_iters
|
|
74
74
|
assert sp_iters < ip_iters
|
|
@@ -84,65 +84,96 @@ class TestPotIterations:
|
|
|
84
84
|
assert ip_iters == (sp_iters + test_constants.NUM_SP_INTERVALS_EXTRA * sp_interval_iters + required_iters) % ssi
|
|
85
85
|
assert sp_iters > ip_iters
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
@pytest.mark.parametrize(
|
|
88
|
+
"height",
|
|
89
|
+
[
|
|
90
|
+
uint32(0),
|
|
91
|
+
test_constants.HARD_FORK2_HEIGHT - 1,
|
|
92
|
+
test_constants.HARD_FORK2_HEIGHT,
|
|
93
|
+
test_constants.HARD_FORK2_HEIGHT + test_constants.PLOT_V1_PHASE_OUT,
|
|
94
|
+
test_constants.HARD_FORK2_HEIGHT + test_constants.PLOT_V1_PHASE_OUT + 1,
|
|
95
|
+
],
|
|
96
|
+
)
|
|
97
|
+
def test_win_percentage(self, height: uint32):
|
|
88
98
|
"""
|
|
89
99
|
Tests that the percentage of blocks won is proportional to the space of each farmer,
|
|
90
100
|
with the assumption that all farmers have access to the same VDF speed.
|
|
91
101
|
"""
|
|
92
102
|
farmer_ks = {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
103
|
+
PlotSize.make_v1(32): 100,
|
|
104
|
+
PlotSize.make_v1(33): 100,
|
|
105
|
+
PlotSize.make_v1(34): 100,
|
|
106
|
+
PlotSize.make_v1(35): 100,
|
|
107
|
+
PlotSize.make_v1(36): 100,
|
|
108
|
+
PlotSize.make_v2(28): 200,
|
|
109
|
+
PlotSize.make_v2(30): 200,
|
|
110
|
+
PlotSize.make_v2(32): 200,
|
|
98
111
|
}
|
|
99
|
-
farmer_space = {k: _expected_plot_size(
|
|
100
|
-
total_space = sum(farmer_space.values())
|
|
101
|
-
percentage_space = {k: float(sp / total_space) for k, sp in farmer_space.items()}
|
|
112
|
+
farmer_space = {k: _expected_plot_size(k) * count for k, count in farmer_ks.items()}
|
|
102
113
|
wins = {k: 0 for k in farmer_ks.keys()}
|
|
114
|
+
|
|
115
|
+
constants = test_constants.replace(DIFFICULTY_CONSTANT_FACTOR=uint128(2**25))
|
|
103
116
|
total_slots = 50
|
|
104
117
|
num_sps = 16
|
|
105
|
-
|
|
118
|
+
sub_slot_iters = uint64(100000000)
|
|
119
|
+
sp_interval_iters = calculate_sp_interval_iters(constants, sub_slot_iters)
|
|
106
120
|
difficulty = uint64(500000000000)
|
|
107
|
-
constants = test_constants.replace(DIFFICULTY_CONSTANT_FACTOR=uint128(2**25))
|
|
108
121
|
for slot_index in range(total_slots):
|
|
109
122
|
total_wins_in_slot = 0
|
|
110
123
|
for sp_index in range(num_sps):
|
|
111
124
|
sp_hash = std_hash(slot_index.to_bytes(4, "big") + sp_index.to_bytes(4, "big"))
|
|
112
125
|
for k, count in farmer_ks.items():
|
|
113
126
|
for farmer_index in range(count):
|
|
114
|
-
|
|
115
|
-
|
|
127
|
+
plot_k_val = k.size_v1 if k.size_v2 is None else k.size_v2
|
|
128
|
+
assert plot_k_val is not None
|
|
129
|
+
quality = std_hash(
|
|
130
|
+
slot_index.to_bytes(4, "big") + plot_k_val.to_bytes(1, "big") + bytes(farmer_index)
|
|
131
|
+
)
|
|
116
132
|
required_iters = calculate_iterations_quality(
|
|
117
|
-
constants, quality,
|
|
133
|
+
constants, quality, k, difficulty, sp_hash, sub_slot_iters, height
|
|
118
134
|
)
|
|
119
135
|
if required_iters < sp_interval_iters:
|
|
120
136
|
wins[k] += 1
|
|
121
137
|
total_wins_in_slot += 1
|
|
122
138
|
|
|
139
|
+
if height < test_constants.HARD_FORK2_HEIGHT + test_constants.PLOT_V1_PHASE_OUT:
|
|
140
|
+
total_space = sum(farmer_space.values())
|
|
141
|
+
percentage_space = {k: float(sp / total_space) for k, sp in farmer_space.items()}
|
|
142
|
+
else:
|
|
143
|
+
# after the phase-out, v1 plots don't count
|
|
144
|
+
# all wins are by v2 plots
|
|
145
|
+
total_space = sum(0 if k.size_v2 is None else sp for k, sp in farmer_space.items())
|
|
146
|
+
percentage_space = {
|
|
147
|
+
k: 0.0 if k.size_v2 is None else float(sp / total_space) for k, sp in farmer_space.items()
|
|
148
|
+
}
|
|
149
|
+
|
|
123
150
|
win_percentage = {k: wins[k] / sum(wins.values()) for k in farmer_ks.keys()}
|
|
124
151
|
for k in farmer_ks.keys():
|
|
125
152
|
# Win rate is proportional to percentage of space
|
|
126
153
|
assert abs(win_percentage[k] - percentage_space[k]) < 0.01
|
|
127
154
|
|
|
128
|
-
|
|
155
|
+
@pytest.mark.parametrize("sp_interval", [uint64(6250000000), uint64(1), uint64(2), uint64(10), uint64(10000000000)])
|
|
156
|
+
def test_calculate_phase_out(self, sp_interval: uint64):
|
|
129
157
|
constants = test_constants
|
|
130
|
-
sub_slot_iters = uint64(
|
|
131
|
-
sp_interval = calculate_sp_interval_iters(constants, sub_slot_iters)
|
|
158
|
+
sub_slot_iters = uint64(sp_interval * constants.NUM_SPS_SUB_SLOT)
|
|
132
159
|
# Before or at HARD_FORK2_HEIGHT, should return 0
|
|
133
|
-
assert calculate_phase_out(constants, sub_slot_iters, constants.HARD_FORK2_HEIGHT - 1) == 0
|
|
160
|
+
assert calculate_phase_out(constants, sub_slot_iters, uint32(constants.HARD_FORK2_HEIGHT - 1)) == 0
|
|
134
161
|
assert calculate_phase_out(constants, sub_slot_iters, constants.HARD_FORK2_HEIGHT) == 0
|
|
135
162
|
# after HARD_FORK2_HEIGHT, should return value = delta/phase_out_period * sp_interval
|
|
136
163
|
assert (
|
|
137
|
-
calculate_phase_out(constants, sub_slot_iters, constants.HARD_FORK2_HEIGHT + 1)
|
|
138
|
-
== sp_interval //
|
|
164
|
+
calculate_phase_out(constants, sub_slot_iters, uint32(constants.HARD_FORK2_HEIGHT + 1))
|
|
165
|
+
== sp_interval // constants.PLOT_V1_PHASE_OUT
|
|
139
166
|
)
|
|
140
167
|
assert (
|
|
141
|
-
calculate_phase_out(
|
|
168
|
+
calculate_phase_out(
|
|
169
|
+
constants, sub_slot_iters, uint32(constants.HARD_FORK2_HEIGHT + constants.PLOT_V1_PHASE_OUT // 2)
|
|
170
|
+
)
|
|
142
171
|
== sp_interval // 2
|
|
143
172
|
)
|
|
144
173
|
assert (
|
|
145
|
-
calculate_phase_out(
|
|
174
|
+
calculate_phase_out(
|
|
175
|
+
constants, sub_slot_iters, uint32(constants.HARD_FORK2_HEIGHT + constants.PLOT_V1_PHASE_OUT)
|
|
176
|
+
)
|
|
146
177
|
== sp_interval
|
|
147
178
|
)
|
|
148
179
|
|
|
@@ -150,3 +181,19 @@ class TestPotIterations:
|
|
|
150
181
|
max_uint32_height = uint32(0xFFFFFFFF)
|
|
151
182
|
result_max_height = calculate_phase_out(constants, sub_slot_iters, max_uint32_height)
|
|
152
183
|
assert result_max_height == sp_interval # Should cap at sp_interval
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
def test_expected_plot_size_v1() -> None:
|
|
187
|
+
last_size = 2_400_000
|
|
188
|
+
for k in range(18, 50):
|
|
189
|
+
plot_size = _expected_plot_size(PlotSize.make_v1(k))
|
|
190
|
+
assert plot_size > last_size * 2
|
|
191
|
+
last_size = plot_size
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
def test_expected_plot_size_v2() -> None:
|
|
195
|
+
last_size = 100_000
|
|
196
|
+
for k in range(16, 32, 2):
|
|
197
|
+
plot_size = _expected_plot_size(PlotSize.make_v2(k))
|
|
198
|
+
assert plot_size > last_size * 2
|
|
199
|
+
last_size = plot_size
|
|
@@ -5,15 +5,17 @@ from dataclasses import dataclass
|
|
|
5
5
|
from typing import Optional
|
|
6
6
|
|
|
7
7
|
import pytest
|
|
8
|
-
from chia_rs import G1Element, PlotSize
|
|
8
|
+
from chia_rs import G1Element, PlotSize
|
|
9
9
|
from chia_rs.sized_bytes import bytes32, bytes48
|
|
10
10
|
from chia_rs.sized_ints import uint8, uint32
|
|
11
11
|
|
|
12
12
|
from chia._tests.util.misc import Marks, datacases
|
|
13
13
|
from chia.consensus.default_constants import DEFAULT_CONSTANTS
|
|
14
14
|
from chia.types.blockchain_format.proof_of_space import (
|
|
15
|
-
calculate_plot_difficulty,
|
|
16
15
|
calculate_prefix_bits,
|
|
16
|
+
calculate_required_plot_strength,
|
|
17
|
+
check_plot_size,
|
|
18
|
+
make_pos,
|
|
17
19
|
passes_plot_filter,
|
|
18
20
|
verify_and_get_quality_string,
|
|
19
21
|
)
|
|
@@ -23,7 +25,7 @@ from chia.types.blockchain_format.proof_of_space import (
|
|
|
23
25
|
class ProofOfSpaceCase:
|
|
24
26
|
id: str
|
|
25
27
|
pos_challenge: bytes32
|
|
26
|
-
plot_size:
|
|
28
|
+
plot_size: PlotSize
|
|
27
29
|
plot_public_key: G1Element
|
|
28
30
|
pool_public_key: Optional[G1Element] = None
|
|
29
31
|
pool_contract_puzzle_hash: Optional[bytes32] = None
|
|
@@ -45,14 +47,14 @@ def b32(key: str) -> bytes32:
|
|
|
45
47
|
ProofOfSpaceCase(
|
|
46
48
|
id="Neither pool public key nor pool contract puzzle hash",
|
|
47
49
|
pos_challenge=bytes32(b"1" * 32),
|
|
48
|
-
plot_size=
|
|
50
|
+
plot_size=PlotSize.make_v1(0),
|
|
49
51
|
plot_public_key=G1Element(),
|
|
50
52
|
expected_error="Expected pool public key or pool contract puzzle hash but got neither",
|
|
51
53
|
),
|
|
52
54
|
ProofOfSpaceCase(
|
|
53
55
|
id="Both pool public key and pool contract puzzle hash",
|
|
54
56
|
pos_challenge=bytes32(b"1" * 32),
|
|
55
|
-
plot_size=
|
|
57
|
+
plot_size=PlotSize.make_v1(0),
|
|
56
58
|
plot_public_key=G1Element(),
|
|
57
59
|
pool_public_key=G1Element(),
|
|
58
60
|
pool_contract_puzzle_hash=bytes32(b"1" * 32),
|
|
@@ -61,7 +63,7 @@ def b32(key: str) -> bytes32:
|
|
|
61
63
|
ProofOfSpaceCase(
|
|
62
64
|
id="Lower than minimum plot size",
|
|
63
65
|
pos_challenge=bytes32(b"1" * 32),
|
|
64
|
-
plot_size=
|
|
66
|
+
plot_size=PlotSize.make_v1(31),
|
|
65
67
|
plot_public_key=G1Element(),
|
|
66
68
|
pool_public_key=G1Element(),
|
|
67
69
|
expected_error="Plot size is lower than the minimum",
|
|
@@ -69,7 +71,7 @@ def b32(key: str) -> bytes32:
|
|
|
69
71
|
ProofOfSpaceCase(
|
|
70
72
|
id="Higher than maximum plot size",
|
|
71
73
|
pos_challenge=bytes32(b"1" * 32),
|
|
72
|
-
plot_size=
|
|
74
|
+
plot_size=PlotSize.make_v1(51),
|
|
73
75
|
plot_public_key=G1Element(),
|
|
74
76
|
pool_public_key=G1Element(),
|
|
75
77
|
expected_error="Plot size is higher than the maximum",
|
|
@@ -77,7 +79,7 @@ def b32(key: str) -> bytes32:
|
|
|
77
79
|
ProofOfSpaceCase(
|
|
78
80
|
id="Different challenge",
|
|
79
81
|
pos_challenge=bytes32(b"1" * 32),
|
|
80
|
-
plot_size=
|
|
82
|
+
plot_size=PlotSize.make_v1(42),
|
|
81
83
|
pool_public_key=G1Element(),
|
|
82
84
|
plot_public_key=G1Element(),
|
|
83
85
|
expected_error="Calculated pos challenge doesn't match the provided one",
|
|
@@ -85,7 +87,7 @@ def b32(key: str) -> bytes32:
|
|
|
85
87
|
ProofOfSpaceCase(
|
|
86
88
|
id="Not passing the plot filter with size 9",
|
|
87
89
|
pos_challenge=b32("08b23cc2844dfb92d2eedaa705a1ce665d571ee753bd81cbb67b92caa6d34722"),
|
|
88
|
-
plot_size=
|
|
90
|
+
plot_size=PlotSize.make_v1(42),
|
|
89
91
|
pool_public_key=g1(
|
|
90
92
|
"b6449c2c68df97c19e884427e42ee7350982d4020571ead08732615ff39bd216bfd630b6460784982bec98b49fea79d0"
|
|
91
93
|
),
|
|
@@ -98,7 +100,7 @@ def b32(key: str) -> bytes32:
|
|
|
98
100
|
ProofOfSpaceCase(
|
|
99
101
|
id="Passing the plot filter with size 8",
|
|
100
102
|
pos_challenge=b32("08b23cc2844dfb92d2eedaa705a1ce665d571ee753bd81cbb67b92caa6d34722"),
|
|
101
|
-
plot_size=
|
|
103
|
+
plot_size=PlotSize.make_v1(42),
|
|
102
104
|
pool_public_key=g1(
|
|
103
105
|
"b6449c2c68df97c19e884427e42ee7350982d4020571ead08732615ff39bd216bfd630b6460784982bec98b49fea79d0"
|
|
104
106
|
),
|
|
@@ -110,7 +112,7 @@ def b32(key: str) -> bytes32:
|
|
|
110
112
|
ProofOfSpaceCase(
|
|
111
113
|
id="v2 plot size 0",
|
|
112
114
|
pos_challenge=bytes32(b"1" * 32),
|
|
113
|
-
plot_size=
|
|
115
|
+
plot_size=PlotSize.make_v2(0),
|
|
114
116
|
plot_public_key=G1Element(),
|
|
115
117
|
pool_public_key=G1Element(),
|
|
116
118
|
expected_error="Plot size is lower than the minimum",
|
|
@@ -118,7 +120,7 @@ def b32(key: str) -> bytes32:
|
|
|
118
120
|
ProofOfSpaceCase(
|
|
119
121
|
id="v2 plot size 34",
|
|
120
122
|
pos_challenge=bytes32(b"1" * 32),
|
|
121
|
-
plot_size=
|
|
123
|
+
plot_size=PlotSize.make_v2(34),
|
|
122
124
|
plot_public_key=G1Element(),
|
|
123
125
|
pool_public_key=G1Element(),
|
|
124
126
|
expected_error="Plot size is higher than the maximum",
|
|
@@ -126,7 +128,7 @@ def b32(key: str) -> bytes32:
|
|
|
126
128
|
ProofOfSpaceCase(
|
|
127
129
|
id="Not passing the plot filter v2",
|
|
128
130
|
pos_challenge=b32("3d29ea79d19b3f7e99ebf764ae53697cbe143603909873946af6ab1ece606861"),
|
|
129
|
-
plot_size=
|
|
131
|
+
plot_size=PlotSize.make_v2(32),
|
|
130
132
|
pool_public_key=g1(
|
|
131
133
|
"b6449c2c68df97c19e884427e42ee7350982d4020571ead08732615ff39bd216bfd630b6460784982bec98b49fea79d0"
|
|
132
134
|
),
|
|
@@ -137,7 +139,7 @@ def b32(key: str) -> bytes32:
|
|
|
137
139
|
),
|
|
138
140
|
)
|
|
139
141
|
def test_verify_and_get_quality_string(caplog: pytest.LogCaptureFixture, case: ProofOfSpaceCase) -> None:
|
|
140
|
-
pos =
|
|
142
|
+
pos = make_pos(
|
|
141
143
|
challenge=case.pos_challenge,
|
|
142
144
|
pool_public_key=case.pool_public_key,
|
|
143
145
|
pool_contract_puzzle_hash=case.pool_contract_puzzle_hash,
|
|
@@ -159,7 +161,7 @@ def test_verify_and_get_quality_string(caplog: pytest.LogCaptureFixture, case: P
|
|
|
159
161
|
@datacases(
|
|
160
162
|
ProofOfSpaceCase(
|
|
161
163
|
id="v2 plot are not implemented",
|
|
162
|
-
plot_size=
|
|
164
|
+
plot_size=PlotSize.make_v2(30),
|
|
163
165
|
pos_challenge=b32("47deb938e145d25d7b3b3c85ca9e3972b76c01aeeb78a02fe5d3b040d282317e"),
|
|
164
166
|
plot_public_key=g1(
|
|
165
167
|
"afa3aaf09c03885154be49216ee7fb2e4581b9c4a4d7e9cc402e27280bf0cfdbdf1b9ba674e301fd1d1450234b3b1868"
|
|
@@ -171,7 +173,7 @@ def test_verify_and_get_quality_string(caplog: pytest.LogCaptureFixture, case: P
|
|
|
171
173
|
),
|
|
172
174
|
)
|
|
173
175
|
def test_verify_and_get_quality_string_v2(caplog: pytest.LogCaptureFixture, case: ProofOfSpaceCase) -> None:
|
|
174
|
-
pos =
|
|
176
|
+
pos = make_pos(
|
|
175
177
|
challenge=case.pos_challenge,
|
|
176
178
|
pool_public_key=case.pool_public_key,
|
|
177
179
|
pool_contract_puzzle_hash=case.pool_contract_puzzle_hash,
|
|
@@ -199,26 +201,54 @@ def test_verify_and_get_quality_string_v2(caplog: pytest.LogCaptureFixture, case
|
|
|
199
201
|
|
|
200
202
|
|
|
201
203
|
@pytest.mark.parametrize(
|
|
202
|
-
"height,
|
|
204
|
+
"height, strength",
|
|
203
205
|
[
|
|
204
206
|
(0, 2),
|
|
205
207
|
(DEFAULT_CONSTANTS.HARD_FORK_HEIGHT, 2),
|
|
206
208
|
(DEFAULT_CONSTANTS.HARD_FORK2_HEIGHT, 2),
|
|
207
|
-
(DEFAULT_CONSTANTS.
|
|
208
|
-
(DEFAULT_CONSTANTS.
|
|
209
|
-
(DEFAULT_CONSTANTS.
|
|
210
|
-
(DEFAULT_CONSTANTS.
|
|
211
|
-
(DEFAULT_CONSTANTS.
|
|
212
|
-
(DEFAULT_CONSTANTS.
|
|
213
|
-
(DEFAULT_CONSTANTS.
|
|
214
|
-
(DEFAULT_CONSTANTS.
|
|
215
|
-
(DEFAULT_CONSTANTS.
|
|
216
|
-
(DEFAULT_CONSTANTS.
|
|
217
|
-
(DEFAULT_CONSTANTS.
|
|
209
|
+
(DEFAULT_CONSTANTS.PLOT_STRENGTH_4_HEIGHT - 1, 2),
|
|
210
|
+
(DEFAULT_CONSTANTS.PLOT_STRENGTH_4_HEIGHT, 4),
|
|
211
|
+
(DEFAULT_CONSTANTS.PLOT_STRENGTH_5_HEIGHT - 1, 4),
|
|
212
|
+
(DEFAULT_CONSTANTS.PLOT_STRENGTH_5_HEIGHT, 5),
|
|
213
|
+
(DEFAULT_CONSTANTS.PLOT_STRENGTH_6_HEIGHT - 1, 5),
|
|
214
|
+
(DEFAULT_CONSTANTS.PLOT_STRENGTH_6_HEIGHT, 6),
|
|
215
|
+
(DEFAULT_CONSTANTS.PLOT_STRENGTH_7_HEIGHT - 1, 6),
|
|
216
|
+
(DEFAULT_CONSTANTS.PLOT_STRENGTH_7_HEIGHT, 7),
|
|
217
|
+
(DEFAULT_CONSTANTS.PLOT_STRENGTH_8_HEIGHT - 1, 7),
|
|
218
|
+
(DEFAULT_CONSTANTS.PLOT_STRENGTH_8_HEIGHT, 8),
|
|
219
|
+
(DEFAULT_CONSTANTS.PLOT_STRENGTH_8_HEIGHT + 1000000, 8),
|
|
218
220
|
],
|
|
219
221
|
)
|
|
220
|
-
def
|
|
221
|
-
assert
|
|
222
|
+
def test_calculate_plot_strength(height: uint32, strength: uint8) -> None:
|
|
223
|
+
assert calculate_required_plot_strength(DEFAULT_CONSTANTS, height) == strength
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
@pytest.mark.parametrize(
|
|
227
|
+
"size, valid",
|
|
228
|
+
[
|
|
229
|
+
(PlotSize.make_v1(31), False), # too small
|
|
230
|
+
(PlotSize.make_v1(32), True),
|
|
231
|
+
(PlotSize.make_v1(33), True),
|
|
232
|
+
(PlotSize.make_v1(34), True),
|
|
233
|
+
(PlotSize.make_v1(35), True),
|
|
234
|
+
(PlotSize.make_v1(36), True),
|
|
235
|
+
(PlotSize.make_v1(37), True),
|
|
236
|
+
(PlotSize.make_v1(49), True),
|
|
237
|
+
(PlotSize.make_v1(50), True),
|
|
238
|
+
(PlotSize.make_v1(51), False), # too large
|
|
239
|
+
(PlotSize.make_v2(26), False), # too small
|
|
240
|
+
(PlotSize.make_v2(27), False), # too small (and odd)
|
|
241
|
+
(PlotSize.make_v2(28), True),
|
|
242
|
+
(PlotSize.make_v2(29), False), # odd
|
|
243
|
+
(PlotSize.make_v2(30), True),
|
|
244
|
+
(PlotSize.make_v2(31), False), # odd
|
|
245
|
+
(PlotSize.make_v2(32), True),
|
|
246
|
+
(PlotSize.make_v2(33), False), # too large (and odd)
|
|
247
|
+
(PlotSize.make_v2(34), False), # too large
|
|
248
|
+
],
|
|
249
|
+
)
|
|
250
|
+
def test_check_plot_size(size: PlotSize, valid: bool) -> None:
|
|
251
|
+
assert check_plot_size(DEFAULT_CONSTANTS, size) == valid
|
|
222
252
|
|
|
223
253
|
|
|
224
254
|
class TestProofOfSpace:
|
|
@@ -28,10 +28,7 @@ class TestStructStream(unittest.TestCase):
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
def rand_hash(rng: random.Random) -> bytes32:
|
|
31
|
-
|
|
32
|
-
for i in range(32):
|
|
33
|
-
ret[i] = rng.getrandbits(8)
|
|
34
|
-
return bytes32(ret)
|
|
31
|
+
return bytes32.random(r=rng)
|
|
35
32
|
|
|
36
33
|
|
|
37
34
|
def create_spends(num: int) -> tuple[list[CoinSpend], list[Coin]]:
|
|
@@ -61,8 +61,13 @@ def store_id_fixture() -> bytes32:
|
|
|
61
61
|
|
|
62
62
|
|
|
63
63
|
@pytest.fixture(name="raw_data_store", scope="function")
|
|
64
|
-
async def raw_data_store_fixture(database_uri: str) -> AsyncIterable[DataStore]:
|
|
65
|
-
async with DataStore.managed(
|
|
64
|
+
async def raw_data_store_fixture(database_uri: str, tmp_path: pathlib.Path) -> AsyncIterable[DataStore]:
|
|
65
|
+
async with DataStore.managed(
|
|
66
|
+
database=database_uri,
|
|
67
|
+
uri=True,
|
|
68
|
+
merkle_blobs_path=tmp_path.joinpath("merkle-blobs"),
|
|
69
|
+
key_value_blobs_path=tmp_path.joinpath("key-value-blobs"),
|
|
70
|
+
) as store:
|
|
66
71
|
yield store
|
|
67
72
|
|
|
68
73
|
|
|
File without changes
|