forked from tari-project/tari
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(comms/dht)!: limit number of peer claims and addresses for all so…
…urces (tari-project#5702) Description --- Implement validations and bans for peers that violate peer identity exchange protocol rules Consolidate peer claim and identity validations Removed a number of dead functions and error variants Reduced memory footprint of peer connection handle Removed unverified claim data, this data is not unverified and is only ever added for authenticated direct connections Check that discovery response comes from the peer that directly connected to us Reduce peer flags size from u64 to u32 (smaller would require many more changes) Reduce memory footprint in dialer Motivation and Context --- TARI-021 All peer source validations use the same code. We previously allowed a peer to send any number of identity claims when doing discovery. Discovery RPC protocol now allows a limited number of claims to be sent, ordered by local quality score. How Has This Been Tested? --- Existing test, localnet network (2 bn 2 wallets) What process can a PR reviewer use to test or verify this change? --- <!-- Checklist --> <!-- 1. Is the title of your PR in the form that would make nice release notes? The title, excluding the conventional commit tag, will be included exactly as is in the CHANGELOG, so please think about it carefully. --> Breaking Changes --- - [ ] None - [x] Requires _peer_ data directory on base node to be deleted - [ ] Requires hard fork - [x] Other - some network messages relating to peer sync are not compatible <!-- Does this include a breaking change? If so, include this line as a footer --> <!-- BREAKING CHANGE: Description what the user should do, e.g. delete a database, resync the chain --> --------- Co-authored-by: SW van Heerden <[email protected]>
- Loading branch information
1 parent
431c35a
commit 88ed293
Showing
67 changed files
with
2,360 additions
and
1,505 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
// // Copyright 2023. The Tari Project | ||
// // | ||
// // Redistribution and use in source and binary forms, with or without modification, are permitted provided that the | ||
// // following conditions are met: | ||
// // | ||
// // 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the | ||
// following // disclaimer. | ||
// // | ||
// // 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the | ||
// // following disclaimer in the documentation and/or other materials provided with the distribution. | ||
// // | ||
// // 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote | ||
// // products derived from this software without specific prior written permission. | ||
// // | ||
// // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, | ||
// // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
// // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
// // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | ||
// // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | ||
// // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE | ||
// // USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
|
||
use std::time::Duration; | ||
|
||
// TODO: consolidate ban durations | ||
pub const BAN_DURATION_LONG: Duration = Duration::from_secs(2 * 60 * 60); | ||
pub const BAN_DURATION_SHORT: Duration = Duration::from_secs(2 * 60); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.