-
Notifications
You must be signed in to change notification settings - Fork 88
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
SRV implementation #5018
Open
crocodile-dentist
wants to merge
16
commits into
main
Choose a base branch
from
mwojtowicz/srv
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
SRV implementation #5018
+1,400
−1,009
Conversation
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
crocodile-dentist
force-pushed
the
mwojtowicz/srv
branch
from
December 3, 2024 10:54
2a4e572
to
3fce719
Compare
ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/DNSActions.hs
Outdated
Show resolved
Hide resolved
crocodile-dentist
force-pushed
the
mwojtowicz/srv
branch
13 times, most recently
from
December 10, 2024 10:33
34fd024
to
75341dc
Compare
crocodile-dentist
force-pushed
the
mwojtowicz/srv
branch
3 times, most recently
from
December 11, 2024 15:20
b3f0498
to
4649b5a
Compare
crocodile-dentist
force-pushed
the
mwojtowicz/srv
branch
6 times, most recently
from
December 13, 2024 11:39
37c578d
to
9718a9c
Compare
coot
reviewed
Dec 13, 2024
ouroboros-network-api/src/Ouroboros/Network/PeerSelection/RelayAccessPoint.hs
Outdated
Show resolved
Hide resolved
ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/DNSActions.hs
Outdated
Show resolved
Hide resolved
ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/DNSActions.hs
Outdated
Show resolved
Hide resolved
ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/DNSActions.hs
Outdated
Show resolved
Hide resolved
ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/DNSActions.hs
Outdated
Show resolved
Hide resolved
ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/DNSActions.hs
Outdated
Show resolved
Hide resolved
ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/DNSActions.hs
Outdated
Show resolved
Hide resolved
ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/LedgerPeers.hs
Outdated
Show resolved
Hide resolved
ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/LedgerPeers.hs
Outdated
Show resolved
Hide resolved
ouroboros-network/src/Ouroboros/Network/PeerSelection/RootPeersDNS/LedgerPeers.hs
Outdated
Show resolved
Hide resolved
crocodile-dentist
force-pushed
the
mwojtowicz/srv
branch
8 times, most recently
from
January 20, 2025 13:20
78a59fa
to
6f44d0d
Compare
crocodile-dentist
force-pushed
the
mwojtowicz/srv
branch
3 times, most recently
from
January 27, 2025 10:23
f2f6462
to
e9fe90e
Compare
Update JSON instances and transplant CBOR instances from RelayAccessPointCoded type, which will be removed in a followup commit, to support LedgerPeerSnapshot type for Genesis big ledger peers snapshot.
Directly leverages JSON and CBOR instances for RelayAccessPoint instead of RelayAccessPointCoded, which will be removed in a followup commit. The upshot of this change is that all domain names in the snapshot file will be keyed by 'address' instead of 'domain', but other than that there is no change to it. What we gain is less maintenance burden of those extra instances that now can be dropped.
Tests round trip encoding, modulo fully qualified domain names, which previously was the only distinct feature of the RelayAccessPointCoded type which has been removed.
crocodile-dentist
force-pushed
the
mwojtowicz/srv
branch
2 times, most recently
from
January 27, 2025 15:54
f428325
to
d48fb7a
Compare
Reorganizes generation of diffusion script to accomodate mock DNS SRV lookups. The generation of DNS lookup map is postponed to genDomainMapScript function, where it is convenient to create followup lookup domains for relays tagged as RelayAccessSRVDomain. So now the strategy is first to generate some relays, and then adapt the DNS lookup map for a particular set of choices. This map was previously generated in the Arbitrary instance for RelayAccessInfosWithDNS, so simultaneously with the relays, which was not optimal for the present more sequential nature needed to generate the testcase. The latter type was therefore also removed. Previous RelayAccessInfos was renamed to TestnetRelayInfos and augmented with some fields for convenience.
crocodile-dentist
force-pushed
the
mwojtowicz/srv
branch
from
January 27, 2025 16:01
d48fb7a
to
114ac28
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This change introduces support for DNS SRV record lookups. When a relay is associated via SRV record, a two step resolution is attempted to first identify the relevant domains from which to make a secondary lookup to obtain the final address. All lookups are early bound in the sense that only the domains with top priority (ie. with the lowest priority numeric value in the record) are considered, and afterwards a single domain is randomly sampled it is queried for the address. If the lookup fails it is not retried.
The tracing of dns lookups has been reworked. The tracing happens in the
DNSActions
'sdnsLookupWithTTL
function, and the corresponding constructors from eg.TraceLocalRootPeers
(and for Public and Ledger types) have been removed. This simplifies the logic inlocalRootsPeersProvider
,publicRootPeersProvider
andresolveLedgerPeers
functions since the lookup doesn't have to return additional information regarding the domain names which have been resolved, which is used in the testing framework. But the main impetus was that this information can be traced separately, and the resolve function can return socket addresses directly.Checklist
Quality
Maintenance
ouroboros-network
project.