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

Maintain list of Servers #9

Open
christroutner opened this issue Feb 13, 2019 · 0 comments

Comments

Projects
None yet
1 participant
@christroutner
Copy link
Contributor

commented Feb 13, 2019

As a Mirror, my primary value to the network is to maintain and share an accurate, curated list of Servers and Mirrors in the network.

The scope of this Feature Set is to create, maintain, and syndicate a list of peers. Features:

  • Create a JSON document which contains entries of servers. Each entry has the following properties:

    • promoted - Boolean indicating if this server is promoted or not. promoted Servers are expected to be at the top of the list.
    • lastUpdated - UTC string timestamp of when the Mirror last pinged the server successfully.
    • timesChecked - The number of times the server has been checked since the last server response.
    • onionUrl - string of the tor .onion url
    • clearUrl - string of the clearnet url
    • trust - float between 0.0 and 1.0 representing how much this Mirror 'trusts' the Server
    • message - 500 character message uploaded by the server
    • serverType - typically has value of server or mirror, but could be expanded in the future.
  • Each server in the list is periodically queried to test for aliveness. If the server does not respond, the timesChecked value is incremented. When it goes above 5, the server is removed from the list.

  • Create a publically available REST GET endpoint where this JSON document can be downloaded.

  • Write the JSON document to an Orbit DB docstore and syndicate it over IPFS.

  • The Mirror will periodically download the last 100 entries from the global OrbitDB log-based database. It will diff entries in this list from the entries in its own list. The remaining servers will be tested for aliveness. If successful, a new server will be added to the list.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.