Antioch Peverell
e25a3b9d72
Fix capabilities ( #1944 )
...
* we cannot safely update nodes to use capabilities bits = 15 ...
* rustfmt
2018-11-07 10:00:42 +00:00
Antioch Peverell
949f75c77c
fix the lock on the new mutex ( #1942 )
2018-11-07 09:40:39 +00:00
Antioch Peverell
d97a6c2189
[DNM] broadcast tx kernel hash (if supported by peer) ( #1929 )
...
broadcast tx kernel hash (if supported by peer)
2018-11-07 09:28:17 +00:00
Ignotus Peverell
8b546632fe
Peer rate limiting ( #1933 )
...
* Rate counter in peer conn to monitor traffic
* Ban peers that trigger is_abusive
2018-11-06 17:51:22 -08:00
hashmap
d2088ff48c
Fix recently introduced peer deadlock ( #1941 )
2018-11-06 16:42:36 -08:00
hashmap
8742c334dd
Remove unsafe sync/send impl for Peers ( #1938 )
...
This is really unsafe. Fixes #1937
* Switch to better mutex
2018-11-06 08:59:46 -08:00
hashmap
0af1f13bf9
Fix IPV6 address deserialization ( #1932 )
...
Fuzz test found that we don't read IPV6 addr (as part of p2p message)
properly. The code is supposed to read 8 dwords, but [0..8] is not a
slice of 8 ints, but a slice of one Range, so we always read just one
dword
2018-11-05 20:38:41 -08:00
hashmap
b01fcd2f56
Remove unused unsafe declarations ( #1901 )
2018-10-31 13:19:28 -07:00
Ignotus Peverell
a42d66efff
Merge branch 'master' into unitdiff
2018-10-25 14:20:41 -07:00
eupn
711fad6c24
Remove TODO for counting of bytes that was already done ( #1838 )
2018-10-25 15:57:53 +02:00
Antioch Peverell
38cbd6eafb
full node == fast sync (no full archival guarantees) ( #1809 )
...
* wip - fast sync only
* wip
* cleanup
* cleanup
* cleanup comments in default config file around capabilities
* fixup p2p tests
2018-10-23 13:01:19 +01:00
Ignotus Peverell
7f60e2076d
Default last connected to migrate older db ( #1812 )
...
Fixes backward compatibility issue with #1794
2018-10-22 18:15:10 -07:00
eupn
8f42f7306c
feat: remove expired peers from the storage ( #1794 )
...
* Initial expired peers removal
* Stop expired peers
* Simplify peer removal and remove only Defunct peers
* Make seed to check for expired peers every hour
* Get rid of unused vector of peers to remove
* Make peer deletion predicate closure immutable
2018-10-22 13:59:40 -07:00
eupn
1195071f5b
Replace logging backend to log4rs and add log rotation ( #1789 )
...
* Replace logging backend to flexi-logger and add log rotation
* Changed flexi_logger to log4rs
* Disable logging level filtering in Root logger
* Support different logging levels for file and stdout
* Don't log messages from modules other than Grin-related
* Fix formatting
* Place backed up compressed log copies into log file directory
* Increase default log file size to 16 MiB
* Add comment to config file on log_max_size option
2018-10-21 13:30:56 -07:00
Gary Yu
0d06561a91
replace stdlib RwLock and Mutex with parking_lot ( #1793 )
...
* replace all stdlib RwLock with parking_lot RwLock
* replace stdlib Mutex with parking_lot Mutex
* rustfmt
2018-10-20 08:13:07 +08:00
John Tromp
846b38308c
replace all Difficulty::one by ::min
2018-10-18 21:18:16 +02:00
yeastplume
f94ede9af3
merge T4 into master
2018-10-18 11:23:04 +01:00
Gary Yu
53b10a083c
kick stuck peer out of connected peers. ( #1782 )
...
* cherry-picking commit 7754adb8
from master for #1746
2018-10-18 10:04:05 +08:00
Ignotus Peverell
b5cb227322
Last genesis for T4, unless I messed up something
2018-10-17 19:36:12 +00:00
eupn
b22fb55245
feat: add peers used bandwidth calculation and display in TUI ( #1770 )
...
* Add peers used bandwidth calculation and display in TUI
* Fix formatting
* Change Mutex to RwLock from peer's used bandwidth statistics in Tracker
* Make used bandwidth column in TUI peers list sort by sum of bytes
2018-10-17 10:01:42 -07:00
Yeastplume
b43d6e4326
[T4] Set genesis block data + initial secondary scaling correctly ( #1776 )
...
* ensure genesis block+pre genesis is populated correctly with secondary scaling
* rustfmt
2018-10-17 16:53:31 +01:00
Yeastplume
5cec885ef5
[T4] diff change ( #1769 )
...
* pre-t4 again
* rustfmt
2018-10-17 13:48:18 +01:00
Yeastplume
404165a8fd
[T4] Add sec pow info to TUI, change magic number, genesis diff to 1 (temporarily) ( #1768 )
...
* add sec scaling stats to tui
* rustfmt
2018-10-17 10:37:28 +01:00
hashmap
85433c659d
Introduce a constant for peer send channel capacity ( #1761 )
...
We implicitly use it also in body_sync, so it's hard to keep it in sync.
2018-10-16 16:31:00 -07:00
Gary Yu
7754adb834
kick stuck peer out of connected peers ( #1746 )
...
* kick stuck peer out of connected peers
* adjust kick time to 2 hours
* stuck detection take into account own difficulty compare
2018-10-16 09:14:16 -07:00
yeastplume
4bb31dbdb4
update new genesis block, change p2p msg magic number
2018-10-16 10:16:54 +01:00
John Tromp
34646ddf51
[T4] Rename all shiftsize / cuckoo_size to edge_bits and change value for T4 ( #1752 )
...
* replace all size_shift / cuckoo_size by edge_bits and change some constants for T4
* replace remaining occurrences of sizeshift
2018-10-15 16:14:23 -07:00
Gary Yu
2e6a242827
small improvement on the servers test ( #1737 )
...
* cherry-pick from master for #1736
2018-10-14 20:13:49 +08:00
Gary Yu
6f4eb8dd2e
small improvement on the servers test ( #1736 )
...
* small improve on the servers test, to avoid Travis-CI failure on "job exceeded the maximum log length"
* rustfmt
2018-10-14 17:01:34 +08:00
Ignotus Peverell
00be540e0c
Fix small txhashset download timeouts ( #1735 )
2018-10-14 15:25:17 +08:00
Ignotus Peverell
43f4f92730
[T4] Secondary proof of work difficulty adjustments ( #1709 )
...
* First pass at secondary proof of work difficulty adjustments
* Core and chain test fixes
* Next difficulty calc now needs a height. Scaling calculation fixes. Setting scaling on mined block.
* Change factor to u32 instead of u64.
* Cleanup structs used by next_difficulty
* Fix header size calc with u32 scaling
2018-10-13 13:57:01 -07:00
Gary Yu
9a716aea72
feature: txhashset downloading progress display on tui ( #1729 ) ( #1730 )
...
(cherry picked from commit 5c0eb11a7d
)
2018-10-13 10:12:13 +08:00
Gary Yu
5c0eb11a7d
feature: txhashset downloading progress display on tui ( #1729 )
2018-10-12 15:53:50 -07:00
Gary Yu
3fb4669d0a
small speed optimization for header sync ( #1728 )
...
* fix: avoid a confusing log when fastsync start (#1720 )
(cherry picked from commit 4f462cdfdc
)
* small speed optimization for header sync (#1719 )
(cherry picked from commit d3589d1bf5
)
2018-10-12 08:44:35 +08:00
Gary Yu
d3589d1bf5
small speed optimization for header sync ( #1719 )
2018-10-11 16:47:27 +08:00
Antioch Peverell
8cfe9e64ac
Remove RwLock around individual peer instances ( #1673 )
...
* get rid of RwLock around peer instances
* rustfmt
* rename stuff to live_info
* rustfmt
* serialize into PeerInfoDisplay
limit live_info write lock to peer_info.update()
rename to PeerLiveInfo
* simplify broadcast logic a bit more
connected peers are connected by definition
* return true/false on broadcast so we can send to more peers
* rustfmt
* fix p2p and server tests for PeerInfoDisplay
* commit
2018-10-09 08:27:34 +01:00
Antioch Peverell
de5b6868fb
Add last_seen to peer info ( #1688 )
...
* add last_seen to peer and update on ping/pong
expose last_seen in tui
* rustfmt
* chrono serde features
2018-10-08 13:39:52 +01:00
Gary Yu
1a6101f870
refactor: remove thread p2p-moniter, move the Ping to the connect_and_monitor ( #1670 )
2018-10-07 10:24:06 -07:00
Gary Yu
463567b19e
optimization of peer state write lock ( #1669 )
...
* optimization of peer state write lock
2018-10-07 13:01:32 +08:00
Gary Yu
a37f7bbcab
improvement on peer lock for ping/pong ( #1668 )
...
* peer lock optimization for ping/pong
* is_banned peer lock use read lock instead of write
2018-10-07 08:00:53 +08:00
Antioch Peverell
c86578c2a9
Peers broadcast fixes ( #1667 )
...
* peers broadcast fixes
* stop at num_peers...
2018-10-05 16:53:55 -07:00
Gary Yu
697805752c
fix: seed thread panicked on a try_read unwrap
2018-10-05 21:16:44 +08:00
Ignotus Peverell
85d5feafa3
Fix concurrency issue around peer add and start. Fixes #1585 ( #1633 )
...
* Fix concurrency issue around peer add and start. Fixes #1585
2018-10-02 10:17:29 -04:00
Antioch Peverell
c9c829514b
Trace get block ( #1628 )
...
* trace on GetBlock msg
* rustfmt
2018-10-01 22:12:39 +01:00
Gary Yu
8d62247c99
Small cleanup of rand usage ( #1576 )
...
Clean 3 build warning of deprecated item 'rand::Rand::rand'
2018-09-24 15:15:55 -07: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
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
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