wavesplatform / wavesplatform/gowaves

[FEATURE] Add DNS resolver to acquire seed peers

Open
#382 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Go
Stars
251
Forks
73
Avg merge
1d 11h
Merged PRs (30d)
28

Description

Аbstract
A gowaves node knows IP addresses of seed nodes (initial nodes to connect to) from the built-in configuration. Also the initial nodes could be provided by the command line parameter -peers. It seems better to replace or the built-in seed peers with the DNS record lookup.

Specification
Built-in configuration should support domain names along with seed nodes IP addresses. Those domain names should be resolved to underlying IP addresses and those addresses should be treated as usual seed nodes IP addresses.
The argument of -peers command line parameter should be parsed the same way as built-in configuration.

Backwards Compatibility
Configuration and -peers command line parameter should support IP addresses passing for backward compatibility.

Examples and Implementation
Bitcoin operates the same way.
https://github.com/btcsuite/btcd/blob/535f25593d47297f2c7f27fac7725c3b9b05727d/connmgr/seed.go#L33

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting how built-in configuration and the -peers command-line parameter currently accept seed node IP addresses. Use the Bitcoin seed resolver reference as context; done means domain names resolve to seed IP addresses while existing IP-address inputs continue to work in both paths.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
blockchain, networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.