Commit Graph

115 Commits

Author SHA1 Message Date
Richard Kiss 5c12d4e54a Add singleton lifecycle tests. 2021-05-26 00:16:26 -07:00
Mariano Sorgente 88310d6142
Mempool sorting and accept reverted pending transactions (#3683)
* Sort by fee/cost, and fix pending tx issue in reorgs

* Fix test name

* Bring the seen list size back to normal.
2021-05-04 11:21:27 -07:00
Richard Kiss a7f996b4dc
Tests skipping mempool (#3065)
* Avoid importing `test_constants` as it takes a long time.

* Some new tests that circumvents mempool.

* Fix lint problems.
2021-04-30 10:23:45 -07:00
Mariano Sorgente 621c13c249
Improve safety of coin store (#2984)
* Improve safety of coin store

* Add test for exception

* Fix issue with fork_point_with_peak
2021-04-28 15:27:56 -04:00
Mariano Sorgente 8aed3645be
1,2,3 mojo attack prevention (#3017) 2021-04-28 10:52:22 -07:00
Almog De Paz eae1cb6220
check summaries on long sync (#2894)
* check summaries against wp on long sync

* lint

* move summary check to receive_block

* lint

* lint

* ban peer if bad response during batch sync

* fix typo
2021-04-28 10:50:16 -07:00
Yostra 4ef3777119
Avoid multiple requests (#2860)
* avoid dupe requests

* move to store, clean tasks

* linting

* limit

* 10peers,5sec
2021-04-28 02:58:45 -04:00
Almog De Paz 50164d16d3
Farm while syncing (#2195)
* add long sync lock

* lint

* test getting new high peak while synced

* lint

* fix logs
2021-04-27 11:05:16 -07:00
Mariano Sorgente cdf9e1aaaa
Add tests for LRU and coin store (#2925) 2021-04-27 10:58:59 -07:00
Yostra 4c98dd2b71
decorator (#2221) 2021-04-26 23:21:04 -07:00
Rostislav 33c4529f61 Add extra tests for replacing conflicting SpendBundles in mempool 2021-04-22 10:45:22 -07:00
Mariano Sorgente b37305e85e
Fix adding double signage points (#2340) 2021-04-21 22:43:00 -07:00
Yostra 328e4cd276
Blockchain timestamps fix (#2302)
* incomplete push for debugging

* block timestamp in mempool

* rename

* farm tx block

Co-authored-by: matt <matt@chia.net>
2021-04-21 16:43:02 -07:00
Mariano Sorgente 9fce41cfb7
Assert small messages (#2213)
* Assert small messages

* Update condition_tools.py

Add `TODO`.

Co-authored-by: Richard Kiss <him@richardkiss.com>
2021-04-20 17:51:48 -07:00
Mariano Sorgente e62be6c422
Ms.block body tests (#2203)
* 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
2021-04-20 12:18:16 -07:00
Mariano Sorgente a3fd085924
Ms.double blocks fix 2 (#2129)
* Fix issue with double blocks

* Fix shadow variable name, and lint

* improve debug log

* Fix case of empty block

* Test for recursive handling

* pytest level
2021-04-19 12:47:00 -07:00
Mariano Sorgente ad8847618a
Fix wallet reorgs, add cache for efficiency (#2022)
* Fix wallet reorgs, add cache for efficiency

* Fix lint
2021-04-18 18:30:22 +09:00
Mariano Sorgente 90dfdeb29a
Ms.signage points 2 (#2024)
* imporve signage points farmign

* Add test and more fixes

* Remove await

* Fix lint

* Unused import
2021-04-18 18:29:53 +09:00
Yostra 03784c9cd5
WhenMainnet (#2011)
* timestamp

* freeze

* root

* prepare for mainnet

* lint

* update constants

* starting diff

* remove breakpoint
2021-04-17 23:57:58 -07:00
Mariano Sorgente 615d8af00d
Add limit for AGG_SIG condition message of 1024 bytes. Catch any exception thrown in mempool block creation, and catch any excepction making a block, then make an empty block. (#2013) 2021-04-17 23:57:07 -07:00
arvidn 6b4d060758 pass through max cost all the way down to where we execute the CLVM code 2021-04-17 10:34:13 -07:00
Mariano Sorgente a6874bd2fe
Block compression and decompression (#1959)
* 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>
2021-04-16 23:13:22 -07:00
Rostislav Skudnov f9ac890090
Change mempool rules for replacing conflicting SpendBundles (#1971)
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>
2021-04-16 18:20:21 -07:00
matt-o-how 332d9392f9
Add test for relative seconds, and rename conditions (#1902)
* 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
2021-04-15 13:00:14 -07:00
Arvid Norberg cab78c43a6
update cost and max cost according to new plan (#1864)
* 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
2021-04-15 20:16:52 +09:00
matt-o-how e977bed7e4
Add Puzzle Announcement conditions (#1780)
* 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
2021-04-14 11:28:18 -07:00
Mariano Sorgente a2ca057b49
Ms.aggsig me challenge (#1843)
* 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
2021-04-14 14:03:14 +09:00
Mariano Sorgente d2466ee822
Ms.mempool improvements (#1823)
* 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
2021-04-13 21:19:12 -07:00
Yostra 773adfade5
Lock for all writes (#1758)
* 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
2021-04-10 19:07:02 -07:00
Richard Kiss 7506f64c35 Rename to `ConditionWithArgs`. 2021-04-08 11:35:50 -07:00
Mariano 691534f3fe Removes warnings by renaming some protocol messages. Also improves error handling for timelord. 2021-04-04 23:54:11 -07:00
Richard Kiss 569ca16f50 Use `sed` to change imports from `src` to `chia`. 2021-04-04 21:41:39 -07:00
matt-o-how e3c6baf815
Change announcements flow to conditions check (#1456)
* 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
2021-04-02 10:36:31 -07:00
Mariano Sorgente 5b4e077b1a
Pass in environment to Popen, and fix lint issues (#1517) 2021-03-27 00:09:15 -07:00
matt-o-how 50bc1bb68b
Add conditions language asserts for parent_id, puzzle_hash and amount (#1462)
* add new opcodes

* add checks and tests for new conditions

* add new conditions to condition_codes.clvm
2021-03-25 21:26:12 -07:00
Adam Kelly f59acccf51 Add github workflow tool 2021-03-25 12:05:54 -07:00
Adam Kelly 1c4c1d148a Fix imports for moved tests 2021-03-25 12:05:54 -07:00
Adam Kelly 68a15a5ff5 Move slow tests 2021-03-25 12:05:54 -07:00
Florin Chirica 96618c24c3 Bluebox protocol test.(#1438) 2021-03-24 15:41:53 -07:00
Almog De Paz de89254d98 1.0.1 wp blue box fix (#1434)
* fix wp bluebox integration

* lint

* remove corrupted segments

* log

* typo in sql

* cache wp on restart

* remove bad log

* lint

* fix typo

* block tools semi compacted blocks
2021-03-24 15:41:53 -07:00
Richard Kiss 1c07dd2c19 Skip the softfork test. (#1357) 2021-03-17 18:40:45 -07:00
Richard Kiss da57397087 Change rewards coin ids 2 (#1342)
Replay protection by encoding genesis challenge into coinbase parent ids. 

Co-authored-by: Yostra <straya@chia.net>
2021-03-17 18:40:45 -07:00
Gene Hoffman 4697e39470
Various clean ups, spelling thanks @adamfiddler, isort (#1278)
* Various clean ups, spelling thanks @adamfiddler, isort

* Actually thank @adamfiddler

* isort tests

* Update changelog, readme, spec, spelling

* Readme nit

* locales

* locales again
2021-03-13 14:57:41 -08:00
Yostra 708ddb5a3a
Minimum for refs (#1256)
* 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>
2021-03-11 22:59:15 -08:00
Mariano Sorgente 698ae6d542
Ms.timelord improvements (#1234)
* 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
2021-03-11 19:08:31 +09:00
Yostra 398f4768c1
Network wait (#1218)
* 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>
2021-03-10 15:43:02 -08:00
Mariano Sorgente 1c6c372044
Ms.new breaking changes (#1182)
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.
2021-03-10 17:14:13 +09:00
Mariano Sorgente 4d15f86715
Ms.rate limits (#1204)
Implements rate limiting for full node.
2021-03-10 15:48:34 +09:00
Gene Hoffman b5ce8c9e66
Isort take 3 (#1213)
* isort in a black friendly way

* isort but debug superlinter later
2021-03-09 18:27:27 -08:00
Florin Chirica 91f9457f73
Log better compacts, test fnp for compacts. (#1190)
* Log better compacts, test fnp for compacts.

* First attempt peer gossip limit.

* Fix wallet gossip.

* typos.

* Add logging to wallet api.
2021-03-09 15:32:33 -08:00