* Start block body tests
* More tests
* More tests
* Improvements and security fixes to block body validation
* Revert bad test changes
* Fix check for ref list size
* Change input to ROM to `(coin-solution-inputs . extras)`.
* Add `deserializer` to `generator_for_single_coin`.
* Fix last test.
* ROM now outputs `(coin-spends . block-level-extras)`
* squash
* rebase cleanup
* cost
* Combine adam's and straya's PRs
* Fix cost test
* Fix another test
* Improve safety in reorgs
* Improve wallet in reorgs
* Improve wallet in reorgs
* Bug in reorg handling
* Bug in reorg handling, and fix test
* Band aid
* Comment out to pass test
* Comment out test
* rebase clean
* USe a list of reference generators
* create
* Integrate Block Compression
* Fix generator argument creation
* improve test
* update block tools
* Separate CompressorArg and GeneratorArg, improve type hints
* First crack at `list_to_tree`.
* Integrate generator arguments as tree
* End to end test for generators
* Fix linting issues, hook up things, and add a test
* tidy GeneratorArg test
* Get compression and decompression working in full node
* Fix fetching block generator from DB in multiprocess
* Fix edge case in reorgs, test many combinations of reorgs
* reduce max number of generators refs allowed in a block
* Apply Straya's fix for calculating the end index for generator args
* typos
* Run test_block_compression for a transaction large enough to force multiple input coins in the transaction
* Update generator compression tests for treearg change and decompressor offset args fix
* Fix merge conflict
* Fix test
* Fix full node tests
* Don't make full blocks
* fix lint
Co-authored-by: Yostra <straya@chia.net>
Co-authored-by: Adam Kelly <aqk@aqk.im>
Co-authored-by: Richard Kiss <him@richardkiss.com>
Require that a conflicting SpendBundle must not only have higher fee per
cost, but also increase the total fee by at least 0.00001 XCH and spend
all coins that were spent in the set of conflicting SpendBundles.
Refactor and update tests of conflicting spends (aka double spends) in
mempool.
Co-authored-by: Rostislav <rostislav@users.noreply.github.com>
* deleted blockchain_check_conditions and added optional timestamp to mempool_check_conditions
* removed unnecessary code
* change back to < for block height
* time now passes on equal to condition value
* Add test for relative seconds
* rebased on top of main
* Renamed AGG_SIG to AGG_SIG_UNSAFE
Renamed height and time conditions
Changed some demo p2 puzzles to use AGG_SIG_ME
* fix merge on cost_calculator
* update hex and sha256tree of p2_delegated_conditions
* fix condition name in rl clvm
* updated the innerpuz sha256tree after careful inspection
* update cost and max cost according to new plan
of even split between (1) generator program size (2) generator program CPU and
memory costs (3) CREATE_COIN conditions for and archetype block with 1000
vanilla transactions, 2 inputs and 2 outputs each.
update costs of conditions to use the same unit (as CLVM). Remove CLVM_COST_RATIO_CONSTANT
Add COST_PER_BYTE constant, defining the cost for each byte of generator program.
* bump clvm and clvm_rs versions
* fix typo in setup.py
* Specified two types of create_announcement
* Fix create_announce_with_puzhash in specific situation
* Removed unnecessary announcement functionality from a bunch of place
* Added tests for puzzle announcement and wallet features
* fix tests/clvm/coin_store.py to use new announcements
* fix test_blockchain_transactions
* update test_blockchain_transactions to use real names
* remove lingering ConditionVarPair
* Fix another lignering CVP issue
* fix broken test imports
* fix puzzle announcement test
* change announcement_names to set and rename some functions for clarity
* Rename conditions for consistency
* typing and typo fixes
* fix name conflict in test
* fix test coin_store to use sets
* renumber opcode
* force recompile and small fixes for new conditions numberings
* add sha256tree files for updated hex files
* Start aggsig me
* Pass in genesis challenge
* Update DID, and remove useless functions from coinbase.py
* Unused imports
* Revert GUI
* Use a different constant so forks of chia can easily change it
* Remove overflow from list, and remove useless call to handle_eos
* Unindent
* Changes to mempool
* tests
* progress on tests
* Add tests for new mempool
* Fix lint and revert streamable changes
* Improve logging
* Test level warning
* Fix test
* Increase mempool size to 150x
* Improve performance of streamable
* __annotations__ instead of get_type_hints
* Fix overly strict type checker
* Lints and fix test
* Lint
* Adds support for empty streamables
* Use different strategy to fix lint and support empty Streamables
* Test for empty streamable
* Changelog
* lock for all writes
* use async with where convinant
* wrapper
* more
* lint
* update wallet
* rl wallet
* indentation
* fix tests
* bad path merged into main
* wallet lock
* refacoted by mistake
* re-raise
* memory/disk inconsistency
* more inconsitency
* asyncio.cancelled is baseexception in 3.8 and 3.9
* rebase DID off main
* fix indentation and imports
* lint fixes
* fix test_compilation paths for new puzzles
* added _init__.py for did_wallet
* mypy typing fixes
* included did_wallet in setup.py module list
* stored pubkey & puzhash so that recovery_spend can choose not take them
* black missing comma
* get correct seed from cache mid sync
* upgrade test
* test
* fix regression ses at tip height, add to test
* fix condition for overflow challenge block
* fix condition for overflow challenge block
* add announcement_names function and only return names to mempool check
* added test of announcement message is ()
* neater implementation of announcement_names in condition_tools
* announcements got from NPC list instead of re-running spendbundle
* clean up some code formatting
* remove unused import
* Initial commit.
* Try sanitize_weight_proof_only.
* Use challenge blocks.
* Try spawn compact task only in simulation test.
* Small rewrite.
* Typo.
* Use default sanitize_wp_only if not present in config.
* util|test: Add misc.py with format_minutes as first method
Format `minutes` into a string with the format:
`unit` and `sub-unit`
where `unit` and `sub-unit` can be:
- years (`unit` only)
- months
- weeks
- days
- hours
- minutes
* cmds: Use `format_minutes` in farm_funcs.summary
* minimun for refs
* Commit to generator reference list value in the foliage
* missing args
* Insert generator references hash in foliage
* add comma.
* Add 3 commas for linter
* lint: commas
* kick the tests to run again
* 23
Co-authored-by: Adam Kelly <aqk@aqk.im>
* change to coin ID calculation
* Generator_for_single_coin uses coin info to generate coin IDs live
* update sha256tree of generator for single coin
* Update changelog for more stringent coin ID calculation
Co-authored-by: matt <matt@chia.net>
Co-authored-by: Adam Kelly <aqk@aqk.im>
* Start work on timelord fixes
* Send correct peak to timelords in case of error
* Don't change cost
* Only re-send peak to the bad timelord, and fix test
* don't use gen challenge
* service wait for gen
* FullNode, Timelord wait
* Don't disconnect if receiving disconnected VDF
* Fix test
* api for ui, start wallet but delay wallet_blockchain init
* rebase cleanup
Co-authored-by: Mariano <sorgente711@gmail.com>
* added chialisp deserialisation puzzle
* Update clvm-deserialization-in-chialisp. Add test
* added new test_chialisp_deserialisation tests
* fix tests
* Reduce accepted atom size to 1MB during ChiaLisp native deserialization
* add lower_level generator
updates to python_lowerlevel
* add black formatting to lowerlevel
* fix puzzles references
* lowlevel generator improvement
lint fixes
* chialisp.py remove git ditritus
* pass the second arg to the block_program in low level generator
* use slightly more optimised string for lower level generator
* Restore cc.clvm to f79152d1ab
* Adjust compilation sanity checks - remove generator.clvm, add chialisp_deserialisation.clvm
* Update tests for building clvm assembly from python
* Adjust sha256tree commitments for puzzles
* black formatting for lint
* add #noqas to long hexstrings
Co-authored-by: matt <matt@chia.net>
Co-authored-by: Adam Kelly <aqk@aqk.im>
* Migrate to testnet. increase weight proof recent blocks, and increase temp RAM
* Remove unnecessary logic, and make number of blocks sent safer
* Revert block validation change
* Revert changes
* revert failed test
* Reduce max k
1. The formula for computing iterations is simplified, so that only one division is necessary, and inverting the (1-x) into just x.
2. There are new timestamp rules. A block N must have a greater timestamp than block N-1. Also, a block's timestamp cannot be more than 5 minutes in the future.
3. A List[Tuple[uint16, str]] is added to the handshake. These are the capabilities that the node supports, to add new features to the protocol.
4. The message_id is now before the data in each message.
* Bump clvm versions and replace `((c P A))` with `(a P A)`. Again.
* Modernize some clvm.
* Fix some comments and naming in `cc.clvm`.
* Prohibit `CREATE_ANNOUNCEMENT` in inner puzzle.
* fix cc.clvm
initial commit for innerpuz announcement test
Co-authored-by: matt <matt@chia.net>
* Initial commit weight proof bluebox.
* More verification, fix linting.
* Checkpoint testing.
* Checkpoint verify compact proofs.
* First attempt already seen compact proofs.
* Try bigger timeouts.
* Try passing first without ICC EOS.
* Try to uniformly sanitize by field_vdf.
* Try to fix vdf.py
* Temporary change: check if simulation is slow or stalled.
* Try fixing VDFProof erros in tests.
* Checkpoint: address some comments.
* Checkpoint is_fully_compactified.
* First attempt compact blocks fixture.
* Add tests.
* Test simulation should eventually pass.
* Test full node store passing.
* Use the proper fixture.
* Try lighter test_simulation.
* Bump chiavdf, use correct fixture db, try test cache.
* Update fixtures.py
* Try bigger timeouts.
* First attempt split tests.
* Rename workflow files.
* Relax test simulation since it's still failing.
* Update test cache.
* rpc get network settings
* breakpoints
* don't log canceled
* fix test coin store
* cancel task on exit
* use network prefix for prefarm
* rebase and change network type
* network type
* missing config
* add timeout
* Add checks for blockchain program generation
This is written in a verbose style for better error messages.
Note that src/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.clvm is temporarily moved aside, until it compiles to our intended bytecode.
* Remove CI clvm compilation check in favor of pytest check
* improve test failure message
* Enable clvm tests
* Formatting
Co-authored-by: Adam Kelly <aqk@aqk.im>