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

[7.5][TBD] Better node management #1521

Closed
startailcoon opened this issue May 17, 2018 · 64 comments
Closed

[7.5][TBD] Better node management #1521

startailcoon opened this issue May 17, 2018 · 64 comments
Assignees
Labels
[3] Feature Classification indicating the addition of novel functionality to the design

Comments

@startailcoon
Copy link
Contributor

startailcoon commented May 17, 2018

As we gain more and more nodes from both witnesses, businesses, regular joes and worker programs, the list has grown quite long. Nodes all around the globe is in one single list, and mixed with testnet nodes, just to make the matter worse.

I propose we make a UX for a better node management.
A user should be able to filter/find/sort nodes on flags like these, but not limited:

  • Country (UK, Sweden, US, China etc.)
  • Region (North America, Europe, Asia etc.)
  • Owner (Witness, Worker, Exchange etc)
  • Network (Main or Test for the moment)
  • Core version
  • Buckets and History sizes

The goal of this would be to make the list of nodes more manageable.

@clockworkgr
Copy link
Member

Possibly amount of history & bucket sizes offered too? (although I have started a discussion in telegram to standardize bucket sizes offered for uniformity)

@sschiessl-bcp
Copy link
Contributor

Totally agree, include with the ping all button that I somehow forgot in my last PR...

@svk31
Copy link
Contributor

svk31 commented May 20, 2018

Knowing bucket sizes requires us to make an api call to the node. The amount of history is not available AFAIK.

@abitmore
Copy link
Member

abitmore commented May 20, 2018

Owner (Witness, Worker, Exchange etc)

This is useful especially when a node is having issues. Easier to contact the node admin.

@wmbutler wmbutler added the [3] Enhancement Classification indicating a change to the functionality of the existing imlementation label May 20, 2018
sschiessl-bcp pushed a commit that referenced this issue Jul 18, 2018
- refactoring of SettingsStore and AccessSettings
- prepare routerTransitioner to support a more sophistiaced node dictionary

Signed-off-by: Stefan Schiessl <stefan.schiessl@blockchainprojectsbv.com>
@sschiessl-bcp
Copy link
Contributor

sschiessl-bcp commented Jul 18, 2018

During working on #1672 and refactoring I realized that this issue is probably gonna be solved on the. Can this be rated please? @startailcoon @wmbutler

@sschiessl-bcp
Copy link
Contributor

During my work on this I found a bug in the SettingsStore. If any default values change (removing nodes, changing faucet), the user does not get those changes due to local storage having old values. Will include a fix for that as well

@abitmore
Copy link
Member

Is there a way to not trigger chrome warning when one of the nodes has a bad SSL certificate?

@sschiessl-bcp
Copy link
Contributor

sschiessl-bcp commented Jul 19, 2018

Is there a way to not trigger chrome warning when one of the nodes has a bad SSL certificate?

No, that can only be deactivated by the user. Even if the UI wanted to evaluate certificates itself (and not connect if invalid) the user would still get a notification.

sschiessl-bcp pushed a commit that referenced this issue Jul 19, 2018
- second wholesome refactoring of AccessSettings. ApiNode has all the knowledge itself now
- refactored SettingsStore. Next step: eliminate bug that defaults are not overwritten

Signed-off-by: Stefan Schiessl <stefan.schiessl@blockchainprojectsbv.com>
@sschiessl-bcp
Copy link
Contributor

sschiessl-bcp commented Jul 20, 2018

Requesting feedback for visualization and configuration options @bitshares/ui-dev

image
image

Title is Region - Country - Location (Optional), Operator is right aligned. An entry in apiConfig.js looks like this then:

{
url: "wss://eu.nodes.bitshares.ws",
region: "Central Europe",
country: "Germany",
operator: "Infrastructure Worker",
contact: "email:info@blockchainprojectsbv.com"
},

@clockworkgr
Copy link
Member

I really like that @sschiessl-bcp !

@sschiessl-bcp
Copy link
Contributor

Thanks @clockworkgr

I just commited a more extensive refactoring of SettingsStore and AccessSettings. Filtering I will add next week.

@sschiessl-bcp
Copy link
Contributor

sschiessl-bcp commented Jul 23, 2018

I am calling out to all node operators, please provide me with the additional information to be able to give the user a more sophisticated selection process and filtering options.

Please simply comment in here with your updated node configuration in the same style (so I can copy and paste). Use the old configuration like seen here and add the new configuration. Expectancy of a post:

Please update

        {
            url: "wss://eu.nodes.bitshares.ws",
            location: "Central Europe - BitShares Infrastructure Program"
        }

to

        {
            url: "wss://eu.nodes.bitshares.ws",
            region: "Western Europe",
            country: "Germany",
            location: "Nuremberg",
            operator: "Infrastructure Worker",
            contact: "email:blockchainprojectsbv.com;info"
        }

If the url has not changed, mentioning the old config entry can be ommitted. Short explanation:

  • url: exact url of the node that allows a websocket connection
  • location: City of the node server (optional)
  • country: Country of the node server
  • region: Region of the node server, important for a more sophisticated geolocation-based connection strategy later on. One of the following options (please open the link to locate your own region)
    // region of the node follows roughly https://en.wikipedia.org/wiki/Subregion#/media/File:United_Nations_geographical_subregions.png
    "Northern Europe",
    "Western Europe",
    "Southern Europe",
    "Eastern Europe",
    "Northern Asia",
    "Western Asia",
    "Southern Asia",
    "Eastern Asia",
    "Central Asia",
    "Southeastern Asia",
    "Australia",
    "New Zealand",
    "Melanesia",
    "Polynesia",
    "Micronesia",
    "Northern Africa",
    "Western Africa",
    "Middle Africa",
    "Eastern Africa",
    "Southern Africa",
    "Northern America",
    "Central America",
    "Caribbean",
    "South America"

    If you have a dns based geolocation redirection enabled, please select "Worldwide" as region and fill in the different possibilties in location.
  • operator: Whatever entity is providing this server (can be Anonymous if really necessary)
  • contact: A string containing perefered contact method and details, i.e. "[email|telegram|github|...]:details". This information will not be displayed in the UI (yet), but it is essential that the UI team has some way of contacting all node operators. Examples:
    • "github:sschiessl-bcp"
    • "email:blockchainprojectsbv.com;info" You may mask your email in whatever way you please to avoid crawlers finding it, even ommi the keyword "email:" in it, as long as its reconstructable for the human reader. For our email the "info" would be the part before the "@"
    • "telegram:sschiessl"

Failure to provide detailed information on your node will result to be listed as "Unknown" in the reference wallet. Unknown nodes might be removed later on.

@clockworkgr
Copy link
Member

clockworkgr commented Jul 23, 2018

{
url: "wss://bts-seoul.clockwork.gr",
region: "Southeastern Asia",
country: "Korea",
location: "Seoul",
operator: "Witness: clockwork",
contact: "telegram:clockworkgr",
history_ops: "100"
}

@dls-cipher
Copy link
Contributor

dls-cipher commented Jul 23, 2018

Listing emails in pages in their native structure mailbox@domain.com will end up in Search Engines, and eventually become just an open-invite for crawlers, bots, spam and unusual activity over https://wallet.bitshares.org so no, I don't agree with adding emails as contacts.

I would also added line entry that is saying is the node standard/full so we can end that endless question of users "is there any full node".

Rest is fine.

@clockworkgr
Copy link
Member

After DL's comment I suggest a history_ops entry specifying amount of history. 0 for full node, or number for max ops held.

Updated my comment accordingly

@abitmore
Copy link
Member

@clockworkgr 0 for mini node with no history.

@startailcoon
Copy link
Contributor Author

{ 
     url: "wss://bitshares.crypto.fans/ws", 
     region: "Western Europe", 
     country: "Germany", 
     location: "Munich",
     operator: "Witness: sc-ol", 
     contact: "telegram:startail",
     history_ops: "100"
} 

@abitmore
Copy link
Member

{ 
     url: "wss://api.bts.mobi/ws",
     region: "Northern America",
     country: "USA",
     location: "VA",
     operator: "Witness: in.abit",
     contact: "telegram:abitmore",
     history_ops: "1000"
} 

Actually I think UI can detect number of history_ops by itself.

By the way, how about enabled plugins / apis? Version? Compile-time options(bitshares/bitshares-core#1099)? Will the UI code detect them automatically?

@sschiessl-bcp
Copy link
Contributor

sschiessl-bcp commented Jul 23, 2018

@abitmore Yes, after connecting to the node that could be evaluated, but the main spirit of this update is to give the user filtering before connecting. All meanwhile the user should not be able to discriminate on facts other than location and operator. Users like bigger numbers, running a full node is already more expensive and I want to avoid that traffic focuses there then. That's where ES come into sight.

After connection has been established I am hoping to get bitshares/bitshares-core#626 to provide more intel on the node. Also in the spirit of said issue I want to avoid putting down any hardcoded information that would be excluded in such a server info API due to security risks.

@ghost
Copy link

ghost commented Jul 25, 2018

{ 
     url: "wss://api.fr.bitsharesdex.com",
     region: "Western Europe",
     country: "FRANCE",
     location: "Paris",
     operator: "delegate.ihashfury",
     contact: "telegram:ihashfury",
     history_ops: "1000"
     bucket-size: "60,300,900,1800,3600,14400,86400,604800"
} 
{ 
     url: "wss://api.bitsharesdex.com",
     region: "Northern America",
     country: "USA",
     location: "Kansas City",
     operator: "delegate.ihashfury",
     contact: "telegram:ihashfury",
     history_ops: "1000"
     bucket-size: "60,300,900,1800,3600,14400,86400,604800"
} 

@svk31 svk31 added this to the 180803 milestone Jul 26, 2018
@svk31 svk31 changed the title Better node management [TBD] Better node management Jul 26, 2018
@sschiessl-bcp sschiessl-bcp changed the title [4][TBD] Better node management [7.5][TBD] Better node management Aug 6, 2018
svk31 pushed a commit that referenced this issue Aug 6, 2018
- askToReconnectAfterSeconds in footer increased to 10 seconds
- remove duplicate doQuickLatencyUpdate
- beSatisfiedWith is now a map according to AccessSettings display
- remove bug that you dont connect to your selected one if not autoselction

Signed-off-by: Stefan Schiessl <stefan.schiessl@blockchainprojectsbv.com>
@MikhailKavalenka
Copy link
Contributor

{
url: "wss://na.openledger.info/ws",
location: "Canada, Quebec",
operator: "Witness: openledger-dc",
contact: "telegram:mtopenledger",
history_ops: "100",
bucket-size : [15,60,300,3600,86400]
}

One more from Openledger

@abitmore
Copy link
Member

abitmore commented Aug 6, 2018

Still remain:

  • api.btsxchng.com, elmato
  • btsza.co.za:8091
  • dex.rnglab.org, rnglab
  • node.btscharts.com

Just FYI I've pinged elmato,rnglab and owner of btscharts, all responded but no action here yet.

@wmbutler wmbutler modified the milestones: 180801, 180815 Aug 6, 2018
@ghost
Copy link

ghost commented Aug 7, 2018

{
url: "wss://node.btscharts.com/ws",
region: "Eastern Asia",
country: "China",
location: "Beijing",
operator: "leo2017",
contact: "Wechat: wx8855221 , Email:8855221@qq.com",
history_ops: "1000",
bucket-size: "15,60,300,3600,86400"
}

@sschiessl-bcp
Copy link
Contributor

Added

svk31 pushed a commit that referenced this issue Aug 8, 2018
- askToReconnectAfterSeconds in footer increased to 10 seconds
- remove duplicate doQuickLatencyUpdate
- beSatisfiedWith is now a map according to AccessSettings display
- remove bug that you dont connect to your selected one if not autoselction

Signed-off-by: Stefan Schiessl <stefan.schiessl@blockchainprojectsbv.com>
@elmato
Copy link
Contributor

elmato commented Aug 11, 2018

{
url: "wss://api.btsxchng.com",
region: "Multiple",
country: "Worldwide",
location: "Singapore / N. Virginia / London",
operator: "Witness: elmato",
contact: "telegram:elmato",
history_ops: "300",
bucket-size: "60,300,900,1800,3600,14400,86400"
}

@startailcoon
Copy link
Contributor Author

@sschiessl-bcp is all nodes updates so we can close this issue?

@wmbutler wmbutler modified the milestones: 180815, 180905 Aug 26, 2018
@sschiessl-bcp
Copy link
Contributor

Nodes missing:

  • wss://bitshares.nu/ws
  • wss://dex.rnglab.org
  • wss://btsza.co.za:8091/ws
  • bts.proxyhosts.info/wss

@dls-cipher
Copy link
Contributor

{
url: "wss://bitshares.nu/ws",
region: ""Northern Europe"",
country: "Sweden",
location: "Stockholm",
operator: "DAO Collaboration - Infrastructure Worker",
contact: "telegram:StaflunD",
history_ops: "100",
bucket-size: "60,300,900,1800,3600,14400,86400"
}

@rngl4b
Copy link
Contributor

rngl4b commented Aug 31, 2018

{
url: "wss://dex.rnglab.org",
region: "Northern Europe",
country: "Netherlands",
location: "Amsterdam",
operator: "Witness: rnglab",
contact: "keybase:rnglab",
history_ops: "100",
bucket-size: "60,300,900,1800,3600,14400,86400,604800"
}

@ThomasFreedman
Copy link

{
url: "wss://bts.proxyhosts.info/wss",
region: "",
country: "Germany",
location: "",
operator: "Witness: verbaltech2",
contact: "keybase:jgaltman",
history_ops: "300",
bucket-size: "60,300,900,1800,3600,14400,86400"
}

@wmbutler
Copy link
Contributor

wmbutler commented Sep 5, 2018

Is this ready to get closed out and paid?

@wmbutler wmbutler modified the milestones: 180905, 180919 Sep 13, 2018
@barefootmouse
Copy link

barefootmouse commented Sep 14, 2018

        {
            url: "wss://de.bts.dcn.cx/ws",
            region: "Western Europe",
            country: "Germany",
            location: "Nuremberg",
            operator: "Witness: fla01",
            contact: "telegram:Otherego, telegram:BarefootMouse",
            history_ops: "256",
            bucket-size: "60,300,900,1800,3600,14400,86400"
        }

        {
            url: "wss://fi.bts.dcn.cx/ws",
            region: "Northern Europe",
            country: "Finland",
            location: "Helsinki",
            operator: "Witness: fla01",
            contact: "telegram:Otherego, telegram:BarefootMouse",
            history_ops: "256",
            bucket-size: "60,300,900,1800,3600,14400,86400"
        }

And testnet

        {
            url: "wss://testnet.bts.dcn.cx/ws",
            region: "Europe",
            country: "Germany / Finland",
            location: "Nurenberg / Helsinki",
            operator: "Witness: fla-test",
            contact: "telegram:Otherego, telegram:BarefootMouse",
            history_ops: "100",
            bucket-size: "60,300,900,1800,3600,14400,86400"
        }


@sschiessl-bcp
Copy link
Contributor

apiConfig has been updated, this issue is completed.

@sschiessl-bcp
Copy link
Contributor

The next step is laid out in #1901, please evaluate

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[3] Feature Classification indicating the addition of novel functionality to the design
Projects
None yet
Development

No branches or pull requests