Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: prevent seed peer address from being overwritten unless newer #4085

Conversation

sdbondi
Copy link
Member

@sdbondi sdbondi commented May 6, 2022

Description

  • Prevents seed peer addresses from being overwritten unless:
    • The seed peer signs a peer update after the node starts up,
    • directly connected to the seed peer.
  • Adds PeerValidator unit tests.

Motivation and Context

This is only a problem if the base node address has changed recently enough that it is not known to the rest of the network. The user has put the correct new address. The unsigned base node peer is added to the peer DB.

Soon after, the DHT syncs peers, since the previous address was signed, the base node peer is overwritten with the previous address.

How Has This Been Tested?

Unit test for PeerValidator tests this behaviour

Copy link
Collaborator

@SWvheerden SWvheerden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me
The code does some refactoring, the refactoring makes it easier to read to code.
Tested and works.

It failing this integration test however When a new node joins the network, it should receive all peers

@sdbondi sdbondi force-pushed the dht-prevent-overwrite-of-seed-node branch from 7426b42 to 542b332 Compare May 9, 2022 06:39
@sdbondi sdbondi force-pushed the dht-prevent-overwrite-of-seed-node branch from 542b332 to c1ae7ef Compare May 9, 2022 07:06
@aviator-app aviator-app bot merged commit 59b76c3 into tari-project:development May 9, 2022
@sdbondi sdbondi deleted the dht-prevent-overwrite-of-seed-node branch May 10, 2022 06:04
stringhandler added a commit that referenced this pull request May 10, 2022
BREAKING CHANGES
---

* major config rework. Config files should be recreated  (#4006)

Features
---

* allow network to be set by TARI_NETWORK env var ([#4073](#4073)) ([c27be5c](c27be5c))
* **collectibles:** add list assets command ([#3908](#3908)) ([5b726a6](5b726a6))
* **merge mining proxy:** check achieved Monero difficulty before submitting to Tari basenode ([#4019](#4019)) ([b09fa76](b09fa76))
* **p2p:** adds tor.forward_address setting ([#4070](#4070)) ([8c78717](8c78717))
* **tari_explorer:** add total hashrate chart ([#4054](#4054)) ([9e0ec36](9e0ec36))

Bug Fixes
---

* add Environment cfg source and remove --create-id ([#4018](#4018)) ([e59e657](e59e657))
* **base-node:** assign correct base dir to tor identity ([#4081](#4081)) ([1464f8b](1464f8b))
* **dht:** saf storage uses constructs correct msg hash ([#4003](#4003)) ([e1e7669](e1e7669))
* **dht:** sets file default for DHT db ([#4030](#4030)) ([5b125e7](5b125e7))
* **dns-seeds:** use correct cloudflare resolver default ([#4029](#4029)) ([c95e589](c95e589))
* fix github integration tests ([#4008](#4008)) ([aa143c6](aa143c6))
* github actions ([#4014](#4014)) ([a03392e](a03392e))
* ignore test that timeout in github action ([#4010](#4010)) ([6c5471e](6c5471e))
* **key-manager:** remove floating point math from mnemonic code ([#4064](#4064)) ([c2d60b3](c2d60b3))
* launchpad build docker images ([#4042](#4042)) ([50e2812](50e2812))
* **launchpad:** fix config presets ([#4028](#4028)) ([1b8b274](1b8b274))
* long running and non critical github action ([#4009](#4009)) ([3b8cb8b](3b8cb8b))
* makes header consensus encoding infallible ([#4045](#4045)) ([5ebf129](5ebf129))
* only count base nodes in peers count in base node status ([#4039](#4039)) ([190d75a](190d75a))
* prevent seed peer address from being overwritten unless newer ([#4085](#4085)) ([59b76c3](59b76c3))
* support safe non-interactive mode ([#4072](#4072)) ([b34f79d](b34f79d))
* test_output_manager_sqlite_db(_encrypted) ([#4025](#4025)) ([7a6f980](7a6f980))
* update daily test configuration ([#4049](#4049)) ([b15d682](b15d682))
* **wallet:** do not prompt for password if given in config ([#4040](#4040)) ([fc1aa65](fc1aa65))
* **wallet:** ensure block hash exists ([#4083](#4083)) ([a258984](a258984))
* weird behaviour of dates in base node banned peers ([#4037](#4037)) ([7097185](7097185))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants