Ignotus Peverell
7b6e219b5b
Minor: move raw_difficulty to Proof
2018-09-19 18:31:03 +00:00
Ignotus Peverell
9a15859b81
Scaling multiplier fix and slightly clearer structure
2018-09-19 16:25:44 +00:00
Ignotus Peverell
ba72e6e29e
Last fixes that should have been part of #1534
2018-09-19 00:39:56 +00:00
Ignotus Peverell
9cc7aed713
Dual proof of work, first step ( #1534 )
...
* Move Proof and Difficulty types to pow module. Difficulty scaling calculation.
* Diffculty scaling and size shift for 2nd PoW
* Backport e7eb26ee
* Test compilation fixes
* Scaling only need to go one way, as @tromp pointed out
2018-09-18 15:12:57 -07:00
Antioch Peverell
a4476443bb
Compact transactions (initial prep work) ( #1548 )
...
* introduce CompactTransaction (unused currently)
* rustfmt
* fix comments
2018-09-18 15:25:26 +01:00
Quentin Le Sceller
345a6cb53e
Update rand crate to 0.5 ( #1542 )
...
* Update rand crate to 0.5
* Rustfmt
* Misplaced import
2018-09-18 09:39:45 +01:00
Gary Yu
a0deb18e77
Update version of some crates ( #1536 )
...
Update version of some crates
2018-09-17 10:47:48 +08:00
Gary Yu
2c712fefff
Small cleanup and perf improvement for peak_sizes_height
and peaks
( #1526 )
...
* Small cleanup and perf improvement for and
* rustfmt
* define a const 'ALL_ONES' for u64::MAX
2018-09-15 08:28:41 +01:00
yeastplume
e7eb26eed4
rustfmt
2018-09-14 15:25:07 +01:00
Gary Yu
3c1d8c3f8b
Small cleanup and perf improvement for peak_map_height
( #1521 )
2018-09-13 09:59:49 -07:00
Antioch Peverell
dca0d52dcd
Cleanup transaction with offset ( #1514 )
...
* cleanup build::transaction_with_offset
* rustfmt
2018-09-12 12:17:36 +01:00
Antioch Peverell
07eefc4d6b
cache get_shift() and get_leaf_shift() in prune_list ( #1495 )
...
* cache shift and leaf_shift values in prune_list for fast lookup later
* rustfmt
* fixup core tests
2018-09-12 08:19:05 +01:00
Ignotus Peverell
a83404b22e
Simplify mining header serialization ( #1509 )
2018-09-11 20:31:05 -07:00
Antioch Peverell
77c2408c4e
Prevent duplicate output commitments ( #1500 )
...
* apply_output checks for duplicate commitment
not just a matching hash
* rustfmt
2018-09-11 19:36:00 +01:00
Ignotus Peverell
ecf20602d5
Hard fork tryout: better PoW encapsulation in block header ( #1478 )
...
* Improve encapsulation with ProofOfWork struct
* Add dual pow scaling factor, fix test
* Fix pre_pow serialization, chain tests
* Adjust header serialized size calc
* Hard fork handling, version-based serialization
2018-09-10 15:36:57 -07:00
Antioch Peverell
77765796ab
improve "check known" steps during process_block() ( #1475 )
...
* document what we do during pipe::apply_block()
* rustfmt
* wip
* rustfmt
* wip
* additional check_known_store and check_known_mmr checks in process_block
* rustfmt
* cleanup coinbase maturity check in process_block
* consolidate the "check in store" logic
add TODOs around the 50 block OldBlock logic
* rustfmt
* cleanup
2018-09-05 10:51:29 +01:00
John Tromp
c359c8aaf2
one day coinbase maturity ( #1457 )
...
* one day coinbase maturity
* make one day maturity a soft fork
2018-09-04 10:59:55 +01:00
hashmap
0172a3e020
Fix amount parsing (from string) ( #1458 )
...
* Fix amount parsing (from string). Fixes #1384
* Add conversion with string padding
* Use string padding
2018-09-03 15:55:04 -04:00
Quentin Le Sceller
544a296f77
Fix typos and unused imports ( #1466 )
...
* Fix typos and unused imports
2018-09-03 13:09:28 +02:00
Gary Yu
60d62bfb97
add a test case for transaction deserialize ( #1356 ) ( #1381 )
...
* add a test case for transaction deserialize (#1356 )
* update rust-secp256k1-zkp to grin_integration_23
* add transaction explicit validation
2018-09-01 15:14:10 -04:00
Gary Yu
d719493483
HeaderSync optimization ( #1372 ) ( #1400 )
...
* improve: HeaderSync optimization (#1372 )
* remove get_locator() optimization, which should be an independent pr for security review
* refactoring: move 'headers_streaming_body()' from Message to Protocol
* move 2 headers utils functions out of Protocol, and remove 'pub'
* support reading variable size of BlockHeader, from Cuckoo30 to Cuckoo36
* fix: use global::min_sizeshift() instead of hardcoded 30, because Cuckoo10 will be used for AutomatedTesting chain
* fix: should use global::proofsize() instead of hardcoded 42 when calculate serialized_size_of_header
* replace another 42 with global::proofsize()
2018-08-30 19:50:55 -04:00
Antioch Peverell
6d992e61d6
Add test coverage for verifier_cache
2018-08-30 15:08:16 -04:00
Antioch Peverell
939d391e0e
cache rangeproof and kernel signature verification results ( #1419 )
...
* wip - cache rangeproof verification
* rustfmt
* rustfmt
* rename to ok_verifier
* rustfmt
* wire in caching verifier in more places
skip rangeproof and kernel signature verification during deserialization
* rustfmt
* actually cache verification results via ok verifier
* rustfmt
* cleanup
* pass a cache around, not a verifier
* rustfmt
* cleanup trait shenanigans
* rustfmt
* core tests passing
* rustfmt
* rustfmt
* tests passing
* rustfmt
* verifier cache now takes vecs of data in and out
* rustfmt
* logging + rustfmt
* add docs and comments
2018-08-30 15:44:34 +01:00
Antioch Peverell
c334c557aa
Simplify tx.validate() and transaction::aggregate() ( #1436 )
...
* simplify tx validation and aggregation
we *only* need to account for reward when building a block from txs
* rustfmt
* cleanup and tests passing
* rustfmt
* better comments in with_reward()
* fix wallet tests
2018-08-28 20:00:25 +01:00
Antioch Peverell
bd03528d33
lightweight validation during deserialization ( #1422 )
...
* introduce validate_read (for lightweight validation when reading)
* rustfmt
2018-08-26 11:43:44 +01:00
Yeastplume
2251a82404
batch verify proofs during validation ( #1412 )
...
* batch verify proofs during validation
* don't attempt to batch verify proofs with empty vec
2018-08-23 18:53:42 +01:00
Antioch Peverell
7dfca6077c
Refactor compact block body ( #1394 )
...
* introduce CompactBlockBody
* rustfmt
* implement From<Block> for CompactBlock
* rustfmt
* remove debug logging
* wip
* rustfmt
2018-08-22 20:19:37 +01:00
Antioch Peverell
105bfacaa6
use chrono for timestamp in with_reward ( #1406 )
2018-08-22 15:40:24 +01:00
Ignotus Peverell
ef4f426474
Sort pool tx by fee over weight for mining ( #1346 )
...
* Sort pool tx by fee over weight for mining. Fixes #1105
* Bucketing dependent transactions before weighing. Minor tx weight fixes.
* Limit length of tx chain, cleanup and test fixes
* Cleanup all mining references to a hardcoded tx count
* Small test improvement, cleanup
2018-08-19 18:50:43 -04:00
Mike Dallas
adeaea4622
Truncate trailing zeroes in coin amounts ( #1366 )
...
* truncate coin amounts
* truncate datetimes
* fixed formatting
2018-08-17 13:05:35 -04:00
Gary Yu
54d3fc0af2
improve: use batch verification for txhashset rangeproof validation ( #1321 ) ( #1363 )
...
* improve: use bullet rangeproof batch verification for txhashset validation (#1321 )
* update rust-secp256k1-zkp to tag 'grin_integration_22'
2018-08-17 16:18:48 +01:00
Ignotus Peverell
6775112f61
Introduce cut_through method to avoid code duplication ( #1355 )
...
* Introduce cut_through method to avoid code duplication
* Improve error handling, fix sorting.
2018-08-15 16:20:33 -07:00
hashmap
99a66c1960
Consolidate validation in Block and Transaction ( #1354 )
...
* Consolidate validation in Block and Transaction
Introduce TransactionBody which is included into block and tx.
Fixes #1333
2018-08-15 23:14:48 +02:00
hashmap
37fa413329
Fix small issues found by fuzzing ( #1360 )
...
Overage and fee come from the network and may cause overflow if a message was corrupted or crafted to attack a server.
2018-08-15 11:55:25 -07:00
Quentin Le Sceller
6b74cf5098
Unpin croaring to version 0.3.2 ( #1352 )
2018-08-14 08:28:58 -04:00
Ignotus Peverell
6f590b3f88
Halve max block weight ( #1347 )
2018-08-13 14:06:53 -07:00
Ignotus Peverell
e9c987c075
Consolidate and cleanup tx aggregation ( #1332 )
...
* Include commitments non-duplicate checks in aggregate
* Remove said check from the pool
* Block building now uses tx aggregation to reduce duplication
2018-08-12 19:08:08 -07:00
Ignotus Peverell
4be97abbbb
Cleanup max sizes ( #1345 )
...
* Transaction max weight expressed in terms of block weight
* Cleaned up max block sizes, so everything is in therms of weight
* Cleanup block max constants
* Rename verify_size -> verify_weight
2018-08-12 13:02:30 -07:00
John Tromp
0d94d35a9d
Simplify and optimize MMR routines ( #1301 )
...
* add new core mmr routine upon which others should be built more efficiently
* tons of pmmr optimizations and simplifications
* fix typo and extend docs
* change initial spaces to tab to fix indentation
2018-08-11 10:44:56 -07:00
antiochp
fb30b02f99
cleanup verify_weight code
2018-08-10 15:12:53 +01:00
antiochp
5ee11046a5
rework block validation to check input|output|kernel sizes consistently
...
with tx validation
2018-08-10 15:12:48 +01:00
antiochp
0ff1d86b22
rustfmt on core crate (not run for a while)
2018-08-10 15:00:18 +01:00
Antioch Peverell
ed88ad8bbc
cannot use unstable rustfmt features outside nightly toolchain ( #1338 )
...
* cannot use unstable rustfmt features outside nightly toolchain
* cleanup redundant rustfmt.toml files
2018-08-10 14:54:09 +01:00
Antioch Peverell
983a25248b
call tx.validate() as part of tx.read() ( #1334 )
...
and move some validation out of read() and into validate()
2018-08-10 13:57:47 +01:00
Antioch Peverell
9c05471979
Validate resulting tx after aggregation (and deaggregation) ( #1331 )
2018-08-09 16:37:31 -07:00
hashmap
ae3b1da18b
Fix issues found by fuzz test ( #1330 )
...
Fuzz test found the folowing issues with reading block header:
* Unbounded cuckou_sizeshift field in Proof
* Different timestamp range after migration to chrono crate
2018-08-09 16:35:46 -07:00
hashmap
32662a0a16
Update fuzz in core crate
...
Fix compilation error in fuzz code after the wallet refactoring
2018-08-09 11:37:11 +02:00
Antioch Peverell
328d832bd6
cleanup verify_coinbase on block ( #1326 )
2018-08-08 09:47:30 +01:00
Quentin Le Sceller
3df050cc93
Check content before zip/unzip the txhashset ( #1174 )
...
* Check txhashset content before zip/unzip
* Add header in txhashset verification
* Add copy function and test
* Add file util
* Now check and remove unexpected files instead of just crashing
2018-08-02 19:16:16 -07:00
Gary Yu
b040aaa434
Fix: old time crate use 0..11 as the month, make mistake when switching to chrono Utc.ymd ( #1304 ) ( #1305 )
2018-07-31 09:35:57 -07:00