Commit graph

1220 commits

Author SHA1 Message Date
Antioch Peverell
f042f67fcd
Reintroduce block sums, verify full kernel sums per block (#1559)
* block_sums and full kernel sum verification

* rustfmt

* add docs/comments

* docs

* rustfmt

* comment on fact total_kernel_sum is redundant now

* make sure we setup block_sums correctly on a fork

* rustfmt

* replace those asserts with errors

* rustfmt
2018-09-20 09:19:32 +01:00
Gary Yu
e1c8dc5a3a
fix: reset sync_head to header_head on initial transition to HeaderSync (#1531)
* fix for bug #1524, reset sync_head to header_head on initial transition to HeaderSync.
* using @antiochp fix solution in #1539
2018-09-20 07:29:24 +08:00
Gary Yu
56ffbee7e9
fix: all fast sync nodes report to peers as full nodes (#1547)
* fix: all fast sync nodes report to peers as full nodes
2018-09-20 07:09:39 +08:00
Gary Yu
2ca6ecc163
fix: early detection of peer connection lost when downloading txhashset (#1546) 2018-09-20 07:08:02 +08:00
Antioch Peverell
80bb1cb262 Cleanup new output commits (#1556)
No need for new_output_commits (batch handles this now)
2018-09-19 11:59:17 -07:00
Ignotus Peverell
7b6e219b5b
Minor: move raw_difficulty to Proof 2018-09-19 18:31:03 +00:00
hashmap
521ce901e4
Merge pull request #1557 from yourowncrypto/api-refactor
Refactor hyper router
2018-09-19 19:33:48 +02:00
Ignotus Peverell
9a15859b81
Scaling multiplier fix and slightly clearer structure 2018-09-19 16:25:44 +00:00
Roy Blankman
febe9076f0 fixes #1507 - proper tx confirmation calculation (#1552)
when self.height == current_height, # of confirmations should be 1 not 0
2018-09-19 16:55:03 +01:00
hashmap
d5ef3d9d12
Refactor hyper router
* Make it simpler to implement middleware
* Switch from the current thread runtime to the default one. It enables us to inject TLS support later one and potentially more scalable, unfortunately it involves some additonal cloning of the router, because we can't rely on thread local vars anymore
* Introduce `call` entrypoint for Handler, so it's possible to handle any HTTP method in one place, handy for middleware
* Implement example of middleware
2018-09-19 17:10:52 +02: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
hashmap
7db8e5e2dd Improve API errors (#1543)
Address ##1525 in particular and improve error messages in general.
Instead of `Request Error: Error { inner:` a client would get:
`Generic error: Invalid request body: missing field `method` at line 1 column 162`
2018-09-18 15:11:58 -07:00
Roy Blankman
db7b686073 Exit code 1 on wallet send fail (#1550)
Fixes #1504
2018-09-18 14:59:41 -07:00
Antioch Peverell
c291c48436 Simplify block broadcast (#1549)
* removed random "block vs compact_block"
2018-09-18 10:51:37 -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
hashmap
b35950790b Use POST to compact and validate chain (#1541)
* More comments
* Move HeaderHandler code
2018-09-17 16:37:23 -07: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
8bef9bef02
Small cleanup of SIGINT and SIGTERM handler (#1535) 2018-09-17 07:02:23 +08:00
Ivy Evans
9aed3b9c7f Fix documented emission rate (#1537)
The emission rate was changed to 60 grin per minute (or approximately
1 grin/second) in #569.
2018-09-16 15:36:38 -07:00
Gary Yu
84ae8f1a78 memmap: use official crate, instead of the explicit git url (#1532) 2018-09-15 10:22:32 -07:00
Gary Yu
986b1f62d3 fix: deprecated warning for env::home_dir, after upgrading to rust 1.29.0 (#1533) 2018-09-15 09:56:09 -07: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
Gary Yu
26244ef9dd Optimizations for txhashset rewind (#1528) 2018-09-14 16:51:36 -07:00
Gary Yu
d3a5ee130f Refactoring and cleanup on seed (#1513) 2018-09-14 16:09:25 -07: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
Gary Yu
4a5a91a9cf Fix: clean_peers is using connected_peers, which make it do nothing (#1505)
* a failed handshake for example don't deserve banning
* remove not used 'BadOthers' from ReasonForBan
2018-09-13 09:53:35 -07:00
Gary Yu
644c1367b8 fix: too many words in a 1st level title (#1520) 2018-09-13 09:46:57 -07:00
Gary Yu
5291a061f1 Update the chinese intro for recent changes in english intro (#1519) 2018-09-12 21:22:49 -07:00
Gary Yu
1db1a02934 fix the comments of test bitmap (#1516) 2018-09-12 16:16:13 +01: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
Parth Chopra
3eacc06a97 fixed list of requirements (pkg-config) (#1510)
pkg-config was incorrectly spelled pkc-config
2018-09-12 08:09:40 +01:00
Ignotus Peverell
a83404b22e
Simplify mining header serialization (#1509) 2018-09-11 20:31:05 -07:00
Gary Yu
97be1bf93e Fix wrong location of p2p config comments (#1511)
* remove 'WebStatic' from seeding_type
2018-09-11 20:30:24 -07:00
Gary Yu
7a689d468c Remove 'WebStatic' seed_type since it was obsoleted a while ago (#1512) 2018-09-11 20:28:27 -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
Quentin Le Sceller
596bf06556
Typo in logs (#1506) 2018-09-11 08:55:14 -04:00
Gary Yu
0dbfed5971 return an Err when read return 0 (#1503)
* return an Err when read return 0, instead of all zeroed buff without any error
2018-09-11 13:14:48 +02:00
Quentin Le Sceller
dd1cef2148 Add file based transaction in owner API (#1484)
* Add file based transaction in owner API
* Add finalize tx in owner API
* Code cleanup and placed file_receive in correct API
* Output an explicit error when http dest seems incorrect
* Add doc on send method
* Add cancel tx endpoint in owner API
* Add dump stored tx endpoint in owner API
*  Add missing parameters
2018-09-10 19:18:10 -07:00
Ignotus Peverell
4030b3d2f1
POW nonce has to be sent through stratum 2018-09-11 00:01:10 +00:00
Ignotus Peverell
6958f1c69e
First pass at Grin's security policy 2018-09-10 22:52:17 +00: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
Gary Yu
48857b7e16 Fix infinite loop in case of some peer connect errors (#1494) 2018-09-10 15:23:49 -07:00
Gary Yu
e760ea2ce2 a little bit speed-up for full node syncing (#1463)
* simplified: track the head and orphans instead of every single block hash that sync requests
* change 1st block timeout from 1s to 5s
2018-09-10 12:32:20 -07:00
Gary Yu
277687c17c Add 2 more dns seeds (#1496) 2018-09-10 12:11:03 -07:00
Antioch Peverell
dbe53f63c8
disable chain compaction on archive nodes (#1498)
* disable chain compaction when in archive mode

* rustfmt
2018-09-10 15:59:42 +01:00
hashmap
da87f5fef4 Don't wait 30 seconds in case of a quick restart (#1488)
Currently on startup we wait for 30 secs if we don't have at least 4 peers with more work. If a node was quickly restarted it is already fully synced so thereare no peers with more work at all. This pr assumes that if we've done some work already and we have enough peers but still 0 with more work we are fully synced and good to go.
2018-09-07 13:01:54 -07:00