Commit Graph

60 Commits

Author SHA1 Message Date
Mariano Sorgente 5d3d4bbefc
No negative amounts (#4294)
Mempool no negative amounts
Don't disconnect for COIN_AMOUNT_NEGATIVE
2021-05-10 01:28:15 +09: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
Almog De Paz 859a080637
brake if end of ses list (#3583)
* brake if end of ses list

* log

* throw if wp peak is not heavier

* comment

* handle sync from scratch

* comment
2021-05-03 18:40:12 -07:00
Yostra 976678d651
More performance (#3279)
* speed

* more speed

* same event loop init

* typo

* sempahore

* ignore if more than semaphore

* higher_compact_semaphore

* don't ignore
2021-04-30 22:44:12 -07:00
Yostra 17c45bf64e
just filter limit (#3152) 2021-04-30 01:00:09 -04:00
Mariano Sorgente e611bef223
Use secure coin ids (#3095) 2021-04-29 13:30:24 -04:00
Mariano Sorgente e3ab63a472
Ms.empty blocks3 (#3064)
* Fix empty blocks

* Remove error log

* Missing imports

* .header_hash instead of .prev_hash in simulator
2021-04-29 16:14:16 +09:00
Yostra 5f9f63155d
Add lock, keep cache consistent (#3051)
* execute task decorator

* use blockchain lock

* indentation

* lint

* execute_task
2021-04-29 16:13:00 +09: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
wjblanke ec48e968a9
increase wp timeout from 3 minutes (2 megabit) to 6 minutes (1 megabit) (#3022) 2021-04-28 10:51:18 -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
Arvid Norberg 8717ca4b02
Leave programs in SpendBundle serialized (#2380) 2021-04-27 10:52:21 -07:00
Yostra a929ec889e
Use lru cache (#2433)
* use lru cache

* use new func

* cache block after write is done

* dont iterate as orederd dict
2021-04-26 23:21:58 -07:00
Yostra d88697ef42
more speed (#2223) 2021-04-26 23:21:24 -07:00
Yostra 4c98dd2b71
decorator (#2221) 2021-04-26 23:21:04 -07:00
Mariano Sorgente cc1aba8c3b
Ms.ph scan (#2808)
* Work on offline signing

* Fix lint
2021-04-26 11:18:29 -07:00
Yostra 788b630487
More accurate fork point (#2428) 2021-04-23 14:08:15 -07:00
Rostislav 933736be92 Add logging about replacing 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
Arvid Norberg e55988479b
More tests (#2295)
Co-authored-by: Mariano <sorgente711@gmail.com>
2021-04-21 11:17:21 -07:00
Mariano 111edd71bc Also lock in removals 2021-04-21 18:17:40 +09:00
Mariano 9c11d41984 Remove blockchain lock 2021-04-21 18:06:43 +09:00
Yostra b674f19203 fee part 2021-04-20 21:11:25 -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
Gene Hoffman 1c62b1e4d7 Move Add rem to INFO log level, update GUI 2021-04-19 16:50:01 -07:00
Richard Kiss 170d451b7c
ROM now outputs `(coin-spends . block-level-extras)` (#2149)
* 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)`
2021-04-19 14:04:55 -07:00
Almog De Paz e2459dae54
wp timeout from config (#2119) 2021-04-19 12:48:30 -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
Richard Kiss 08b1dd3135 Improve format of `COIN_SPEND` output from ROM. 2021-04-18 23:40:06 -07:00
Richard Kiss b3880d7ea7 Simplify CSE input format.
It was `((parent amount) (puzzle solution))`.
It is now `(parent puzzle amount solution . *spend_level_extras)`
2021-04-18 22:57:00 -07:00
Richard Kiss 166ab7c99a Remove the tree abomination. 2021-04-18 18:58:56 -07:00
Richard Kiss 44ba53550d Rewrite "ROM" in clvm, including deserialization. 2021-04-18 16:02:53 -07: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 1d6bc440c7
Deleted blockchain_check_conditions (#1966)
* 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
2021-04-16 14:02:06 -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
Adam Kelly 24fdd378a7
Transaction matching (#1932)
Co-authored-by: Adam Kelly <aqk@aqk.im>
2021-04-16 03:23:40 +09: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
Adam Kelly 2d26934965
Add types to support Generator Back References (#1901)
* Add types to support Generator Back References

* Add test workflows

Co-authored-by: Adam Kelly <aqk@aqk.im>
2021-04-14 13:49:36 -07: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
Almog De Paz e3676f130f
Add segments to db while synced (#1885)
* create segments on restart
cache segment on respond block

* save segments by header hash

* logs

* lint

* logs

* use hex

* add done check

* add done check
2021-04-14 11:22:25 -07:00
Mariano Sorgente 49219ea950
Improve get_name_puzzle_conditions, add typing, avoid re-implementing… (#1846)
* Improve get_name_puzzle_conditions, add typing, avoid re-implementing sensitive serialization logic

* Lint
2021-04-14 14:03:33 +09:00