-
Notifications
You must be signed in to change notification settings - Fork 221
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
feat: validate blockchain fetch from DNS server with local state #6658
feat: validate blockchain fetch from DNS server with local state #6658
Conversation
Description --- new nextnet release v1.8.0-rc.0
v1.8.0-rc.0
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good, a few comments
Support for other chains than nextnet have yet to be implemented after these dns servers are up and running. |
Test Results (CI) 3 files 129 suites 40m 44s ⏱️ Results for commit 877ec62. ♻️ This comment has been updated with latest results. |
Test Results (Integration tests) 2 files + 2 11 suites +11 16m 58s ⏱️ + 16m 58s For more details on these failures, see this check. Results for commit 877ec62. ± Comparison against base commit 10f4077. ♻️ This comment has been updated with latest results. |
I am unsure about this approach altogether, as it centralizes authority and appoints the DNS server as an oracle that can influence outcomes. |
This is only used to hint that this node might be not connected to the rest of the network. This was common issue in Tari Universe where most of the network was connected through Tor but after disabling this feature in the settings, users where trying to connect through TCP where there no other nodes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Description
Add new service which will periodically get checkpoints from a DNS server and validate with it's own state. If we fail this check we will include this information in
get_new_block_template
request so the sender is aware that this node is out of sync.Motivation and Context
This will allow miners including one from Tari Universe to avoid mining on the orphan chain. This implementation is
modeled after the Monero Pulse
How Has This Been Tested?
Run app on the nextnet and look for logs with
tari_pulse
in thebase_layer.log
file like this:tail -f base_layer.log | grep tari_pulse
Make
get_new_block_template
and verify if new fields are present.Create orphan chain (eg. by turning off tor and banning all TCP peers) and check (with above methods) if nodes detects orphan chain.
What process can a PR reviewer use to test or verify this change?
Same as above
Breaking Changes