Pierre Krieger
35a67b31e5
Add a 16MiB hard limit to Substrate packets ( #2009 )
2019-03-15 14:52:22 +01:00
Pierre Krieger
e91426ac77
Add a warning when banning or dropping reserved peers ( #1976 )
2019-03-12 15:43:22 +01:00
Pierre Krieger
ead437d0f4
Remove dialing without a PeerId
2019-03-12 11:47:08 +01:00
Pierre Krieger
a3a5031d9d
Add timeouts for initialization and opening ( #1948 )
...
* Add timeouts for initialization and opening
* Don't keep alive opening and init
* Reset deadline when timer error
2019-03-11 12:09:03 +01:00
Pierre Krieger
0a300b061e
Remove the error from network-libp2p ( #1950 )
2019-03-11 11:40:22 +01:00
Pierre Krieger
560057ebfd
Update rw-stream-sink ( #1954 )
2019-03-10 19:36:11 +01:00
Pierre Krieger
97fd1831e9
Fix old connections not being reused ( #1934 )
...
* Fix old connections not being reused
* Address issues
2019-03-07 22:15:40 +01:00
Pierre Krieger
bcda2fafa0
Add even more diagnostic messages ( #1925 )
...
* Add even more diagnostic messages
* Fix
2019-03-05 22:44:55 +01:00
Pierre Krieger
ff331e7fdc
Bump libp2p to 0.4.2 ( #1891 )
...
* Bump libp2p to 0.4.2
* Update yamux
2019-03-01 19:12:50 +01:00
Pierre Krieger
90eef10d5c
Address review in #1884 ( #1906 )
2019-03-01 11:40:57 +01:00
Pierre Krieger
c21d7436cc
Add an RPC request for the state of the network ( #1884 )
...
* Add an RPC request for the state of the network
* Fix concerns
* Fix tests
* Replace comment with TODO
* Rename the RPC
2019-02-28 19:28:38 +01:00
Pierre Krieger
34fccecc02
Add names to tokio threads ( #1866 )
2019-02-25 15:40:51 -05:00
Pierre Krieger
733ce7d616
Split Substrate messages into multiple substreams ( #1796 )
...
* Split Substrate messages into multiple substreams
* Add back Clogged event
2019-02-25 11:55:45 +01:00
Pierre Krieger
eaa8f0c97f
Add back logging when we ban a peer ( #1843 )
...
* Add back logging when we ban a peer
* Make it less verbose
2019-02-22 13:48:59 +01:00
Pierre Krieger
2b71b3e84b
Update to libp2p v0.4 ( #1836 )
2019-02-21 10:04:53 +01:00
Pierre Krieger
f5ba8a2ad9
Report the network PeerId to the telemetry ( #1835 )
...
* Report the network PeerId to the telemetry
* Fix accidental paste
2019-02-21 10:03:47 +01:00
Pierre Krieger
8a3f52bdd8
Fix #1825 ( #1828 )
...
* Fix #1825
* Add comment
2019-02-21 10:02:27 +01:00
Pierre Krieger
6e26c52191
Add debug name in node infos ( #1769 )
2019-02-12 18:03:46 +01:00
Pierre Krieger
9e999cdd81
Make network-libp2p's Service generic over the message ( #1708 )
...
* Make network-libp2p's Service generic over the message
* Apply suggestions from code review
Co-Authored-By: tomaka <pierre.krieger1708@gmail.com >
* Fix warning
2019-02-12 15:36:15 +01:00
Pierre Krieger
d93769b0fd
Fix infinite loop in reserved mode ( #1759 )
2019-02-11 15:04:23 +00:00
Pierre Krieger
35a4aa638c
Make the discovery test more strict ( #1721 )
2019-02-11 13:47:14 +01:00
Pierre Krieger
bf2dd5f419
Reduce the spam from network misbehaviours ( #1750 )
...
* Reduce the spam from network misbehaviours
* Add protocol id to misbehaviour
2019-02-11 11:39:14 +01:00
Pierre Krieger
3509b69c4c
Remove warning about empty list of identify addresses ( #1739 )
2019-02-08 15:39:15 +03:00
Pierre Krieger
7afe69066f
Fix panic in custom protocol handler ( #1723 )
2019-02-07 16:16:41 +00:00
Pierre Krieger
0da92bf114
Protect against flood of addresses ( #1718 )
2019-02-07 14:54:59 +01:00
Pierre Krieger
593c292f14
Update libp2p-core to 0.3.4 ( #1720 )
2019-02-07 14:30:17 +01:00
Pierre Krieger
b6fd967dfb
Update libp2p to v0.3 ( #1634 )
...
* Update libp2p
* Some more diagnostics
* 30 seconds back to 5 seconds
* Bump libp2p-core and improve test
* Fix runtime Cargo.lock
* More work
* Finish upgrade to libp2p 0.3
* Add a maximum of 60 seconds for the rounds
* Remove env_logger
* Update Cargo.lock
* Update Cargo.lock in test-runtime
* Fix test compilation
* Make the test pass
* Add identify addresses to Kademlia
* Don't connect to nodes we're already connected to
* Add warning for non-Substrate nodes
* Fix external address not added
* Start in Enabled mode
2019-02-06 16:39:22 +01:00
Pierre Krieger
ec790acf4d
Print the local node address again ( #1628 )
2019-01-30 23:33:14 +01:00
Pierre Krieger
a1586df41b
Report the average network bandwidth ( #1551 )
...
* Report the average network bandwidth
* Fix concerns
2019-01-25 10:34:34 +00:00
Pierre Krieger
d30a8e0bc3
Log the clogging networking messages ( #1532 )
2019-01-23 15:24:25 +01:00
Pierre Krieger
cd86643f33
Report when peer is clogged ( #1528 )
2019-01-23 14:30:20 +01:00
Pierre Krieger
3c7d6c7b72
Add some networking tests ( #1480 )
2019-01-21 19:26:12 +01:00
Pierre Krieger
f67c2cc181
Store identification info about the remote ( #1500 )
...
* Store identification info about the remote
* Add node name on the wire
* Fix tests
2019-01-21 14:33:25 +01:00
Pierre Krieger
763d133173
Put back support for WebSockets in the transport ( #1486 )
2019-01-19 12:41:17 +01:00
Pierre Krieger
b009b42a68
Update network-libp2p to edition 2018 ( #1481 )
2019-01-19 12:38:52 +01:00
Pierre Krieger
f1f32ac620
Don't queue messages after shutdown ( #1476 )
2019-01-19 12:37:07 +01:00
Pierre Krieger
6ee9b6db25
Fix Dockerfile ( #1485 )
...
* Fix Dockerfile
* Use ENTRYPOINT instead of CMD
2019-01-19 12:34:19 +01:00
Pierre Krieger
eb000fb1ae
Remove warning for large buffer ( #1357 )
2019-01-17 09:33:39 +01:00
Pierre Krieger
9018d752dc
Update libp2p-kad and libp2p-secio ( #1447 )
...
* Update libp2p-kad and libp2p-secio
* Fix concern
2019-01-16 12:59:24 -03:00
Pierre Krieger
a0d458aa06
Update to latest libp2p ( #1386 )
...
* Update to latest libp2p
* Fix indentations
* Add basic test
* Apply suggestions from code review
Co-Authored-By: tomaka <pierre.krieger1708@gmail.com >
* Remove Mutex from topology
* Remove unused method
* Fix concerns
2019-01-14 13:38:36 +01:00
Pierre Krieger
42c30609d3
Update ring to 0.13 and subtle to 2.0 ( #1383 )
2019-01-10 13:32:27 +01:00
Pierre Krieger
74e907f3cb
Some tweaks in the network crate ( #1108 )
...
* Move Roles to network::config
* Make network::config public
* Move NetworkConfig and NonReservedMode to config
* Move Params to config
* Move node_id() to NetworkManager and fix tests
* Rename Specialization to NetworkSpecialization
2018-11-14 11:25:16 +01:00
Pierre Krieger
f94bba0802
Remove dependency on libp2p from cli ( #1107 )
2018-11-13 16:26:53 +01:00
Pierre Krieger
b76ba06472
Some minor TODOs removal ( #1102 )
...
* Only reconnect if topology changed
* Minor changes
2018-11-12 17:54:57 +01:00
Pierre Krieger
fcae7ac582
Switch to libp2p master ( #931 )
2018-11-05 19:22:26 +01:00
Pierre Krieger
15fe5f7540
Remove the packet ID system ( #900 )
2018-10-16 12:57:42 +01:00
Pierre Krieger
8050979660
Rename min-peers and max-peers CLI options ( #909 )
2018-10-16 08:34:59 +01:00
Pierre Krieger
0666759b16
Clean up the networking layer ( #881 )
2018-10-08 18:20:38 +02:00
Pierre Krieger
d14700f7b6
The NodeId is always available in the session info ( #859 )
2018-10-01 18:31:07 +01:00
Pierre Krieger
79d538ee66
Clean up the "custom protocol" code ( #832 )
...
* No longer use a channel for custom protocols
* Fix warnings
* Add graceful shutdown and comments
* Minor cleanups
* Add warning if queue goes over threshold
* Increase threshold
* Address grumble
2018-09-29 12:01:23 +01:00
Pierre Krieger
dea800586f
Remove accidentally-added .cargo/config ( #806 )
2018-09-26 17:59:23 +01:00
Pierre Krieger
52dbf0cace
Rewrite the libp2p networking ( #742 )
...
* Rewrite the libp2p networking
* Fix erroneous replacement during rebase
* Update libp2p
* Update libp2p
* Remove the logic error about useless substreams
* Use the new NodeHandler system of libp2p
* Commit the Cargo.lock
* Upgrade yamux
* Forward port latest changes
* Fix compilation issues
* Implement the external URL
* Update to latest networking fixes
* Forward port rest of v0.2
* Fix reserved peers being dropped when we're full
2018-09-26 11:56:32 +02:00
Pierre Krieger
abf64386bb
Improvements to the Kademlia system ( #688 )
2018-09-07 18:56:38 +02:00
Pierre Krieger
28d3c2afe9
Use BufReader and BufWriter ( #684 )
...
* Use BufReader and BufWriter
* Add TODOs
2018-09-07 18:54:51 +02:00
Pierre Krieger
af3ad2109f
Update to latest libp2p ( #673 )
2018-09-06 14:56:41 +02:00
Pierre Krieger
0d422878a3
Upgrade to libp2p master ( #660 )
2018-09-05 09:05:28 +02:00
Pierre Krieger
26ebf3a0a0
Fix warnings in networking ( #652 )
2018-09-04 10:26:54 +02:00
Pierre Krieger
360ffa2dbb
Add a reputation system ( #645 )
...
* Add a reputation system
* Fix tests
* Don't try to dial peers to which we are already connected
* Use the master branch of libp2p
2018-09-04 08:52:20 +02:00
Pierre Krieger
eb10c392ce
Allow specifying listening multiaddresses ( #577 )
2018-08-28 12:16:51 +01:00
Pierre Krieger
68c1fc0b66
Update libp2p ( #559 )
2018-08-14 13:14:04 +02:00
Pierre Krieger
3128f258ba
Update libp2p and some log ( #532 )
...
* Update libp2p and some log and yamux
* Replace trace! with info!
* Only have one log message on disconnect
2018-08-10 13:00:16 +02:00
Pierre Krieger
6f4a401afa
Some networking cleanups ( #504 )
...
* Some networking cleanups
* Fix tests
* Fix wrong port in new_local
2018-08-08 20:05:40 +02:00
Pierre Krieger
9b0c23ac86
Build with locked Cargo.lock on CI ( #514 )
2018-08-08 17:01:57 +02:00
Pierre Krieger
11b9496a6a
NetworkService::new starts the network ( #462 )
2018-08-06 11:57:08 +02:00
Pierre Krieger
1725fcef18
Merge pull request #454 from yuelipeng/master
...
Update README.adoc
2018-07-31 11:50:29 +02:00
Pierre Krieger
9dd746e867
Make ping unidirectional ( #458 )
2018-07-31 10:19:38 +02:00
Pierre Krieger
fb2a8ada37
Update libp2p again ( #445 )
2018-07-29 09:56:02 +02:00
Pierre Krieger
2cb4ed8dcc
Fix the public key of bootnode 3 ( #441 )
2018-07-28 17:33:50 +02:00
Pierre Krieger
53a68d8b9f
Update libp2p ( #442 )
2018-07-28 14:55:43 +01:00
Pierre Krieger
b1a3552aa0
Switch to the master branch of libp2p ( #427 )
...
* Switch to the master branch of libp2p
* Fixed having to clear manually
* Fix TTL of bootstrap nodes
* Speed up compilation time
* Update libp2p
* Remove obsolete comment
2018-07-28 10:42:26 +01:00
Pierre Krieger
988440a368
Fix memory leaks in libp2p ( #432 )
...
* Fix memory leaks in libp2p
* Fix memory leaks in libp2p
2018-07-27 16:09:49 +02:00
Pierre Krieger
1b0e3e57dd
Better logging for public key mismatch ( #429 )
2018-07-27 09:35:24 +02:00
Pierre Krieger
e65672575f
Add some logging if the timeouts stream ends ( #414 )
2018-07-24 15:54:19 +02:00
Pierre Krieger
fcb30f4009
General multiplexing fixes ( #408 )
2018-07-23 15:58:48 +02:00
Pierre Krieger
625918394a
Introduce support for yamux ( #388 )
2018-07-20 00:44:21 +02:00
Pierre Krieger
831810b155
Register protocols at the same time as we start ( #385 )
...
* Register protocols at the same time as we start
* Fix tests
2018-07-19 20:50:07 +02:00
Pierre Krieger
0fbf66b07e
More networking fixes ( #384 )
...
* Don't connect to ourselves for Kademlia
* Improve log messages
* Manually drop connections
* Kademlia is now 32 seconds
* Fix potential panic
* Fix other potential panic
* No longer pass the endpoint everywhere
2018-07-19 17:56:39 +02:00
Pierre Krieger
bcd2f274f9
Network improvements ( #374 )
...
* Ping active connections
* Bump rust-libp2p
* Deny connection attempts if we're already connected
* Properly check max_peers against custom connections
* Fix set_until not immediately called
* Clean up unusued connections and stop pinging them
* Disconnect Kad connections after 20 seconds of inactivity
2018-07-19 15:22:07 +02:00
Pierre Krieger
3dfd53cc86
Timeouts now repeat forever ( #372 )
2018-07-18 17:59:31 +02:00
Pierre Krieger
4dfa17ab37
Fix style in #364 ( #365 )
2018-07-18 14:34:05 +02:00
Pierre Krieger
de168ca034
Fix the networking ( #364 )
...
* Serve only non-empty Kademlia nodes
* Use the number of custom protos to determine whether to open more
* Add timeout when connecting
* Connect to random peers from the peer store
* Various adjustements
* Typo
* Explicitely connect to bootnodes
* Fix potential overflow
2018-07-18 13:55:38 +02:00
Pierre Krieger
1809f0596b
Fix install command in README ( #354 )
2018-07-17 20:31:34 +02:00
Pierre Krieger
428682d3b5
More robust connections ( #343 )
...
* Make Kademlia connection more robust
* Make custom connetions more robust
* Fix potential deadlock
* Style and minor changes
* Upgrade rust-libp2p
2018-07-17 17:14:06 +02:00
Pierre Krieger
bb8987df28
Better reporting in libp2p ( #337 )
2018-07-16 19:11:19 +02:00
Pierre Krieger
801747cb76
Fix nodes not connecting to each other ( #330 )
...
* Fix nodes not connecting to each other
* Only report external addresses
2018-07-16 14:27:11 +02:00
Pierre Krieger
b3916c2999
Remove dependency on parity/network ( #323 )
...
* Remove dependency on parity/network
* Remove dependency on RLP as well
* Fix tests
* Fix tests again
2018-07-15 19:25:29 +02:00
Pierre Krieger
e32b77ffdc
Disable peers only for 5 minutes ( #320 )
...
* Disable peers only for 5 minutes
* Fix formatting
2018-07-15 15:14:00 +02:00
Pierre Krieger
5924b361a3
Switch from devp2p to libp2p ( #268 )
...
* Switch from devp2p to libp2p
* Move the keys in the network state
* Properly load, store or generate private key
* Some robustness
* Update for latest libp2p
* Allow secio
* Don't open a new Kademlia connec all the time
* Handle Kademlia disconnection
* Set correct permissions on key file
* Improvements to secret key storage
* Flush the peer store at Kademlia requests
* Use RAII guards for disconnection
* Some misc work
* Set informations about peers
* Fix tests and external URL
* Fix some style
* Split obtain_private_key into multiple function
* More style fixes
* More style fixes
* Fix some concerns
* Turn // into ///
* More style fixes
* More style fixes
* Add annotations to unreachable!
* Fix style again
* Remove commented out code
* Fix test year
* More concerns
2018-07-15 11:45:37 +02:00
Pierre Krieger
094b2568b2
Amend #205 ( #206 )
2018-06-07 13:39:11 +02:00