Commit Graph

1137 Commits

Author SHA1 Message Date
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
hashmap 3dacc6a397 Merge pull request #1435 from yourowncrypto/fix-peer-ban
Fix non-atomic peer update
2018-08-28 15:58:23 +02:00
hashmap 67d2a04e92 Fix non-atomic peer update 2018-08-28 13:26:47 +02:00
hashmap 4a76336a59 Merge pull request #1432 from yourowncrypto/fix-outputs-by-id
Fix flakiness of simple_server_wallet test
2018-08-28 13:14:26 +02:00
hashmap 5e57e9c8e9 Fix flakiness of simple_server_wallet test
It produces 1000+ otputs on a fast machine (?) and generates invalid URL as result (too many paramaters). We don't care about sending all outputs in this test, we just need something.
2018-08-28 11:52:44 +02:00
hashmap ff2612ca46 Fix test container and remove backtraces (#1430)
* Local test container used different folder than regular server, so test could not find txhashset files
* Error stacktrace was printed in cases when error was expected, which created some noise and confusion
2018-08-27 21:48:15 -04:00
Ignotus Peverell 4048a3011a Improve file-based tx send to not use private file (#1421)
Instead of generating a private file on send that needs to be
provided again in finalize, the private context information is
saved in the wallet db.

Also move internal Context to bona fide libwallet type
2018-08-27 20:57:33 -04:00
Gary Yu a58558b38e improve: get_locator optimization (#1372) (#1411)
* refactoring get_locator(), to ensure the gap between neighbours >= 2^n
* security enhancement for get_locator
* in case of sync head and the header head are different, clear history locators
2018-08-27 17:42:57 -04:00
Antioch Peverell a6bd81fdb3 Cleanup generics (where not needed) (#1429)
BlockChain does not need to be generic
2018-08-27 17:22:48 -04:00
Marcin Jachymiak dd164e153d Fix link to pre-commit hook (#1431) 2018-08-27 17:20:21 -04: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
Ignotus Peverell 953d910776 Quick build guide update 2018-08-24 20:10:22 +01:00
yeastplume 04e6517806 tweak server test params 2018-08-24 15:51:32 +01:00
yeastplume c449d35dd2 tweak server test params 2018-08-24 15:51:13 +01:00
Yeastplume 8b6ce33cfc Automated test for #1325 (#1415)
* add test to replicate #1325

* rustfmt
2018-08-24 14:45:14 +01:00
Quentin Le Sceller 8cd1b23f7a Add a peers_preferred option in Grin (#1401)
* Preferred peers option
* Move P2P configuration into proper config part
* Fix tests
2018-08-23 15:16:04 -04: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
hashmap 7dd2888b71 Get peers as quick as possible (#1398)
* Get peers as quick as possible. Currently we get 2 peers and then wait 20 seconds before trying to get more
* Second pass
* Fix peer_count
2018-08-22 21:31:06 -04:00
Ignotus Peverell 9554f93e1d Run header sync only when stalled or complete (#1393)
Header sync used to run when complete (right count of blocks
received) or every 10 sec regardless. Sometimes 10 secs is not
enough, especially when a big batch of blocks bodies is arriving
at the same time.

This tweaks the time-based heuristic just a bit to only ask for
headers when stalled, meaning that the header head has not
*progressed* for 10 seconds.

* Fix bad header sync timeout logic

* Improve stability of fast sync test
Adds regular pings so that the 2 test servers know each others'
heights (necessary to find most work peer). Stop mining on the
first server once the 2nd kicks in. Avoids chasing a fast moving
target on Cuckoo10.
2018-08-22 19:51:25 -04: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
Yeastplume ccc9c0db90 Wallet Restore fixes and updates (#1399)
* add wallet restore tests

* rustfmt

* begin to add tests for wallet restore

* rustfmt

* complete wallet restore automated tests, correct wallet restore heights and ensure TX log is repopulated on restore
2018-08-21 18:05:28 +01:00
Gary Yu b4c2a9d1b2 Automatic setting up git hooks for the project: rustfmt, etc. (#1380)
Also update document for this change on pre-commit hook config
2018-08-21 12:52:37 -04:00
Yeastplume b74e0fbc1f Ensure wallet output heights are always correct (#1395)
* ensure block heights are always returned from API and updated within wallet

* fix api test
2018-08-21 14:04:14 +01:00
hashmap 631201358f Refactor and optimise peers.rs (#1389)
* Use internal hashmap for count and contains methods instead of relying on
connected_peers method which is expensive (creates vector from hashmap)
* Reduce number of `clone()`
* Refactor broadcast_xxx
2018-08-20 18:32:13 -04:00
Antioch Peverell 8c820a8929 Fast check for duplicate tx in the pool (#1392) 2018-08-20 18:02:28 -04:00
Antioch Peverell 7ca4d45bf5 Cleanup build warnings (#1391)
* cleanup some unused vars etc.

* rustfmt
2018-08-20 21:56:32 +01:00
Antioch Peverell bb7bc2c4f2 Refactor rewind single header (#1390)
* refactor txhashset to only take a single header
no need to pass in current head_header each time

* rustfmt

* fix bug introduced in rewind with LMDB

* rustfmt

* add some comments
2018-08-20 20:34:12 +01:00
Yeastplume 8440aad7ea Retrieve header by output commit (#1388)
* Add get_header_for_output function to chain

* add api call to retrieve associated header for a given output

* rustfmt
2018-08-20 19:02:44 +01:00
Antioch Peverell 82a467ac3c Fix txpool race condition (#1385)
* fix txpool race condition

* rustfmt

* fixup pool tests

* rustfmt

* rebase against master, pool tests passing
2018-08-20 14:48:05 +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
Gary Yu 743c845259 fix: deriv_idx is not updated after wallet restore (#1306) (#1374)
* fix: deriv_idx is not updated after wallet restore (#1306)

* rustfmt check
2018-08-19 19:27:04 +01:00
Antioch Peverell 5abefbff33 improve logging when receiving blocks and txs (msg_len) (#1383)
* better logging for msg_len and # kernels

* rustfmt
2018-08-19 18:15:42 +01:00
Gary Yu 7d677737d7 add impl fmt::Debug for BlindingFactor, for pretty print (#1382) 2018-08-19 12:57:04 +01:00
Antioch Peverell 25e03aadef Tx (change) output splitter (#1369)
* wip - split change into many outputs for testing

* rustfmt

* add change_outputs param to wallet send
default to 1

* commit

* rustfmt

* cleanup

* fixup servers tests
2018-08-18 22:38:48 +01:00
Antioch Peverell c05c5e21ea Fix config defaults (#1376)
* fix global defaults to reflect grin.toml

* rustfmt
2018-08-18 17:32:04 +01:00
Antioch Peverell 686f7517ed fixup Cargo.lock (#1377) 2018-08-18 16:41:00 +01:00
yeastplume d5f7f4cf2f default run_wallet_owner_api to false 2018-08-18 13:48:43 +01:00
Gary Yu 4da92c5d75 minor fix: prefix code conflict between 'COMMITMENT_PREFIX' and 'CONFIRMED_HEIGHT_PREFIX' (#1375) 2018-08-18 13:23:31 +01:00
Ignotus Peverell 630d0a0438 Buffered txhashset temp file write 2018-08-18 02:52:44 +01:00
Quentin Le Sceller 59f4806a2c Update wallet restore error message (#1368) 2018-08-17 14:04:23 -04:00
Yeastplume 103c9cda77 Serve up web wallet application (#1367)
* first addition of static wallet file server

* rustfmt

* add custom build functions to download and untar particular release of the web-wallet

* rustfmt

* remove comments
2018-08-17 18:51:50 +01: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
hashmap f7161a9afb Improve API handlers (#1364)
* Return different status codes depending on result, not just BAD_REQUEST, fixes #1247
* Reduce number of unwraps
* Refactoring
2018-08-17 13:04:02 -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
Antioch Peverell a10557c756 grin wallet outputs now displays output commitments (#1365)
* commit - wip

* rustfmt

* save output commitment when saving output in wallet

* rustfmt

* fixup wallet tests with commitments in the wallet db

* rustfmt
2018-08-17 12:15:06 +01:00
Ignotus Peverell d47a3bc225 Simplify and improve headers_received (#1362) 2018-08-16 22:30:05 -04:00
Ignotus Peverell b4febf2e40 Test teardown cleanup fix
Can't reproduce the current failing of servers tests, but stopping
the servers cleanly can't hurt. I think.
2018-08-17 01:31:51 +01:00
Ignotus Peverell dcfbda9c89 Fix test logger, debug level, no file 2018-08-16 19:32:03 +01:00
hashmap 779921f71a Fix compiler warnings (#1361)
* env::home_dir is deprecated, compiler suggests to use crate `dirs`
* add superficial comments to file util module
2018-08-15 17:11:05 -07:00