• Api Documentation
Show / Hide Table of Contents
  • AVM.ClientGenerator
    • ClientGeneratorAnalyzer
    • ProxyBase
    • ProxyException
    • SignatureBase
  • AVM.ClientGenerator.ABI.ARC32
    • AbiMethodDefaultArgument
    • AppDescription
    • AppDescriptionConverter
    • ArgumentDefaultSource
    • CallConfig
    • CallConfigSpec
    • ConstantDefaultArgument
    • DefaultArgumentConverter
    • DefaultArgumentSpec
    • HintSpec
    • StateDefaultArgument
    • StateDescription
    • StorageElement
    • StorageSection
  • AVM.ClientGenerator.ABI.ARC4
    • ArgumentDescription
    • ContractDescription
    • MethodDescription
    • NetworkAppId
    • ReturnTypeDescription
  • AVM.ClientGenerator.ABI.ARC4.Types
    • Address
    • Application
    • Asset
    • Bool
    • Byte
    • FixedArray<T>
    • String
    • StructArray<T>
    • Tuple
    • UFixed
    • UInt
    • UInt128
    • UInt16
    • UInt24
    • UInt256
    • UInt32
    • UInt48
    • UInt512
    • UInt64
    • VariableArray<T>
    • WireType
  • AVM.ClientGenerator.ABI.ARC56
    • AppDescriptionArc56
    • BareActions
    • CompilerInfo
    • CompilerVersion
    • ContractState
    • DefaultValue
    • Event
    • EventArgument
    • Method
    • MethodActions
    • MethodArgument
    • MethodReturn
    • NetworkInfo
    • ProgramSource
    • ProgramSourceInfo
    • RecommendationBox
    • Recommendations
    • Schema
    • SchemaValues
    • ScratchVariable
    • SourceInfo
    • SourceInfoArgument
    • StorageKey
    • StorageMap
    • StructField
    • TemplateVariable
  • AVM.ClientGenerator.Clients
    • ContractUtilities
    • ProxyException
    • ProxyGenerator
    • SmartSignatureUtilities
  • AVM.ClientGenerator.Compiler
    • TealTypeUtils
    • Utilities
  • AVM.ClientGenerator.Core
    • AccountReference
    • AppCall
    • AppCallTransactionReference
    • AssetAccept
    • AssetClawback
    • AssetClawbackTransactionReference
    • AssetConfiguration
    • AssetConfigurationTransactionReference
    • AssetFreeze
    • AssetFreezeTransactionReference
    • AssetReference
    • AssetTransfer
    • AssetTransferTransactionReference
    • BigIntegerExtensions
    • ByteArrayExtensions
    • Constants
    • IAlgorandCommonPredefineds
    • ICompiledContract
    • ICompiledSignature
    • ISmartContractPredefineds
    • ISmartSignaturePredefineds
    • InnerTransaction
    • IntegerExtensions
    • IntentionallyNotImplementedException
    • KeyRegistration
    • KeyRegistrationTransactionReference
    • OnCompleteType
    • Payment
    • PaymentTransactionReference
    • SmartContract
    • SmartContractLibrary
    • SmartContractReference
    • SmartSignature
    • StorageType
    • StringExtensions
    • TransactionReference
    • VariableType
  • AVM.ClientGenerator.Core.Attributes
    • ABIFixedSizeAttribute
    • ABIStructAttribute
    • ABITypeDecoratorAttribute
    • InnerTransactionCallAttribute
    • SmartContractMethodAttribute
    • SmartSignatureMethodAttribute
    • StorageAttribute
  • AVM.ClientGenerator.Optimisers
    • CompiledLine
    • ICompilerMemento
    • IOptimiser
  • Algorand
    • Address
    • ApiException
    • ApiException<TResult>
    • Digest
    • HttpClientConfigurator
    • LogicsigSignature
    • MultisigAddress
    • MultisigSignature
    • MultisigSubsig
    • ParticipationPublicKey
    • Signature
    • TEALProgram
    • TxGroup
    • VRFPublicKey
  • Algorand.AVM.ClientGenerator.ABI.ARC32
    • SourceDescription
  • Algorand.AVM.ClientGenerator.ABI.ARC56
    • AVMObjectType
    • ClientGeneratorARC56
  • Algorand.AVM.ClientGenerator.Extensions
    • StringExtensions
  • Algorand.Algod
    • AlgodClient
    • AlgodConfiguration
    • DefaultApi
    • DefaultApi.ObjectResponseResult<T>
    • FundAccount
    • IAlgodClient
    • IDefaultApi
  • Algorand.Algod.Model
    • Account
    • AccountApplicationResource
    • AccountApplicationResponse
    • AccountApplicationsInformationResponse
    • AccountAssetHolding
    • AccountAssetResponse
    • AccountAssetsInformationResponse
    • AccountBalanceRecord
    • AccountDeltas
    • AccountParticipation
    • AccountSigType
    • AccountStateDelta
    • AccountTotals
    • AppCallLogs
    • AppResourceRecord
    • Application
    • ApplicationInitialStates
    • ApplicationKVStorage
    • ApplicationLocalReference
    • ApplicationLocalState
    • ApplicationParams
    • ApplicationStateOperation
    • ApplicationStateSchema
    • Asset
    • AssetHolding
    • AssetHoldingReference
    • AssetParams
    • AssetResourceRecord
    • AvmKeyValue
    • AvmValue
    • Block
    • BlockCert
    • BlockCertProp
    • BlockCertVote
    • BlockCertVoteCred
    • BlockCertVoteSig
    • BlockHashConverter
    • BlockHashResponse
    • BlockHeaderResponse
    • BlockLogsResponse
    • BlockTxidsResponse
    • Box
    • BoxDescriptor
    • BoxRef
    • BoxReference
    • BoxesResponse
    • BuildVersion
    • CertifiedBlock
    • CompileResponse
    • DisassembleResponse
    • DryrunRequest
    • DryrunResponse
    • DryrunSource
    • DryrunState
    • DryrunTxnResult
    • ErrorResponse
    • EvalDelta
    • EvalDeltaKeyValue
    • FileParameter
    • Format
    • Genesis
    • GenesisAllocation
    • GetBlockTimeStampOffsetResponse
    • GetSyncRoundResponse
    • HeartBeat
    • KvDelta
    • LedgerStateDelta
    • LedgerStateDeltaForTransactionGroup
    • LightBlockHeaderProof
    • ModifiedApp
    • ModifiedAsset
    • NodeStatusResponse
    • ParticipationKey
    • PendingTransactions
    • PostTransactionsResponse
    • ProofResponse
    • ReturnedTransaction
    • ScratchChange
    • SimulateInitialStates
    • SimulateRequest
    • SimulateRequestTransactionGroup
    • SimulateResponse
    • SimulateTraceConfig
    • SimulateTransactionGroupResult
    • SimulateTransactionResult
    • SimulateUnnamedResourcesAccessed
    • SimulationEvalOverrides
    • SimulationOpcodeTraceUnit
    • SimulationTransactionExecTrace
    • StateDelta
    • StateProof
    • StateProofMessage
    • StateProofTrackingData
    • SupplyResponse
    • TealKeyValue
    • TealValue
    • TransactionGroupLedgerStateDeltasForRoundResponse
    • TransactionParametersResponse
    • TransactionProofResponse
    • TxLease
    • Version
  • Algorand.Algod.Model.Agreement
    • ProposalValue
    • RawVote
    • Vote
  • Algorand.Algod.Model.Converters.Json
    • BlockCertVoteSigConverterJson
    • ParticipationPublicKeyConverterJson
    • UlongDictionaryConverterJson<T>
    • VRFPublicKeyConverterJson
    • ValueDeltaBytesConverterJson
  • Algorand.Algod.Model.Converters.MsgPack
    • AddressFormatterMsgPack
    • Deserializer
    • DigestFormatterMsgPack
    • NoDefaultsFormatter<T>
    • NullableStringFormatterMsgPack
    • ParticipationPublicKeyFormatterMsgPack
    • TEALProgramFormatterMsgPack
    • VRFPublicKeyFormatterMsgPack
    • ValueDeltaFormatterMsgPack
  • Algorand.Algod.Model.Exceptions
    • UnnamedResourceException
  • Algorand.Algod.Model.Transactions
    • ApplicationCallTransaction
    • ApplicationClearStateTransaction
    • ApplicationCloseOutTransaction
    • ApplicationCreateTransaction
    • ApplicationDeleteTransaction
    • ApplicationNoopTransaction
    • ApplicationOptInTransaction
    • ApplicationUpdateTransaction
    • AssetAcceptTransaction
    • AssetChangeTransaction
    • AssetClawbackTransaction
    • AssetCloseTransaction
    • AssetConfigurationTransaction
    • AssetCreateTransaction
    • AssetDestroyTransaction
    • AssetFreezeTransaction
    • AssetMovementsTransaction
    • AssetTransferTransaction
    • AssetUpdateTransaction
    • HeartBeatTransaction
    • IReturnableTransaction
    • KeyRegisterOfflineTransaction
    • KeyRegisterOnlineTransaction
    • KeyRegistrationTransaction
    • OnCompletion
    • PaymentTransaction
    • SignedTransaction
    • SignedTransactionDetail
    • StateProofTransaction
    • StateSchema
    • Transaction
    • TransactionsExtensions
    • ValueDelta
  • Algorand.Algod.Test
    • TestHttpMessageHandler
  • Algorand.Crypto
    • KeyPair
  • Algorand.Gossip
    • DnsSrvRecord
    • DnsSrvResolver
    • GossipHttpClient
    • GossipHttpConfiguration
    • GossipNetwork
    • GossipNodePurpose
    • GossipWebsocketClient
    • GossipWebsocketClient.AgreementVoteReceivedEventHandler
    • GossipWebsocketClient.MsgDigestSkipReceivedEventHandler
    • GossipWebsocketClient.MsgOfInterestReceivedEventHandler
    • GossipWebsocketClient.NetPrioResponseReceivedEventHandler
    • GossipWebsocketClient.PingReceivedEventHandler
    • GossipWebsocketClient.PingReplyReceivedEventHandler
    • GossipWebsocketClient.ProposalPayloadReceivedEventHandler
    • GossipWebsocketClient.StateProofSigReceivedEventHandler
    • GossipWebsocketClient.TopicMsgRespReceivedEventHandler
    • GossipWebsocketClient.TransactionReceivedEventHandler
    • GossipWebsocketClient.UniEnsBlockReqReceivedEventHandler
    • GossipWebsocketClient.VoteBundleReceivedEventHandler
    • GossipWebsocketClientConfiguration
  • Algorand.Gossip.Model
    • Tag
    • Topic
    • Topics
  • Algorand.Indexer
    • CommonApi
    • CommonApi.ObjectResponseResult<T>
    • ICommonApi
    • ILookupApi
    • ISearchApi
    • LookupApi
    • LookupApi.ObjectResponseResult<T>
    • SearchApi
    • SearchApi.ObjectResponseResult<T>
  • Algorand.Indexer.Model
    • Account
    • AccountParticipation
    • AccountResponse
    • AccountStateDelta
    • AccountsResponse
    • Application
    • ApplicationLocalState
    • ApplicationLocalStatesResponse
    • ApplicationLogData
    • ApplicationLogsResponse
    • ApplicationParams
    • ApplicationResponse
    • ApplicationStateSchema
    • ApplicationsResponse
    • Asset
    • AssetBalancesResponse
    • AssetHolding
    • AssetHoldingsResponse
    • AssetParams
    • AssetResponse
    • AssetsResponse
    • Block
    • BlockRewards
    • BlockUpgradeState
    • BlockUpgradeVote
    • ErrorResponse
    • EvalDelta
    • EvalDeltaKeyValue
    • HealthCheck
    • MiniAssetHolding
    • StateSchema
    • TealKeyValue
    • TealValue
    • Transaction
    • TransactionApplication
    • TransactionAssetConfig
    • TransactionAssetFreeze
    • TransactionAssetTransfer
    • TransactionKeyreg
    • TransactionPayment
    • TransactionResponse
    • TransactionSignature
    • TransactionSignatureLogicsig
    • TransactionSignatureMultisig
    • TransactionSignatureMultisigSubsignature
    • TransactionsResponse
  • Algorand.KMD
    • APIV1DELETEKeyResponse
    • APIV1DELETEMultisigResponse
    • APIV1GETWalletsResponse
    • APIV1POSTKeyExportResponse
    • APIV1POSTKeyImportResponse
    • APIV1POSTKeyListResponse
    • APIV1POSTKeyResponse
    • APIV1POSTMasterKeyExportResponse
    • APIV1POSTMultisigExportResponse
    • APIV1POSTMultisigImportResponse
    • APIV1POSTMultisigListResponse
    • APIV1POSTMultisigProgramSignResponse
    • APIV1POSTMultisigTransactionSignResponse
    • APIV1POSTProgramSignResponse
    • APIV1POSTTransactionSignResponse
    • APIV1POSTWalletInfoResponse
    • APIV1POSTWalletInitResponse
    • APIV1POSTWalletReleaseResponse
    • APIV1POSTWalletRenameResponse
    • APIV1POSTWalletRenewResponse
    • APIV1POSTWalletResponse
    • APIV1Wallet
    • APIV1WalletHandle
    • Api
    • Api.ObjectResponseResult<T>
    • ApiException
    • ApiException<TResult>
    • CreateWalletRequest
    • DeleteKeyRequest
    • DeleteMultisigRequest
    • ExportKeyRequest
    • ExportMasterKeyRequest
    • ExportMultisigRequest
    • GenerateKeyRequest
    • IApi
    • ImportKeyRequest
    • ImportMultisigRequest
    • InitWalletHandleTokenRequest
    • ListKeysRequest
    • ListMultisigRequest
    • MultisigSig
    • MultisigSubsig
    • ReleaseWalletHandleTokenRequest
    • RenameWalletRequest
    • RenewWalletHandleTokenRequest
    • SignMultisigRequest
    • SignProgramMultisigRequest
    • SignProgramRequest
    • SignTransactionRequest
    • VersionsResponse
    • WalletInfoRequest
  • Algorand.Utils
    • ByteConstBlock
    • BytesConverter
    • Digester
    • Encoder
    • IntConstBlock
    • Logic
    • Logic.Uvarint
    • Mnemonic
    • MultisigAddressConverter
    • OrderedContractResolver
    • ProgramData
    • ReturnedTransactionConverter
    • SourceMap
    • SourceMap.VLQDecoder
    • Utils
    • VarintResult
    • Wordlist
  • Algorand.Utils.Crypto
    • FixedSecureRandom

Class DnsSrvResolver

A minimal DNS SRV record (RFC 2782) resolver implemented over raw UDP sockets. .NET's BCL has no public API for SRV lookups, and Algorand (and Algorand-compatible networks like Voi/Aramid) publish their relay and archival gossip nodes as SRV records - e.g. "_archive._tcp.mainnet.algorand.network" - specifically so clients don't have to hardcode node lists that rotate over time.

Inheritance
object
DnsSrvResolver
Inherited Members
object.Equals(object)
object.Equals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
object.ReferenceEquals(object, object)
object.ToString()
Namespace: Algorand.Gossip
Assembly: Algorand.dll
Syntax
public static class DnsSrvResolver

Methods

| Edit this page View Source

BuildQuery(string, out ushort)

Declaration
public static byte[] BuildQuery(string serviceName, out ushort transactionId)
Parameters
Type Name Description
string serviceName
ushort transactionId
Returns
Type Description
byte[]
| Edit this page View Source

EncodeName(string)

Declaration
public static byte[] EncodeName(string name)
Parameters
Type Name Description
string name
Returns
Type Description
byte[]
| Edit this page View Source

ParseResponse(byte[], ushort?)

Declaration
public static List<DnsSrvRecord> ParseResponse(byte[] response, ushort? expectedTransactionId = null)
Parameters
Type Name Description
byte[] response
ushort? expectedTransactionId
Returns
Type Description
List<DnsSrvRecord>
| Edit this page View Source

Resolve(string, int)

Resolves the SRV records for the given service name, ordered by priority (ascending) then weight (descending), per RFC 2782. Tries the machine's configured DNS servers first, then falls back to public resolvers if none are configured or none answer.

Declaration
public static List<DnsSrvRecord> Resolve(string serviceName, int timeoutMs = 5000)
Parameters
Type Name Description
string serviceName
int timeoutMs
Returns
Type Description
List<DnsSrvRecord>
  • Edit this page
  • View Source
☀
☾
In this article
Back to top
Generated by DocFX
☀
☾